diff --git a/right/usb_api.h b/right/usb_api.h index 0af0117..8c502dc 100644 --- a/right/usb_api.h +++ b/right/usb_api.h @@ -14,6 +14,31 @@ // Macros: + // General constants + + #define USB_DEVICE_CLASS 0x00 + #define USB_DEVICE_SUBCLASS 0x00 + #define USB_DEVICE_PROTOCOL 0x00 + + #define USB_INTERFACE_ALTERNATE_SETTING_NONE 0x00 + #define USB_STRING_DESCRIPTOR_NONE 0x00 + + // HID related constants + + #define USB_CLASS_HID 0x03 + #define USB_HID_COUNTRY_CODE_NOT_SUPPORTED 0x00 + + #define USB_DESCRIPTOR_LENGTH_HID 9 + + #define USB_HID_SUBCLASS_NONE 0 + #define USB_HID_SUBCLASS_BOOT 1 + + #define USB_HID_PROTOCOL_NONE 0 + #define USB_HID_PROTOCOL_KEYBOARD 1 + #define USB_HID_PROTOCOL_MOUSE 2 + + // HID report item related constants + #define HID_RI_USAGE_PAGE_GENERIC_DESKTOP 0x01 #define HID_RI_USAGE_PAGE_LEDS 0x08 #define HID_RI_USAGE_PAGE_BUTTONS 0x09 @@ -37,4 +62,8 @@ #define HID_RI_USAGE_PAGE_KEY_CODES 0x07 + // Miscellaneous constants + + #define USB_LANGUAGE_ID_UNITED_STATES 0x0409 + #endif diff --git a/right/usb_descriptor_configuration.c b/right/usb_descriptor_configuration.c index d9ac4ec..d8a6fbe 100644 --- a/right/usb_descriptor_configuration.c +++ b/right/usb_descriptor_configuration.c @@ -33,7 +33,7 @@ uint8_t UsbConfigurationDescriptor[USB_CONFIGURATION_DESCRIPTOR_TOTAL_LENGTH] = // Generic HID descriptor - USB_HID_DESCRIPTOR_LENGTH, + USB_DESCRIPTOR_LENGTH_HID, USB_DESCRIPTOR_TYPE_HID, USB_SHORT_GET_LOW(USB_HID_VERSION), USB_SHORT_GET_HIGH(USB_HID_VERSION), @@ -77,7 +77,7 @@ uint8_t UsbConfigurationDescriptor[USB_CONFIGURATION_DESCRIPTOR_TOTAL_LENGTH] = // Keyboard HID descriptor - USB_HID_DESCRIPTOR_LENGTH, + USB_DESCRIPTOR_LENGTH_HID, USB_DESCRIPTOR_TYPE_HID, USB_SHORT_GET_LOW(USB_HID_VERSION), USB_SHORT_GET_HIGH(USB_HID_VERSION), @@ -111,7 +111,7 @@ uint8_t UsbConfigurationDescriptor[USB_CONFIGURATION_DESCRIPTOR_TOTAL_LENGTH] = // Mouse HID descriptor - USB_HID_DESCRIPTOR_LENGTH, + USB_DESCRIPTOR_LENGTH_HID, USB_DESCRIPTOR_TYPE_HID, USB_SHORT_GET_LOW(USB_HID_VERSION), USB_SHORT_GET_HIGH(USB_HID_VERSION), diff --git a/right/usb_descriptor_device.h b/right/usb_descriptor_device.h index 97bcb6f..39828b8 100644 --- a/right/usb_descriptor_device.h +++ b/right/usb_descriptor_device.h @@ -3,37 +3,17 @@ // Macros: - #define USB_DEVICE_CLASS 0x00 - #define USB_DEVICE_SUBCLASS 0x00 - #define USB_DEVICE_PROTOCOL 0x00 - - #define USB_DEVICE_SPECIFICATION_VERSION 0x0200 - #define USB_HID_VERSION 0x0100 - #define USB_DEVICE_VENDOR_ID 0x15A2 #define USB_DEVICE_PRODUCT_ID 0x007E #define USB_DEVICE_RELEASE_NUMBER 0x0101 + #define USB_DEVICE_SPECIFICATION_VERSION 0x0200 + #define USB_HID_VERSION 0x0100 + #define USB_DEVICE_CONFIGURATION_COUNT 1 #define USB_REPORT_DESCRIPTOR_COUNT_PER_HID_DEVICE 1 #define USB_DEVICE_MAX_POWER 50 // Expressed in 2mA units - #define USB_CLASS_HID 0x03 - #define USB_HID_COUNTRY_CODE_NOT_SUPPORTED 0x00 - #define USB_INTERFACE_ALTERNATE_SETTING_NONE 0x00 - #define USB_STRING_DESCRIPTOR_NONE 0x00 - - #define USB_HID_SUBCLASS_NONE 0 - #define USB_HID_SUBCLASS_BOOT 1 - - #define USB_HID_PROTOCOL_NONE 0 - #define USB_HID_PROTOCOL_KEYBOARD 1 - #define USB_HID_PROTOCOL_MOUSE 2 - - // Descriptor lengths - - #define USB_HID_DESCRIPTOR_LENGTH 9 - // Functions: extern usb_status_t USB_DeviceGetDeviceDescriptor( diff --git a/right/usb_descriptor_strings.h b/right/usb_descriptor_strings.h index 1fabef2..8c78d39 100644 --- a/right/usb_descriptor_strings.h +++ b/right/usb_descriptor_strings.h @@ -3,13 +3,11 @@ // Macros: - #define USB_LANGUAGE_ID_UNITED_STATES 0x0409 - #define USB_STRING_DESCRIPTOR_COUNT 3 #define USB_LANGUAGE_LIST_STRING_DESCRIPTOR_LENGTH 4 - #define USB_MANUFACTURER_STRING_DESCRIPTOR_LENGTH 58 - #define USB_PRODUCT_STRING_DESCRIPTOR_LENGTH 34 + #define USB_MANUFACTURER_STRING_DESCRIPTOR_LENGTH 58 + #define USB_PRODUCT_STRING_DESCRIPTOR_LENGTH 34 #define USB_STRING_DESCRIPTOR_ID_SUPPORTED_LANGUAGES 0 #define USB_STRING_DESCRIPTOR_ID_MANUFACTURER 1