Open FFBoard
Open source force feedback firmware
usb_hid_gamepad.c
Go to the documentation of this file.
1
/*
2
* usb_hid_gamepad.c
3
*
4
* Created on: 30.11.2022
5
* Author: Yannick
6
*/
7
8
#include "
cppmain.h
"
9
#include "
ffb_defs.h
"
10
#include "
usb_hid_ffb_desc.h
"
11
12
#ifdef FFB_HID_DESC_GAMEPAD
13
17
__ALIGN_BEGIN
const
uint8_t
hid_gamepad_desc
[USB_HID_GAMEPAD_REPORT_DESC_SIZE]
__ALIGN_END
=
18
{
19
0x05, 0x01,
// USAGE_PAGE (Generic Desktop)
20
0x09, 0x04,
// USAGE (Joystick)
21
0xa1, 0x01,
// COLLECTION (Application)
22
0xa1, 0x00,
// COLLECTION (Physical)
23
0x85, 0x01,
// REPORT_ID (1)
24
0x05, 0x09,
// USAGE_PAGE (Button)
25
0x19, 0x01,
// USAGE_MINIMUM (Button 1)
26
0x29, 0x40,
// USAGE_MAXIMUM (Button 64)
27
0x15, 0x00,
// LOGICAL_MINIMUM (0)
28
0x25, 0x01,
// LOGICAL_MAXIMUM (1)
29
0x95, 0x40,
// REPORT_COUNT (64)
30
0x75, 0x01,
// REPORT_SIZE (1)
31
0x81, 0x02,
// INPUT (Data,Var,Abs)
32
0x05, 0x01,
// USAGE_PAGE (Generic Desktop)
33
0x09, HID_USAGE_X,
// USAGE (X)
34
0x09, HID_USAGE_Y,
// USAGE (Y)
35
0x09, HID_USAGE_Z,
// USAGE (Z)
36
0x09, HID_USAGE_RX,
// USAGE (Rx)
37
0x09, HID_USAGE_RY,
// USAGE (Ry)
38
0x09, HID_USAGE_RZ,
// USAGE (Rz)
39
0x09, HID_USAGE_SL1,
// USAGE (Dial)
40
0x09, HID_USAGE_SL0,
// USAGE (Slider)
41
0x16, 0x01, 0x80,
// LOGICAL_MINIMUM (-32767)
42
0x26, 0xff, 0x7f,
// LOGICAL_MAXIMUM (32767)
43
0x75, 0x10,
// REPORT_SIZE (16)
44
0x95, 0x08,
// REPORT_COUNT (8)
45
0x81, 0x02,
// INPUT (Data,Var,Abs)
46
0xc0,
// END_COLLECTION
47
48
49
// Control reports
50
0x06, 0x00, 0xFF,
// USAGE_PAGE (Vendor)
51
0x09, 0x00,
// USAGE (Vendor)
52
0xA1, 0x01,
// Collection (Application)
53
54
0x85,HID_ID_HIDCMD,
// Report ID
55
0x09, 0x01,
// USAGE (Vendor)
56
0x15, 0x00,
// LOGICAL_MINIMUM (0)
57
0x26, 0x04, 0x00,
// Logical Maximum 4
58
0x75, 0x08,
// REPORT_SIZE (8)
59
0x95, 0x01,
// REPORT_COUNT (1)
60
0x91, 0x02,
// OUTPUT (Data,Var,Abs)
61
62
0x09, 0x02,
// USAGE (Vendor) class address
63
0x75, 0x10,
// REPORT_SIZE (16)
64
0x95, 0x01,
// REPORT_COUNT (1)
65
0x91, 0x02,
// OUTPUT (Data,Var,Abs)
66
67
0x09, 0x03,
// USAGE (Vendor) class instance
68
0x75, 0x08,
// REPORT_SIZE (8)
69
0x95, 0x01,
// REPORT_COUNT (1)
70
0x91, 0x02,
// OUTPUT (Data,Var,Abs)
71
72
0x09, 0x04,
// USAGE (Vendor) cmd
73
0x75, 0x20,
// REPORT_SIZE (32)
74
0x95, 0x01,
// REPORT_COUNT (1)
75
0x91, 0x02,
// OUTPUT (Data,Var,Abs)
76
77
0x09, 0x05,
// USAGE (Vendor)
78
0x75, 0x40,
// REPORT_SIZE (64) value
79
0x95, 0x01,
// REPORT_COUNT (1)
80
0x91, 0x02,
// OUTPUT (Data,Var,Abs)
81
82
0x09, 0x06,
// USAGE (Vendor) address
83
0x75, 0x40,
// REPORT_SIZE (64)
84
0x95, 0x01,
// REPORT_COUNT (1)
85
0x91, 0x02,
// OUTPUT (Data,Var,Abs)
86
87
0x85,HID_ID_HIDCMD,
// Report ID
88
0x09, 0x01,
// USAGE (Vendor)
89
0x15, 0x00,
// LOGICAL_MINIMUM (0)
90
0x26, 0x04, 0x00,
// Logical Maximum 4
91
0x75, 0x08,
// REPORT_SIZE (8)
92
0x95, 0x01,
// REPORT_COUNT (1)
93
0x81, 0x02,
// INPUT (Data,Var,Abs)
94
95
0x09, 0x02,
// USAGE (Vendor) class address
96
0x75, 0x10,
// REPORT_SIZE (16)
97
0x95, 0x01,
// REPORT_COUNT (1)
98
0x81, 0x02,
// INPUT (Data,Var,Abs)
99
100
0x09, 0x03,
// USAGE (Vendor) class instance
101
0x75, 0x08,
// REPORT_SIZE (8)
102
0x95, 0x01,
// REPORT_COUNT (1)
103
0x81, 0x02,
// INPUT (Data,Var,Abs)
104
105
0x09, 0x04,
// USAGE (Vendor) cmd
106
0x75, 0x20,
// REPORT_SIZE (32)
107
0x95, 0x01,
// REPORT_COUNT (1)
108
0x81, 0x02,
// INPUT (Data,Var,Abs)
109
110
0x09, 0x05,
// USAGE (Vendor)
111
0x75, 0x40,
// REPORT_SIZE (64) value
112
0x95, 0x01,
// REPORT_COUNT (1)
113
0x81, 0x02,
// INPUT (Data,Var,Abs)
114
115
0x09, 0x06,
// USAGE (Vendor) address
116
0x75, 0x40,
// REPORT_SIZE (64)
117
0x95, 0x01,
// REPORT_COUNT (1)
118
0x81, 0x02,
// INPUT (Data,Var,Abs)
119
120
121
122
0xc0,
// END_COLLECTION
123
124
125
0xC0
/* END_COLLECTION */
126
};
127
128
#endif
cppmain.h
ffb_defs.h
usb_hid_ffb_desc.h
hid_gamepad_desc
const uint8_t hid_gamepad_desc[USB_HID_GAMEPAD_REPORT_DESC_SIZE]
__ALIGN_END
__ALIGN_BEGIN const uint8_t hid_gamepad_desc[USB_HID_GAMEPAD_REPORT_DESC_SIZE] __ALIGN_END
Definition:
usb_hid_gamepad.c:17
Firmware
FFBoard
UserExtensions
Src
usb_hid_gamepad.c
Generated by
1.9.2