feat(qt): wire local-network casting end to end
The two cast buttons in the now-playing bars rendered and did nothing: no service, no bridge, no picker. This ports crates/qbz/src/cast_service.rs onto the shared qbz-cast crate (discovery, both device families and the media server are the crate's, not reimplemented) and hangs a QbzCast singleton off it. Discovery is armed only by openPicker() and stopped by closePicker(), so a user who never opens the picker sends no mDNS/SSDP traffic. Connecting stops the local backend through its public seam and re-casts the current track at the streaming preference clamped by the per-renderer cap. Playback is routed at four seams in playback_qt (new track, toggle, seek, volume) and the local poll yields while casting — without that the two polls fight over the bar every second. Logout and exit tear the connection down, or the renderer keeps playing after the app is gone. Deliberate gaps, each named in the module header: no offline-cache tier, no QConnect suspend/restore, no Plex casting (the Slint carries the same TODO), and lyrics do not follow a remote position yet. cc
This commit is contained in:
10 files changed
+2530
-18
No files matched your search
@@ -56,6 +56,7 @@ ApplicationWindow {
|
||||
QbzAlbum.boot()
|
||||
QbzArtist.boot()
|
||||
QbzLyrics.boot()
|
||||
QbzCast.boot()
|
||||
QbzBridge.boot()
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user