projects
/
pub
/
USBasp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0ad234c
)
Add symbolic names for USB Device String Descriptors within the demos, applications...
author
Dean Camera
<dean@fourwalledcubicle.com>
Wed, 15 May 2013 16:40:25 +0000
(18:40 +0200)
committer
Dean Camera
<dean@fourwalledcubicle.com>
Wed, 15 May 2013 16:40:25 +0000
(18:40 +0200)
90 files changed:
Bootloaders/CDC/Descriptors.c
patch
|
blob
|
blame
|
history
Bootloaders/CDC/Descriptors.h
patch
|
blob
|
blame
|
history
Bootloaders/DFU/Descriptors.c
patch
|
blob
|
blame
|
history
Bootloaders/DFU/Descriptors.h
patch
|
blob
|
blame
|
history
Bootloaders/Printer/Descriptors.c
patch
|
blob
|
blame
|
history
Bootloaders/Printer/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/AudioInput/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/AudioInput/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/AudioOutput/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/AudioOutput/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/GenericHID/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/GenericHID/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/Joystick/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/Joystick/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/Keyboard/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/Keyboard/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/MIDI/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/MIDI/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/MassStorage/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/MassStorage/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/Mouse/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/Mouse/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/RNDISEthernet/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/VirtualSerial/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/AudioInput/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/AudioInput/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/AudioOutput/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/AudioOutput/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/DualVirtualSerial/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/GenericHID/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/GenericHID/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/Joystick/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/Joystick/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/Keyboard/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/Keyboard/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/MIDI/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/MIDI/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/MassStorage/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/MassStorage/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/Mouse/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/Mouse/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/RNDISEthernet/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/VirtualSerial/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/Device/LowLevel/VirtualSerial/Descriptors.h
patch
|
blob
|
blame
|
history
Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
patch
|
blob
|
blame
|
history
Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/AVRISP-MKII/AVRISPDescriptors.c
patch
|
blob
|
blame
|
history
Projects/AVRISP-MKII/AVRISPDescriptors.h
patch
|
blob
|
blame
|
history
Projects/Benito/Descriptors.c
patch
|
blob
|
blame
|
history
Projects/Benito/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/LEDNotifier/Descriptors.c
patch
|
blob
|
blame
|
history
Projects/LEDNotifier/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/MIDIToneGenerator/Descriptors.c
patch
|
blob
|
blame
|
history
Projects/MIDIToneGenerator/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/Magstripe/Descriptors.c
patch
|
blob
|
blame
|
history
Projects/Magstripe/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/MediaController/Descriptors.c
patch
|
blob
|
blame
|
history
Projects/MediaController/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/RelayBoard/Descriptors.c
patch
|
blob
|
blame
|
history
Projects/RelayBoard/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/SerialToLCD/Descriptors.c
patch
|
blob
|
blame
|
history
Projects/SerialToLCD/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/TempDataLogger/Descriptors.c
patch
|
blob
|
blame
|
history
Projects/TempDataLogger/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/USBtoSerial/Descriptors.c
patch
|
blob
|
blame
|
history
Projects/USBtoSerial/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/Webserver/Descriptors.c
patch
|
blob
|
blame
|
history
Projects/Webserver/Descriptors.h
patch
|
blob
|
blame
|
history
Projects/XPLAINBridge/USARTDescriptors.c
patch
|
blob
|
blame
|
history
Projects/XPLAINBridge/USARTDescriptors.h
patch
|
blob
|
blame
|
history
diff --git
a/Bootloaders/CDC/Descriptors.c
b/Bootloaders/CDC/Descriptors.c
index
9c144dd
..
03a4a5d
100644
(file)
--- a/
Bootloaders/CDC/Descriptors.c
+++ b/
Bootloaders/CDC/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t DeviceDescriptor =
.ProductID = 0x204A,
.ReleaseNumber = VERSION_BCD(01.00),
.ProductID = 0x204A,
.ReleaseNumber = VERSION_BCD(01.00),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-234,17
+234,17
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
Size = sizeof(USB_Descriptor_Configuration_t);
break;
case DTYPE_String:
Size = sizeof(USB_Descriptor_Configuration_t);
break;
case DTYPE_String:
- if (
!(DescriptorNumber)
)
+ if (
DescriptorNumber == STRING_ID_Language
)
{
Address = &LanguageString;
Size = LanguageString.Header.Size;
}
{
Address = &LanguageString;
Size = LanguageString.Header.Size;
}
- else if (DescriptorNumber ==
0x01
)
+ else if (DescriptorNumber ==
STRING_ID_Manufacturer
)
{
Address = &ManufacturerString;
Size = ManufacturerString.Header.Size;
}
{
Address = &ManufacturerString;
Size = ManufacturerString.Header.Size;
}
- else if (DescriptorNumber ==
0x02
)
+ else if (DescriptorNumber ==
STRING_ID_Product
)
{
Address = &ProductString;
Size = ProductString.Header.Size;
{
Address = &ProductString;
Size = ProductString.Header.Size;
diff --git
a/Bootloaders/CDC/Descriptors.h
b/Bootloaders/CDC/Descriptors.h
index
8c358de
..
24d1a39
100644
(file)
--- a/
Bootloaders/CDC/Descriptors.h
+++ b/
Bootloaders/CDC/Descriptors.h
@@
-127,6
+127,17
@@
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Bootloaders/DFU/Descriptors.c
b/Bootloaders/DFU/Descriptors.c
index
3d70cf5
..
5901dad
100644
(file)
--- a/
Bootloaders/DFU/Descriptors.c
+++ b/
Bootloaders/DFU/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t DeviceDescriptor =
.ProductID = PRODUCT_ID_CODE,
.ReleaseNumber = VERSION_BCD(00.00),
.ProductID = PRODUCT_ID_CODE,
.ReleaseNumber = VERSION_BCD(00.00),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-175,17
+175,17
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
Size = sizeof(USB_Descriptor_Configuration_t);
break;
case DTYPE_String:
Size = sizeof(USB_Descriptor_Configuration_t);
break;
case DTYPE_String:
- if (
!(DescriptorNumber)
)
+ if (
DescriptorNumber == STRING_ID_Language
)
{
Address = &LanguageString;
Size = LanguageString.Header.Size;
}
{
Address = &LanguageString;
Size = LanguageString.Header.Size;
}
- else if (DescriptorNumber ==
0x01
)
+ else if (DescriptorNumber ==
STRING_ID_Manufacturer
)
{
Address = &ManufacturerString;
Size = ManufacturerString.Header.Size;
}
{
Address = &ManufacturerString;
Size = ManufacturerString.Header.Size;
}
- else if (DescriptorNumber ==
0x02
)
+ else if (DescriptorNumber ==
STRING_ID_Product
)
{
Address = &ProductString;
Size = ProductString.Header.Size;
{
Address = &ProductString;
Size = ProductString.Header.Size;
diff --git
a/Bootloaders/DFU/Descriptors.h
b/Bootloaders/DFU/Descriptors.h
index
71ae30a
..
c33e388
100644
(file)
--- a/
Bootloaders/DFU/Descriptors.h
+++ b/
Bootloaders/DFU/Descriptors.h
@@
-164,6
+164,17
@@
USB_Descriptor_DFU_Functional_t DFU_Functional;
} USB_Descriptor_Configuration_t;
USB_Descriptor_DFU_Functional_t DFU_Functional;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Bootloaders/Printer/Descriptors.c
b/Bootloaders/Printer/Descriptors.c
index
0bf32c6
..
0fbb3ae
100644
(file)
--- a/
Bootloaders/Printer/Descriptors.c
+++ b/
Bootloaders/Printer/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t DeviceDescriptor =
.ProductID = 0x206B,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x206B,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-186,15
+186,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = LanguageString.Header.Size;
break;
Address = &LanguageString;
Size = LanguageString.Header.Size;
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = ManufacturerString.Header.Size;
break;
Address = &ManufacturerString;
Size = ManufacturerString.Header.Size;
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = ProductString.Header.Size;
break;
Address = &ProductString;
Size = ProductString.Header.Size;
break;
diff --git
a/Bootloaders/Printer/Descriptors.h
b/Bootloaders/Printer/Descriptors.h
index
1265f21
..
fba326a
100644
(file)
--- a/
Bootloaders/Printer/Descriptors.h
+++ b/
Bootloaders/Printer/Descriptors.h
@@
-66,6
+66,17
@@
USB_Descriptor_Endpoint_t Printer_DataOutEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t Printer_DataOutEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/AudioInput/Descriptors.c
b/Demos/Device/ClassDriver/AudioInput/Descriptors.c
index
9056573
..
eb4c21c
100644
(file)
--- a/
Demos/Device/ClassDriver/AudioInput/Descriptors.c
+++ b/
Demos/Device/ClassDriver/AudioInput/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2047,
.ReleaseNumber = VERSION_BCD(00.02),
.ProductID = 0x2047,
.ReleaseNumber = VERSION_BCD(00.02),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-304,15
+304,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/AudioInput/Descriptors.h
b/Demos/Device/ClassDriver/AudioInput/Descriptors.h
index
81ea989
..
1bb38ff
100644
(file)
--- a/
Demos/Device/ClassDriver/AudioInput/Descriptors.h
+++ b/
Demos/Device/ClassDriver/AudioInput/Descriptors.h
@@
-75,6
+75,17
@@
USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;
} USB_Descriptor_Configuration_t;
USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/AudioOutput/Descriptors.c
b/Demos/Device/ClassDriver/AudioOutput/Descriptors.c
index
3012bb4
..
4ced7a0
100644
(file)
--- a/
Demos/Device/ClassDriver/AudioOutput/Descriptors.c
+++ b/
Demos/Device/ClassDriver/AudioOutput/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2046,
.ReleaseNumber = VERSION_BCD(00.02),
.ProductID = 0x2046,
.ReleaseNumber = VERSION_BCD(00.02),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-304,15
+304,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
b/Demos/Device/ClassDriver/AudioOutput/Descriptors.h
index
d5def43
..
80f1426
100644
(file)
--- a/
Demos/Device/ClassDriver/AudioOutput/Descriptors.h
+++ b/
Demos/Device/ClassDriver/AudioOutput/Descriptors.h
@@
-75,6
+75,17
@@
USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;
} USB_Descriptor_Configuration_t;
USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.c
b/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.c
index
fa593c6
..
d0992de
100644
(file)
--- a/
Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.c
+++ b/
Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x204E,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204E,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-352,15
+352,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
b/Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
index
2c01ba0
..
1105ab7
100644
(file)
--- a/
Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
+++ b/
Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.h
@@
-102,6
+102,17
@@
USB_Descriptor_Endpoint_t CDC2_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t CDC2_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/GenericHID/Descriptors.c
b/Demos/Device/ClassDriver/GenericHID/Descriptors.c
index
83f475f
..
57c3502
100644
(file)
--- a/
Demos/Device/ClassDriver/GenericHID/Descriptors.c
+++ b/
Demos/Device/ClassDriver/GenericHID/Descriptors.c
@@
-75,8
+75,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x204F,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204F,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-204,15
+204,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/GenericHID/Descriptors.h
b/Demos/Device/ClassDriver/GenericHID/Descriptors.h
index
31e9c45
..
b598e98
100644
(file)
--- a/
Demos/Device/ClassDriver/GenericHID/Descriptors.h
+++ b/
Demos/Device/ClassDriver/GenericHID/Descriptors.h
@@
-40,7
+40,7
@@
#include <avr/pgmspace.h>
#include <LUFA/Drivers/USB/USB.h>
#include <avr/pgmspace.h>
#include <LUFA/Drivers/USB/USB.h>
-
+
#include "Config/AppConfig.h"
/* Type Defines: */
#include "Config/AppConfig.h"
/* Type Defines: */
@@
-58,6
+58,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the Generic HID reporting IN endpoint. */
#define GENERIC_IN_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Generic HID reporting IN endpoint. */
#define GENERIC_IN_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Demos/Device/ClassDriver/Joystick/Descriptors.c
b/Demos/Device/ClassDriver/Joystick/Descriptors.c
index
ad96b4c
..
8a6ef20
100644
(file)
--- a/
Demos/Device/ClassDriver/Joystick/Descriptors.c
+++ b/
Demos/Device/ClassDriver/Joystick/Descriptors.c
@@
-75,8
+75,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2043,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2043,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-204,15
+204,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/Joystick/Descriptors.h
b/Demos/Device/ClassDriver/Joystick/Descriptors.h
index
93315ee
..
89c0584
100644
(file)
--- a/
Demos/Device/ClassDriver/Joystick/Descriptors.h
+++ b/
Demos/Device/ClassDriver/Joystick/Descriptors.h
@@
-56,6
+56,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the Joystick HID reporting IN endpoint. */
#define JOYSTICK_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Joystick HID reporting IN endpoint. */
#define JOYSTICK_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Demos/Device/ClassDriver/Keyboard/Descriptors.c
b/Demos/Device/ClassDriver/Keyboard/Descriptors.c
index
7b5ee30
..
f40e3b9
100644
(file)
--- a/
Demos/Device/ClassDriver/Keyboard/Descriptors.c
+++ b/
Demos/Device/ClassDriver/Keyboard/Descriptors.c
@@
-71,8
+71,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2042,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2042,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-200,15
+200,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/Keyboard/Descriptors.h
b/Demos/Device/ClassDriver/Keyboard/Descriptors.h
index
6821c15
..
abaf9c6
100644
(file)
--- a/
Demos/Device/ClassDriver/Keyboard/Descriptors.h
+++ b/
Demos/Device/ClassDriver/Keyboard/Descriptors.h
@@
-56,6
+56,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the Keyboard HID reporting IN endpoint. */
#define KEYBOARD_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Keyboard HID reporting IN endpoint. */
#define KEYBOARD_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
index
9920576
..
c3b2e2c
100644
(file)
--- a/
Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
+++ b/
Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
@@
-87,8
+87,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x204D,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204D,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-253,15
+253,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
index
b4b5767
..
27120eb
100644
(file)
--- a/
Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
+++ b/
Demos/Device/ClassDriver/KeyboardMouse/Descriptors.h
@@
-61,6
+61,17
@@
USB_Descriptor_Endpoint_t HID2_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID2_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the Keyboard HID reporting IN endpoint. */
#define KEYBOARD_IN_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Keyboard HID reporting IN endpoint. */
#define KEYBOARD_IN_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.c
b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.c
index
1cd4493
..
a361473
100644
(file)
--- a/
Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.c
+++ b/
Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.c
@@
-134,8
+134,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2066,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2066,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-263,15
+263,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
index
8697bdf
..
a47d185
100644
(file)
--- a/
Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
+++ b/
Demos/Device/ClassDriver/KeyboardMouseMultiReport/Descriptors.h
@@
-56,6
+56,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the HID reporting IN endpoint. */
#define HID_IN_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the HID reporting IN endpoint. */
#define HID_IN_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Demos/Device/ClassDriver/MIDI/Descriptors.c
b/Demos/Device/ClassDriver/MIDI/Descriptors.c
index
c83c853
..
5413f27
100644
(file)
--- a/
Demos/Device/ClassDriver/MIDI/Descriptors.c
+++ b/
Demos/Device/ClassDriver/MIDI/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2048,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2048,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-306,15
+306,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/MIDI/Descriptors.h
b/Demos/Device/ClassDriver/MIDI/Descriptors.h
index
9d41d7c
..
92c6c38
100644
(file)
--- a/
Demos/Device/ClassDriver/MIDI/Descriptors.h
+++ b/
Demos/Device/ClassDriver/MIDI/Descriptors.h
@@
-77,6
+77,17
@@
USB_MIDI_Descriptor_Jack_Endpoint_t MIDI_Out_Jack_Endpoint_SPC;
} USB_Descriptor_Configuration_t;
USB_MIDI_Descriptor_Jack_Endpoint_t MIDI_Out_Jack_Endpoint_SPC;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/MassStorage/Descriptors.c
b/Demos/Device/ClassDriver/MassStorage/Descriptors.c
index
e422b61
..
d069bce
100644
(file)
--- a/
Demos/Device/ClassDriver/MassStorage/Descriptors.c
+++ b/
Demos/Device/ClassDriver/MassStorage/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2045,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2045,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-186,15
+186,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/MassStorage/Descriptors.h
b/Demos/Device/ClassDriver/MassStorage/Descriptors.h
index
15ee5ad
..
3b9a96c
100644
(file)
--- a/
Demos/Device/ClassDriver/MassStorage/Descriptors.h
+++ b/
Demos/Device/ClassDriver/MassStorage/Descriptors.h
@@
-42,7
+42,7
@@
#include <LUFA/Drivers/USB/USB.h>
#include "Config/AppConfig.h"
#include <LUFA/Drivers/USB/USB.h>
#include "Config/AppConfig.h"
-
+
/* Macros: */
/** Endpoint address of the Mass Storage device-to-host data IN endpoint. */
#define MASS_STORAGE_IN_EPADDR (ENDPOINT_DIR_IN | 3)
/* Macros: */
/** Endpoint address of the Mass Storage device-to-host data IN endpoint. */
#define MASS_STORAGE_IN_EPADDR (ENDPOINT_DIR_IN | 3)
@@
-68,6
+68,17
@@
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
index
8a5b5fc
..
2209d51
100644
(file)
--- a/
Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
+++ b/
Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
@@
-73,8
+73,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2061,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2061,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-238,15
+238,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
index
cd9552c
..
2b70e11
100644
(file)
--- a/
Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
+++ b/
Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
@@
-43,7
+43,7
@@
#include <LUFA/Drivers/USB/USB.h>
#include "Config/AppConfig.h"
#include <LUFA/Drivers/USB/USB.h>
#include "Config/AppConfig.h"
-
+
/* Macros: */
/** Endpoint address of the Keyboard HID reporting IN endpoint. */
#define KEYBOARD_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Keyboard HID reporting IN endpoint. */
#define KEYBOARD_EPADDR (ENDPOINT_DIR_IN | 1)
@@
-80,6
+80,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/Mouse/Descriptors.c
b/Demos/Device/ClassDriver/Mouse/Descriptors.c
index
0251cbd
..
c21a8cc
100644
(file)
--- a/
Demos/Device/ClassDriver/Mouse/Descriptors.c
+++ b/
Demos/Device/ClassDriver/Mouse/Descriptors.c
@@
-76,8
+76,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2041,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2041,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-205,15
+205,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/Mouse/Descriptors.h
b/Demos/Device/ClassDriver/Mouse/Descriptors.h
index
a0a5ea9
..
a5380a1
100644
(file)
--- a/
Demos/Device/ClassDriver/Mouse/Descriptors.h
+++ b/
Demos/Device/ClassDriver/Mouse/Descriptors.h
@@
-63,6
+63,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.c
b/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.c
index
ade6833
..
ca70633
100644
(file)
--- a/
Demos/Device/ClassDriver/RNDISEthernet/Descriptors.c
+++ b/
Demos/Device/ClassDriver/RNDISEthernet/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x204C,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204C,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-236,15
+236,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
b/Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
index
7ae8c22
..
be50157
100644
(file)
--- a/
Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
+++ b/
Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
@@
-42,7
+42,7
@@
#include <avr/pgmspace.h>
#include "Config/AppConfig.h"
#include <avr/pgmspace.h>
#include "Config/AppConfig.h"
-
+
/* Macros: */
/** Endpoint address of the CDC device-to-host notification IN endpoint. */
#define CDC_NOTIFICATION_EPADDR (ENDPOINT_DIR_IN | 3)
/* Macros: */
/** Endpoint address of the CDC device-to-host notification IN endpoint. */
#define CDC_NOTIFICATION_EPADDR (ENDPOINT_DIR_IN | 3)
@@
-81,6
+81,17
@@
USB_Descriptor_Endpoint_t RNDIS_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t RNDIS_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/VirtualSerial/Descriptors.c
b/Demos/Device/ClassDriver/VirtualSerial/Descriptors.c
index
b6e5325
..
9432562
100644
(file)
--- a/
Demos/Device/ClassDriver/VirtualSerial/Descriptors.c
+++ b/
Demos/Device/ClassDriver/VirtualSerial/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2044,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2044,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-237,15
+237,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
b/Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
index
439c49e
..
e2d09b2
100644
(file)
--- a/
Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
+++ b/
Demos/Device/ClassDriver/VirtualSerial/Descriptors.h
@@
-79,6
+79,17
@@
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.c
b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.c
index
49fb692
..
e41a91a
100644
(file)
--- a/
Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.c
+++ b/
Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2068,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2068,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-287,15
+287,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
index
787795b
..
25d31bf
100644
(file)
--- a/
Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
+++ b/
Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
@@
-96,6
+96,17
@@
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
index
cd55c11
..
42c77dd
100644
(file)
--- a/
Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
+++ b/
Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
@@
-77,8
+77,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2062,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2062,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-307,15
+307,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
index
675e7a3
..
1bce496
100644
(file)
--- a/
Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
+++ b/
Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.h
@@
-91,6
+91,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
b/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
index
64f7f40
..
8bf9237
100644
(file)
--- a/
Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
+++ b/
Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
@@
-59,8
+59,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2065,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2065,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-197,15
+197,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
b/Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
index
f44fcee
..
9beb3d2
100644
(file)
--- a/
Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
+++ b/
Demos/Device/Incomplete/TestAndMeasurement/Descriptors.h
@@
-1,7
+1,7
@@
/*
LUFA Library
Copyright (C) Dean Camera, 2013.
/*
LUFA Library
Copyright (C) Dean Camera, 2013.
-
+
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
@@
-10,13
+10,13
@@
Copyright 2013 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Copyright 2010 Peter Lawrence (majbthrd [at] gmail [dot] com)
Copyright 2013 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Copyright 2010 Peter Lawrence (majbthrd [at] gmail [dot] com)
- Permission to use, copy, modify, distribute, and sell this
+ Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
+ without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaims all warranties with regard to this
software without specific, written prior permission.
The author disclaims all warranties with regard to this
@@
-33,7
+33,7
@@
*
* Header file for Descriptors.c.
*/
*
* Header file for Descriptors.c.
*/
-
+
#ifndef _DESCRIPTORS_H_
#define _DESCRIPTORS_H_
#ifndef _DESCRIPTORS_H_
#define _DESCRIPTORS_H_
@@
-66,7
+66,7
@@
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
-
+
// Test and Measurement Interface
USB_Descriptor_Interface_t TM_Interface;
USB_Descriptor_Endpoint_t TM_DataOutEndpoint;
// Test and Measurement Interface
USB_Descriptor_Interface_t TM_Interface;
USB_Descriptor_Endpoint_t TM_DataOutEndpoint;
@@
-74,6
+74,17
@@
USB_Descriptor_Endpoint_t TM_NotificationEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t TM_NotificationEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/LowLevel/AudioInput/Descriptors.c
b/Demos/Device/LowLevel/AudioInput/Descriptors.c
index
1e4231f
..
b3490d0
100644
(file)
--- a/
Demos/Device/LowLevel/AudioInput/Descriptors.c
+++ b/
Demos/Device/LowLevel/AudioInput/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2047,
.ReleaseNumber = VERSION_BCD(00.02),
.ProductID = 0x2047,
.ReleaseNumber = VERSION_BCD(00.02),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-304,15
+304,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/AudioInput/Descriptors.h
b/Demos/Device/LowLevel/AudioInput/Descriptors.h
index
e8a9515
..
a3d3ec3
100644
(file)
--- a/
Demos/Device/LowLevel/AudioInput/Descriptors.h
+++ b/
Demos/Device/LowLevel/AudioInput/Descriptors.h
@@
-42,7
+42,7
@@
#include <avr/pgmspace.h>
#include "Config/AppConfig.h"
#include <avr/pgmspace.h>
#include "Config/AppConfig.h"
-
+
/* Macros: */
/** Endpoint address of the Audio isochronous streaming data IN endpoint. */
#define AUDIO_STREAM_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Audio isochronous streaming data IN endpoint. */
#define AUDIO_STREAM_EPADDR (ENDPOINT_DIR_IN | 1)
@@
-75,6
+75,17
@@
USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;
} USB_Descriptor_Configuration_t;
USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/LowLevel/AudioOutput/Descriptors.c
b/Demos/Device/LowLevel/AudioOutput/Descriptors.c
index
9c70329
..
43f7175
100644
(file)
--- a/
Demos/Device/LowLevel/AudioOutput/Descriptors.c
+++ b/
Demos/Device/LowLevel/AudioOutput/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2046,
.ReleaseNumber = VERSION_BCD(00.02),
.ProductID = 0x2046,
.ReleaseNumber = VERSION_BCD(00.02),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-304,15
+304,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/AudioOutput/Descriptors.h
b/Demos/Device/LowLevel/AudioOutput/Descriptors.h
index
f07bc7f
..
b8ae901
100644
(file)
--- a/
Demos/Device/LowLevel/AudioOutput/Descriptors.h
+++ b/
Demos/Device/LowLevel/AudioOutput/Descriptors.h
@@
-75,6
+75,17
@@
USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;
} USB_Descriptor_Configuration_t;
USB_Audio_Descriptor_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.c
b/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.c
index
fa593c6
..
d0992de
100644
(file)
--- a/
Demos/Device/LowLevel/DualVirtualSerial/Descriptors.c
+++ b/
Demos/Device/LowLevel/DualVirtualSerial/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x204E,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204E,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-352,15
+352,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
b/Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
index
ee8ef48
..
154ed0c
100644
(file)
--- a/
Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
+++ b/
Demos/Device/LowLevel/DualVirtualSerial/Descriptors.h
@@
-102,6
+102,17
@@
USB_Descriptor_Endpoint_t CDC2_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t CDC2_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/LowLevel/GenericHID/Descriptors.c
b/Demos/Device/LowLevel/GenericHID/Descriptors.c
index
19e281e
..
bcbb386
100644
(file)
--- a/
Demos/Device/LowLevel/GenericHID/Descriptors.c
+++ b/
Demos/Device/LowLevel/GenericHID/Descriptors.c
@@
-83,8
+83,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x204F,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204F,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-222,15
+222,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/GenericHID/Descriptors.h
b/Demos/Device/LowLevel/GenericHID/Descriptors.h
index
b5c7c79
..
8842334
100644
(file)
--- a/
Demos/Device/LowLevel/GenericHID/Descriptors.h
+++ b/
Demos/Device/LowLevel/GenericHID/Descriptors.h
@@
-42,7
+42,7
@@
#include <avr/pgmspace.h>
#include "Config/AppConfig.h"
#include <avr/pgmspace.h>
#include "Config/AppConfig.h"
-
+
/* Type Defines: */
/** Type define for the device configuration descriptor structure. This must be defined in the
* application code, as the configuration descriptor contains several sub-descriptors which
/* Type Defines: */
/** Type define for the device configuration descriptor structure. This must be defined in the
* application code, as the configuration descriptor contains several sub-descriptors which
@@
-59,6
+59,17
@@
USB_Descriptor_Endpoint_t HID_ReportOUTEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportOUTEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the Generic HID reporting IN endpoint. */
#define GENERIC_IN_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Generic HID reporting IN endpoint. */
#define GENERIC_IN_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Demos/Device/LowLevel/Joystick/Descriptors.c
b/Demos/Device/LowLevel/Joystick/Descriptors.c
index
2b6724b
..
3762387
100644
(file)
--- a/
Demos/Device/LowLevel/Joystick/Descriptors.c
+++ b/
Demos/Device/LowLevel/Joystick/Descriptors.c
@@
-95,8
+95,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2043,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2043,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-224,15
+224,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/Joystick/Descriptors.h
b/Demos/Device/LowLevel/Joystick/Descriptors.h
index
5357e5a
..
f06b3ca
100644
(file)
--- a/
Demos/Device/LowLevel/Joystick/Descriptors.h
+++ b/
Demos/Device/LowLevel/Joystick/Descriptors.h
@@
-56,6
+56,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the Joystick HID reporting IN endpoint. */
#define JOYSTICK_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Joystick HID reporting IN endpoint. */
#define JOYSTICK_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Demos/Device/LowLevel/Keyboard/Descriptors.c
b/Demos/Device/LowLevel/Keyboard/Descriptors.c
index
52b553b
..
e3da4b6
100644
(file)
--- a/
Demos/Device/LowLevel/Keyboard/Descriptors.c
+++ b/
Demos/Device/LowLevel/Keyboard/Descriptors.c
@@
-100,8
+100,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2042,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2042,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-239,15
+239,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/Keyboard/Descriptors.h
b/Demos/Device/LowLevel/Keyboard/Descriptors.h
index
37fc728
..
f9d5424
100644
(file)
--- a/
Demos/Device/LowLevel/Keyboard/Descriptors.h
+++ b/
Demos/Device/LowLevel/Keyboard/Descriptors.h
@@
-58,6
+58,17
@@
USB_Descriptor_Endpoint_t HID_ReportOUTEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportOUTEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the Keyboard HID reporting IN endpoint. */
#define KEYBOARD_IN_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Keyboard HID reporting IN endpoint. */
#define KEYBOARD_IN_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
index
73e65f0
..
d45cd59
100644
(file)
--- a/
Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
+++ b/
Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
@@
-135,8
+135,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x204D,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204D,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-311,15
+311,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
index
5ae62dd
..
6d2543a
100644
(file)
--- a/
Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
+++ b/
Demos/Device/LowLevel/KeyboardMouse/Descriptors.h
@@
-63,6
+63,17
@@
USB_Descriptor_Endpoint_t HID2_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID2_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the Keyboard HID reporting IN endpoint. */
#define KEYBOARD_IN_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Keyboard HID reporting IN endpoint. */
#define KEYBOARD_IN_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Demos/Device/LowLevel/MIDI/Descriptors.c
b/Demos/Device/LowLevel/MIDI/Descriptors.c
index
c83c853
..
5413f27
100644
(file)
--- a/
Demos/Device/LowLevel/MIDI/Descriptors.c
+++ b/
Demos/Device/LowLevel/MIDI/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2048,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2048,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-306,15
+306,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/MIDI/Descriptors.h
b/Demos/Device/LowLevel/MIDI/Descriptors.h
index
1044459
..
1572b1c
100644
(file)
--- a/
Demos/Device/LowLevel/MIDI/Descriptors.h
+++ b/
Demos/Device/LowLevel/MIDI/Descriptors.h
@@
-77,6
+77,17
@@
USB_MIDI_Descriptor_Jack_Endpoint_t MIDI_Out_Jack_Endpoint_SPC;
} USB_Descriptor_Configuration_t;
USB_MIDI_Descriptor_Jack_Endpoint_t MIDI_Out_Jack_Endpoint_SPC;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/LowLevel/MassStorage/Descriptors.c
b/Demos/Device/LowLevel/MassStorage/Descriptors.c
index
e422b61
..
d069bce
100644
(file)
--- a/
Demos/Device/LowLevel/MassStorage/Descriptors.c
+++ b/
Demos/Device/LowLevel/MassStorage/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2045,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2045,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-186,15
+186,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/MassStorage/Descriptors.h
b/Demos/Device/LowLevel/MassStorage/Descriptors.h
index
88192ea
..
dc6748f
100644
(file)
--- a/
Demos/Device/LowLevel/MassStorage/Descriptors.h
+++ b/
Demos/Device/LowLevel/MassStorage/Descriptors.h
@@
-68,6
+68,17
@@
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/LowLevel/Mouse/Descriptors.c
b/Demos/Device/LowLevel/Mouse/Descriptors.c
index
edd6709
..
99780a4
100644
(file)
--- a/
Demos/Device/LowLevel/Mouse/Descriptors.c
+++ b/
Demos/Device/LowLevel/Mouse/Descriptors.c
@@
-95,8
+95,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2041,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2041,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-224,15
+224,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/Mouse/Descriptors.h
b/Demos/Device/LowLevel/Mouse/Descriptors.h
index
a0a5ea9
..
a5380a1
100644
(file)
--- a/
Demos/Device/LowLevel/Mouse/Descriptors.h
+++ b/
Demos/Device/LowLevel/Mouse/Descriptors.h
@@
-63,6
+63,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/LowLevel/RNDISEthernet/Descriptors.c
b/Demos/Device/LowLevel/RNDISEthernet/Descriptors.c
index
ade6833
..
ca70633
100644
(file)
--- a/
Demos/Device/LowLevel/RNDISEthernet/Descriptors.c
+++ b/
Demos/Device/LowLevel/RNDISEthernet/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x204C,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204C,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-236,15
+236,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
b/Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
index
91b6096
..
763bc0c
100644
(file)
--- a/
Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
+++ b/
Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
@@
-81,6
+81,17
@@
USB_Descriptor_Endpoint_t RNDIS_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t RNDIS_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/Device/LowLevel/VirtualSerial/Descriptors.c
b/Demos/Device/LowLevel/VirtualSerial/Descriptors.c
index
b6e5325
..
9432562
100644
(file)
--- a/
Demos/Device/LowLevel/VirtualSerial/Descriptors.c
+++ b/
Demos/Device/LowLevel/VirtualSerial/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2044,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2044,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-237,15
+237,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/Device/LowLevel/VirtualSerial/Descriptors.h
b/Demos/Device/LowLevel/VirtualSerial/Descriptors.h
index
655d867
..
a704614
100644
(file)
--- a/
Demos/Device/LowLevel/VirtualSerial/Descriptors.h
+++ b/
Demos/Device/LowLevel/VirtualSerial/Descriptors.h
@@
-79,6
+79,17
@@
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
index
257c905
..
6b714eb
100644
(file)
--- a/
Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
+++ b/
Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
@@
-76,8
+76,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2041,
.ReleaseNumber = 0x0000,
.ProductID = 0x2041,
.ReleaseNumber = 0x0000,
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-205,15
+205,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
index
1a7acc9
..
eca1e79
100644
(file)
--- a/
Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
+++ b/
Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.h
@@
-56,6
+56,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the Mouse HID reporting IN endpoint. */
#define MOUSE_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Mouse HID reporting IN endpoint. */
#define MOUSE_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Projects/AVRISP-MKII/AVRISPDescriptors.c
b/Projects/AVRISP-MKII/AVRISPDescriptors.c
index
8f4ef54
..
61c9206
100644
(file)
--- a/
Projects/AVRISP-MKII/AVRISPDescriptors.c
+++ b/
Projects/AVRISP-MKII/AVRISPDescriptors.c
@@
-43,7
+43,7
@@
/** Current AVRISP data IN endpoint address. */
uint8_t AVRISP_CurrDataINEndpointAddress;
/** Current AVRISP data IN endpoint address. */
uint8_t AVRISP_CurrDataINEndpointAddress;
-
+
/** Saved AVRISP data IN endpoint address in EEPROM. */
uint8_t AVRISP_CurrDataINEndpointAddress_EEPROM EEMEM;
#endif
/** Saved AVRISP data IN endpoint address in EEPROM. */
uint8_t AVRISP_CurrDataINEndpointAddress_EEPROM EEMEM;
#endif
@@
-68,9
+68,9
@@
const USB_Descriptor_Device_t PROGMEM AVRISP_DeviceDescriptor =
.ProductID = 0x2104,
.ReleaseNumber = VERSION_BCD(02.00),
.ProductID = 0x2104,
.ReleaseNumber = VERSION_BCD(02.00),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
- .SerialNumStrIndex =
0x03
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
+ .SerialNumStrIndex =
STRING_ID_Serial
,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
};
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
};
@@
-177,7
+177,7
@@
const USB_Descriptor_String_t PROGMEM AVRISP_ProductString =
USB_Descriptor_String_t AVRISP_SerialString =
{
.Header = {.Size = USB_STRING_LEN(13), .Type = DTYPE_String},
USB_Descriptor_String_t AVRISP_SerialString =
{
.Header = {.Size = USB_STRING_LEN(13), .Type = DTYPE_String},
-
+
.UnicodeString = L"000200012345\0" // Note: Real AVRISP-MKII has the embedded NUL byte, bug in firmware?
};
.UnicodeString = L"000200012345\0" // Note: Real AVRISP-MKII has the embedded NUL byte, bug in firmware?
};
@@
-199,7
+199,7
@@
uint16_t AVRISP_GetDescriptor(const uint16_t wValue,
uint16_t Size = NO_DESCRIPTOR;
*DescriptorMemorySpace = MEMSPACE_FLASH;
uint16_t Size = NO_DESCRIPTOR;
*DescriptorMemorySpace = MEMSPACE_FLASH;
-
+
switch (DescriptorType)
{
case DTYPE_Device:
switch (DescriptorType)
{
case DTYPE_Device:
@@
-219,25
+219,25
@@
uint16_t AVRISP_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &AVRISP_LanguageString;
Size = pgm_read_byte(&AVRISP_LanguageString.Header.Size);
break;
Address = &AVRISP_LanguageString;
Size = pgm_read_byte(&AVRISP_LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &AVRISP_ManufacturerString;
Size = pgm_read_byte(&AVRISP_ManufacturerString.Header.Size);
break;
Address = &AVRISP_ManufacturerString;
Size = pgm_read_byte(&AVRISP_ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &AVRISP_ProductString;
Size = pgm_read_byte(&AVRISP_ProductString.Header.Size);
break;
Address = &AVRISP_ProductString;
Size = pgm_read_byte(&AVRISP_ProductString.Header.Size);
break;
- case
0x03
:
+ case
STRING_ID_Serial
:
Address = &AVRISP_SerialString;
Size = AVRISP_SerialString.Header.Size;
Address = &AVRISP_SerialString;
Size = AVRISP_SerialString.Header.Size;
-
+
/* Update serial number to have a different serial based on the current endpoint address */
((uint16_t*)&AVRISP_SerialString.UnicodeString)[6] = cpu_to_le16('0' + (AVRISP_DATA_IN_EPADDR & ENDPOINT_EPNUM_MASK));
/* Update serial number to have a different serial based on the current endpoint address */
((uint16_t*)&AVRISP_SerialString.UnicodeString)[6] = cpu_to_le16('0' + (AVRISP_DATA_IN_EPADDR & ENDPOINT_EPNUM_MASK));
-
+
*DescriptorMemorySpace = MEMSPACE_RAM;
break;
}
*DescriptorMemorySpace = MEMSPACE_RAM;
break;
}
@@
-259,7
+259,7
@@
uint16_t AVRISP_GetDescriptor(const uint16_t wValue,
* change.
*/
void CheckExternalReset(void)
* change.
*/
void CheckExternalReset(void)
-{
+{
/* If an external reset occurred, we need to change compatibility mode */
AVRISP_NeedCompatibilitySwitch = (MCUSR == (1 << EXTRF));
/* If an external reset occurred, we need to change compatibility mode */
AVRISP_NeedCompatibilitySwitch = (MCUSR == (1 << EXTRF));
@@
-277,7
+277,7
@@
void UpdateCurrentCompatibilityMode(void)
{
/* Load the current IN endpoint address stored in EEPROM */
AVRISP_CurrDataINEndpointAddress = eeprom_read_byte(&AVRISP_CurrDataINEndpointAddress_EEPROM);
{
/* Load the current IN endpoint address stored in EEPROM */
AVRISP_CurrDataINEndpointAddress = eeprom_read_byte(&AVRISP_CurrDataINEndpointAddress_EEPROM);
-
+
/* Check if we need to switch compatibility modes */
if (AVRISP_NeedCompatibilitySwitch)
{
/* Check if we need to switch compatibility modes */
if (AVRISP_NeedCompatibilitySwitch)
{
@@
-303,7
+303,7
@@
void UpdateCurrentCompatibilityMode(void)
{
LEDs_ToggleLEDs(LEDS_ALL_LEDS);
Delay_MS(100);
{
LEDs_ToggleLEDs(LEDS_ALL_LEDS);
Delay_MS(100);
- }
+ }
break;
case AVRISP_DATA_IN_EPADDR_LIBUSB:
/* Five flashes for libUSB compatibility mode */
break;
case AVRISP_DATA_IN_EPADDR_LIBUSB:
/* Five flashes for libUSB compatibility mode */
@@
-314,7
+314,7
@@
void UpdateCurrentCompatibilityMode(void)
}
break;
}
}
break;
}
-
+
Delay_MS(500);
}
#endif
Delay_MS(500);
}
#endif
diff --git
a/Projects/AVRISP-MKII/AVRISPDescriptors.h
b/Projects/AVRISP-MKII/AVRISPDescriptors.h
index
3c87480
..
d372350
100644
(file)
--- a/
Projects/AVRISP-MKII/AVRISPDescriptors.h
+++ b/
Projects/AVRISP-MKII/AVRISPDescriptors.h
@@
-41,7
+41,7
@@
#include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/Board/LEDs.h>
#include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/Board/LEDs.h>
-
+
#include "Config/AppConfig.h"
/* Preprocessor Checks: */
#include "Config/AppConfig.h"
/* Preprocessor Checks: */
@@
-67,7
+67,7
@@
/** Endpoint address of the AVRISP data IN endpoint. */
#define AVRISP_DATA_IN_EPADDR AVRISP_DATA_IN_EPADDR_JUNGO
#endif
/** Endpoint address of the AVRISP data IN endpoint. */
#define AVRISP_DATA_IN_EPADDR AVRISP_DATA_IN_EPADDR_JUNGO
#endif
-
+
/** Size in bytes of the AVRISP data endpoint. */
#define AVRISP_DATA_EPSIZE 64
/** Size in bytes of the AVRISP data endpoint. */
#define AVRISP_DATA_EPSIZE 64
@@
-86,11
+86,23
@@
USB_Descriptor_Endpoint_t AVRISP_DataOutEndpoint;
} AVRISP_USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t AVRISP_DataOutEndpoint;
} AVRISP_USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ STRING_ID_Serial = 3, /**< Serial number string ID */
+ };
+
/* External Variables: */
#if defined(RESET_TOGGLES_LIBUSB_COMPAT)
extern uint8_t AVRISP_CurrDataINEndpointAddress;
#endif
/* External Variables: */
#if defined(RESET_TOGGLES_LIBUSB_COMPAT)
extern uint8_t AVRISP_CurrDataINEndpointAddress;
#endif
-
+
/* Function Prototypes: */
uint16_t AVRISP_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t AVRISP_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Projects/Benito/Descriptors.c
b/Projects/Benito/Descriptors.c
index
26b00c6
..
ebb11ca
100644
(file)
--- a/
Projects/Benito/Descriptors.c
+++ b/
Projects/Benito/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2060,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2060,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-236,15
+236,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Projects/Benito/Descriptors.h
b/Projects/Benito/Descriptors.h
index
fcc4254
..
12be7bf
100644
(file)
--- a/
Projects/Benito/Descriptors.h
+++ b/
Projects/Benito/Descriptors.h
@@
-81,6
+81,17
@@
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Projects/LEDNotifier/Descriptors.c
b/Projects/LEDNotifier/Descriptors.c
index
5a0c760
..
1875bba
100644
(file)
--- a/
Projects/LEDNotifier/Descriptors.c
+++ b/
Projects/LEDNotifier/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2044,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2044,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-237,15
+237,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Projects/LEDNotifier/Descriptors.h
b/Projects/LEDNotifier/Descriptors.h
index
f111e43
..
363951c
100644
(file)
--- a/
Projects/LEDNotifier/Descriptors.h
+++ b/
Projects/LEDNotifier/Descriptors.h
@@
-79,6
+79,17
@@
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Projects/MIDIToneGenerator/Descriptors.c
b/Projects/MIDIToneGenerator/Descriptors.c
index
c83c853
..
5413f27
100644
(file)
--- a/
Projects/MIDIToneGenerator/Descriptors.c
+++ b/
Projects/MIDIToneGenerator/Descriptors.c
@@
-57,8
+57,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2048,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2048,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-306,15
+306,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Projects/MIDIToneGenerator/Descriptors.h
b/Projects/MIDIToneGenerator/Descriptors.h
index
9a47caf
..
cb87891
100644
(file)
--- a/
Projects/MIDIToneGenerator/Descriptors.h
+++ b/
Projects/MIDIToneGenerator/Descriptors.h
@@
-79,6
+79,17
@@
USB_MIDI_Descriptor_Jack_Endpoint_t MIDI_Out_Jack_Endpoint_SPC;
} USB_Descriptor_Configuration_t;
USB_MIDI_Descriptor_Jack_Endpoint_t MIDI_Out_Jack_Endpoint_SPC;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Projects/Magstripe/Descriptors.c
b/Projects/Magstripe/Descriptors.c
index
bd7c067
..
6809440
100644
(file)
--- a/
Projects/Magstripe/Descriptors.c
+++ b/
Projects/Magstripe/Descriptors.c
@@
-72,8
+72,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2042,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2042,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-200,15
+200,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Projects/Magstripe/Descriptors.h
b/Projects/Magstripe/Descriptors.h
index
b09124b
..
0f4869f
100644
(file)
--- a/
Projects/Magstripe/Descriptors.h
+++ b/
Projects/Magstripe/Descriptors.h
@@
-59,6
+59,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint; /**< Keyboard key report endpoint descriptor */
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint; /**< Keyboard key report endpoint descriptor */
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the keyboard key press reporting endpoint. */
#define KEYBOARD_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the keyboard key press reporting endpoint. */
#define KEYBOARD_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Projects/MediaController/Descriptors.c
b/Projects/MediaController/Descriptors.c
index
3ee18dc
..
636bbb6
100644
(file)
--- a/
Projects/MediaController/Descriptors.c
+++ b/
Projects/MediaController/Descriptors.c
@@
-89,8
+89,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x206A,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x206A,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-218,15
+218,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Projects/MediaController/Descriptors.h
b/Projects/MediaController/Descriptors.h
index
be57f22
..
9f88964
100644
(file)
--- a/
Projects/MediaController/Descriptors.h
+++ b/
Projects/MediaController/Descriptors.h
@@
-56,6
+56,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Macros: */
/** Endpoint address of the Media Control HID reporting IN endpoint. */
#define MEDIACONTROL_HID_EPADDR (ENDPOINT_DIR_IN | 1)
/* Macros: */
/** Endpoint address of the Media Control HID reporting IN endpoint. */
#define MEDIACONTROL_HID_EPADDR (ENDPOINT_DIR_IN | 1)
diff --git
a/Projects/RelayBoard/Descriptors.c
b/Projects/RelayBoard/Descriptors.c
index
1722c08
..
c6b2d8f
100644
(file)
--- a/
Projects/RelayBoard/Descriptors.c
+++ b/
Projects/RelayBoard/Descriptors.c
@@
-58,9
+58,9
@@
const USB_Descriptor_Device_t PROGMEM RelayBoard_DeviceDescriptor =
.ProductID = 0xFD11,
.ReleaseNumber = VERSION_BCD(02.00),
.ProductID = 0xFD11,
.ReleaseNumber = VERSION_BCD(02.00),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
- .SerialNumStrIndex =
0x03
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
+ .SerialNumStrIndex =
STRING_ID_Serial
,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
};
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
};
@@
-176,19
+176,19
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &RelayBoard_LanguageString;
Size = pgm_read_byte(&RelayBoard_LanguageString.Header.Size);
break;
Address = &RelayBoard_LanguageString;
Size = pgm_read_byte(&RelayBoard_LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &RelayBoard_ManufacturerString;
Size = pgm_read_byte(&RelayBoard_ManufacturerString.Header.Size);
break;
Address = &RelayBoard_ManufacturerString;
Size = pgm_read_byte(&RelayBoard_ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &RelayBoard_ProductString;
Size = pgm_read_byte(&RelayBoard_ProductString.Header.Size);
break;
Address = &RelayBoard_ProductString;
Size = pgm_read_byte(&RelayBoard_ProductString.Header.Size);
break;
- case
0x03
:
+ case
STRING_ID_Serial
:
Address = &RelayBoard_SerialString;
Size = pgm_read_byte(&RelayBoard_SerialString.Header.Size);
break;
Address = &RelayBoard_SerialString;
Size = pgm_read_byte(&RelayBoard_SerialString.Header.Size);
break;
diff --git
a/Projects/RelayBoard/Descriptors.h
b/Projects/RelayBoard/Descriptors.h
index
92f03c5
..
97ed225
100644
(file)
--- a/
Projects/RelayBoard/Descriptors.h
+++ b/
Projects/RelayBoard/Descriptors.h
@@
-54,6
+54,18
@@
USB_Descriptor_Interface_t RelayBoardInterface;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Interface_t RelayBoardInterface;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ STRING_ID_Serial = 3, /**< Serial number string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Projects/SerialToLCD/Descriptors.c
b/Projects/SerialToLCD/Descriptors.c
index
e0e461f
..
8a55f82
100644
(file)
--- a/
Projects/SerialToLCD/Descriptors.c
+++ b/
Projects/SerialToLCD/Descriptors.c
@@
-70,8
+70,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x204B,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204B,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-249,15
+249,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Projects/SerialToLCD/Descriptors.h
b/Projects/SerialToLCD/Descriptors.h
index
e3215db
..
5776098
100644
(file)
--- a/
Projects/SerialToLCD/Descriptors.h
+++ b/
Projects/SerialToLCD/Descriptors.h
@@
-80,6
+80,17
@@
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Projects/TempDataLogger/Descriptors.c
b/Projects/TempDataLogger/Descriptors.c
index
0ec19f4
..
6ec6f64
100644
(file)
--- a/
Projects/TempDataLogger/Descriptors.c
+++ b/
Projects/TempDataLogger/Descriptors.c
@@
-76,8
+76,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2063,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2063,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-241,15
+241,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Projects/TempDataLogger/Descriptors.h
b/Projects/TempDataLogger/Descriptors.h
index
34ed62c
..
91e238f
100644
(file)
--- a/
Projects/TempDataLogger/Descriptors.h
+++ b/
Projects/TempDataLogger/Descriptors.h
@@
-56,6
+56,17
@@
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t HID_ReportINEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Projects/USBtoSerial/Descriptors.c
b/Projects/USBtoSerial/Descriptors.c
index
bcd84c8
..
b2d2285
100644
(file)
--- a/
Projects/USBtoSerial/Descriptors.c
+++ b/
Projects/USBtoSerial/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x204B,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204B,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-237,15
+237,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Projects/USBtoSerial/Descriptors.h
b/Projects/USBtoSerial/Descriptors.h
index
f111e43
..
363951c
100644
(file)
--- a/
Projects/USBtoSerial/Descriptors.h
+++ b/
Projects/USBtoSerial/Descriptors.h
@@
-79,6
+79,17
@@
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Projects/Webserver/Descriptors.c
b/Projects/Webserver/Descriptors.c
index
c88938b
..
8fcba5c
100644
(file)
--- a/
Projects/Webserver/Descriptors.c
+++ b/
Projects/Webserver/Descriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
.ProductID = 0x2069,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x2069,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-287,15
+287,15
@@
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
Address = &LanguageString;
Size = pgm_read_byte(&LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
Address = &ManufacturerString;
Size = pgm_read_byte(&ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
Address = &ProductString;
Size = pgm_read_byte(&ProductString.Header.Size);
break;
diff --git
a/Projects/Webserver/Descriptors.h
b/Projects/Webserver/Descriptors.h
index
54240ad
..
2c25512
100644
(file)
--- a/
Projects/Webserver/Descriptors.h
+++ b/
Projects/Webserver/Descriptors.h
@@
-42,7
+42,7
@@
#include <LUFA/Drivers/USB/USB.h>
#include "Config/AppConfig.h"
#include <LUFA/Drivers/USB/USB.h>
#include "Config/AppConfig.h"
-
+
/* Macros: */
/** Endpoint address of the Mass Storage device-to-host data IN endpoint. */
#define MASS_STORAGE_IN_EPADDR (ENDPOINT_DIR_IN | 3)
/* Macros: */
/** Endpoint address of the Mass Storage device-to-host data IN endpoint. */
#define MASS_STORAGE_IN_EPADDR (ENDPOINT_DIR_IN | 3)
@@
-96,6
+96,17
@@
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
} USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t MS_DataOutEndpoint;
} USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
diff --git
a/Projects/XPLAINBridge/USARTDescriptors.c
b/Projects/XPLAINBridge/USARTDescriptors.c
index
75938c3
..
6e69462
100644
(file)
--- a/
Projects/XPLAINBridge/USARTDescriptors.c
+++ b/
Projects/XPLAINBridge/USARTDescriptors.c
@@
-58,8
+58,8
@@
const USB_Descriptor_Device_t PROGMEM USART_DeviceDescriptor =
.ProductID = 0x204B,
.ReleaseNumber = VERSION_BCD(00.01),
.ProductID = 0x204B,
.ReleaseNumber = VERSION_BCD(00.01),
- .ManufacturerStrIndex =
0x01
,
- .ProductStrIndex =
0x02
,
+ .ManufacturerStrIndex =
STRING_ID_Manufacturer
,
+ .ProductStrIndex =
STRING_ID_Product
,
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
.SerialNumStrIndex = USE_INTERNAL_SERIAL,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@
-223,7
+223,7
@@
uint16_t USART_GetDescriptor(const uint16_t wValue,
uint16_t Size = NO_DESCRIPTOR;
*DescriptorMemorySpace = MEMSPACE_FLASH;
uint16_t Size = NO_DESCRIPTOR;
*DescriptorMemorySpace = MEMSPACE_FLASH;
-
+
switch (DescriptorType)
{
case DTYPE_Device:
switch (DescriptorType)
{
case DTYPE_Device:
@@
-237,15
+237,15
@@
uint16_t USART_GetDescriptor(const uint16_t wValue,
case DTYPE_String:
switch (DescriptorNumber)
{
case DTYPE_String:
switch (DescriptorNumber)
{
- case
0x00
:
+ case
STRING_ID_Language
:
Address = &USART_LanguageString;
Size = pgm_read_byte(&USART_LanguageString.Header.Size);
break;
Address = &USART_LanguageString;
Size = pgm_read_byte(&USART_LanguageString.Header.Size);
break;
- case
0x01
:
+ case
STRING_ID_Manufacturer
:
Address = &USART_ManufacturerString;
Size = pgm_read_byte(&USART_ManufacturerString.Header.Size);
break;
Address = &USART_ManufacturerString;
Size = pgm_read_byte(&USART_ManufacturerString.Header.Size);
break;
- case
0x02
:
+ case
STRING_ID_Product
:
Address = &USART_ProductString;
Size = pgm_read_byte(&USART_ProductString.Header.Size);
break;
Address = &USART_ProductString;
Size = pgm_read_byte(&USART_ProductString.Header.Size);
break;
diff --git
a/Projects/XPLAINBridge/USARTDescriptors.h
b/Projects/XPLAINBridge/USARTDescriptors.h
index
a7c390f
..
07acbae
100644
(file)
--- a/
Projects/XPLAINBridge/USARTDescriptors.h
+++ b/
Projects/XPLAINBridge/USARTDescriptors.h
@@
-81,6
+81,17
@@
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USART_USB_Descriptor_Configuration_t;
USB_Descriptor_Endpoint_t CDC_DataInEndpoint;
} USART_USB_Descriptor_Configuration_t;
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum StringDescriptors_t
+ {
+ STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ STRING_ID_Product = 2, /**< Product string ID */
+ };
+
/* Function Prototypes: */
uint16_t USART_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,
/* Function Prototypes: */
uint16_t USART_GetDescriptor(const uint16_t wValue,
const uint8_t wIndex,