fix: improve DSE compatibility. Thanks @fuhuasxflwb
This commit is contained in:
+6
-1
@@ -68,8 +68,13 @@ target_compile_definitions(ds5-bridge PRIVATE
|
||||
PICO_FLASH_ASSUME_CORE1_SAFE=1
|
||||
WDL_RESAMPLE_TYPE=float
|
||||
CYW43_PIO_CLOCK_DIV_INT=4
|
||||
# ENABLE_DSE # 将PID和产品名称设置为DSE
|
||||
)
|
||||
option(ENABLE_DSE "Enable DSE" OFF)
|
||||
if(ENABLE_DSE)
|
||||
target_compile_definitions(ds5-bridge PRIVATE
|
||||
ENABLE_DSE # 将PID和产品名称设置为DSE
|
||||
)
|
||||
endif()
|
||||
|
||||
pico_set_program_name(ds5-bridge "ds5-bridge")
|
||||
pico_set_program_version(ds5-bridge "0.5.2")
|
||||
|
||||
+242
-19
@@ -302,7 +302,11 @@ uint8_t const descriptor_configuration[] = {
|
||||
0x00, // bCountryCode: Not localized
|
||||
0x01, // bNumDescriptors: 1 report descriptor
|
||||
0x22, // bDescriptorType: Report
|
||||
#ifdef ENABLE_DSE
|
||||
0x95, 0x01, // wDescriptorLength: 405 (0x0121)
|
||||
#else
|
||||
0x21, 0x01, // wDescriptorLength: 289 (0x0121)
|
||||
#endif
|
||||
|
||||
// Endpoint Descriptor (HID IN: EP4)
|
||||
0x07, // bLength
|
||||
@@ -310,7 +314,7 @@ uint8_t const descriptor_configuration[] = {
|
||||
0x84, // bEndpointAddress: IN EP4
|
||||
0x03, // bmAttributes: Interrupt
|
||||
0x40, 0x00, // wMaxPacketSize: 64
|
||||
0x06, // bInterval: 6 (polling every 4ms)
|
||||
0x04, // bInterval: 4 (polling every 4ms)
|
||||
|
||||
// Endpoint Descriptor (HID OUT: EP3)
|
||||
0x07, // bLength
|
||||
@@ -318,7 +322,7 @@ uint8_t const descriptor_configuration[] = {
|
||||
0x03, // bEndpointAddress: OUT EP3
|
||||
0x03, // bmAttributes: Interrupt
|
||||
0x40, 0x00, // wMaxPacketSize: 64
|
||||
0x06, // bInterval: 6
|
||||
0x04, // bInterval: 4
|
||||
};
|
||||
|
||||
// Invoked when received GET CONFIGURATION DESCRIPTOR
|
||||
@@ -333,7 +337,8 @@ uint8_t const *tud_descriptor_configuration_cb(uint8_t index) {
|
||||
// HID Report Descriptor
|
||||
//--------------------------------------------------------------------+
|
||||
|
||||
uint8_t const desc_hid_report[] = {
|
||||
#ifndef ENABLE_DSE
|
||||
uint8_t const desc_hid_report_ds[] = {
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x05, // Usage (Game Pad)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
@@ -403,8 +408,14 @@ uint8_t const desc_hid_report[] = {
|
||||
0x09, 0x25, // Usage (0x25)
|
||||
0x95, 0x1A, // Report Count (26)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x0B, 0x09, 0x41, 0x95, 0x29, 0xB1, 0x02, // ID 0B (新增项)
|
||||
0x85, 0x0C, 0x09, 0x42, 0x95, 0x29, 0xB1, 0x02, // ID 0C (新增项)
|
||||
0x85, 0x0B, // Report ID (11)
|
||||
0x09, 0x41, // Usage (0x41)
|
||||
0x95, 0x29, // Report Count (41)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x0C, // Report ID (12)
|
||||
0x09, 0x42, // Usage (0x42)
|
||||
0x95, 0x29, // Report Count (41)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x20, // Report ID (32)
|
||||
0x09, 0x26, // Usage (0x26)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
@@ -417,67 +428,279 @@ uint8_t const desc_hid_report[] = {
|
||||
0x09, 0x40, // Usage (0x40)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x80, // Report ID (128)
|
||||
0x85, 0x80, // Report ID (-128)
|
||||
0x09, 0x28, // Usage (0x28)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x81, // Report ID (129)
|
||||
0x85, 0x81, // Report ID (-127)
|
||||
0x09, 0x29, // Usage (0x29)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x82, // Report ID (130)
|
||||
0x85, 0x82, // Report ID (-126)
|
||||
0x09, 0x2A, // Usage (0x2A)
|
||||
0x95, 0x09, // Report Count (9)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x83, // Report ID (131)
|
||||
0x85, 0x83, // Report ID (-125)
|
||||
0x09, 0x2B, // Usage (0x2B)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x84, // Report ID (132)
|
||||
0x85, 0x84, // Report ID (-124)
|
||||
0x09, 0x2C, // Usage (0x2C)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x85, // Report ID (133)
|
||||
0x85, 0x85, // Report ID (-123)
|
||||
0x09, 0x2D, // Usage (0x2D)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xA0, // Report ID (160)
|
||||
0x85, 0xA0, // Report ID (-96)
|
||||
0x09, 0x2E, // Usage (0x2E)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xE0, // Report ID (224)
|
||||
0x85, 0xE0, // Report ID (-32)
|
||||
0x09, 0x2F, // Usage (0x2F)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xF0, // Report ID (240)
|
||||
0x85, 0xF0, // Report ID (-16)
|
||||
0x09, 0x30, // Usage (0x30)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xF1, // Report ID (241)
|
||||
0x85, 0xF1, // Report ID (-15)
|
||||
0x09, 0x31, // Usage (0x31)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xF2, // Report ID (242)
|
||||
0x85, 0xF2, // Report ID (-14)
|
||||
0x09, 0x32, // Usage (0x32)
|
||||
0x95, 0x0F, // Report Count (15)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xF4, // Report ID (244)
|
||||
0x85, 0xF4, // Report ID (-12)
|
||||
0x09, 0x35, // Usage (0x35)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xF5, // Report ID (245)
|
||||
0x85, 0xF5, // Report ID (-11)
|
||||
0x09, 0x36, // Usage (0x36)
|
||||
0x95, 0x03, // Report Count (3)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0xC0, // End Collection
|
||||
// 289 bytes
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_DSE
|
||||
uint8_t const desc_hid_report_dse[] = {
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x05, // Usage (Game Pad)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x01, // Report ID (1)
|
||||
0x09, 0x30, // Usage (X)
|
||||
0x09, 0x31, // Usage (Y)
|
||||
0x09, 0x32, // Usage (Z)
|
||||
0x09, 0x35, // Usage (Rz)
|
||||
0x09, 0x33, // Usage (Rx)
|
||||
0x09, 0x34, // Usage (Ry)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xFF, 0x00, // Logical Maximum (255)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x06, // Report Count (6)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
|
||||
0x09, 0x20, // Usage (0x20)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x39, // Usage (Hat switch)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x07, // Logical Maximum (7)
|
||||
0x35, 0x00, // Physical Minimum (0)
|
||||
0x46, 0x3B, 0x01, // Physical Maximum (315)
|
||||
0x65, 0x14, // Unit (System: English Rotation, Length: Centimeter)
|
||||
0x75, 0x04, // Report Size (4)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x42, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State)
|
||||
0x65, 0x00, // Unit (None)
|
||||
0x05, 0x09, // Usage Page (Button)
|
||||
0x19, 0x01, // Usage Minimum (0x01)
|
||||
0x29, 0x0F, // Usage Maximum (0x0F)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x0F, // Report Count (15)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
|
||||
0x09, 0x21, // Usage (0x21)
|
||||
0x95, 0x0D, // Report Count (13)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
|
||||
0x09, 0x22, // Usage (0x22)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xFF, 0x00, // Logical Maximum (255)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x34, // Report Count (52)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x85, 0x02, // Report ID (2)
|
||||
0x09, 0x23, // Usage (0x23)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x05, // Report ID (5)
|
||||
0x09, 0x33, // Usage (0x33)
|
||||
0x95, 0x28, // Report Count (40)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x08, // Report ID (8)
|
||||
0x09, 0x34, // Usage (0x34)
|
||||
0x95, 0x2F, // Report Count (47)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x09, // Report ID (9)
|
||||
0x09, 0x24, // Usage (0x24)
|
||||
0x95, 0x13, // Report Count (19)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x0A, // Report ID (10)
|
||||
0x09, 0x25, // Usage (0x25)
|
||||
0x95, 0x1A, // Report Count (26)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x0B, // Report ID (11)
|
||||
0x09, 0x41, // Usage (0x41)
|
||||
0x95, 0x29, // Report Count (41)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x0C, // Report ID (12)
|
||||
0x09, 0x42, // Usage (0x42)
|
||||
0x95, 0x29, // Report Count (41)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x20, // Report ID (32)
|
||||
0x09, 0x26, // Usage (0x26)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x21, // Report ID (33)
|
||||
0x09, 0x27, // Usage (0x27)
|
||||
0x95, 0x04, // Report Count (4)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x22, // Report ID (34)
|
||||
0x09, 0x40, // Usage (0x40)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x80, // Report ID (-128)
|
||||
0x09, 0x28, // Usage (0x28)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x81, // Report ID (-127)
|
||||
0x09, 0x29, // Usage (0x29)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x82, // Report ID (-126)
|
||||
0x09, 0x2A, // Usage (0x2A)
|
||||
0x95, 0x09, // Report Count (9)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x83, // Report ID (-125)
|
||||
0x09, 0x2B, // Usage (0x2B)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x84, // Report ID (-124)
|
||||
0x09, 0x2C, // Usage (0x2C)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x85, // Report ID (-123)
|
||||
0x09, 0x2D, // Usage (0x2D)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xA0, // Report ID (-96)
|
||||
0x09, 0x2E, // Usage (0x2E)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xE0, // Report ID (-32)
|
||||
0x09, 0x2F, // Usage (0x2F)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xF0, // Report ID (-16)
|
||||
0x09, 0x30, // Usage (0x30)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xF1, // Report ID (-15)
|
||||
0x09, 0x31, // Usage (0x31)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xF2, // Report ID (-14)
|
||||
0x09, 0x32, // Usage (0x32)
|
||||
0x95, 0x34, // Report Count (52)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xF4, // Report ID (-12)
|
||||
0x09, 0x35, // Usage (0x35)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0xF5, // Report ID (-11)
|
||||
0x09, 0x36, // Usage (0x36)
|
||||
0x95, 0x03, // Report Count (3)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x60, // Report ID (96)
|
||||
0x09, 0x41, // Usage (0x41)
|
||||
0x95, 0x3F, // Report Count (63)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x61, // Report ID (97)
|
||||
0x09, 0x42, // Usage (0x42)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x62, // Report ID (98)
|
||||
0x09, 0x43, // Usage (0x43)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x63, // Report ID (99)
|
||||
0x09, 0x44, // Usage (0x44)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x64, // Report ID (100)
|
||||
0x09, 0x45, // Usage (0x45)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x65, // Report ID (101)
|
||||
0x09, 0x46, // Usage (0x46)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x68, // Report ID (104)
|
||||
0x09, 0x47, // Usage (0x47)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x70, // Report ID (112)
|
||||
0x09, 0x48, // Usage (0x48)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x71, // Report ID (113)
|
||||
0x09, 0x49, // Usage (0x49)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x72, // Report ID (114)
|
||||
0x09, 0x4A, // Usage (0x4A)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x73, // Report ID (115)
|
||||
0x09, 0x4B, // Usage (0x4B)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x74, // Report ID (116)
|
||||
0x09, 0x4C, // Usage (0x4C)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x75, // Report ID (117)
|
||||
0x09, 0x4D, // Usage (0x4D)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x76, // Report ID (118)
|
||||
0x09, 0x4E, // Usage (0x4E)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x77, // Report ID (119)
|
||||
0x09, 0x4F, // Usage (0x4F)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x78, // Report ID (120)
|
||||
0x09, 0x50, // Usage (0x50)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x79, // Report ID (121)
|
||||
0x09, 0x51, // Usage (0x51)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x7A, // Report ID (122)
|
||||
0x09, 0x52, // Usage (0x52)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x7B, // Report ID (123)
|
||||
0x09, 0x53, // Usage (0x53)
|
||||
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0xC0, // End Collection
|
||||
// 405 bytes
|
||||
};
|
||||
#endif
|
||||
|
||||
// Invoked when received GET HID REPORT DESCRIPTOR
|
||||
// Application return pointer to descriptor
|
||||
// Descriptor contents must exist long enough for transfer to complete
|
||||
uint8_t const *tud_hid_descriptor_report_cb(uint8_t itf) {
|
||||
(void) itf;
|
||||
return desc_hid_report;
|
||||
#ifdef ENABLE_DSE
|
||||
return desc_hid_report_dse;
|
||||
#else
|
||||
return desc_hid_report_ds;
|
||||
#endif
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
|
||||
Reference in New Issue
Block a user