Playing with usb host and keyboard and noticed when using the shift key (any mod keys really) it does not correctly report the press/release of the correct buttons.
Just pressing and release W key shows:
KB Data: 1 0 0 26 0 0 0 0 0
Press: 119 MOD: 0
KB Data: 1 0 0 0 0 0 0 0 0
Release: 119 MOD: 0
Press and hold shift then press w, release w, release shift yields:
KB Data: 1 2 0 0 0 0 0 0 0
KB Data: 1 2 0 26 0 0 0 0 0
Press: 87 MOD: 2
KB Data: 1 2 0 0 0 0 0 0 0
Release: 87 MOD: 2
KB Data: 1 0 0 0 0 0 0 0 0
however when you press and hold w, press shift, and release shift, then release w you get:
KB Data: 1 0 0 26 0 0 0 0 0
Press: 119 MOD: 0
KB Data: 1 2 0 26 0 0 0 0 0
Release: 119 MOD: 0
KB Data: 1 0 0 26 0 0 0 0 0
Release: 87 MOD: 2
KB Data: 1 0 0 0 0 0 0 0 0
Release: 119 MOD: 0
You will notice when you press shift while holding W it erroneously reports that the w key was released when in reality the shift key was pressed. the raw data looks to be correct just the parsing within the function seems to be bugged when using mod keys if the mod key wasn't the first button pressed. Think of games where you need to run/crawl with shift/ctrl, in those scenarios you hold ie. W key and then press and release the modifiers as desired.
Just pressing and release W key shows:
KB Data: 1 0 0 26 0 0 0 0 0
Press: 119 MOD: 0
KB Data: 1 0 0 0 0 0 0 0 0
Release: 119 MOD: 0
Press and hold shift then press w, release w, release shift yields:
KB Data: 1 2 0 0 0 0 0 0 0
KB Data: 1 2 0 26 0 0 0 0 0
Press: 87 MOD: 2
KB Data: 1 2 0 0 0 0 0 0 0
Release: 87 MOD: 2
KB Data: 1 0 0 0 0 0 0 0 0
however when you press and hold w, press shift, and release shift, then release w you get:
KB Data: 1 0 0 26 0 0 0 0 0
Press: 119 MOD: 0
KB Data: 1 2 0 26 0 0 0 0 0
Release: 119 MOD: 0
KB Data: 1 0 0 26 0 0 0 0 0
Release: 87 MOD: 2
KB Data: 1 0 0 0 0 0 0 0 0
Release: 119 MOD: 0
You will notice when you press shift while holding W it erroneously reports that the w key was released when in reality the shift key was pressed. the raw data looks to be correct just the parsing within the function seems to be bugged when using mod keys if the mod key wasn't the first button pressed. Think of games where you need to run/crawl with shift/ctrl, in those scenarios you hold ie. W key and then press and release the modifiers as desired.