2222#if defined __cplusplus
2323
2424#include " RingBuffer.h"
25+ #include " Stream.h"
26+ #include < cstddef>
27+
28+ #define min (a, b ) Min(a, b)
2529
2630// ================================================================================
2731// ================================================================================
@@ -64,97 +68,6 @@ class Serial_ : public Stream
6468};
6569extern Serial_ SerialUSB;
6670
67- // ================================================================================
68- // ================================================================================
69- // Mouse
70-
71- #define MOUSE_LEFT 1
72- #define MOUSE_RIGHT 2
73- #define MOUSE_MIDDLE 4
74- #define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE)
75-
76- class Mouse_
77- {
78- private:
79- uint8_t _buttons;
80- void buttons (uint8_t b);
81- public:
82- Mouse_ (void );
83- void begin (void );
84- void end (void );
85- void click (uint8_t b = MOUSE_LEFT);
86- void move (signed char x, signed char y, signed char wheel = 0 );
87- void press (uint8_t b = MOUSE_LEFT);// press LEFT by default
88- void release (uint8_t b = MOUSE_LEFT);// release LEFT by default
89- bool isPressed (uint8_t b = MOUSE_ALL);// check all buttons by default
90- };
91- extern Mouse_ Mouse;
92-
93- // ================================================================================
94- // ================================================================================
95- // Keyboard
96-
97- #define KEY_LEFT_CTRL 0x80
98- #define KEY_LEFT_SHIFT 0x81
99- #define KEY_LEFT_ALT 0x82
100- #define KEY_LEFT_GUI 0x83
101- #define KEY_RIGHT_CTRL 0x84
102- #define KEY_RIGHT_SHIFT 0x85
103- #define KEY_RIGHT_ALT 0x86
104- #define KEY_RIGHT_GUI 0x87
105-
106- #define KEY_UP_ARROW 0xDA
107- #define KEY_DOWN_ARROW 0xD9
108- #define KEY_LEFT_ARROW 0xD8
109- #define KEY_RIGHT_ARROW 0xD7
110- #define KEY_BACKSPACE 0xB2
111- #define KEY_TAB 0xB3
112- #define KEY_RETURN 0xB0
113- #define KEY_ESC 0xB1
114- #define KEY_INSERT 0xD1
115- #define KEY_DELETE 0xD4
116- #define KEY_PAGE_UP 0xD3
117- #define KEY_PAGE_DOWN 0xD6
118- #define KEY_HOME 0xD2
119- #define KEY_END 0xD5
120- #define KEY_CAPS_LOCK 0xC1
121- #define KEY_F1 0xC2
122- #define KEY_F2 0xC3
123- #define KEY_F3 0xC4
124- #define KEY_F4 0xC5
125- #define KEY_F5 0xC6
126- #define KEY_F6 0xC7
127- #define KEY_F7 0xC8
128- #define KEY_F8 0xC9
129- #define KEY_F9 0xCA
130- #define KEY_F10 0xCB
131- #define KEY_F11 0xCC
132- #define KEY_F12 0xCD
133-
134- // Low level key report: up to 6 keys and shift, ctrl etc at once
135- typedef struct
136- {
137- uint8_t modifiers;
138- uint8_t reserved;
139- uint8_t keys[6 ];
140- } KeyReport;
141-
142- class Keyboard_ : public Print
143- {
144- private:
145- KeyReport _keyReport;
146- void sendReport (KeyReport* keys);
147- public:
148- Keyboard_ (void );
149- void begin (void );
150- void end (void );
151- virtual size_t write (uint8_t k);
152- virtual size_t press (uint8_t k);
153- virtual size_t release (uint8_t k);
154- virtual void releaseAll (void );
155- };
156- extern Keyboard_ Keyboard;
157-
15871// ================================================================================
15972// ================================================================================
16073// Low level API
@@ -167,24 +80,15 @@ typedef struct
16780uint8_t wValueH;
16881uint16_t wIndex;
16982uint16_t wLength;
170- } Setup;
171-
172- // ================================================================================
173- // ================================================================================
174- // HID 'Driver'
175-
176- int HID_GetInterface (uint8_t * interfaceNum);
177- int HID_GetDescriptor (int i);
178- bool HID_Setup (Setup& setup);
179- void HID_SendReport (uint8_t id, const void * data, uint32_t len);
83+ } USBSetup;
18084
18185// ================================================================================
18286// ================================================================================
18387// MSC 'Driver'
18488
18589int MSC_GetInterface (uint8_t * interfaceNum);
18690int MSC_GetDescriptor (int i);
187- bool MSC_Setup (Setup & setup);
91+ bool MSC_Setup (USBSetup & setup);
18892bool MSC_Data (uint8_t rx,uint8_t tx);
18993
19094// ================================================================================
@@ -194,7 +98,7 @@ bool MSC_Data(uint8_t rx,uint8_t tx);
19498int CDC_GetInterface (uint8_t * interfaceNum);
19599int CDC_GetOtherInterface (uint8_t * interfaceNum);
196100int CDC_GetDescriptor (int i);
197- bool CDC_Setup (Setup & setup);
101+ bool CDC_Setup (USBSetup & setup);
198102
199103// ================================================================================
200104// ================================================================================
@@ -206,7 +110,7 @@ void USBD_InitControl(int end);
206110int USBD_SendControl (uint8_t flags, const void * d, uint32_t len);
207111int USBD_RecvControl (void * d, uint32_t len);
208112int USBD_SendInterfaces (void );
209- bool USBD_ClassInterfaceRequest (Setup & setup);
113+ bool USBD_ClassInterfaceRequest (USBSetup & setup);
210114
211115
212116uint32_t USBD_Available (uint32_t ep);
0 commit comments