Oh! Now I understand… I misunderstood what you said before… the HID commands for play/pause/next/previous we do handle using IOKit… they actually come from our support for the IR remote, not USB HID devices specifically.
The real issue here is actually not the HID support, but the mapping from the HID to the device. RIght now, those commands come in generically as an input device like a keyboard, and we map them to control the current zone, just like your keyboard’s media keys would.
Since RoonServer has no notion of “current zone”, since it has no UI, the media keys and IR Remote messages are ignored.
I really need to get my hands on a DAC that supports this, so UI can figure out how to map the USB HID device to the audio device that is currently playing, so when that command comes in, it controls the proper device.
Unfortunately, to do this across the board is going to be very difficult. For example, ASIO hides all the USB details away from us.