Finally changes SetReportData function to int
This was required since available() of stream also uses int and not uint16_t sadly
This commit is contained in:
parent
f42b37ca8e
commit
700ca71cf8
9 changed files with 12 additions and 12 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue