diff options
author | Jack Humbert <jack.humb@gmail.com> | 2017-11-17 11:53:46 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-17 11:53:46 -0500 |
commit | f5a9758cea0cf65e4c4270aa55738e423213b82c (patch) | |
tree | 97a65d36de7418a15bc2dc8de196defce80fc099 /tmk_core/protocol/lufa | |
parent | f07e2cdd9df32fc26495bff37369cf5f6c13e23f (diff) |
Adds serial number string to USB descriptors (#1996)
* add serial number string to usb descriptors
* better name for serial number
Diffstat (limited to 'tmk_core/protocol/lufa')
-rw-r--r-- | tmk_core/protocol/lufa/descriptor.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/tmk_core/protocol/lufa/descriptor.c b/tmk_core/protocol/lufa/descriptor.c index 357954368b..e9f7f87308 100644 --- a/tmk_core/protocol/lufa/descriptor.c +++ b/tmk_core/protocol/lufa/descriptor.c @@ -275,7 +275,7 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = .ManufacturerStrIndex = 0x01, .ProductStrIndex = 0x02, - .SerialNumStrIndex = NO_DESCRIPTOR, + .SerialNumStrIndex = 0x03, .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS }; @@ -860,6 +860,18 @@ const USB_Descriptor_String_t PROGMEM ProductString = .UnicodeString = LSTR(PRODUCT) }; +#ifndef SERIAL_NUMBER + #define SERIAL_NUMBER 0 +#endif + +const USB_Descriptor_String_t PROGMEM SerialNumberString = +{ + /* subtract 1 for null terminator */ + .Header = {.Size = USB_STRING_LEN(sizeof(STR(SERIAL_NUMBER))-1), .Type = DTYPE_String}, + + .UnicodeString = LSTR(SERIAL_NUMBER) +}; + /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" * documentation) by the application code so that the address and size of a requested descriptor can be given @@ -902,6 +914,10 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, Address = &ProductString; Size = pgm_read_byte(&ProductString.Header.Size); break; + case 0x03: + Address = &SerialNumberString; + Size = pgm_read_byte(&SerialNumberString.Header.Size); + break; } break; case HID_DTYPE_HID: |