diff options
author | Nick Brassel <nick@tzarc.org> | 2020-05-21 20:31:42 +1000 |
---|---|---|
committer | Florian Didron <fdidron@users.noreply.github.com> | 2020-06-12 17:00:27 +0900 |
commit | 68c005d4a713c80763899843588b4eea8719dd43 (patch) | |
tree | 1fdd7c400f297927358c823ff01e66c96a77fb56 /tmk_core/protocol | |
parent | 7a685cf795d7f856667f90bc86d93bf85d18f1cc (diff) |
Allow for overriding RAW endpoint usage page and ID. (#8834)
* Allow for overriding RAW endpoint usage page and ID.
* Move usb_descriptor_common.h.
* Docs update.
Diffstat (limited to 'tmk_core/protocol')
-rw-r--r-- | tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c | 5 | ||||
-rw-r--r-- | tmk_core/protocol/usb_descriptor.c | 5 | ||||
-rw-r--r-- | tmk_core/protocol/usb_descriptor_common.h | 31 | ||||
-rw-r--r-- | tmk_core/protocol/vusb/vusb.c | 7 |
4 files changed, 41 insertions, 7 deletions
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 91f210f214..e3fa65574e 100644 --- a/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c +++ b/tmk_core/protocol/arm_atsam/usb/udi_hid_kbd.c @@ -55,6 +55,7 @@ #include "udi_hid_kbd.h" #include <string.h> #include "report.h" +#include "usb_descriptor_common.h" //*************************************************************************** // KBD @@ -647,8 +648,8 @@ static uint8_t udi_hid_raw_report_recv[UDI_HID_RAW_REPORT_SIZE]; COMPILER_WORD_ALIGNED UDC_DESC_STORAGE udi_hid_raw_report_desc_t udi_hid_raw_report_desc = {{ - 0x06, 0x60, 0xFF, // Usage Page (Vendor Defined) - 0x09, 0x61, // Usage (Vendor Defined) + 0x06, RAW_USAGE_PAGE_LO, RAW_USAGE_PAGE_HI, // Usage Page (Vendor Defined) + 0x09, RAW_USAGE_ID, // Usage (Vendor Defined) 0xA1, 0x01, // Collection (Application) 0x75, 0x08, // Report Size (8) 0x15, 0x00, // Logical Minimum (0) diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index a03c318ca5..7a88516035 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -42,6 +42,7 @@ #ifdef WEBUSB_ENABLE #include "webusb_descriptor.h" #endif +#include "usb_descriptor_common.h" // clang-format off @@ -235,8 +236,8 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { #ifdef RAW_ENABLE const USB_Descriptor_HIDReport_Datatype_t PROGMEM RawReport[] = { - HID_RI_USAGE_PAGE(16, 0xFF60), // Vendor Defined - HID_RI_USAGE(8, 0x61), // Vendor Defined + HID_RI_USAGE_PAGE(16, RAW_USAGE_PAGE), // Vendor Defined + HID_RI_USAGE(8, RAW_USAGE_ID), // Vendor Defined HID_RI_COLLECTION(8, 0x01), // Application // Data to host HID_RI_USAGE(8, 0x62), // Vendor Defined diff --git a/tmk_core/protocol/usb_descriptor_common.h b/tmk_core/protocol/usb_descriptor_common.h new file mode 100644 index 0000000000..b1f602c82e --- /dev/null +++ b/tmk_core/protocol/usb_descriptor_common.h @@ -0,0 +1,31 @@ +/* Copyright 2020 Nick Brassel (tzarc) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +///////////////////// +// RAW Usage page and ID configuration + +#ifndef RAW_USAGE_PAGE +# define RAW_USAGE_PAGE 0xFF60 +#endif + +#ifndef RAW_USAGE_ID +# define RAW_USAGE_ID 0x61 +#endif + +#define RAW_USAGE_PAGE_HI ((uint8_t)(RAW_USAGE_PAGE >> 8)) +#define RAW_USAGE_PAGE_LO ((uint8_t)(RAW_USAGE_PAGE & 0xFF)) diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index 561231dc5c..5e9d6adb79 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -26,6 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "vusb.h" #include "print.h" #include "debug.h" +#include "usb_descriptor_common.h" #ifdef RAW_ENABLE # include "raw_hid.h" @@ -419,9 +420,9 @@ const PROGMEM uchar keyboard_hid_report[] = { #ifdef RAW_ENABLE const PROGMEM uchar raw_hid_report[] = { - 0x06, 0x60, 0xFF, // Usage Page (Vendor Defined) - 0x09, 0x61, // Usage (Vendor Defined) - 0xA1, 0x01, // Collection (Application) + 0x06, RAW_USAGE_PAGE_LO, RAW_USAGE_PAGE_HI, // Usage Page (Vendor Defined) + 0x09, RAW_USAGE_ID, // Usage (Vendor Defined) + 0xA1, 0x01, // Collection (Application) // Data to host 0x09, 0x62, // Usage (Vendor Defined) 0x15, 0x00, // Logical Minimum (0) |