Skip to content

dbserver: answer other-type Display, Play and Delivery song info as rekordbox does - #90

Merged
vynulldev merged 1 commit into
mainfrom
conformance-status-songinfo
Oct 16, 2026
Merged

vynulldev merged 1 commit into
mainfrom
conformance-status-songinfo

Conversation

@vynulldev

@vynulldev vynulldev commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

What & why

#81 gave the song-information requests rekordbox's per-track-type handling, but got three of them wrong. For a context track type other than 0x01, rekordbox answers Display (0x2002), Play (0x2102) and Delivery (0x2602) song info with a normal 0x4000 header whose total is 0xffffffff, and no rows. We sent the menu-unavailable error (0x4003) instead.

This doesn't depend on the requesting player's status, as I had first assumed. Every link-spec golden for these three kinds with another track type (138 cases, with and without player status) shows the 0xffffffff header, and none shows 0x4003. The menu-unavailable error is right only for 0x2202 to 0x2502, which keep it.

  • Display, Play and Delivery song info with another track type now get the 0xffffffff header. Decks browsing Vynull send type 0x01, so they're unaffected.
  • Song-info album rows (TRACK INFO and Delivery Info) now leave argument 8 at 0, as rekordbox's do. Only ALBUM menu rows repeat the album ID there as the artwork handle.

The #81 rule test is updated to rekordbox's behaviour.

Conformance against rekordbox 7.2.19: 159 more cases match exactly and none stop matching (2,422 to 2,581 of 4,250); 138 more match on outcome, total and row count. Each Display, Play and class-2 status suite gains its six or seven other-type cases, context-analysis-track-types gains 19, and the album row fix completes Delivery cases in the sibling and boundary suites.

Hardware testing

  • Tested on: CDJ-2000NXS2

Checklist

  • go build ./..., go vet ./..., and go test ./... pass
  • gofmt -l . is clean
  • New source files carry an SPDX header (GPL-3.0-or-later)
  • Tested on real hardware (deck + firmware noted above), or this change doesn't affect deck behaviour
  • I agree my contribution is licensed under the project's GPLv3

…ekordbox does

For a context track type other than 0x01, rekordbox answers Display (0x2002), Play (0x2102) and Delivery (0x2602) song info with a normal 0x4000 header whose total is 0xffffffff and no rows. Every link-spec golden for these kinds shows that, with or without the requesting player's status, and none shows the menu-unavailable error (0x4003) we sent since #81; that error is right only for 0x2202-0x2502. Decks browsing Vynull send type 0x01, so they're unaffected.

Song-info album rows (TRACK INFO and Delivery Info) now leave argument 8 at 0, as rekordbox's do; only ALBUM menu rows repeat the album ID there as the artwork handle.
@vynulldev
vynulldev marked this pull request as ready for review October 16, 2026 01:54
@vynulldev
vynulldev merged commit c544063 into main Oct 16, 2026
1 check passed
@vynulldev
vynulldev deleted the conformance-status-songinfo branch October 16, 2026 01:54
@vynulldev vynulldev added the bug Something isn't working label Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant