I'm currently mapping out my Logitech G29 steering wheel with HIDDevices, and due to having more buttons, they don't fit in button0-button15. They show up properly when using devices.ControlChanges().Subscribe, but not G29.Changes.Subscribe. I get events for Button 0 through Button 15 and my axes, but not the rest of the buttons. When I press one of the buttons that doesn't work after starting the program, it does detect the keypress, as it lists the initial controls in my console.; However, it only lists my axes, HAT and Button 0 through Button 15.
[Control(ButtonPage.Button15)] // ID 16
[Required]
public bool FourthGear => GetValue<bool>();
[Control(17)] // Button 16
[Required]
public bool FifthGear => GetValue<bool>();
When I tested changing FourthGear to ID 16 instead of Button15, it stopped working. It looks like it's not possible to specify a Usage either, because attributes need to be compile-time constants, and I don't believe I can get the Usage as a compiletime constant. I've tried Usage.Get(16), which doesn't work as it's not a compiletime constant.