diff --git a/src/ImprovedKeyboard.cpp b/src/ImprovedKeyboard.cpp index ba0f32b..ca83d38 100644 --- a/src/ImprovedKeyboard.cpp +++ b/src/ImprovedKeyboard.cpp @@ -116,7 +116,7 @@ void Keyboard_::send_now(void){ } #if defined(HID_KEYBOARD_LEDS_ENABLED) -void Keyboard_::setReportData(void* &data, uint16_t len){ +void Keyboard_::setReportData(void* &data, int len){ // Save led state if(len == 2) leds = *(uint8_t*)(data+1); diff --git a/src/ImprovedKeyboard.h b/src/ImprovedKeyboard.h index efa2538..08b95c9 100644 --- a/src/ImprovedKeyboard.h +++ b/src/ImprovedKeyboard.h @@ -56,7 +56,7 @@ private: HID_KeyboardReport_Data_t _keyReport; void sendReport(HID_KeyboardReport_Data_t* keys); #if defined(HID_KEYBOARD_LEDS_ENABLED) - virtual void setReportData(void* &data, uint16_t len); + virtual void setReportData(void* &data, int len); uint8_t leds; #endif public: diff --git a/src/NKROKeyboard.cpp b/src/NKROKeyboard.cpp index 8dbd3e0..fb2b6a6 100644 --- a/src/NKROKeyboard.cpp +++ b/src/NKROKeyboard.cpp @@ -121,7 +121,7 @@ void NKROKeyboard_::send_now(void){ } #if defined(HID_KEYBOARD_LEDS_ENABLED) -void NKROKeyboard_::setReportData(void* &data, uint16_t len){ +void NKROKeyboard_::setReportData(void* &data, int len){ // Save led state if(len == 2) leds = *(uint8_t*)(data+1); diff --git a/src/NKROKeyboard.h b/src/NKROKeyboard.h index c5c960d..a8cee0d 100644 --- a/src/NKROKeyboard.h +++ b/src/NKROKeyboard.h @@ -56,7 +56,7 @@ protected: HID_NKROKeyboardReport_Data_t _keyReport; void sendReport(HID_NKROKeyboardReport_Data_t* keys); #if defined(HID_KEYBOARD_LEDS_ENABLED) - virtual void setReportData(void* &data, uint16_t len); + virtual void setReportData(void* &data, int len); uint8_t leds; #endif public: diff --git a/src/PluggableHID/HID.cpp b/src/PluggableHID/HID.cpp index c9d3854..99560e0 100644 --- a/src/PluggableHID/HID.cpp +++ b/src/PluggableHID/HID.cpp @@ -167,14 +167,14 @@ bool HID_::HID_Setup(USBSetup& setup, u8 i) if(current->reportID == ID) { // Get the data length information and the corresponding bytes - uint16_t length = (setup.wValueH << 8) | setup.wLength; + int length = ((setup.wValueH << 8) | setup.wLength); - // Ensure that there IS some data TODO needed? - if(length) + // Ensure that there IS some data + if(length > 0) { void* data = malloc(length); if(data){ - uint16_t recvLength = length; + auto recvLength = length; //TODO loop can be improved maybe? Or does the compiler do this already? while(recvLength > USB_EP_SIZE){ USB_RecvControl(data + (length - recvLength), USB_EP_SIZE); diff --git a/src/PluggableHID/HIDDevice.cpp b/src/PluggableHID/HIDDevice.cpp index 926af13..96f7f56 100644 --- a/src/PluggableHID/HIDDevice.cpp +++ b/src/PluggableHID/HIDDevice.cpp @@ -20,7 +20,7 @@ void HIDDevice::SendRawReport(const void* data, int len){ HID.SendReport(HID_REPORTID_NONE, data, len); } -void HIDDevice::setReportData(void* &data, uint16_t len){ +void HIDDevice::setReportData(void* &data, int len){ // Discard this information if its not implemented by the HIDDevice } diff --git a/src/PluggableHID/HIDDevice.h b/src/PluggableHID/HIDDevice.h index 3997673..8ae0d66 100644 --- a/src/PluggableHID/HIDDevice.h +++ b/src/PluggableHID/HIDDevice.h @@ -49,7 +49,7 @@ public: const uint16_t descriptorLength; const uint8_t reportID; - virtual void setReportData(void* &data, uint16_t len); + virtual void setReportData(void* &data, int len); protected: // Could be used and inherited public for custom, professional usage, like raw Keyboard diff --git a/src/TeensyKeyboard.cpp b/src/TeensyKeyboard.cpp index 05c9552..a2c45f0 100644 --- a/src/TeensyKeyboard.cpp +++ b/src/TeensyKeyboard.cpp @@ -30,7 +30,7 @@ HIDDevice((uint8_t*)teensykeyboard_hid_report_desc, sizeof(teensykeyboard_hid_re } #if defined(HID_KEYBOARD_LEDS_ENABLED) -void usb_keyboard_class::setReportData(void* &data, uint16_t len){ +void usb_keyboard_class::setReportData(void* &data, int len){ // Save led state if(len == 2) leds = *(uint8_t*)(data+1); diff --git a/src/TeensyKeyboard.h b/src/TeensyKeyboard.h index e71ef2f..1d5a049 100644 --- a/src/TeensyKeyboard.h +++ b/src/TeensyKeyboard.h @@ -128,7 +128,7 @@ class usb_keyboard_class : public Print, private HIDDevice uint8_t keyboard_report_data[8]; #if defined(HID_KEYBOARD_LEDS_ENABLED) - virtual void setReportData(void* &data, uint16_t len); + virtual void setReportData(void* &data, int len); uint8_t leds; #endif };