Cancel the ongoing transfer if it is still in progress

This commit is contained in:
Kristian Sloth Lauszus
2018-06-30 16:36:52 +02:00
parent 8c02f3db53
commit 217259ba63
2 changed files with 10 additions and 6 deletions

View File

@@ -23,8 +23,12 @@ void ResetActiveUsbBasicKeyboardReport(void)
usb_status_t UsbBasicKeyboardAction(void)
{
if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy)
return kStatus_USB_Busy; // The previous report has not been sent yet
if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy) {
((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy = 0;
return USB_DeviceCancel(((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->handle,
(USB_BASIC_KEYBOARD_ENDPOINT_INDEX & USB_ENDPOINT_NUMBER_MASK) |
USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_IN);
}
UsbBasicKeyboardActionCounter++;
SwitchActiveUsbBasicKeyboardReport(); // Switch the active report