keyboardio / KeyboardioHID

A HID library for Arduino
MIT License
34 stars 17 forks source link

fix get/set idle #91

Closed tlyu closed 1 year ago

tlyu commented 1 year ago

Always respond with the current Idle period, possibly set by the host. Also, set the initial idle period to 0 (indefinite), because that's how we actually behave.

obra commented 1 year ago

Has this been tested on both AVR and GD32?

tlyu commented 1 year ago

I haven't tested it on AVR. It might fix a problem on GD32, if the USB core patch for stalling endpoint 0 for unsupported control requests isn't yet applied.

I don't have a definite situation where I know that the host issues Get Idle, but I guess I could set up debug counters to see if it happens on any host that I have ready access to.

obra commented 1 year ago

Mostly, I just want to make sure this doesn't weirdly break us on AVR

tlyu commented 1 year ago

Yeah, I think I'd have to find a setup that actually requests Get Idle to be sure. I don't currently know of one, but I'll try to instrument stuff to see if anything I have does ask for it.

tlyu commented 1 year ago

@obra are you concerned about matching these lines that are special cased for AVR on the Boot Keyboard? https://github.com/keyboardio/KeyboardioHID/blob/master/src/BootKeyboard/BootKeyboard.cpp#L161-L167 I'm pretty sure they're a code size optimization that was necessary at some point, but might not be anymore.

obra commented 1 year ago

mostly, I just know that we’ve gotten along fine for a couple of years without this on AVR and I always get nervous about low level  behavior changesOn Nov 11, 2022, at 2:54 PM, Taylor Yu @.***> wrote: @obra are you concerned about matching these lines that are special cased for AVR on the Boot Keyboard? https://github.com/keyboardio/KeyboardioHID/blob/master/src/BootKeyboard/BootKeyboard.cpp#L161-L167 I'm pretty sure they're a code size optimization that was necessary at some point, but might not be anymore.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>