Commit Graph
33 Commits
Author SHA1 Message Date
John Smith 19935883b3 feat(ui/device): FirstConnect wizard parity — per-serial device-arrival onboarding (FIRSTCONNECT.UIX)
Zune 4.8's FirstConnect flow: welcome → device name → media-type sync
toggles → privacy → done. Triggered once per physical device serial
the first time it connects, mirroring the existing first-launch /
what's-new overlay pattern.

Persistence: FirstConnectCompletedSerials list in AppSettings tracks
which serials have completed setup. The chosen sync-rule defaults are
pushed into the existing SettingsVM sync-rule fields, and the device
name into a new FirstConnectDeviceName field, all saved via the
existing JSON settings pipeline.
2026-09-09 21:58:36 -04:00
John Smith 429e322333 feat(ui/settings): Zune 4.8 settings parity — file types, privacy, photos, general pages (and FirstConnect serials persisted)
File types page (FILETYPES.UIX parity): ingest-extensions editor with
Zune's default preset set; real OS file associations deferred.
Privacy page: usage-data opt-in (no telemetry subsystem ships with this
flag — stored for parity) + auto-check-for-updates toggle.
Photos page: photo folder picker + slideshow shuffle/repeat defaults
+ delete-after-reverse-sync toggle.
General page: startup view (Quickplay/Collection), sound effects,
compact-mode-always-on-top, show-ratings toggles.
FirstConnect completed-serials list also persisted here so the upcoming
FirstConnect wizard can run once per physical device.
2026-09-09 21:42:56 -04:00
John Smith 1e935ee952 feat(ui/podcasts): mark-all-played/unplayed commands + podcasts settings page (keep episodes, auto-download) 2026-09-09 20:38:58 -04:00
John Smith c3c530ee11 feat(ui/playback): Zune 4.8 keyboard-shortcut parity — Ctrl+S stop, Ctrl+Left/Right seek, F1 about, / search-focus; gas-gauge category colors bound to dynamic tokens 2026-09-09 20:24:17 -04:00
John Smith 6da7bb80ac feat(ui/theme): authentic Zune 4.8 visual parity verified against disassembly corpus
Ground truth from tools/disassembly/ (Shell.cs, StandAlone.cs, shipped asset pixels):
- window background #111111 -> #11090F (Shell.WindowColorFromRGB RGB(17,9,15))
- default accent #FA2A55 -> authentic 4.8 magenta #F10DA2 (TRANSPORT.*.ON pixels),
  hover #FA6EC9, new pressed token #B9077B; settings accent options pink/orange
  corrected to #F10DA2/#EC6922 (asset-verified); SystemAccentColor follows accent
  so Fluent-templated slider thumb/checks/radios re-brand (App.axaml + ApplyAccent)
- window geometry: default 1012x693 (StandAlone.cs WindowSize) and min 734x500
  (Shell.c_minimumWindowWidth/Height) restored; compact-exit floor matches
- pivot strip now pans (wheel) with panoramic right-edge bleed, so authentic
  32pt pivots (Segoe Z Light,32 spec) fit the 734px min again
- HUD columns 340,*,340 -> Auto,*,Auto + tightened metrics: no more transport/time
  collision at 734px; back-arrow rendered at native 24x24 (was distorted 14x15)
- test updated for corrected accent hex

Verified: Release build 0 warnings, 112 tests pass, design audit PASSED,
Xvfb screenshots at 1012x693 and 734x500 inspected
2026-09-09 19:30:38 -04:00
John Smith 6a83692897 fix(ui/shell): use Avalonia 11.2 StandardCursorType names for resize zones (SizeNorthWestSouthEast etc. don't exist; startup crash) 2026-09-09 18:57:17 -04:00
John Smith 1e3737b982 feat(ui/shell): borderless window chrome with edge resize, pivot/settings polish, ShowSearch parity
- SystemDecorations=None for authentic Zune 4.8 chromeless window, with
  invisible 8-zone edge/corner resize hits + resize cursors and
  double-click-to-maximize on the title bar
- Widen default window (1360x780) and compact-exit floor (1100x560)
- pivot-header 32 -> 28; new mini-pivot style for SETTINGS/mode toggles;
  CD + settings mode/sub-pivot rows moved to subpivot + Classes.active
- settings sub-pivot flags composed with top-level pivot to stop two
  content panels rendering at once
- header search hidden on quickplay/now playing/settings (ShowSearch parity)
- background art, sync toast, first-launch/whats-new overlays span the full shell grid
2026-09-09 18:53:02 -04:00
John Smith 340d16fbc0 fix: always resolve video paths via GetFullPath before Uri conversion (rooted Windows paths are not absolute URIs); deadline-based CD rip/burn test polling 2026-09-09 18:04:14 -04:00
John Smith d249c692a3 audio: replace obsolete BassFlags.MixerNoRampin with MixerChanNoRampin (zero-warnings policy) 2026-09-09 17:58:05 -04:00
John Smith 7321d9d500 fix: Windows CI — resolve relative paths to full paths in video LoadAndPlay, clear SQLite connection pools in test cleanup 2026-09-09 17:57:16 -04:00
John Smith 502eed628e Phase 11: final parity sweep — CI/release packaging, measured re-audit (~75-80%), WAL + artwork decode cache, deferred registry 2026-09-09 17:21:04 -04:00
John Smith d89756ebb2 Phase 9: device sync architecture — sync-group engine, transport abstraction, dry-run manifest, guest sessions, reverse sync 2026-09-09 17:16:03 -04:00
John Smith 1bfc4f0b28 docs(plan): refresh true-parity task plan — phases 5-8 complete, detailed phases 9-11 2026-09-09 16:58:48 -04:00
John Smith 833b5ef4ac feat(media): video + photo libraries with real libVLC playback, now playing clips, gallery + slideshow, device media sync rules (true-parity phase 8) 2026-09-09 16:54:22 -04:00
John Smith f3d95aad4f feat(onboarding): first-launch wizard, what's new dialog, sync instruction toast + animation (true-parity phase 7) 2026-09-09 16:32:40 -04:00
John Smith ead9a079eb feat(collection): smart playlists, find-album-info track matching, search autocomplete, global back-stack, mixview action tiles (true-parity phase 6) 2026-09-09 16:25:14 -04:00
John Smith fc5e7a1a68 feat(audio): real ManagedBass playback engine — gapless, crossfade, replaygain, FFT visualizer, podcast streams (true-parity phase 5) 2026-09-09 15:51:04 -04:00
John Smith 93e99d7525 docs(audit): full Zune 4.8 parity audit against decompiled binaries (shell, ZMDB API, 241 UIX docs, setup payload)
- Decompile ZuneDBApi_Dll (1030 files) and re-extract 1857 ZuneShellResources (241 UIX)
- Unpack ZuneSetupPkg.exe offline setup (x86/x64 MSIs + firmware update svc)
- docs/parity/zune48_parity_audit.md: 13-domain parity matrix, status + evidence
- Track decompiled trees (zuneshell/zunedbapi/zuneshell_resources/uix); ignore raw installers
2026-09-09 14:54:01 -04:00
John Smith 6570600d6c feat(enrichment): online metadata integration (find album info, artist bios + fanart backdrops, LRCLIB lyrics, settings persistence) 2026-09-09 14:38:32 -04:00
John Smith 622a57bb3c feat(ui/playback): complete Zune 4.8 Phase 3 fidelity rebuild (mixview, cd land, ken-burns now playing, two-tier settings, crossfade) 2026-09-09 14:07:11 -04:00
John Smith f348f7dbab feat(ui/playback): complete Zune 4.8 Phase 2 rebuild (mini-player, pinning, smart DJ, shortcuts, showlist, folder watcher, settings) 2026-09-07 01:02:47 -04:00
John Smith 17eca5b548 feat(branding): configure xune.svg as multi-resolution application and window icon (.ico/.png) 2026-09-06 22:43:29 -04:00
BillyOutlast 09d05bd9a8 Add files via upload 2026-09-06 22:41:36 -04:00
John Smith ceb3a4378b feat(zune-4.8): rebuild fan-favorite quick dock, gas gauge, playlists, search, and metadata editor 2026-09-06 22:37:41 -04:00
John Smith 79d6e837ca feat(library): wire music folder browsing, TagLibSharp audio scanning, and demo data clearing 2026-09-06 22:20:23 -04:00
John Smith abb0b4094f fix(xaml): use explicit clr-namespace assembly qualification to resolve type resolution error in standalone builds 2026-09-06 20:53:36 -04:00
John Smith cc1312c21c feat(ui): restore signature Zune features (Mini-Player, Zune Card Social, Podcasts, WAV sounds, themes gallery, animated equalizer) 2026-09-06 20:47:09 -04:00
John Smith 553a1a256a feat(ui): disassemble Zune 4.8, extract authentic Iris UIX assets, and rebuild UI
- Download and disassemble official ZunePackage.exe redistributable
- Decompile ZuneShell.dll and extract all 1,857 assets from ZuneShellResources.dll
- Ingest authentic 32-bit RGBA transport, rating, window, branding PNGs, and Segoe Zune TrueType fonts
- Rebuild MainShellView, QuickplayView, NowPlayingView, and DeviceView with authentic Zune assets
- Enforce exact Zune Iris minimum window constraints (734x500)
- Add Avalonia Headless testing support for view instantiation
- Author detailed technical analysis docs/disassembly/zune_uix_analysis.md
2026-09-06 20:36:19 -04:00
John Smith 8213c70f82 fix(ui): register ViewLocator and DataTemplates, fix play button glyph and settings accent command
- Create ViewLocator implementing IDataTemplate for ViewModel-to-View resolution
- Register ViewLocator in App.axaml and add explicit DataTemplates to MainShellView
- Expose PlayPauseIcon (▶ / ⏸) on MainShellViewModel and NowPlayingViewModel to replace raw boolean display
- Add SelectAccentCommand to SettingsViewModel and bind accent palette tiles
- Add NavigationAndPlaybackUiTests suite covering ViewLocator, glyph toggles, and pivot navigation (12/12 tests passing)
2026-09-06 20:24:14 -04:00
John Smith 8be7f0f774 feat(ui): complete authentic Zune Desktop 4.8 / Metro UI overhaul
- Implement borderless custom window chrome with client area decorations and minimal controls
- Add two-column integrated artist discography view with inline album cards and tracklists
- Add interactive album cover grid and dense song data table with contextual queue management
- Implement Quickplay Hub with 3-deck panorama (Pins, History, New) and Smart DJ presets
- Implement cinematic Now Playing experience with dynamic Ken-Burns canvas, mosaic wall, and auto-hiding HUD
- Seed 6 complete iconic albums (Rush, Daft Punk, Pink Floyd, Fleetwood Mac, Miles Davis, New Order)
- Verify zero design invariant violations across all AXAML views
2026-09-06 20:15:52 -04:00
John Smith eb685b25b4 docs: Add special thanks to cmoserror1 and community acknowledgements 2026-09-06 20:07:08 -04:00
John Smith 8c70db1bc6 ci: Add multi-platform build and release workflow for Linux and Windows (x64 and arm64) 2026-09-06 20:03:06 -04:00
John Smith 80410ef9ed feat: Initial implementation of Not-Zune cross-platform desktop player 2026-09-06 20:01:39 -04:00