aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicoHood <NicoHood@users.noreply.github.com>2015-08-07 19:42:04 +0200
committerNicoHood <NicoHood@users.noreply.github.com>2015-08-12 17:48:17 +0200
commit488ace3d138ef1eb183ab53b9b24fa9ea3eeb301 (patch)
tree2818f0dbc9980a54ece7ddf65d7c10525b5f3dce
parent77cc20f11904cb46b509f69ad9e856b5ad9eb253 (diff)
Fixed HID Reports >255 bytes
-rw-r--r--libraries/HID/HID.cpp4
-rw-r--r--libraries/HID/HID.h6
2 files changed, 5 insertions, 5 deletions
diff --git a/libraries/HID/HID.cpp b/libraries/HID/HID.cpp
index 0d2133e..04b5731 100644
--- a/libraries/HID/HID.cpp
+++ b/libraries/HID/HID.cpp
@@ -43,7 +43,7 @@ static u8 HID_INTERFACE;
HIDDescriptor _hidInterface;
static HIDDescriptorListNode* rootNode = NULL;
-static uint8_t sizeof_hidReportDescriptor = 0;
+static uint16_t sizeof_hidReportDescriptor = 0;
static uint8_t modules_count = 0;
//================================================================================
//================================================================================
@@ -91,7 +91,7 @@ void HID_::AppendDescriptor(HIDDescriptorListNode *node)
current->next = node;
}
modules_count++;
- sizeof_hidReportDescriptor += node->cb->length;
+ sizeof_hidReportDescriptor += (uint16_t)node->cb->length;
}
void HID_::SendReport(u8 id, const void* data, int len)
diff --git a/libraries/HID/HID.h b/libraries/HID/HID.h
index 89832a9..b9f29b4 100644
--- a/libraries/HID/HID.h
+++ b/libraries/HID/HID.h
@@ -45,7 +45,7 @@
#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23
typedef struct __attribute__((packed)) {
- u8 length;
+ uint16_t length;
const void* descriptor;
} HID_Descriptor;
@@ -88,10 +88,10 @@ typedef struct
#define HID_TX HID_ENDPOINT_INT
#define D_HIDREPORT(_descriptorLength) \
- { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 }
+ { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength & 0xFF, _descriptorLength >> 8 }
#define WEAK __attribute__ ((weak))
#endif
-#endif \ No newline at end of file
+#endif