Commit Graph

14 Commits

Author SHA1 Message Date
joren
44a2494c73 Port QConnect to self-contained prost implementation
Replaces qbz path-dependencies with a standalone implementation using
tokio-tungstenite and prost. Fixes queue-clear sentinel handling, pause
position reporting, track-end queue advancement, and adds periodic
position progress reports to keep the app progress bar in sync.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 00:47:32 +02:00
joren
778f5fc69e Keep audio output persistent across playback
Move CPAL stream ownership to a dedicated output thread so play/seek restarts reuse the same open device and only reopen when sample rate or channel count changes.
2026-04-01 00:11:46 +02:00
joren
a26db5cf96 Preserve playback position on quality switch
When SetMaxAudioQuality triggers a stream restart, resume from the current player position instead of restarting at the beginning to avoid audible jumps and keep UX consistent.
2026-03-31 23:50:54 +02:00
joren
20d5ecf231 Always emit quality format updates with fallbacks
Send file/device audio-quality notifications even when stream metadata is incomplete by deriving sane defaults from the requested quality level, so controller quality icons stay in sync.
2026-03-31 23:33:56 +02:00
joren
c3cad15719 Avoid network-scoped max-quality confirmations
Make RNDR_SRVR_MAX_AUDIO_QUALITY_CHANGED send network_type only when explicitly provided so controllers can treat the update as generic renderer quality.
2026-03-31 23:07:02 +02:00
joren
7b882a727a Publish file/device quality updates to sync app state 2026-03-31 22:32:44 +02:00
joren
bacb40af58 Restart same-track playback when looped state resumes 2026-03-31 22:29:32 +02:00
joren
4c19691b75 Prefetch next segmented chunk to reduce boundary lag 2026-03-31 22:22:18 +02:00
joren
749b0c1aaf Add mobile chunked streaming with segmented playback fallback 2026-03-31 22:14:15 +02:00
joren
bb362686b4 Fix playback position timing and stabilize PREV seek 2026-03-31 21:55:42 +02:00
joren
6296acc6dd Fix server-driven seek handling and stream re-seek reliability 2026-03-31 21:49:00 +02:00
joren
122d64e9f4 Fix seek handling and playback position sync 2026-03-31 21:04:34 +02:00
joren
790eba8792 Fix end-of-track handoff by sending NEXT action 2026-03-31 20:57:03 +02:00
joren
3a0d6e0240 Initial commit: QobuzD - Qobuz Connect renderer for Linux
Rust-based QConnect renderer with:
- QConnect WebSocket protocol (hand-rolled protobuf)
- Audio playback via Symphonia + cpal
- Play, pause, resume, volume, skip support
- Correct BufferState/PlayingState enum values per proto spec
- Server-driven queue management (no local queue)
- Periodic position reporting for track-end detection

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 20:38:54 +02:00