Make sure the device is attached before sending the report
This commit is contained in:
@@ -23,6 +23,9 @@ void ResetActiveUsbBasicKeyboardReport(void)
|
||||
|
||||
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,
|
||||
|
||||
@@ -7,6 +7,9 @@ uint8_t GenericHidOutBuffer[USB_GENERIC_HID_OUT_BUFFER_LENGTH];
|
||||
|
||||
static usb_status_t UsbReceiveData(void)
|
||||
{
|
||||
if (!UsbCompositeDevice.attach)
|
||||
return kStatus_USB_Error; // The device is not attached
|
||||
|
||||
return USB_DeviceHidRecv(UsbCompositeDevice.genericHidHandle,
|
||||
USB_GENERIC_HID_ENDPOINT_OUT_INDEX,
|
||||
GenericHidInBuffer,
|
||||
|
||||
@@ -21,6 +21,9 @@ void ResetActiveUsbMediaKeyboardReport(void)
|
||||
|
||||
usb_status_t UsbMediaKeyboardAction(void)
|
||||
{
|
||||
if (!UsbCompositeDevice.attach)
|
||||
return kStatus_USB_Error; // The device is not attached
|
||||
|
||||
if (((usb_device_hid_struct_t *)UsbCompositeDevice.mediaKeyboardHandle)->interruptInPipeBusy)
|
||||
return kStatus_USB_Busy; // The previous report has not been sent yet
|
||||
|
||||
|
||||
@@ -21,6 +21,9 @@ void ResetActiveUsbMouseReport(void)
|
||||
|
||||
usb_status_t usbMouseAction(void)
|
||||
{
|
||||
if (!UsbCompositeDevice.attach)
|
||||
return kStatus_USB_Error; // The device is not attached
|
||||
|
||||
if (((usb_device_hid_struct_t *)UsbCompositeDevice.mouseHandle)->interruptInPipeBusy)
|
||||
return kStatus_USB_Busy; // The previous report has not been sent yet
|
||||
|
||||
|
||||
@@ -21,6 +21,9 @@ void ResetActiveUsbSystemKeyboardReport(void)
|
||||
|
||||
usb_status_t UsbSystemKeyboardAction(void)
|
||||
{
|
||||
if (!UsbCompositeDevice.attach)
|
||||
return kStatus_USB_Error; // The device is not attached
|
||||
|
||||
if (((usb_device_hid_struct_t *)UsbCompositeDevice.systemKeyboardHandle)->interruptInPipeBusy)
|
||||
return kStatus_USB_Busy; // The previous report has not been sent yet
|
||||
|
||||
|
||||
Reference in New Issue
Block a user