22
22
#if defined __cplusplus
23
23
24
24
#include " RingBuffer.h"
25
+ #include " Stream.h"
26
+ #include < cstddef>
27
+
28
+ #define min (a, b ) Min(a, b)
25
29
26
30
// ================================================================================
27
31
// ================================================================================
@@ -64,97 +68,6 @@ class Serial_ : public Stream
64
68
};
65
69
extern Serial_ SerialUSB;
66
70
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
-
158
71
// ================================================================================
159
72
// ================================================================================
160
73
// Low level API
@@ -167,24 +80,15 @@ typedef struct
167
80
uint8_t wValueH;
168
81
uint16_t wIndex;
169
82
uint16_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;
180
84
181
85
// ================================================================================
182
86
// ================================================================================
183
87
// MSC 'Driver'
184
88
185
89
int MSC_GetInterface (uint8_t * interfaceNum);
186
90
int MSC_GetDescriptor (int i);
187
- bool MSC_Setup (Setup & setup);
91
+ bool MSC_Setup (USBSetup & setup);
188
92
bool MSC_Data (uint8_t rx,uint8_t tx);
189
93
190
94
// ================================================================================
@@ -194,7 +98,7 @@ bool MSC_Data(uint8_t rx,uint8_t tx);
194
98
int CDC_GetInterface (uint8_t * interfaceNum);
195
99
int CDC_GetOtherInterface (uint8_t * interfaceNum);
196
100
int CDC_GetDescriptor (int i);
197
- bool CDC_Setup (Setup & setup);
101
+ bool CDC_Setup (USBSetup & setup);
198
102
199
103
// ================================================================================
200
104
// ================================================================================
@@ -206,7 +110,7 @@ void USBD_InitControl(int end);
206
110
int USBD_SendControl (uint8_t flags, const void * d, uint32_t len);
207
111
int USBD_RecvControl (void * d, uint32_t len);
208
112
int USBD_SendInterfaces (void );
209
- bool USBD_ClassInterfaceRequest (Setup & setup);
113
+ bool USBD_ClassInterfaceRequest (USBSetup & setup);
210
114
211
115
212
116
uint32_t USBD_Available (uint32_t ep);
0 commit comments