diff options
| -rw-r--r-- | tmk_core/protocol/arm_atsam/main_arm_atsam.c | 1 | ||||
| -rw-r--r-- | tmk_core/protocol/arm_atsam/usb/udi_device_conf.h | 4 | ||||
| -rw-r--r-- | tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c | 42 | ||||
| -rw-r--r-- | tmk_core/protocol/chibios/usb_main.c | 20 | ||||
| -rw-r--r-- | tmk_core/protocol/lufa/lufa.c | 2 | ||||
| -rw-r--r-- | tmk_core/protocol/usb_descriptor.c | 16 | ||||
| -rw-r--r-- | tmk_core/protocol/vusb/vusb.c | 55 |
7 files changed, 78 insertions, 62 deletions
diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.c b/tmk_core/protocol/arm_atsam/main_arm_atsam.c index 9c8073dd9..e952a427e 100644 --- a/tmk_core/protocol/arm_atsam/main_arm_atsam.c +++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.c | |||
| @@ -130,7 +130,6 @@ void send_extra(uint8_t report_id, uint16_t data) { | |||
| 130 | 130 | ||
| 131 | void send_system(uint16_t data) { | 131 | void send_system(uint16_t data) { |
| 132 | #ifdef EXTRAKEY_ENABLE | 132 | #ifdef EXTRAKEY_ENABLE |
| 133 | if (data != 0) data = data - SYSTEM_POWER_DOWN + 1; | ||
| 134 | send_extra(REPORT_ID_SYSTEM, data); | 133 | send_extra(REPORT_ID_SYSTEM, data); |
| 135 | #endif // EXTRAKEY_ENABLE | 134 | #endif // EXTRAKEY_ENABLE |
| 136 | } | 135 | } |
diff --git a/tmk_core/protocol/arm_atsam/usb/udi_device_conf.h b/tmk_core/protocol/arm_atsam/usb/udi_device_conf.h index f22f5003a..80556205f 100644 --- a/tmk_core/protocol/arm_atsam/usb/udi_device_conf.h +++ b/tmk_core/protocol/arm_atsam/usb/udi_device_conf.h | |||
| @@ -327,7 +327,7 @@ typedef struct { | |||
| 327 | } udi_hid_exk_desc_t; | 327 | } udi_hid_exk_desc_t; |
| 328 | 328 | ||
| 329 | typedef struct { | 329 | typedef struct { |
| 330 | uint8_t array[54]; | 330 | uint8_t array[50]; |
| 331 | } udi_hid_exk_report_desc_t; | 331 | } udi_hid_exk_report_desc_t; |
| 332 | 332 | ||
| 333 | # define UDI_HID_EXK_DESC \ | 333 | # define UDI_HID_EXK_DESC \ |
| @@ -429,7 +429,7 @@ typedef struct { | |||
| 429 | } udi_hid_raw_desc_t; | 429 | } udi_hid_raw_desc_t; |
| 430 | 430 | ||
| 431 | typedef struct { | 431 | typedef struct { |
| 432 | uint8_t array[27]; | 432 | uint8_t array[26]; |
| 433 | } udi_hid_raw_report_desc_t; | 433 | } udi_hid_raw_report_desc_t; |
| 434 | 434 | ||
| 435 | # define UDI_HID_RAW_DESC \ | 435 | # define UDI_HID_RAW_DESC \ |
diff --git a/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c index 5b3295407..cf9297dc7 100644 --- a/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c +++ b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c | |||
| @@ -377,39 +377,33 @@ static uint8_t udi_hid_exk_report_trans[UDI_HID_EXK_REPORT_SIZE]; | |||
| 377 | 377 | ||
| 378 | COMPILER_WORD_ALIGNED | 378 | COMPILER_WORD_ALIGNED |
| 379 | UDC_DESC_STORAGE udi_hid_exk_report_desc_t udi_hid_exk_report_desc = {{ | 379 | UDC_DESC_STORAGE udi_hid_exk_report_desc_t udi_hid_exk_report_desc = {{ |
| 380 | // clang-format off | ||
| 380 | 0x05, 0x01, // Usage Page (Generic Desktop) | 381 | 0x05, 0x01, // Usage Page (Generic Desktop) |
| 381 | 0x09, 0x80, // Usage (System Control) | 382 | 0x09, 0x80, // Usage (System Control) |
| 382 | 0xA1, 0x01, // Collection (Application) | 383 | 0xA1, 0x01, // Collection (Application) |
| 383 | 0x85, REPORT_ID_SYSTEM, // Report ID | 384 | 0x85, REPORT_ID_SYSTEM, // Report ID |
| 384 | 0x1A, 0x81, | 385 | 0x19, 0x01, // Usage Minimum (Pointer) |
| 385 | 0x00, // Usage Minimum (81) (System Power Down) | 386 | 0x2A, 0xB7, 0x00, // Usage Maximum (System Display LCD Autoscale) |
| 386 | 0x2A, 0x83, | 387 | 0x15, 0x01, // Logical Minimum |
| 387 | 0x00, // Usage Maximum (83) (System Wake Up) | 388 | 0x26, 0xB7, 0x00, // Logical Maximum |
| 388 | 0x16, 0x01, | 389 | 0x95, 0x01, // Report Count (1) |
| 389 | 0x00, // Logical Minimum (1) | 390 | 0x75, 0x10, // Report Size (16) |
| 390 | 0x26, 0x03, | 391 | 0x81, 0x00, // Input (Data, Array, Absolute) |
| 391 | 0x00, // Logical Maximum (3) | 392 | 0xC0, // End Collection |
| 392 | 0x95, 0x01, // Report Count (1) | ||
| 393 | 0x75, 0x10, // Report Size (16) | ||
| 394 | 0x81, 0x00, // Input (Data, Array, Absolute) | ||
| 395 | 0xC0, // End Collection | ||
| 396 | 393 | ||
| 397 | 0x05, 0x0C, // Usage Page (Consumer) | 394 | 0x05, 0x0C, // Usage Page (Consumer) |
| 398 | 0x09, 0x01, // Usage (Consumer Control) | 395 | 0x09, 0x01, // Usage (Consumer Control) |
| 399 | 0xA1, 0x01, // Collection (Application) | 396 | 0xA1, 0x01, // Collection (Application) |
| 400 | 0x85, REPORT_ID_CONSUMER, // Report ID | 397 | 0x85, REPORT_ID_CONSUMER, // Report ID |
| 401 | 0x1A, 0x01, | 398 | 0x19, 0x01, // Usage Minimum (Consumer Control) |
| 402 | 0x00, // Usage Minimum (Consumer Control) | 399 | 0x2A, 0xA0, 0x02, // Usage Maximum (AC Desktop Show All Applications) |
| 403 | 0x2A, 0x9C, | 400 | 0x15, 0x01, // Logical Minimum |
| 404 | 0x02, // Usage Maximum (AC Distribute Vertically) | 401 | 0x26, 0xA0, 0x02, // Logical Maximum |
| 405 | 0x16, 0x01, | 402 | 0x95, 0x01, // Report Count (1) |
| 406 | 0x00, // Logical Minimum | 403 | 0x75, 0x10, // Report Size (16) |
| 407 | 0x26, 0x9C, | 404 | 0x81, 0x00, // Input (Data, Array, Absolute) |
| 408 | 0x02, // Logical Maximum | 405 | 0xC0 // End Collection |
| 409 | 0x95, 0x01, // Report Count (1) | 406 | //clang-format on |
| 410 | 0x75, 0x10, // Report Size (16) | ||
| 411 | 0x81, 0x00, // Input (Data, Array, Absolute) | ||
| 412 | 0xC0 // End Collection | ||
| 413 | }}; | 407 | }}; |
| 414 | 408 | ||
| 415 | static bool udi_hid_exk_setreport(void); | 409 | static bool udi_hid_exk_setreport(void); |
diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index d5eeffcbe..ec95167cf 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c | |||
| @@ -732,7 +732,7 @@ void shared_in_cb(USBDriver *usbp, usbep_t ep) { | |||
| 732 | */ | 732 | */ |
| 733 | 733 | ||
| 734 | #ifdef EXTRAKEY_ENABLE | 734 | #ifdef EXTRAKEY_ENABLE |
| 735 | static void send_extra_report(uint8_t report_id, uint16_t data) { | 735 | static void send_extra(uint8_t report_id, uint16_t data) { |
| 736 | osalSysLock(); | 736 | osalSysLock(); |
| 737 | if (usbGetDriverStateI(&USB_DRIVER) != USB_ACTIVE) { | 737 | if (usbGetDriverStateI(&USB_DRIVER) != USB_ACTIVE) { |
| 738 | osalSysUnlock(); | 738 | osalSysUnlock(); |
| @@ -744,15 +744,19 @@ static void send_extra_report(uint8_t report_id, uint16_t data) { | |||
| 744 | usbStartTransmitI(&USB_DRIVER, SHARED_IN_EPNUM, (uint8_t *)&report, sizeof(report_extra_t)); | 744 | usbStartTransmitI(&USB_DRIVER, SHARED_IN_EPNUM, (uint8_t *)&report, sizeof(report_extra_t)); |
| 745 | osalSysUnlock(); | 745 | osalSysUnlock(); |
| 746 | } | 746 | } |
| 747 | #endif | ||
| 747 | 748 | ||
| 748 | void send_system(uint16_t data) { send_extra_report(REPORT_ID_SYSTEM, data); } | 749 | void send_system(uint16_t data) { |
| 749 | 750 | #ifdef EXTRAKEY_ENABLE | |
| 750 | void send_consumer(uint16_t data) { send_extra_report(REPORT_ID_CONSUMER, data); } | 751 | send_extra(REPORT_ID_SYSTEM, data); |
| 752 | #endif | ||
| 753 | } | ||
| 751 | 754 | ||
| 752 | #else /* EXTRAKEY_ENABLE */ | 755 | void send_consumer(uint16_t data) { |
| 753 | void send_system(uint16_t data) { (void)data; } | 756 | #ifdef EXTRAKEY_ENABLE |
| 754 | void send_consumer(uint16_t data) { (void)data; } | 757 | send_extra(REPORT_ID_CONSUMER, data); |
| 755 | #endif /* EXTRAKEY_ENABLE */ | 758 | #endif |
| 759 | } | ||
| 756 | 760 | ||
| 757 | /* --------------------------------------------------------- | 761 | /* --------------------------------------------------------- |
| 758 | * Console functions | 762 | * Console functions |
diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 933b212c9..738c2a6d3 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c | |||
| @@ -690,7 +690,7 @@ static void send_extra(uint8_t report_id, uint16_t data) { | |||
| 690 | */ | 690 | */ |
| 691 | static void send_system(uint16_t data) { | 691 | static void send_system(uint16_t data) { |
| 692 | #ifdef EXTRAKEY_ENABLE | 692 | #ifdef EXTRAKEY_ENABLE |
| 693 | send_extra(REPORT_ID_SYSTEM, data - SYSTEM_POWER_DOWN + 1); | 693 | send_extra(REPORT_ID_SYSTEM, data); |
| 694 | #endif | 694 | #endif |
| 695 | } | 695 | } |
| 696 | 696 | ||
diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index 70032d69f..f2b91b099 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c | |||
| @@ -166,10 +166,10 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { | |||
| 166 | HID_RI_USAGE(8, 0x80), // System Control | 166 | HID_RI_USAGE(8, 0x80), // System Control |
| 167 | HID_RI_COLLECTION(8, 0x01), // Application | 167 | HID_RI_COLLECTION(8, 0x01), // Application |
| 168 | HID_RI_REPORT_ID(8, REPORT_ID_SYSTEM), | 168 | HID_RI_REPORT_ID(8, REPORT_ID_SYSTEM), |
| 169 | HID_RI_USAGE_MINIMUM(16, 0x0081), // System Power Down | 169 | HID_RI_USAGE_MINIMUM(8, 0x01), // Pointer |
| 170 | HID_RI_USAGE_MAXIMUM(16, 0x0083), // System Wake Up | 170 | HID_RI_USAGE_MAXIMUM(16, 0x00B7), // System Display LCD Autoscale |
| 171 | HID_RI_LOGICAL_MINIMUM(16, 0x0001), | 171 | HID_RI_LOGICAL_MINIMUM(8, 0x01), |
| 172 | HID_RI_LOGICAL_MAXIMUM(16, 0x0003), | 172 | HID_RI_LOGICAL_MAXIMUM(16, 0x00B7), |
| 173 | HID_RI_REPORT_COUNT(8, 1), | 173 | HID_RI_REPORT_COUNT(8, 1), |
| 174 | HID_RI_REPORT_SIZE(8, 16), | 174 | HID_RI_REPORT_SIZE(8, 16), |
| 175 | HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), | 175 | HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), |
| @@ -179,10 +179,10 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { | |||
| 179 | HID_RI_USAGE(8, 0x01), // Consumer Control | 179 | HID_RI_USAGE(8, 0x01), // Consumer Control |
| 180 | HID_RI_COLLECTION(8, 0x01), // Application | 180 | HID_RI_COLLECTION(8, 0x01), // Application |
| 181 | HID_RI_REPORT_ID(8, REPORT_ID_CONSUMER), | 181 | HID_RI_REPORT_ID(8, REPORT_ID_CONSUMER), |
| 182 | HID_RI_USAGE_MINIMUM(16, 0x0001), // Consumer Control | 182 | HID_RI_USAGE_MINIMUM(8, 0x01), // Consumer Control |
| 183 | HID_RI_USAGE_MAXIMUM(16, 0x029C), // AC Distribute Vertically | 183 | HID_RI_USAGE_MAXIMUM(16, 0x02A0), // AC Desktop Show All Applications |
| 184 | HID_RI_LOGICAL_MINIMUM(16, 0x0001), | 184 | HID_RI_LOGICAL_MINIMUM(8, 0x01), |
| 185 | HID_RI_LOGICAL_MAXIMUM(16, 0x029C), | 185 | HID_RI_LOGICAL_MAXIMUM(16, 0x02A0), |
| 186 | HID_RI_REPORT_COUNT(8, 1), | 186 | HID_RI_REPORT_COUNT(8, 1), |
| 187 | HID_RI_REPORT_SIZE(8, 16), | 187 | HID_RI_REPORT_SIZE(8, 16), |
| 188 | HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), | 188 | HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE), |
diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index 2d2e5ca5c..abf723952 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c | |||
| @@ -129,7 +129,7 @@ static void send_extra(uint8_t report_id, uint16_t data) { | |||
| 129 | 129 | ||
| 130 | static void send_system(uint16_t data) { | 130 | static void send_system(uint16_t data) { |
| 131 | #ifdef EXTRAKEY_ENABLE | 131 | #ifdef EXTRAKEY_ENABLE |
| 132 | send_extra(REPORT_ID_SYSTEM, data - SYSTEM_POWER_DOWN + 1); | 132 | send_extra(REPORT_ID_SYSTEM, data); |
| 133 | #endif | 133 | #endif |
| 134 | } | 134 | } |
| 135 | 135 | ||
| @@ -251,7 +251,9 @@ const PROGMEM uchar keyboard_hid_report[] = { | |||
| 251 | 0xC0 // End Collection | 251 | 0xC0 // End Collection |
| 252 | }; | 252 | }; |
| 253 | 253 | ||
| 254 | const PROGMEM uchar mouse_hid_report[] = { | 254 | #if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) |
| 255 | const PROGMEM uchar mouse_extra_hid_report[] = { | ||
| 256 | # ifdef MOUSE_ENABLE | ||
| 255 | // Mouse report descriptor | 257 | // Mouse report descriptor |
| 256 | 0x05, 0x01, // Usage Page (Generic Desktop) | 258 | 0x05, 0x01, // Usage Page (Generic Desktop) |
| 257 | 0x09, 0x02, // Usage (Mouse) | 259 | 0x09, 0x02, // Usage (Mouse) |
| @@ -300,17 +302,18 @@ const PROGMEM uchar mouse_hid_report[] = { | |||
| 300 | 0x81, 0x06, // Input (Data, Variable, Relative) | 302 | 0x81, 0x06, // Input (Data, Variable, Relative) |
| 301 | 0xC0, // End Collection | 303 | 0xC0, // End Collection |
| 302 | 0xC0, // End Collection | 304 | 0xC0, // End Collection |
| 305 | # endif | ||
| 303 | 306 | ||
| 304 | #ifdef EXTRAKEY_ENABLE | 307 | # ifdef EXTRAKEY_ENABLE |
| 305 | // Extrakeys report descriptor | 308 | // Extrakeys report descriptor |
| 306 | 0x05, 0x01, // Usage Page (Generic Desktop) | 309 | 0x05, 0x01, // Usage Page (Generic Desktop) |
| 307 | 0x09, 0x80, // Usage (System Control) | 310 | 0x09, 0x80, // Usage (System Control) |
| 308 | 0xA1, 0x01, // Collection (Application) | 311 | 0xA1, 0x01, // Collection (Application) |
| 309 | 0x85, REPORT_ID_SYSTEM, // Report ID | 312 | 0x85, REPORT_ID_SYSTEM, // Report ID |
| 310 | 0x1A, 0x81, 0x00, // Usage Minimum (System Power Down) | 313 | 0x19, 0x01, // Usage Minimum (Pointer) |
| 311 | 0x2A, 0x83, 0x00, // Usage Maximum (System Wake Up) | 314 | 0x2A, 0xB7, 0x00, // Usage Maximum (System Display LCD Autoscale) |
| 312 | 0x16, 0x01, 0x00, // Logical Minimum | 315 | 0x15, 0x01, // Logical Minimum |
| 313 | 0x26, 0x03, 0x00, // Logical Maximum | 316 | 0x26, 0xB7, 0x00, // Logical Maximum |
| 314 | 0x95, 0x01, // Report Count (1) | 317 | 0x95, 0x01, // Report Count (1) |
| 315 | 0x75, 0x10, // Report Size (16) | 318 | 0x75, 0x10, // Report Size (16) |
| 316 | 0x81, 0x00, // Input (Data, Array, Absolute) | 319 | 0x81, 0x00, // Input (Data, Array, Absolute) |
| @@ -320,16 +323,17 @@ const PROGMEM uchar mouse_hid_report[] = { | |||
| 320 | 0x09, 0x01, // Usage (Consumer Control) | 323 | 0x09, 0x01, // Usage (Consumer Control) |
| 321 | 0xA1, 0x01, // Collection (Application) | 324 | 0xA1, 0x01, // Collection (Application) |
| 322 | 0x85, REPORT_ID_CONSUMER, // Report ID | 325 | 0x85, REPORT_ID_CONSUMER, // Report ID |
| 323 | 0x1A, 0x01, 0x00, // Usage Minimum (Consumer Control) | 326 | 0x19, 0x01, // Usage Minimum (Consumer Control) |
| 324 | 0x2A, 0x9C, 0x02, // Usage Maximum (AC Distribute Vertically) | 327 | 0x2A, 0xA0, 0x02, // Usage Maximum (AC Desktop Show All Applications) |
| 325 | 0x16, 0x01, 0x00, // Logical Minimum | 328 | 0x15, 0x01, // Logical Minimum |
| 326 | 0x26, 0x9C, 0x02, // Logical Maximum | 329 | 0x26, 0xA0, 0x02, // Logical Maximum |
| 327 | 0x95, 0x01, // Report Count (1) | 330 | 0x95, 0x01, // Report Count (1) |
| 328 | 0x75, 0x10, // Report Size (16) | 331 | 0x75, 0x10, // Report Size (16) |
| 329 | 0x81, 0x00, // Input (Data, Array, Absolute) | 332 | 0x81, 0x00, // Input (Data, Array, Absolute) |
| 330 | 0xC0 // End Collection | 333 | 0xC0 // End Collection |
| 331 | #endif | 334 | # endif |
| 332 | }; | 335 | }; |
| 336 | #endif | ||
| 333 | 337 | ||
| 334 | #ifndef USB_MAX_POWER_CONSUMPTION | 338 | #ifndef USB_MAX_POWER_CONSUMPTION |
| 335 | # define USB_MAX_POWER_CONSUMPTION 500 | 339 | # define USB_MAX_POWER_CONSUMPTION 500 |
| @@ -350,10 +354,19 @@ const PROGMEM char usbDescriptorConfiguration[] = { | |||
| 350 | /* USB configuration descriptor */ | 354 | /* USB configuration descriptor */ |
| 351 | 9, /* sizeof(usbDescriptorConfiguration): length of descriptor in bytes */ | 355 | 9, /* sizeof(usbDescriptorConfiguration): length of descriptor in bytes */ |
| 352 | USBDESCR_CONFIG, /* descriptor type */ | 356 | USBDESCR_CONFIG, /* descriptor type */ |
| 353 | 9 + (9 + 9 + 7) + (9 + 9 + 7), 0, | 357 | # if defined (MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) |
| 358 | 59, // 9 + (9 + 9 + 7) + (9 + 9 + 7) | ||
| 359 | #else | ||
| 360 | 34, // 9 + (9 + 9 + 7) | ||
| 361 | # endif | ||
| 362 | 0, | ||
| 354 | // 18 + 7 * USB_CFG_HAVE_INTRIN_ENDPOINT + 7 * USB_CFG_HAVE_INTRIN_ENDPOINT3 + 9, 0, | 363 | // 18 + 7 * USB_CFG_HAVE_INTRIN_ENDPOINT + 7 * USB_CFG_HAVE_INTRIN_ENDPOINT3 + 9, 0, |
| 355 | /* total length of data returned (including inlined descriptors) */ | 364 | /* total length of data returned (including inlined descriptors) */ |
| 365 | # if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) | ||
| 356 | 2, /* number of interfaces in this configuration */ | 366 | 2, /* number of interfaces in this configuration */ |
| 367 | # else | ||
| 368 | 1, | ||
| 369 | #endif | ||
| 357 | 1, /* index of this configuration */ | 370 | 1, /* index of this configuration */ |
| 358 | 0, /* configuration name string index */ | 371 | 0, /* configuration name string index */ |
| 359 | # if USB_CFG_IS_SELF_POWERED | 372 | # if USB_CFG_IS_SELF_POWERED |
| @@ -391,8 +404,9 @@ const PROGMEM char usbDescriptorConfiguration[] = { | |||
| 391 | USB_POLLING_INTERVAL_MS, /* in ms */ | 404 | USB_POLLING_INTERVAL_MS, /* in ms */ |
| 392 | # endif | 405 | # endif |
| 393 | 406 | ||
| 407 | # if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) | ||
| 394 | /* | 408 | /* |
| 395 | * Mouse interface | 409 | * Mouse/extrakeys interface |
| 396 | */ | 410 | */ |
| 397 | /* Interface descriptor */ | 411 | /* Interface descriptor */ |
| 398 | 9, /* sizeof(usbDescrInterface): length of descriptor in bytes */ | 412 | 9, /* sizeof(usbDescrInterface): length of descriptor in bytes */ |
| @@ -411,8 +425,8 @@ const PROGMEM char usbDescriptorConfiguration[] = { | |||
| 411 | 0x00, /* target country code */ | 425 | 0x00, /* target country code */ |
| 412 | 0x01, /* number of HID Report (or other HID class) Descriptor infos to follow */ | 426 | 0x01, /* number of HID Report (or other HID class) Descriptor infos to follow */ |
| 413 | 0x22, /* descriptor type: report */ | 427 | 0x22, /* descriptor type: report */ |
| 414 | sizeof(mouse_hid_report), 0, /* total length of report descriptor */ | 428 | sizeof(mouse_extra_hid_report), 0, /* total length of report descriptor */ |
| 415 | # if USB_CFG_HAVE_INTRIN_ENDPOINT3 /* endpoint descriptor for endpoint 3 */ | 429 | # if USB_CFG_HAVE_INTRIN_ENDPOINT3 /* endpoint descriptor for endpoint 3 */ |
| 416 | /* Endpoint descriptor */ | 430 | /* Endpoint descriptor */ |
| 417 | 7, /* sizeof(usbDescrEndpoint) */ | 431 | 7, /* sizeof(usbDescrEndpoint) */ |
| 418 | USBDESCR_ENDPOINT, /* descriptor type = endpoint */ | 432 | USBDESCR_ENDPOINT, /* descriptor type = endpoint */ |
| @@ -420,6 +434,7 @@ const PROGMEM char usbDescriptorConfiguration[] = { | |||
| 420 | 0x03, /* attrib: Interrupt endpoint */ | 434 | 0x03, /* attrib: Interrupt endpoint */ |
| 421 | 8, 0, /* maximum packet size */ | 435 | 8, 0, /* maximum packet size */ |
| 422 | USB_POLLING_INTERVAL_MS, /* in ms */ | 436 | USB_POLLING_INTERVAL_MS, /* in ms */ |
| 437 | # endif | ||
| 423 | # endif | 438 | # endif |
| 424 | }; | 439 | }; |
| 425 | #endif | 440 | #endif |
| @@ -448,10 +463,12 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) { | |||
| 448 | usbMsgPtr = (unsigned char *)(usbDescriptorConfiguration + 9 + 9); | 463 | usbMsgPtr = (unsigned char *)(usbDescriptorConfiguration + 9 + 9); |
| 449 | len = 9; | 464 | len = 9; |
| 450 | break; | 465 | break; |
| 466 | #if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) | ||
| 451 | case 1: | 467 | case 1: |
| 452 | usbMsgPtr = (unsigned char *)(usbDescriptorConfiguration + 9 + (9 + 9 + 7) + 9); | 468 | usbMsgPtr = (unsigned char *)(usbDescriptorConfiguration + 9 + (9 + 9 + 7) + 9); |
| 453 | len = 9; | 469 | len = 9; |
| 454 | break; | 470 | break; |
| 471 | #endif | ||
| 455 | } | 472 | } |
| 456 | break; | 473 | break; |
| 457 | case USBDESCR_HID_REPORT: | 474 | case USBDESCR_HID_REPORT: |
| @@ -461,10 +478,12 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) { | |||
| 461 | usbMsgPtr = (unsigned char *)keyboard_hid_report; | 478 | usbMsgPtr = (unsigned char *)keyboard_hid_report; |
| 462 | len = sizeof(keyboard_hid_report); | 479 | len = sizeof(keyboard_hid_report); |
| 463 | break; | 480 | break; |
| 481 | #if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) | ||
| 464 | case 1: | 482 | case 1: |
| 465 | usbMsgPtr = (unsigned char *)mouse_hid_report; | 483 | usbMsgPtr = (unsigned char *)mouse_extra_hid_report; |
| 466 | len = sizeof(mouse_hid_report); | 484 | len = sizeof(mouse_extra_hid_report); |
| 467 | break; | 485 | break; |
| 486 | #endif | ||
| 468 | } | 487 | } |
| 469 | break; | 488 | break; |
| 470 | } | 489 | } |
