|
55 | 55 | .iSerialNumber = 0x03,\ |
56 | 56 | .bNumConfigurations = 0x01}\ |
57 | 57 |
|
| 58 | +/* Common mouse descriptor. Use HID_RELATIVE or HID_ABSOLUTE for ABS_OR_REL. */ |
| 59 | +#define TUD_HID_REPORT_DESC_MOUSE_COMMON(ABS_OR_REL, MOUSE_MIN, ...)\ |
| 60 | + HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\ |
| 61 | + HID_USAGE ( HID_USAGE_DESKTOP_MOUSE ) ,\ |
| 62 | + HID_COLLECTION ( HID_COLLECTION_APPLICATION ) ,\ |
| 63 | + /* Report ID if any */\ |
| 64 | + __VA_ARGS__ \ |
| 65 | + HID_USAGE ( HID_USAGE_DESKTOP_POINTER ) ,\ |
| 66 | + HID_COLLECTION ( HID_COLLECTION_PHYSICAL ) ,\ |
| 67 | + HID_USAGE_PAGE ( HID_USAGE_PAGE_BUTTON ) ,\ |
| 68 | + HID_USAGE_MIN ( 1 ) ,\ |
| 69 | + HID_USAGE_MAX ( 5 ) ,\ |
| 70 | + HID_LOGICAL_MIN ( 0 ) ,\ |
| 71 | + HID_LOGICAL_MAX ( 1 ) ,\ |
| 72 | + \ |
| 73 | + /* Left, Right, Middle, Backward, Forward buttons */ \ |
| 74 | + HID_REPORT_COUNT( 5 ) ,\ |
| 75 | + HID_REPORT_SIZE ( 1 ) ,\ |
| 76 | + HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ) ,\ |
| 77 | + \ |
| 78 | + /* 3 bit padding */ \ |
| 79 | + HID_REPORT_COUNT( 1 ) ,\ |
| 80 | + HID_REPORT_SIZE ( 3 ) ,\ |
| 81 | + HID_INPUT ( HID_CONSTANT ) ,\ |
| 82 | + HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\ |
| 83 | + \ |
| 84 | + /* X, Y position [MOUSE_MIN, 32767] */ \ |
| 85 | + HID_USAGE ( HID_USAGE_DESKTOP_X ) ,\ |
| 86 | + HID_USAGE ( HID_USAGE_DESKTOP_Y ) ,\ |
| 87 | + MOUSE_MIN ,\ |
| 88 | + HID_LOGICAL_MAX_N( 0x7FFF, 2 ) ,\ |
| 89 | + HID_REPORT_SIZE ( 16 ) ,\ |
| 90 | + HID_REPORT_COUNT ( 2 ) ,\ |
| 91 | + HID_INPUT ( HID_DATA | HID_VARIABLE | ABS_OR_REL ) ,\ |
| 92 | + \ |
| 93 | + /* Vertical wheel scroll [-127, 127] */ \ |
| 94 | + HID_USAGE ( HID_USAGE_DESKTOP_WHEEL ) ,\ |
| 95 | + HID_LOGICAL_MIN ( 0x81 ) ,\ |
| 96 | + HID_LOGICAL_MAX ( 0x7f ) ,\ |
| 97 | + HID_REPORT_COUNT( 1 ) ,\ |
| 98 | + HID_REPORT_SIZE ( 8 ) ,\ |
| 99 | + HID_INPUT ( HID_DATA | HID_VARIABLE | HID_RELATIVE ) ,\ |
| 100 | + \ |
| 101 | + /* Horizontal wheel (AC Pan) */ \ |
| 102 | + HID_USAGE_PAGE ( HID_USAGE_PAGE_CONSUMER ) ,\ |
| 103 | + HID_LOGICAL_MIN ( 0x81 ) ,\ |
| 104 | + HID_LOGICAL_MAX ( 0x7f ) ,\ |
| 105 | + HID_REPORT_COUNT( 1 ) ,\ |
| 106 | + HID_REPORT_SIZE ( 8 ) ,\ |
| 107 | + HID_USAGE_N ( HID_USAGE_CONSUMER_AC_PAN, 2 ) ,\ |
| 108 | + HID_INPUT ( HID_DATA | HID_VARIABLE | HID_RELATIVE ) ,\ |
| 109 | + \ |
| 110 | + /* Mouse mode (0 = absolute, 1 = relative) */ \ |
| 111 | + HID_REPORT_COUNT( 1 ), \ |
| 112 | + HID_REPORT_SIZE ( 8 ), \ |
| 113 | + HID_INPUT ( HID_CONSTANT ), \ |
| 114 | + HID_COLLECTION_END , \ |
| 115 | + HID_COLLECTION_END \ |
58 | 116 |
|
59 | | -#define TUD_HID_REPORT_DESC_ABS_MOUSE(...) \ |
60 | | -HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\ |
61 | | -HID_USAGE ( HID_USAGE_DESKTOP_MOUSE ) ,\ |
62 | | -HID_COLLECTION ( HID_COLLECTION_APPLICATION ) ,\ |
63 | | - /* Report ID */\ |
64 | | - __VA_ARGS__ \ |
65 | | - HID_USAGE ( HID_USAGE_DESKTOP_POINTER ) ,\ |
66 | | - HID_COLLECTION ( HID_COLLECTION_PHYSICAL ) ,\ |
67 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_BUTTON ) ,\ |
68 | | - HID_USAGE_MIN ( 1 ) ,\ |
69 | | - HID_USAGE_MAX ( 5 ) ,\ |
70 | | - HID_LOGICAL_MIN ( 0 ) ,\ |
71 | | - HID_LOGICAL_MAX ( 1 ) ,\ |
72 | | - \ |
73 | | - /* Left, Right, Middle, Backward, Forward buttons */ \ |
74 | | - HID_REPORT_COUNT( 5 ) ,\ |
75 | | - HID_REPORT_SIZE ( 1 ) ,\ |
76 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ) ,\ |
77 | | - \ |
78 | | - /* 3 bit padding */ \ |
79 | | - HID_REPORT_COUNT( 1 ) ,\ |
80 | | - HID_REPORT_SIZE ( 3 ) ,\ |
81 | | - HID_INPUT ( HID_CONSTANT ) ,\ |
82 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\ |
83 | | - \ |
84 | | - /* X, Y absolute position [0, 32767] */ \ |
85 | | - HID_USAGE ( HID_USAGE_DESKTOP_X ) ,\ |
86 | | - HID_USAGE ( HID_USAGE_DESKTOP_Y ) ,\ |
87 | | - HID_LOGICAL_MIN ( 0x00 ) ,\ |
88 | | - HID_LOGICAL_MAX_N( 0x7FFF, 2 ) ,\ |
89 | | - HID_REPORT_SIZE ( 16 ) ,\ |
90 | | - HID_REPORT_COUNT ( 2 ) ,\ |
91 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ) ,\ |
92 | | - \ |
93 | | - /* Vertical wheel scroll [-127, 127] */ \ |
94 | | - HID_USAGE ( HID_USAGE_DESKTOP_WHEEL ) ,\ |
95 | | - HID_LOGICAL_MIN ( 0x81 ) ,\ |
96 | | - HID_LOGICAL_MAX ( 0x7f ) ,\ |
97 | | - HID_REPORT_COUNT( 1 ) ,\ |
98 | | - HID_REPORT_SIZE ( 8 ) ,\ |
99 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_RELATIVE ) ,\ |
100 | | - \ |
101 | | - /* Horizontal wheel (AC Pan) */ \ |
102 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_CONSUMER ) ,\ |
103 | | - HID_LOGICAL_MIN ( 0x81 ) ,\ |
104 | | - HID_LOGICAL_MAX ( 0x7f ) ,\ |
105 | | - HID_REPORT_COUNT( 1 ) ,\ |
106 | | - HID_REPORT_SIZE ( 8 ) ,\ |
107 | | - HID_USAGE_N ( HID_USAGE_CONSUMER_AC_PAN, 2 ) ,\ |
108 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_RELATIVE ) ,\ |
109 | | - \ |
110 | | - /* Mouse mode (0 = absolute, 1 = relative) */ \ |
111 | | - HID_REPORT_COUNT( 1 ), \ |
112 | | - HID_REPORT_SIZE ( 8 ), \ |
113 | | - HID_INPUT ( HID_CONSTANT ), \ |
114 | | - HID_COLLECTION_END , \ |
115 | | -HID_COLLECTION_END \ |
| 117 | +/* Absolute mouse, range=[0..32767] */ |
| 118 | +#define TUD_HID_REPORT_DESC_ABS_MOUSE(...) TUD_HID_REPORT_DESC_MOUSE_COMMON(HID_ABSOLUTE, HID_LOGICAL_MIN(0), __VA_ARGS__) |
| 119 | + |
| 120 | +/* Relative mouse, range=[-32767..32767] */ |
| 121 | +#define TUD_HID_REPORT_DESC_MOUSEHELP(...) TUD_HID_REPORT_DESC_MOUSE_COMMON(HID_RELATIVE, HID_LOGICAL_MIN_N(-32767, 2), __VA_ARGS__) |
116 | 122 |
|
117 | 123 | // Consumer Control Report Descriptor Template |
118 | 124 | #define TUD_HID_REPORT_DESC_CONSUMER_CTRL(...) \ |
@@ -161,50 +167,6 @@ HID_COLLECTION_END \ |
161 | 167 | HID_OUTPUT ( HID_DATA | HID_ARRAY | HID_ABSOLUTE ) ,\ |
162 | 168 | HID_COLLECTION_END \ |
163 | 169 |
|
164 | | -#define TUD_HID_REPORT_DESC_MOUSEHELP(...) \ |
165 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\ |
166 | | - HID_USAGE ( HID_USAGE_DESKTOP_MOUSE ) ,\ |
167 | | - HID_COLLECTION ( HID_COLLECTION_APPLICATION ) ,\ |
168 | | - /* Report ID if any */\ |
169 | | - __VA_ARGS__ \ |
170 | | - HID_USAGE ( HID_USAGE_DESKTOP_POINTER ) ,\ |
171 | | - HID_COLLECTION ( HID_COLLECTION_PHYSICAL ) ,\ |
172 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_BUTTON ) ,\ |
173 | | - HID_USAGE_MIN ( 1 ) ,\ |
174 | | - HID_USAGE_MAX ( 5 ) ,\ |
175 | | - HID_LOGICAL_MIN ( 0 ) ,\ |
176 | | - HID_LOGICAL_MAX ( 1 ) ,\ |
177 | | - /* Left, Right, Middle, Backward, Forward buttons */ \ |
178 | | - HID_REPORT_COUNT( 5 ) ,\ |
179 | | - HID_REPORT_SIZE ( 1 ) ,\ |
180 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ) ,\ |
181 | | - /* 3 bit padding */ \ |
182 | | - HID_REPORT_COUNT( 1 ) ,\ |
183 | | - HID_REPORT_SIZE ( 3 ) ,\ |
184 | | - HID_INPUT ( HID_CONSTANT ) ,\ |
185 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\ |
186 | | - /* X, Y position [-32767, 32767] */ \ |
187 | | - HID_USAGE ( HID_USAGE_DESKTOP_X ) ,\ |
188 | | - HID_USAGE ( HID_USAGE_DESKTOP_Y ) ,\ |
189 | | - HID_LOGICAL_MIN_N ( 0x8000, 2 ) ,\ |
190 | | - HID_LOGICAL_MAX_N ( 0x7fff, 2 ) ,\ |
191 | | - HID_REPORT_SIZE ( 16 ) ,\ |
192 | | - HID_REPORT_COUNT( 2 ) ,\ |
193 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_RELATIVE ) ,\ |
194 | | - /* Vertical wheel scroll [-127, 127] */ \ |
195 | | - HID_USAGE ( HID_USAGE_DESKTOP_WHEEL ) ,\ |
196 | | - HID_LOGICAL_MIN ( 0x81 ) ,\ |
197 | | - HID_LOGICAL_MAX ( 0x7f ) ,\ |
198 | | - HID_REPORT_COUNT( 1 ) ,\ |
199 | | - HID_REPORT_SIZE ( 8 ) ,\ |
200 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_RELATIVE ) ,\ |
201 | | - /* Mouse mode (0 = absolute, 1 = relative) */ \ |
202 | | - HID_REPORT_COUNT( 1 ), \ |
203 | | - HID_REPORT_SIZE ( 8 ), \ |
204 | | - HID_INPUT ( HID_CONSTANT ), \ |
205 | | - HID_COLLECTION_END , \ |
206 | | - HID_COLLECTION_END \ |
207 | | - |
208 | 170 | #define HID_USAGE_DIGITIZER 0x01 |
209 | 171 |
|
210 | 172 | #define TUD_HID_REPORT_DESC_DIGITIZER_PEN(...) \ |
|
0 commit comments