Skip to content

dbserver: name 0x3007 as set filter on/off, not media info - #94

Merged
vynulldev merged 1 commit into
mainfrom
dbserver-filter-onoff
Oct 16, 2026
Merged

vynulldev merged 1 commit into
mainfrom
dbserver-filter-onoff

Conversation

@vynulldev

Copy link
Copy Markdown
Owner

What & why

Decks send dbserver request 0x3007 before each root menu request (0x1000); a CDJ-2000NXS2 log shows it on every browse. We have handled it since the initial commit under the label "mount/media info", with no evidence behind the name.

link-spec's static analysis says otherwise. rekordbox dispatches 0x3007 to PSvDBMain::OnFilterCmd as CMD_SET_FILTER_ONOFF, the first of its five filter commands (0x3007 to 0x3407 in 0x100 steps: on/off, get property, set property, set My Tag, add My Tag item). On the deck side, XDJ-RR firmware sends it from a client wrapper named dbcl_SetFilterOnOff. So the deck turns rekordbox's browse filter on or off before opening the root menu.

  • The handler is renamed to handleSetFilterOnOff, with a comment pointing at the link-spec evidence.
  • Its debug log now includes the request's arguments, so the next deck session shows which state the deck asks for.
  • The reply is unchanged. rekordbox's reply to 0x3007 has not been captured (link-spec only has the dispatch entry, and no conformance golden sends it), and decks accept our plain success [0x3007, 0].

Hardware testing

  • Tested on: Not needed for behaviour: the reply bytes are unchanged and only the name, comment and debug log differ. A debug log from one browse on the CDJ-2000NXS2 would record the deck's arguments.

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

Decks send 0x3007 before each root menu request, and we labelled it "mount/media info". link-spec's static analysis shows it is CMD_SET_FILTER_ONOFF: rekordbox dispatches it to PSvDBMain::OnFilterCmd as the first of its filter commands (0x3007 to 0x3407), and XDJ-RR firmware sends it from dbcl_SetFilterOnOff.

Rename the handler, document the evidence, and log the request's arguments so a deck session shows what the deck asks for. The reply is unchanged: rekordbox's has not been captured, and decks accept our plain success.
@vynulldev
vynulldev merged commit 0fce1c6 into main Oct 16, 2026
1 check passed
@vynulldev
vynulldev deleted the dbserver-filter-onoff branch October 16, 2026 23:26
@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