Skip to content

Commit e4d63ad

Browse files
committed
Merge branch 'pluggable_hid_impr' of https://github.com/cmaglie/Arduino
2 parents bb1f584 + 401c4f0 commit e4d63ad

File tree

6 files changed

+15
-30
lines changed

6 files changed

+15
-30
lines changed

hardware/arduino/avr/libraries/HID/HID.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ int HID_GetDescriptor(int8_t t)
6161
HIDDescriptorListNode* current = rootNode;
6262
int total = 0;
6363
while(current != NULL) {
64-
total += USB_SendControl(TRANSFER_PGM,current->cb->descriptor,current->cb->length);
64+
total += USB_SendControl(TRANSFER_PGM,current->data,current->length);
6565
current = current->next;
6666
}
6767
return total;
@@ -82,7 +82,7 @@ void HID_::AppendDescriptor(HIDDescriptorListNode *node)
8282
current->next = node;
8383
}
8484
modules_count++;
85-
sizeof_hidReportDescriptor += (uint16_t)node->cb->length;
85+
sizeof_hidReportDescriptor += (uint16_t)node->length;
8686
}
8787

8888
void HID_::SendReport(u8 id, const void* data, int len)

hardware/arduino/avr/libraries/HID/HID.h

+4-7
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,13 @@
4444
#define HID_REPORT_DESCRIPTOR_TYPE 0x22
4545
#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23
4646

47-
typedef struct __attribute__((packed)) {
48-
uint16_t length;
49-
const void* descriptor;
50-
} HID_Descriptor;
51-
5247
class HIDDescriptorListNode {
5348
public:
5449
HIDDescriptorListNode *next = NULL;
55-
const HID_Descriptor * cb;
56-
HIDDescriptorListNode(const HID_Descriptor *ncb) {cb = ncb;}
50+
HIDDescriptorListNode(const void *d, uint16_t l) : data(d), length(l) { }
51+
52+
const void* data;
53+
uint16_t length;
5754
};
5855

5956
class HID_

hardware/arduino/sam/libraries/HID/HID.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ int HID_GetDescriptor(int8_t t)
6868
HIDDescriptorListNode* current = rootNode;
6969
int total = 0;
7070
while(current != NULL) {
71-
total += USBD_SendControl(0,current->cb->descriptor,current->cb->length);
71+
total += USBD_SendControl(0,current->data,current->length);
7272
current = current->next;
7373
}
7474
return total;
@@ -89,7 +89,7 @@ void HID_::AppendDescriptor(HIDDescriptorListNode *node)
8989
current->next = node;
9090
}
9191
modules_count++;
92-
sizeof_hidReportDescriptor += node->cb->length;
92+
sizeof_hidReportDescriptor += node->length;
9393
}
9494

9595
void HID_::SendReport(uint8_t id, const void* data, int len)
@@ -165,4 +165,4 @@ HID_::HID_(void)
165165
int HID_::begin(void)
166166
{
167167
return 0;
168-
}
168+
}

hardware/arduino/sam/libraries/HID/HID.h

+4-8
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,12 @@
4242
#define HID_REPORT_DESCRIPTOR_TYPE 0x22
4343
#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23
4444

45-
typedef struct __attribute__((packed)) {
46-
uint8_t length;
47-
const void* descriptor;
48-
} HID_Descriptor;
49-
5045
class HIDDescriptorListNode {
5146
public:
5247
HIDDescriptorListNode *next = NULL;
53-
const HID_Descriptor * cb;
54-
HIDDescriptorListNode(const HID_Descriptor *ncb) {cb = ncb;}
48+
HIDDescriptorListNode(const void *d, uint16_t l) : data(d), length(l) { }
49+
uint8_t length;
50+
const void* data;
5551
};
5652

5753
class HID_
@@ -90,4 +86,4 @@ typedef struct
9086

9187
#define WEAK __attribute__ ((weak))
9288

93-
#endif
89+
#endif

libraries/Keyboard/src/Keyboard.cpp

+1-5
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,7 @@ static const uint8_t _hidReportDescriptor[] PROGMEM = {
6262

6363
Keyboard_::Keyboard_(void)
6464
{
65-
static HID_Descriptor cb = {
66-
.length = sizeof(_hidReportDescriptor),
67-
.descriptor = _hidReportDescriptor,
68-
};
69-
static HIDDescriptorListNode node(&cb);
65+
static HIDDescriptorListNode node(_hidReportDescriptor, sizeof(_hidReportDescriptor));
7066
HID.AppendDescriptor(&node);
7167
}
7268

libraries/Mouse/src/Mouse.cpp

+1-5
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,7 @@ static const uint8_t _hidReportDescriptor[] PROGMEM = {
6262

6363
Mouse_::Mouse_(void) : _buttons(0)
6464
{
65-
const static HID_Descriptor cb = {
66-
.length = sizeof(_hidReportDescriptor),
67-
.descriptor = _hidReportDescriptor,
68-
};
69-
static HIDDescriptorListNode node(&cb);
65+
static HIDDescriptorListNode node(_hidReportDescriptor, sizeof(_hidReportDescriptor));
7066
HID.AppendDescriptor(&node);
7167
}
7268

0 commit comments

Comments
 (0)