From bda4bd45016714e892252fc7aaee88f6d20af231 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 1 Sep 2009 11:16:57 +0000 Subject: [PATCH] Move check for devices not supporting internal serials in demos which make use of USE_INTERNAL_SERIAL to Descriptors.c from Descriptors.h so that the warning is only generated at most once per compilation. --- Demos/Device/ClassDriver/CDC/Descriptors.c | 12 ++++++++++++ Demos/Device/ClassDriver/CDC/Descriptors.h | 4 ---- Demos/Device/ClassDriver/DualCDC/Descriptors.c | 12 ++++++++++++ Demos/Device/ClassDriver/DualCDC/Descriptors.h | 4 ---- Demos/Device/ClassDriver/MassStorage/Descriptors.c | 12 ++++++++++++ Demos/Device/ClassDriver/MassStorage/Descriptors.h | 4 ---- Demos/Device/ClassDriver/USBtoSerial/Descriptors.c | 12 ++++++++++++ Demos/Device/ClassDriver/USBtoSerial/Descriptors.h | 4 ---- Demos/Device/LowLevel/CDC/Descriptors.c | 12 ++++++++++++ Demos/Device/LowLevel/CDC/Descriptors.h | 4 ---- Demos/Device/LowLevel/DualCDC/Descriptors.c | 12 ++++++++++++ Demos/Device/LowLevel/DualCDC/Descriptors.h | 4 ---- Demos/Device/LowLevel/MassStorage/Descriptors.c | 12 ++++++++++++ Demos/Device/LowLevel/MassStorage/Descriptors.h | 4 ---- Demos/Device/LowLevel/USBtoSerial/Descriptors.c | 12 ++++++++++++ Demos/Device/LowLevel/USBtoSerial/Descriptors.h | 4 ---- LUFA/ManPages/ChangeLog.txt | 2 +- 17 files changed, 97 insertions(+), 33 deletions(-) diff --git a/Demos/Device/ClassDriver/CDC/Descriptors.c b/Demos/Device/ClassDriver/CDC/Descriptors.c index 5a8cc7aeda..c8e0a9c710 100644 --- a/Demos/Device/ClassDriver/CDC/Descriptors.c +++ b/Demos/Device/ClassDriver/CDC/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/ClassDriver/CDC/Descriptors.h b/Demos/Device/ClassDriver/CDC/Descriptors.h index a764b2b324..33ceab9c5a 100644 --- a/Demos/Device/ClassDriver/CDC/Descriptors.h +++ b/Demos/Device/ClassDriver/CDC/Descriptors.h @@ -41,10 +41,6 @@ #include #include - - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif /* Macros: */ /** Endpoint number of the CDC device-to-host notification IN endpoint. */ diff --git a/Demos/Device/ClassDriver/DualCDC/Descriptors.c b/Demos/Device/ClassDriver/DualCDC/Descriptors.c index 8815b9e57d..d760195567 100644 --- a/Demos/Device/ClassDriver/DualCDC/Descriptors.c +++ b/Demos/Device/ClassDriver/DualCDC/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/ClassDriver/DualCDC/Descriptors.h b/Demos/Device/ClassDriver/DualCDC/Descriptors.h index 739303edda..49befad389 100644 --- a/Demos/Device/ClassDriver/DualCDC/Descriptors.h +++ b/Demos/Device/ClassDriver/DualCDC/Descriptors.h @@ -42,10 +42,6 @@ #include #include - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif - /* Macros: */ /** Endpoint number of the first CDC interface's device-to-host notification IN endpoint. */ #define CDC1_NOTIFICATION_EPNUM 3 diff --git a/Demos/Device/ClassDriver/MassStorage/Descriptors.c b/Demos/Device/ClassDriver/MassStorage/Descriptors.c index b824923863..4dcc4bb264 100644 --- a/Demos/Device/ClassDriver/MassStorage/Descriptors.c +++ b/Demos/Device/ClassDriver/MassStorage/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/ClassDriver/MassStorage/Descriptors.h b/Demos/Device/ClassDriver/MassStorage/Descriptors.h index 5cf653a562..6d90b3d025 100644 --- a/Demos/Device/ClassDriver/MassStorage/Descriptors.h +++ b/Demos/Device/ClassDriver/MassStorage/Descriptors.h @@ -42,10 +42,6 @@ #include #include - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif - /* Macros: */ /** Endpoint number of the Mass Storage device-to-host data IN endpoint. */ #define MASS_STORAGE_IN_EPNUM 3 diff --git a/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c b/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c index f88a5f82f4..60f2c3200c 100644 --- a/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c +++ b/Demos/Device/ClassDriver/USBtoSerial/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/ClassDriver/USBtoSerial/Descriptors.h b/Demos/Device/ClassDriver/USBtoSerial/Descriptors.h index f78f395a3b..730acc6014 100644 --- a/Demos/Device/ClassDriver/USBtoSerial/Descriptors.h +++ b/Demos/Device/ClassDriver/USBtoSerial/Descriptors.h @@ -42,10 +42,6 @@ #include #include - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif - /* Macros: */ /** Endpoint number of the CDC device-to-host notification IN endpoint. */ #define CDC_NOTIFICATION_EPNUM 2 diff --git a/Demos/Device/LowLevel/CDC/Descriptors.c b/Demos/Device/LowLevel/CDC/Descriptors.c index e81b0342a2..2d857a6940 100644 --- a/Demos/Device/LowLevel/CDC/Descriptors.c +++ b/Demos/Device/LowLevel/CDC/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/LowLevel/CDC/Descriptors.h b/Demos/Device/LowLevel/CDC/Descriptors.h index a3d101e8bb..08e2e353c7 100644 --- a/Demos/Device/LowLevel/CDC/Descriptors.h +++ b/Demos/Device/LowLevel/CDC/Descriptors.h @@ -40,10 +40,6 @@ #include #include - - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif /* Macros: */ /** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a diff --git a/Demos/Device/LowLevel/DualCDC/Descriptors.c b/Demos/Device/LowLevel/DualCDC/Descriptors.c index a7f7b03924..e64bfb1aa7 100644 --- a/Demos/Device/LowLevel/DualCDC/Descriptors.c +++ b/Demos/Device/LowLevel/DualCDC/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/LowLevel/DualCDC/Descriptors.h b/Demos/Device/LowLevel/DualCDC/Descriptors.h index 781ba5c319..de4dd27a4c 100644 --- a/Demos/Device/LowLevel/DualCDC/Descriptors.h +++ b/Demos/Device/LowLevel/DualCDC/Descriptors.h @@ -40,10 +40,6 @@ #include #include - - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif /* Macros: */ /** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a diff --git a/Demos/Device/LowLevel/MassStorage/Descriptors.c b/Demos/Device/LowLevel/MassStorage/Descriptors.c index b824923863..4dcc4bb264 100644 --- a/Demos/Device/LowLevel/MassStorage/Descriptors.c +++ b/Demos/Device/LowLevel/MassStorage/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/LowLevel/MassStorage/Descriptors.h b/Demos/Device/LowLevel/MassStorage/Descriptors.h index 9b9dd7d318..0fa147b75c 100644 --- a/Demos/Device/LowLevel/MassStorage/Descriptors.h +++ b/Demos/Device/LowLevel/MassStorage/Descriptors.h @@ -41,10 +41,6 @@ #include - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif - /* Macros: */ /** Endpoint number of the Mass Storage device-to-host data IN endpoint. */ #define MASS_STORAGE_IN_EPNUM 3 diff --git a/Demos/Device/LowLevel/USBtoSerial/Descriptors.c b/Demos/Device/LowLevel/USBtoSerial/Descriptors.c index d3f7e9218c..495ab3e75d 100644 --- a/Demos/Device/LowLevel/USBtoSerial/Descriptors.c +++ b/Demos/Device/LowLevel/USBtoSerial/Descriptors.c @@ -37,6 +37,18 @@ #include "Descriptors.h" +/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as + * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL. + * This allows the host to track a device across insertions on different ports, allowing them to retain allocated + * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices + * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value + * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and + * port location). + */ +#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) + #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. +#endif + /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall * device characteristics, including the supported USB version, control endpoint size and the * number of device configurations. The descriptor is read out by the USB host when the enumeration diff --git a/Demos/Device/LowLevel/USBtoSerial/Descriptors.h b/Demos/Device/LowLevel/USBtoSerial/Descriptors.h index a3d101e8bb..08e2e353c7 100644 --- a/Demos/Device/LowLevel/USBtoSerial/Descriptors.h +++ b/Demos/Device/LowLevel/USBtoSerial/Descriptors.h @@ -40,10 +40,6 @@ #include #include - - #if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR) - #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor. - #endif /* Macros: */ /** Macro to define a CDC class-specific functional descriptor. CDC functional descriptors have a diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 14dab7684e..3280e8ed7d 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -13,7 +13,7 @@ * - Added flag to the HID report parser to indicate if a device has multiple reports * - Added new EVENT_USB_Device_StartOfFrame() event, controlled by the new USB_Device_EnableSOFEvents() and * USB_Device_DisableSOFEvents() macros to give bus-synchronised millisecond interrupts when in USB device mode - * - Added new Endpoint_SetEndpointDirection() macro for bi-directional endpoints + * - Added new Endpoint_SetEndpointDirection() macro for bidirectional endpoints * - Added new AVRISP project, a LUFA powered clone of the Atmel AVRISP-MKII programmer * - Added ShutDown() functions for all hardware peripheral drivers, so that peripherals can be turned off after use * - Added new CDC_Device_Flush() command to the device mode CDC Class driver to flush Device->Host data