mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-09 12:16:15 +00:00
Tooling to reproduce "album cover broken in the player" (disc #499) and to debug STORED_MUSIC playback against a controllable DLNA source. - dlnatest.Item gains ArtPayload/ArtMime; the Browse DIDL emits <upnp:albumArtURI> and the art bytes are served at /AlbumArt/<id>.<ext>. The built-in tracks carry a tiny PNG cover so the repro works with zero setup. - audio + art are served via http.ServeContent (adds the byte-range support real speakers use when streaming). - example-dlna-server gains --media-dir: serve real .mp3/.wav/.flac/.m4a/.ogg files, searched recursively so an artist/album tree works. Art per track: a sibling <name>.jpg/.png, else cover.jpg/cover.png/folder.jpg in the album folder. Files are read into memory (point it at an album, not a whole library). - BrowseMetadata: serveContentDir now honours BrowseFlag and returns single-object metadata (with the track's <res>). Speakers issue Browse(BrowseMetadata) to resolve a track before playing; returning empty caused INVALID_SOURCE. - fix SSDP discoverability on multi-interface hosts: join the multicast group on the interface that owns the LAN IP (macOS lists lo0 first, so the old "first multicast interface" join landed on loopback and never heard the LAN M-SEARCH). - add an HTTP access log (method/path/status/bytes/peer, plus ObjectID+BrowseFlag for Browse) so the speaker's request sequence is visible while debugging. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>