KurtE
Senior Member+
I did a little experimenting with some of the extra keys on some of the keyboards. They generate different top level collections and the like.
So I create a couple hid input classes:
KeyboardPowerController - Power button(s)
KeyboardConsumerController - Some of the controller keys like Calculator,
Just experimenting: I have the Power one set an available where you can get a Buttons field that cooresponds to all of the buttons...
Have the Consumer one work like main keyboard, where you can register a callback (actually two). It is interesting that some of the keyboards generate a push and release and others do not. I have an issue that I am assuming push/release as first keyboard had it...
Also ran into issue with Logitech - that these HID top level reports are on the Interface for the Mouse. The Hid code right now calls hid_input_end for all top level report handlers for that interface regardless if it had anything to do with that top level report. So I was setting available on all three top level reports... Now each of them set a bit in their hid_input_begin method and only set available state in the hid_input_end if the begin was called...
Again sort of experiment/WIP. But pushed up the current stuff in a new branch (based off of master) https://github.com/KurtE/USBHost_t36/tree/Keyboard-Power_and_other_special_keys
So I create a couple hid input classes:
KeyboardPowerController - Power button(s)
KeyboardConsumerController - Some of the controller keys like Calculator,
Just experimenting: I have the Power one set an available where you can get a Buttons field that cooresponds to all of the buttons...
Have the Consumer one work like main keyboard, where you can register a callback (actually two). It is interesting that some of the keyboards generate a push and release and others do not. I have an issue that I am assuming push/release as first keyboard had it...
Also ran into issue with Logitech - that these HID top level reports are on the Interface for the Mouse. The Hid code right now calls hid_input_end for all top level report handlers for that interface regardless if it had anything to do with that top level report. So I was setting available on all three top level reports... Now each of them set a bit in their hid_input_begin method and only set available state in the hid_input_end if the begin was called...
Again sort of experiment/WIP. But pushed up the current stuff in a new branch (based off of master) https://github.com/KurtE/USBHost_t36/tree/Keyboard-Power_and_other_special_keys