Skip to content

Commit efd329b

Browse files
facchinmcmaglie
authored andcommitted
fix MIDIUSB and adapt CompleteHID to PluggableHID
1 parent e1a0350 commit efd329b

File tree

6 files changed

+34
-550
lines changed

6 files changed

+34
-550
lines changed

libraries/CompleteHID/CompleteHID.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#if 1 //defined(USBCON)
22

33
#include "CompleteHID.h"
4-
#include "HID.h"
54

65
#define HID_MOUSE_ABS_ENABLED
76

@@ -197,16 +196,19 @@ const u8 _hidReportDescriptor[] = {
197196
#endif
198197
};
199198

200-
size_t getsizeof_hidReportDescriptor() {
201-
return sizeof(_hidReportDescriptor);
202-
}
203199

204200
//================================================================================
205201
//================================================================================
206202
// Mouse
207203

208204
Mouse_::Mouse_(void) : _buttons(0)
209205
{
206+
static HID_Descriptor cb = {
207+
.length = sizeof(_hidReportDescriptor),
208+
.descriptor = _hidReportDescriptor,
209+
};
210+
static HIDDescriptorListNode node(&cb);
211+
HID.AppendDescriptor(&node);
210212
}
211213

212214
void Mouse_::begin(void)
@@ -232,7 +234,7 @@ void Mouse_::move(signed char x, signed char y, signed char wheel)
232234
m[1] = x;
233235
m[2] = y;
234236
m[3] = wheel;
235-
HID_SendReport(HID_REPORTID_MOUSE,m,sizeof(m));
237+
HID.SendReport(HID_REPORTID_MOUSE,m,sizeof(m));
236238
}
237239

238240
// X and Y have the range of 0 to 32767.
@@ -261,7 +263,7 @@ void Mouse_::moveAbsolute(uint16_t x, uint16_t y)
261263
m[2] = MSB(x);
262264
m[3] = LSB(y);
263265
m[4] = MSB(y);
264-
HID_SendReport(HID_REPORTID_MOUSE_ABS,m,sizeof(m));
266+
HID.SendReport(HID_REPORTID_MOUSE_ABS,m,sizeof(m));
265267
}
266268

267269
void Mouse_::buttons(uint8_t b)
@@ -308,7 +310,7 @@ void Keyboard_::end(void)
308310

309311
void Keyboard_::sendReport(KeyReport* keys)
310312
{
311-
HID_SendReport(HID_REPORTID_KEYBOARD,keys,sizeof(*keys));
313+
HID.SendReport(HID_REPORTID_KEYBOARD,keys,sizeof(*keys));
312314
}
313315

314316
extern
@@ -549,12 +551,12 @@ size_t Keyboard_::systemControl(uint8_t k)
549551

550552
m[0] = LSB(mask);
551553
m[1] = MSB(mask);
552-
HID_SendReport(HID_REPORTID_SYSTEMCONTROL,m,sizeof(m));
554+
HID.SendReport(HID_REPORTID_SYSTEMCONTROL,m,sizeof(m));
553555

554556
// these are all OSCs, so send a clear to make it possible to send it again later
555557
m[0] = 0;
556558
m[1] = 0;
557-
HID_SendReport(HID_REPORTID_SYSTEMCONTROL,m,sizeof(m));
559+
HID.SendReport(HID_REPORTID_SYSTEMCONTROL,m,sizeof(m));
558560
return 1;
559561
}
560562
else
@@ -581,12 +583,12 @@ size_t Keyboard_::consumerControl(uint8_t k)
581583

582584
m[0] = LSB(mask);
583585
m[1] = MSB(mask);
584-
HID_SendReport(HID_REPORTID_CONSUMERCONTROL,m,sizeof(m));
586+
HID.SendReport(HID_REPORTID_CONSUMERCONTROL,m,sizeof(m));
585587

586588
// these are all OSCs, so send a clear to make it possible to send it again later
587589
m[0] = 0;
588590
m[1] = 0;
589-
HID_SendReport(HID_REPORTID_CONSUMERCONTROL,m,sizeof(m));
591+
HID.SendReport(HID_REPORTID_CONSUMERCONTROL,m,sizeof(m));
590592
return 1;
591593
}
592594
else

libraries/CompleteHID/CompleteHID.h

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef COMPLETEHID_h
22
#define COMPLETEHID_h
33

4-
#if defined(_USING_HID)
4+
#if 0 //defined(_USING_HID)
55

66
#error "Can only attach one submodule to HID module"
77

@@ -12,6 +12,8 @@
1212
#include "HID.h"
1313
#include "HIDTables.h"
1414

15+
extern HID_ HID;
16+
1517
//================================================================================
1618
//================================================================================
1719
// Mouse
@@ -98,17 +100,17 @@ class Keyboard_ : public Print
98100
Keyboard_(void);
99101
void begin(void);
100102
void end(void);
101-
virtual size_t write(uint8_t k);
102-
virtual size_t press(uint8_t k);
103-
virtual size_t release(uint8_t k);
104-
virtual size_t writeKeycode(uint8_t k);
105-
virtual size_t pressKeycode(uint8_t k);
106-
virtual size_t releaseKeycode(uint8_t k);
107-
virtual size_t addKeycodeToReport(uint8_t k);
108-
virtual size_t removeKeycodeFromReport(uint8_t k);
109-
virtual void releaseAll(void);
110-
virtual size_t systemControl(uint8_t k);
111-
virtual size_t consumerControl(uint8_t k);
103+
size_t write(uint8_t k);
104+
size_t press(uint8_t k);
105+
size_t release(uint8_t k);
106+
size_t writeKeycode(uint8_t k);
107+
size_t pressKeycode(uint8_t k);
108+
size_t releaseKeycode(uint8_t k);
109+
size_t addKeycodeToReport(uint8_t k);
110+
size_t removeKeycodeFromReport(uint8_t k);
111+
void releaseAll(void);
112+
size_t systemControl(uint8_t k);
113+
size_t consumerControl(uint8_t k);
112114
};
113115
extern Keyboard_ Keyboard;
114116

libraries/MIDIUSB/MIDIUSB.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ int MIDI_GetInterface(uint8_t* interfaceNum)
4444
interfaceNum[0] += 2; // uses 2
4545
return USB_SendControl(0,&_midiInterface,sizeof(_midiInterface));
4646
}
47-
bool MIDI_Setup(Setup& setup, u8 i)
47+
bool MIDI_Setup(USBSetup& setup, u8 i)
4848
{
4949
//Support requests here if needed. Typically these are optional
5050
return false;

libraries/MIDIUSB/MIDIUSB.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ class MIDI_
3030

3131
int8_t begin();
3232

33-
virtual uint32_t available(void);
34-
virtual void accept(void);
35-
virtual midiEventPacket_t read(void);
36-
virtual void flush(void);
37-
virtual void sendMIDI(midiEventPacket_t event);
38-
virtual size_t write(const uint8_t *buffer, size_t size);
33+
uint32_t available(void);
34+
void accept(void);
35+
midiEventPacket_t read(void);
36+
void flush(void);
37+
void sendMIDI(midiEventPacket_t event);
38+
size_t write(const uint8_t *buffer, size_t size);
3939
operator bool();
4040
};
4141
extern MIDI_ MidiUSB;

0 commit comments

Comments
 (0)