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)
|
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) {
|
if (((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy) {
|
||||||
((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy = 0;
|
((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->interruptInPipeBusy = 0;
|
||||||
return USB_DeviceCancel(((usb_device_hid_struct_t *)UsbCompositeDevice.basicKeyboardHandle)->handle,
|
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)
|
static usb_status_t UsbReceiveData(void)
|
||||||
{
|
{
|
||||||
|
if (!UsbCompositeDevice.attach)
|
||||||
|
return kStatus_USB_Error; // The device is not attached
|
||||||
|
|
||||||
return USB_DeviceHidRecv(UsbCompositeDevice.genericHidHandle,
|
return USB_DeviceHidRecv(UsbCompositeDevice.genericHidHandle,
|
||||||
USB_GENERIC_HID_ENDPOINT_OUT_INDEX,
|
USB_GENERIC_HID_ENDPOINT_OUT_INDEX,
|
||||||
GenericHidInBuffer,
|
GenericHidInBuffer,
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ void ResetActiveUsbMediaKeyboardReport(void)
|
|||||||
|
|
||||||
usb_status_t UsbMediaKeyboardAction(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)
|
if (((usb_device_hid_struct_t *)UsbCompositeDevice.mediaKeyboardHandle)->interruptInPipeBusy)
|
||||||
return kStatus_USB_Busy; // The previous report has not been sent yet
|
return kStatus_USB_Busy; // The previous report has not been sent yet
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ void ResetActiveUsbMouseReport(void)
|
|||||||
|
|
||||||
usb_status_t usbMouseAction(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)
|
if (((usb_device_hid_struct_t *)UsbCompositeDevice.mouseHandle)->interruptInPipeBusy)
|
||||||
return kStatus_USB_Busy; // The previous report has not been sent yet
|
return kStatus_USB_Busy; // The previous report has not been sent yet
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ void ResetActiveUsbSystemKeyboardReport(void)
|
|||||||
|
|
||||||
usb_status_t UsbSystemKeyboardAction(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)
|
if (((usb_device_hid_struct_t *)UsbCompositeDevice.systemKeyboardHandle)->interruptInPipeBusy)
|
||||||
return kStatus_USB_Busy; // The previous report has not been sent yet
|
return kStatus_USB_Busy; // The previous report has not been sent yet
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user