/xbox360hid.h
Created Jun 4, 2013
The XBox360 HID descriptor
| char ReportDescriptor[196] = { | |
| 0x05, 0x01, // USAGE_PAGE (Generic Desktop) | |
| 0x09, 0x05, // USAGE (Game Pad) | |
| 0xa1, 0x01, // COLLECTION (Application) | |
| 0x05, 0x01, // USAGE_PAGE (Generic Desktop) | |
| 0x09, 0x3a, // USAGE (Counted Buffer) | |
| 0xa1, 0x02, // COLLECTION (Logical) | |
| 0x75, 0x08, // REPORT_SIZE (8) | |
| 0x95, 0x02, // REPORT_COUNT (2) | |
| 0x05, 0x01, // USAGE_PAGE (Generic Desktop) | |
| 0x09, 0x3f, // USAGE (Reserved) | |
| 0x09, 0x3b, // USAGE (Byte Count) | |
| 0x81, 0x01, // INPUT (Cnst,Ary,Abs) | |
| 0x75, 0x01, // REPORT_SIZE (1) | |
| 0x15, 0x00, // LOGICAL_MINIMUM (0) | |
| 0x25, 0x01, // LOGICAL_MAXIMUM (1) | |
| 0x35, 0x00, // PHYSICAL_MINIMUM (0) | |
| 0x45, 0x01, // PHYSICAL_MAXIMUM (1) | |
| 0x95, 0x04, // REPORT_COUNT (4) | |
| 0x05, 0x09, // USAGE_PAGE (Button) | |
| 0x19, 0x0c, // USAGE_MINIMUM (Button 12) | |
| 0x29, 0x0f, // USAGE_MAXIMUM (Button 15) | |
| 0x81, 0x02, // INPUT (Data,Var,Abs) | |
| 0x75, 0x01, // REPORT_SIZE (1) | |
| 0x15, 0x00, // LOGICAL_MINIMUM (0) | |
| 0x25, 0x01, // LOGICAL_MAXIMUM (1) | |
| 0x35, 0x00, // PHYSICAL_MINIMUM (0) | |
| 0x45, 0x01, // PHYSICAL_MAXIMUM (1) | |
| 0x95, 0x04, // REPORT_COUNT (4) | |
| 0x05, 0x09, // USAGE_PAGE (Button) | |
| 0x09, 0x09, // USAGE (Button 9) | |
| 0x09, 0x0a, // USAGE (Button 10) | |
| 0x09, 0x07, // USAGE (Button 7) | |
| 0x09, 0x08, // USAGE (Button 8) | |
| 0x81, 0x02, // INPUT (Data,Var,Abs) | |
| 0x75, 0x01, // REPORT_SIZE (1) | |
| 0x15, 0x00, // LOGICAL_MINIMUM (0) | |
| 0x25, 0x01, // LOGICAL_MAXIMUM (1) | |
| 0x35, 0x00, // PHYSICAL_MINIMUM (0) | |
| 0x45, 0x01, // PHYSICAL_MAXIMUM (1) | |
| 0x95, 0x03, // REPORT_COUNT (3) | |
| 0x05, 0x09, // USAGE_PAGE (Button) | |
| 0x09, 0x05, // USAGE (Button 5) | |
| 0x09, 0x06, // USAGE (Button 6) | |
| 0x09, 0x0b, // USAGE (Button 11) | |
| 0x81, 0x02, // INPUT (Data,Var,Abs) | |
| 0x75, 0x01, // REPORT_SIZE (1) | |
| 0x95, 0x01, // REPORT_COUNT (1) | |
| 0x81, 0x01, // INPUT (Cnst,Ary,Abs) | |
| 0x75, 0x01, // REPORT_SIZE (1) | |
| 0x15, 0x00, // LOGICAL_MINIMUM (0) | |
| 0x25, 0x01, // LOGICAL_MAXIMUM (1) | |
| 0x35, 0x00, // PHYSICAL_MINIMUM (0) | |
| 0x45, 0x01, // PHYSICAL_MAXIMUM (1) | |
| 0x95, 0x04, // REPORT_COUNT (4) | |
| 0x05, 0x09, // USAGE_PAGE (Button) | |
| 0x19, 0x01, // USAGE_MINIMUM (Button 1) | |
| 0x29, 0x04, // USAGE_MAXIMUM (Button 4) | |
| 0x81, 0x02, // INPUT (Data,Var,Abs) | |
| 0x75, 0x08, // REPORT_SIZE (8) | |
| 0x15, 0x00, // LOGICAL_MINIMUM (0) | |
| 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255) | |
| 0x35, 0x00, // PHYSICAL_MINIMUM (0) | |
| 0x46, 0xff, 0x00, // PHYSICAL_MAXIMUM (255) | |
| 0x95, 0x02, // REPORT_COUNT (2) | |
| 0x05, 0x01, // USAGE_PAGE (Generic Desktop) | |
| 0x09, 0x32, // USAGE (Z) | |
| 0x09, 0x35, // USAGE (Rz) | |
| 0x81, 0x02, // INPUT (Data,Var,Abs) | |
| 0x75, 0x10, // REPORT_SIZE (16) | |
| 0x16, 0x00, 0x80, // LOGICAL_MINIMUM (-32768) | |
| 0x26, 0xff, 0x7f, // LOGICAL_MAXIMUM (32767) | |
| 0x36, 0x00, 0x80, // PHYSICAL_MINIMUM (-32768) | |
| 0x46, 0xff, 0x7f, // PHYSICAL_MAXIMUM (32767) | |
| 0x05, 0x01, // USAGE_PAGE (Generic Desktop) | |
| 0x09, 0x01, // USAGE (Pointer) | |
| 0xa1, 0x00, // COLLECTION (Physical) | |
| 0x95, 0x02, // REPORT_COUNT (2) | |
| 0x05, 0x01, // USAGE_PAGE (Generic Desktop) | |
| 0x09, 0x30, // USAGE (X) | |
| 0x09, 0x31, // USAGE (Y) | |
| 0x81, 0x02, // INPUT (Data,Var,Abs) | |
| 0xc0, // END_COLLECTION | |
| 0x05, 0x01, // USAGE_PAGE (Generic Desktop) | |
| 0x09, 0x01, // USAGE (Pointer) | |
| 0xa1, 0x00, // COLLECTION (Physical) | |
| 0x95, 0x02, // REPORT_COUNT (2) | |
| 0x05, 0x01, // USAGE_PAGE (Generic Desktop) | |
| 0x09, 0x33, // USAGE (Rx) | |
| 0x09, 0x34, // USAGE (Ry) | |
| 0x81, 0x02, // INPUT (Data,Var,Abs) | |
| 0xc0, // END_COLLECTION | |
| 0xc0, // END_COLLECTION | |
| 0xc0 // END_COLLECTION | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment