~ruther/qmk_firmware

f5a9758cea0cf65e4c4270aa55738e423213b82c — Jack Humbert 7 years ago f07e2cd
Adds serial number string to USB descriptors (#1996)

* add serial number string to usb descriptors

* better name for serial number
1 files changed, 17 insertions(+), 1 deletions(-)

M tmk_core/protocol/lufa/descriptor.c
M tmk_core/protocol/lufa/descriptor.c => tmk_core/protocol/lufa/descriptor.c +17 -1
@@ 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: