Description
Source
Call Graph
Start Line: 412
unsigned char HIDDKeyboardDriver_ChangeKeys(unsigned char *pressedKeys, unsigned char pressedKeysSize, unsigned char *releasedKeys, unsigned char releasedKeysSize)
{
// Press keys
while (pressedKeysSize > 0) {
// Check if this is a standard or modifier key
if (HIDKeypad_IsModifierKey(*pressedKeys)) {
// Set the corresponding bit in the input report
HIDDKeyboardInputReport_PressModifierKey(
&(hiddKeyboardDriver.inputReport),
*pressedKeys);
}
else {
HIDDKeyboardInputReport_PressStandardKey(
&(hiddKeyboardDriver.inputReport),
*pressedKeys);
}
pressedKeysSize--;
pressedKeys++;
}
// Release keys
while (releasedKeysSize > 0) {
// Check if this is a standard or modifier key
if (HIDKeypad_IsModifierKey(*releasedKeys)) {
// Set the corresponding bit in the input report
HIDDKeyboardInputReport_ReleaseModifierKey(
&(hiddKeyboardDriver.inputReport),
*releasedKeys);
}
else {
HIDDKeyboardInputReport_ReleaseStandardKey(
&(hiddKeyboardDriver.inputReport),
*releasedKeys);
}
releasedKeysSize--;
releasedKeys++;
}
// Send input report through the interrupt IN endpoint
return USBD_Write(HIDDKeyboardDriverDescriptors_INTERRUPTIN,
&(hiddKeyboardDriver.inputReport),
sizeof(HIDDKeyboardInputReport),
0,
0);
}