diff --git a/right/src/usb_interfaces/usb_interface_basic_keyboard.c b/right/src/usb_interfaces/usb_interface_basic_keyboard.c index 05c2d61..1df3fe9 100644 --- a/right/src/usb_interfaces/usb_interface_basic_keyboard.c +++ b/right/src/usb_interfaces/usb_interface_basic_keyboard.c @@ -26,12 +26,8 @@ usb_status_t UsbBasicKeyboardAction(void) if (!UsbCompositeDevice.attach) return kStatus_USB_Error; // The device is not attached - 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); - } + if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy) + return kStatus_USB_Busy; // The previous report has not been sent yet UsbBasicKeyboardActionCounter++; SwitchActiveUsbBasicKeyboardReport(); // Switch the active report diff --git a/right/src/usb_report_updater.c b/right/src/usb_report_updater.c index 877f235..a296667 100644 --- a/right/src/usb_report_updater.c +++ b/right/src/usb_report_updater.c @@ -407,12 +407,12 @@ static uint32_t lastMouseUpdateTime; void UpdateUsbReports(void) { UsbReportUpdateCounter++; - /*if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy || + if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy || ((usb_device_hid_struct_t *)UsbCompositeDevice.mediaKeyboardHandle)->interruptInPipeBusy || ((usb_device_hid_struct_t *)UsbCompositeDevice.systemKeyboardHandle)->interruptInPipeBusy || ((usb_device_hid_struct_t *)UsbCompositeDevice.mouseHandle)->interruptInPipeBusy) { return; - } else */if (Timer_GetElapsedTime(&lastMouseUpdateTime) < USB_BASIC_KEYBOARD_INTERRUPT_IN_INTERVAL) { + } else if (Timer_GetElapsedTime(&lastMouseUpdateTime) < USB_BASIC_KEYBOARD_INTERRUPT_IN_INTERVAL) { return; } Timer_SetCurrentTime(&lastMouseUpdateTime);