Deleted StdDescriptors.c, renamed USB_GetDescriptor() to CALLBACK_USB_GetDescriptor...
authorDean Camera <dean@fourwalledcubicle.com>
Fri, 22 May 2009 05:23:00 +0000 (05:23 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Fri, 22 May 2009 05:23:00 +0000 (05:23 +0000)
80 files changed:
Bootloaders/CDC/Descriptors.c
Bootloaders/CDC/Descriptors.h
Bootloaders/CDC/makefile
Bootloaders/DFU/Descriptors.c
Bootloaders/DFU/Descriptors.h
Bootloaders/DFU/makefile
Bootloaders/TeensyHID/Descriptors.c
Bootloaders/TeensyHID/Descriptors.h
Bootloaders/TeensyHID/makefile
Demos/Device/AudioInput/AudioInput.h
Demos/Device/AudioInput/Descriptors.c
Demos/Device/AudioInput/Descriptors.h
Demos/Device/AudioInput/makefile
Demos/Device/AudioOutput/Descriptors.h
Demos/Device/AudioOutput/makefile
Demos/Device/CDC/Descriptors.c
Demos/Device/CDC/Descriptors.h
Demos/Device/CDC/makefile
Demos/Device/DualCDC/Descriptors.c
Demos/Device/DualCDC/Descriptors.h
Demos/Device/DualCDC/makefile
Demos/Device/GenericHID/Descriptors.c
Demos/Device/GenericHID/Descriptors.h
Demos/Device/GenericHID/makefile
Demos/Device/Joystick/Descriptors.c
Demos/Device/Joystick/Descriptors.h
Demos/Device/Joystick/makefile
Demos/Device/Keyboard/Descriptors.c
Demos/Device/Keyboard/Descriptors.h
Demos/Device/Keyboard/makefile
Demos/Device/KeyboardMouse/Descriptors.c
Demos/Device/KeyboardMouse/Descriptors.h
Demos/Device/KeyboardMouse/makefile
Demos/Device/MIDI/Descriptors.c
Demos/Device/MIDI/Descriptors.h
Demos/Device/MIDI/makefile
Demos/Device/MassStorage/Descriptors.c
Demos/Device/MassStorage/Descriptors.h
Demos/Device/MassStorage/makefile
Demos/Device/Mouse/Descriptors.c
Demos/Device/Mouse/Descriptors.h
Demos/Device/Mouse/makefile
Demos/Device/RNDISEthernet/Descriptors.c
Demos/Device/RNDISEthernet/Descriptors.h
Demos/Device/RNDISEthernet/makefile
Demos/Device/USBtoSerial/Descriptors.c
Demos/Device/USBtoSerial/Descriptors.h
Demos/Device/USBtoSerial/makefile
Demos/Host/CDCHost/makefile
Demos/Host/GenericHIDHost/makefile
Demos/Host/KeyboardHost/makefile
Demos/Host/KeyboardHostWithParser/makefile
Demos/Host/MassStorageHost/makefile
Demos/Host/MouseHost/makefile
Demos/Host/MouseHostWithParser/makefile
Demos/Host/StillImageHost/makefile
Demos/OTG/TestApp/Descriptors.c
Demos/OTG/TestApp/Descriptors.h
Demos/OTG/TestApp/TestEvents.c
Demos/OTG/TestApp/TestEvents.h
Demos/OTG/TestApp/makefile
LUFA.pnproj
LUFA/ChangeLog.txt
LUFA/Drivers/USB/Class/ConfigDescriptor.c [deleted file]
LUFA/Drivers/USB/Class/ConfigDescriptor.h [deleted file]
LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c [new file with mode: 0644]
LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h [new file with mode: 0644]
LUFA/Drivers/USB/HighLevel/Events.h
LUFA/Drivers/USB/HighLevel/StdDescriptors.c [deleted file]
LUFA/Drivers/USB/HighLevel/StdDescriptors.h
LUFA/Drivers/USB/LowLevel/DevChapter9.c
LUFA/Drivers/USB/LowLevel/Device.h
LUFA/Drivers/USB/LowLevel/LowLevel.c
LUFA/Drivers/USB/USB.h
LUFA/MigrationInformation.txt
LUFA/makefile
Projects/Magstripe/Descriptors.c
Projects/Magstripe/Descriptors.h
Projects/Magstripe/Magstripe.h
Projects/Magstripe/makefile

index 590b041..0e2b3c7 100644 (file)
@@ -209,7 +209,7 @@ USB_Descriptor_String_t ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 8bd6bdf..d913f45 100644 (file)
@@ -89,7 +89,7 @@
                } USB_Descriptor_Configuration_t;\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 3caec53..bc8e2ca 100644 (file)
@@ -113,6 +113,7 @@ LUFA_PATH = ../..
 # List C source files here. (C dependencies are automatically generated.)\r
 SRC = $(TARGET).c                                                 \\r
          Descriptors.c                                               \\r
+         $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \\r
@@ -120,10 +121,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index cff3cd5..d8b734b 100644 (file)
@@ -143,7 +143,7 @@ USB_Descriptor_String_t ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 527fc50..570bb6e 100644 (file)
                } USB_Descriptor_Configuration_t;\r
                \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 94525c1..4e51e29 100644 (file)
@@ -113,6 +113,7 @@ LUFA_PATH = ../..
 # List C source files here. (C dependencies are automatically generated.)\r
 SRC = $(TARGET).c                                                 \\r
          Descriptors.c                                               \\r
+         $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \\r
@@ -120,10 +121,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
  \r
index 62e2d21..99db8ca 100644 (file)
@@ -172,7 +172,7 @@ USB_Descriptor_String_t ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 2b84734..11c6f0f 100644 (file)
@@ -85,7 +85,7 @@
                #define DTYPE_Report              0x22\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index d022c93..de929ed 100644 (file)
@@ -113,6 +113,7 @@ LUFA_PATH = ../..
 # List C source files here. (C dependencies are automatically generated.)\r
 SRC = $(TARGET).c                                                 \\r
          Descriptors.c                                               \\r
+         $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \\r
@@ -120,10 +121,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 6358c24..a394492 100644 (file)
 \r
 /** \file\r
  *\r
- *  Header file for AudioOutput.c.\r
+ *  Header file for AudioInput.c.\r
  */\r
  \r
-#ifndef _AUDIO_OUTPUT_H_\r
-#define _AUDIO_OUTPUT_H_\r
+#ifndef _AUDIO_INPUT_H_\r
+#define _AUDIO_INPUT_H_\r
 \r
        /* Includes: */\r
                #include <avr/io.h>\r
index 5be5061..b8de373 100644 (file)
@@ -271,7 +271,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 5c5d9a6..c2b4b05 100644 (file)
                } USB_Descriptor_Configuration_t;\r
                \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                   ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 7c8b7ab..c70e98e 100644 (file)
@@ -133,10 +133,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 1964b74..e114571 100644 (file)
                } USB_Descriptor_Configuration_t;\r
                \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index fc200be..28f038f 100644 (file)
@@ -133,10 +133,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 2ec482d..03e6882 100644 (file)
@@ -220,7 +220,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index bec5e40..41b4430 100644 (file)
@@ -92,7 +92,7 @@
                } USB_Descriptor_Configuration_t;\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 5755dda..bc22be5 100644 (file)
@@ -133,10 +133,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index d9689f7..64aed7d 100644 (file)
@@ -342,7 +342,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 7bbe52f..2c2311b 100644 (file)
                } USB_Descriptor_Configuration_t;\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 75099c5..06d0e18 100644 (file)
@@ -133,10 +133,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 0eed6e9..ca1a110 100644 (file)
@@ -199,7 +199,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 590cea6..0236870 100644 (file)
@@ -94,7 +94,7 @@
                #define DTYPE_Report              0x22\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index c70c6a1..9c6c891 100644 (file)
@@ -133,10 +133,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 7ab6d46..bd7be65 100644 (file)
@@ -199,7 +199,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 3d56997..6121295 100644 (file)
@@ -87,7 +87,7 @@
                #define DTYPE_Report              0x22\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 7550ed3..aaf69e8 100644 (file)
@@ -133,10 +133,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 428a6a1..ddd19fc 100644 (file)
@@ -216,7 +216,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 9983797..92eb7b8 100644 (file)
@@ -92,7 +92,7 @@
                #define DTYPE_Report              0x22\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 3c597bf..88e4de0 100644 (file)
@@ -133,10 +133,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 6a9d75a..145708d 100644 (file)
@@ -286,7 +286,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 5540f4a..43c345a 100644 (file)
@@ -98,7 +98,7 @@
                #define DTYPE_Report              0x22\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index b26bdbe..c6b34d9 100644 (file)
@@ -133,10 +133,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index d425411..2007858 100644 (file)
@@ -282,7 +282,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 8a93b87..616acab 100644 (file)
                } USB_Descriptor_Configuration_t;\r
                \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 89bfc6c..18fc3b1 100644 (file)
@@ -133,10 +133,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 2351a0b..6c02a6c 100644 (file)
@@ -176,7 +176,7 @@ USB_Descriptor_String_t PROGMEM SerialNumberString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index a64d72e..0fa147b 100644 (file)
@@ -65,7 +65,7 @@
                } USB_Descriptor_Configuration_t;\r
                \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 95c91f6..78abcfd 100644 (file)
@@ -135,10 +135,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 0a6cbde..8ac4570 100644 (file)
@@ -199,7 +199,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 6385145..883ef31 100644 (file)
@@ -87,7 +87,7 @@
                #define DTYPE_Report              0x22\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index d5ad211..632bf91 100644 (file)
@@ -133,10 +133,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
  \r
 # List C++ source files here. (C dependencies are automatically generated.)\r
index dfa4ba1..1be5bfd 100644 (file)
@@ -220,7 +220,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 070c118..eb43735 100644 (file)
@@ -92,7 +92,7 @@
                } USB_Descriptor_Configuration_t;\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index e46b13b..15c33ef 100644 (file)
@@ -145,10 +145,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index ddb90bb..c369d16 100644 (file)
@@ -220,7 +220,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index bec5e40..41b4430 100644 (file)
@@ -92,7 +92,7 @@
                } USB_Descriptor_Configuration_t;\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 8808abe..7da8b97 100644 (file)
@@ -134,10 +134,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index d9c58a3..f1255aa 100644 (file)
@@ -135,10 +135,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 617ab7e..b17ae16 100644 (file)
@@ -135,10 +135,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 9ea163e..b8cb79c 100644 (file)
@@ -135,10 +135,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 43559d8..0d09178 100644 (file)
@@ -136,10 +136,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 5c1de65..d4792ae 100644 (file)
@@ -136,10 +136,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 4987c9d..b7bad94 100644 (file)
@@ -135,10 +135,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index be8f48f..a6aeb6d 100644 (file)
@@ -136,10 +136,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 3663d48..bcb036f 100644 (file)
@@ -135,10 +135,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 965ffb1..f8f53cf 100644 (file)
@@ -144,7 +144,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 88c0a5e..d2e04d2 100644 (file)
@@ -53,7 +53,7 @@
                } USB_Descriptor_Configuration_t;\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index a444cc6..b2f1740 100644 (file)
@@ -179,18 +179,6 @@ void EVENT_USB_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8_t Su
        printf_P(PSTR(" -- In State %d\r\n"), USB_HostState);\r
 }\r
 \r
-/**\r
- *  Event handler for the USB_DeviceError event. When fired, the event is logged to the USART and the program\r
- *  execution aborted.\r
- */\r
-void EVENT_USB_DeviceError(const uint8_t ErrorCode)\r
-{\r
-       puts_P(PSTR(EVENT_PREFIX ESC_BG_RED "Device Mode Error\r\n"));\r
-       printf_P(PSTR(" -- Error Code %d\r\n"), ErrorCode);\r
-\r
-       Abort_Program();\r
-}\r
-\r
 /** Event handler for the USB_UnhandledControlPacket event. When fired, the event is logged to the USART. */\r
 void EVENT_USB_UnhandledControlPacket(void)\r
 {\r
index 656c070..3642428 100644 (file)
@@ -71,7 +71,6 @@
                void EVENT_USB_ConfigurationChanged(void);\r
                void EVENT_USB_Suspend(void);\r
                void EVENT_USB_WakeUp(void);\r
-               void EVENT_USB_Reset(void);\r
-               void EVENT_USB_DeviceError(const uint8_t ErrorCode);            \r
+               void EVENT_USB_Reset(void);     \r
                \r
 #endif\r
index 3c34d55..dd6d8f4 100644 (file)
@@ -138,10 +138,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \\r
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \\r
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \\r
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \\r
 \r
 \r
index 4e78e5b..2409a3e 100644 (file)
@@ -1 +1 @@
-<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="AudioInput"><File path="Demos\Device\AudioInput\AudioInput.c"></File><File path="Demos\Device\AudioInput\AudioInput.h"></File><File path="Demos\Device\AudioInput\AudioInput.txt"></File><File path="Demos\Device\AudioInput\Descriptors.c"></File><File path="Demos\Device\AudioInput\Descriptors.h"></File><File path="Demos\Device\AudioInput\Doxygen.conf"></File><File path="Demos\Device\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\AudioOutput\Descriptors.c"></File><File path="Demos\Device\AudioOutput\Descriptors.h"></File><File path="Demos\Device\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\AudioOutput\makefile"></File></Folder><Folder name="CDC"><File path="Demos\Device\CDC\CDC.c"></File><File path="Demos\Device\CDC\CDC.h"></File><File path="Demos\Device\CDC\CDC.txt"></File><File path="Demos\Device\CDC\Descriptors.c"></File><File path="Demos\Device\CDC\Descriptors.h"></File><File path="Demos\Device\CDC\Doxygen.conf"></File><File path="Demos\Device\CDC\LUFA CDC.inf"></File><File path="Demos\Device\CDC\makefile"></File></Folder><Folder name="DualCDC"><File path="Demos\Device\DualCDC\Descriptors.c"></File><File path="Demos\Device\DualCDC\Descriptors.h"></File><File path="Demos\Device\DualCDC\Doxygen.conf"></File><File path="Demos\Device\DualCDC\DualCDC.c"></File><File path="Demos\Device\DualCDC\DualCDC.h"></File><File path="Demos\Device\DualCDC\DualCDC.txt"></File><File path="Demos\Device\DualCDC\LUFA DualCDC.inf"></File><File path="Demos\Device\DualCDC\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\GenericHID\Descriptors.c"></File><File path="Demos\Device\GenericHID\Descriptors.h"></File><File path="Demos\Device\GenericHID\GenericHID.c"></File><File path="Demos\Device\GenericHID\GenericHID.h"></File><File path="Demos\Device\GenericHID\makefile"></File><File path="Demos\Device\GenericHID\GenericHID.txt"></File><File path="Demos\Device\GenericHID\Doxygen.conf"></File></Folder><Folder name="Joystick"><File path="Demos\Device\Joystick\Descriptors.c"></File><File path="Demos\Device\Joystick\Descriptors.h"></File><File path="Demos\Device\Joystick\Doxygen.conf"></File><File path="Demos\Device\Joystick\Joystick.c"></File><File path="Demos\Device\Joystick\Joystick.h"></File><File path="Demos\Device\Joystick\Joystick.txt"></File><File path="Demos\Device\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\Keyboard\Descriptors.c"></File><File path="Demos\Device\Keyboard\Descriptors.h"></File><File path="Demos\Device\Keyboard\Doxygen.conf"></File><File path="Demos\Device\Keyboard\Keyboard.c"></File><File path="Demos\Device\Keyboard\Keyboard.h"></File><File path="Demos\Device\Keyboard\Keyboard.txt"></File><File path="Demos\Device\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><File path="Demos\Device\MassStorage\DataflashManager.c"></File><File path="Demos\Device\MassStorage\DataflashManager.h"></File><File path="Demos\Device\MassStorage\Descriptors.c"></File><File path="Demos\Device\MassStorage\Descriptors.h"></File><File path="Demos\Device\MassStorage\Doxygen.conf"></File><File path="Demos\Device\MassStorage\makefile"></File><File path="Demos\Device\MassStorage\MassStorage.c"></File><File path="Demos\Device\MassStorage\MassStorage.h"></File><File path="Demos\Device\MassStorage\MassStorage.txt"></File><File path="Demos\Device\MassStorage\SCSI.c"></File><File path="Demos\Device\MassStorage\SCSI.h"></File><File path="Demos\Device\MassStorage\SCSI_Codes.h"></File></Folder><Folder name="MIDI"><File path="Demos\Device\MIDI\Descriptors.c"></File><File path="Demos\Device\MIDI\Descriptors.h"></File><File path="Demos\Device\MIDI\Doxygen.conf"></File><File path="Demos\Device\MIDI\makefile"></File><File path="Demos\Device\MIDI\MIDI.c"></File><File path="Demos\Device\MIDI\MIDI.h"></File><File path="Demos\Device\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\Mouse\Descriptors.c"></File><File path="Demos\Device\Mouse\Descriptors.h"></File><File path="Demos\Device\Mouse\Doxygen.conf"></File><File path="Demos\Device\Mouse\makefile"></File><File path="Demos\Device\Mouse\Mouse.c"></File><File path="Demos\Device\Mouse\Mouse.h"></File><File path="Demos\Device\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><File path="Demos\Device\RNDISEthernet\ARP.c"></File><File path="Demos\Device\RNDISEthernet\ARP.h"></File><File path="Demos\Device\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\RNDISEthernet\DHCP.c"></File><File path="Demos\Device\RNDISEthernet\DHCP.h"></File><File path="Demos\Device\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\RNDISEthernet\Ethernet.c"></File><File path="Demos\Device\RNDISEthernet\Ethernet.h"></File><File path="Demos\Device\RNDISEthernet\EthernetProtocols.h"></File><File path="Demos\Device\RNDISEthernet\ICMP.c"></File><File path="Demos\Device\RNDISEthernet\ICMP.h"></File><File path="Demos\Device\RNDISEthernet\IP.c"></File><File path="Demos\Device\RNDISEthernet\IP.h"></File><File path="Demos\Device\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\RNDISEthernet\makefile"></File><File path="Demos\Device\RNDISEthernet\ProtocolDecoders.c"></File><File path="Demos\Device\RNDISEthernet\ProtocolDecoders.h"></File><File path="Demos\Device\RNDISEthernet\RNDIS.c"></File><File path="Demos\Device\RNDISEthernet\RNDIS.h"></File><File path="Demos\Device\RNDISEthernet\RNDISConstants.h"></File><File path="Demos\Device\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\RNDISEthernet\RNDISEthernet.txt"></File><File path="Demos\Device\RNDISEthernet\TCP.c"></File><File path="Demos\Device\RNDISEthernet\TCP.h"></File><File path="Demos\Device\RNDISEthernet\UDP.c"></File><File path="Demos\Device\RNDISEthernet\UDP.h"></File><File path="Demos\Device\RNDISEthernet\Webserver.c"></File><File path="Demos\Device\RNDISEthernet\Webserver.h"></File></Folder><Folder name="USBtoSerial"><File path="Demos\Device\USBtoSerial\Descriptors.c"></File><File path="Demos\Device\USBtoSerial\Descriptors.h"></File><File path="Demos\Device\USBtoSerial\Doxygen.conf"></File><File path="Demos\Device\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Demos\Device\USBtoSerial\makefile"></File><File path="Demos\Device\USBtoSerial\RingBuff.c"></File><File path="Demos\Device\USBtoSerial\RingBuff.h"></File><File path="Demos\Device\USBtoSerial\USBtoSerial.c"></File><File path="Demos\Device\USBtoSerial\USBtoSerial.h"></File><File path="Demos\Device\USBtoSerial\USBtoSerial.txt"></File></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="CDCHost"><File path="Demos\Host\CDCHost\CDCHost.c"></File><File path="Demos\Host\CDCHost\CDCHost.h"></File><File path="Demos\Host\CDCHost\CDCHost.txt"></File><File path="Demos\Host\CDCHost\ConfigDescriptor.c"></File><File path="Demos\Host\CDCHost\ConfigDescriptor.h"></File><File path="Demos\Host\CDCHost\Doxygen.conf"></File><File path="Demos\Host\CDCHost\makefile"></File></Folder><Folder name="GenericHIDHost"><File path="Demos\Host\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\GenericHIDHost\makefile"></File><File path="Demos\Host\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\GenericHIDHost\GenericHIDHost.txt"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\KeyboardHost\makefile"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File><File path="Demos\Host\KeyboardHostWithParser\makefile"></File></Folder><Folder name="MassStorageHost"><File path="Demos\Host\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\MassStorageHost\makefile"></File><File path="Demos\Host\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\MassStorageHost\MassStorageHost.txt"></File><File path="Demos\Host\MassStorageHost\MassStoreCommands.c"></File><File path="Demos\Host\MassStorageHost\MassStoreCommands.h"></File><File path="Demos\Host\MassStorageHost\SCSI_Codes.h"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\MouseHost\Doxygen.conf"></File><File path="Demos\Host\MouseHost\makefile"></File><File path="Demos\Host\MouseHost\MouseHost.c"></File><File path="Demos\Host\MouseHost\MouseHost.h"></File><File path="Demos\Host\MouseHost\MouseHost.txt"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\MouseHostWithParser\makefile"></File><File path="Demos\Host\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\MouseHostWithParser\MouseHostWithParser.h"></File><File path="Demos\Host\MouseHostWithParser\MouseHostWithParser.txt"></File></Folder><Folder name="StillImageHost"><File path="Demos\Host\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\StillImageHost\makefile"></File><File path="Demos\Host\StillImageHost\PIMACodes.h"></File><File path="Demos\Host\StillImageHost\StillImageCommands.c"></File><File path="Demos\Host\StillImageHost\StillImageCommands.h"></File><File path="Demos\Host\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\StillImageHost\StillImageHost.txt"></File></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="OTG"><Folder name="TestApp"><File path="Demos\OTG\TestApp\Descriptors.c"></File><File path="Demos\OTG\TestApp\Descriptors.h"></File><File path="Demos\OTG\TestApp\Doxygen.conf"></File><File path="Demos\OTG\TestApp\makefile"></File><File path="Demos\OTG\TestApp\TestApp.c"></File><File path="Demos\OTG\TestApp\TestApp.h"></File><File path="Demos\OTG\TestApp\TestApp.txt"></File><File path="Demos\OTG\TestApp\TestEvents.c"></File><File path="Demos\OTG\TestApp\TestEvents.h"></File></Folder><File path="Demos\OTG\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\FunctionAttributes.h"></File><File path="LUFA\Common\BoardTypes.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.c"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.h"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.h"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.c"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.h"></File><File path="LUFA\Drivers\USB\LowLevel\Host.c"></File><File path="LUFA\Drivers\USB\LowLevel\Host.h"></File><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File></Folder><Folder name="HighLevel"><File path="LUFA\Drivers\USB\HighLevel\USBTask.h"></File><File path="LUFA\Drivers\USB\HighLevel\Events.c"></File><File path="LUFA\Drivers\USB\HighLevel\Events.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBTask.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\HighLevel\StdRequestType.h"></File><File path="LUFA\Drivers\USB\HighLevel\StreamCallbacks.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBMode.h"></File></Folder><Folder name="Class"><File path="LUFA\Drivers\USB\Class\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\HIDReportData.h"></File><File path="LUFA\Drivers\USB\Class\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\Class\ConfigDescriptor.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File></Folder><Folder name="Board"><Folder name="USBKEY"><File path="LUFA\Drivers\Board\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\USBKEY\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\USBKEY\LEDs.h"></File><File path="LUFA\Drivers\Board\USBKEY\Buttons.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\STK526\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\STK526\LEDs.h"></File><File path="LUFA\Drivers\Board\STK526\Buttons.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\STK525\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\STK525\LEDs.h"></File><File path="LUFA\Drivers\Board\STK525\Buttons.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\ATAVRUSBRF01\LEDs.h"></File><File path="LUFA\Drivers\Board\ATAVRUSBRF01\Buttons.h"></File></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AT90USBXXX67"><File path="LUFA\Drivers\Peripheral\AT90USBXXX67\ADC.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\Serial.c"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File><File path="LUFA\Drivers\Peripheral\SerialStream.c"></File><File path="LUFA\Drivers\Peripheral\SerialStream.h"></File></Folder></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.h"></File><File path="LUFA\Scheduler\Scheduler.c"></File></Folder><Folder name="MemoryAllocator"><File path="LUFA\MemoryAllocator\DynAlloc.h"></File><File path="LUFA\MemoryAllocator\DynAlloc.c"></File></Folder><Folder name="DriverStubs"><File path="LUFA\DriverStubs\Dataflash.h"></File><File path="LUFA\DriverStubs\Joystick.h"></File><File path="LUFA\DriverStubs\LEDs.h"></File><File path="LUFA\DriverStubs\Buttons.h"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\BuildingLinkableLibraries.txt"></File><File path="LUFA\GettingStarted.txt"></File><File path="LUFA\MainPage.txt"></File><File path="LUFA\SchedulerOverview.txt"></File><File path="LUFA\VIDAndPIDValues.txt"></File><File path="LUFA\ChangeLog.txt"></File><File path="LUFA\CompileTimeTokens.txt"></File><File path="LUFA\MigrationInformation.txt"></File><File path="LUFA\DirectorySummaries.txt"></File><File path="LUFA\Doxygen.conf"></File><File path="LUFA\WritingBoardDrivers.txt"></File><File path="LUFA\LUFAPoweredProjects.txt"></File><File path="LUFA\Groups.txt"></File></Folder><Folder name="Projects"><Folder name="MagStripe"><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\MagstripeHW.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File><File path="Projects\Magstripe\CircularBitBuffer.c"></File><File path="Projects\Magstripe\CircularBitBuffer.h"></File></Folder><File path="Projects\makefile"></File></Folder><Folder name="Bootloaders"><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File></Folder><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File></Folder><Folder name="TeensyHID"><File path="Bootloaders\TeensyHID\Descriptors.c"></File><File path="Bootloaders\TeensyHID\Descriptors.h"></File><File path="Bootloaders\TeensyHID\makefile"></File><File path="Bootloaders\TeensyHID\TeensyHID.c"></File><File path="Bootloaders\TeensyHID\TeensyHID.h"></File><File path="Bootloaders\TeensyHID\TeensyHID.txt"></File></Folder><File path="Bootloaders\makefile"></File></Folder><File path="makefile"></File></Project>
\ No newline at end of file
+<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="AudioInput"><File path="Demos\Device\AudioInput\AudioInput.c"></File><File path="Demos\Device\AudioInput\AudioInput.h"></File><File path="Demos\Device\AudioInput\AudioInput.txt"></File><File path="Demos\Device\AudioInput\Descriptors.c"></File><File path="Demos\Device\AudioInput\Descriptors.h"></File><File path="Demos\Device\AudioInput\Doxygen.conf"></File><File path="Demos\Device\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\AudioOutput\Descriptors.c"></File><File path="Demos\Device\AudioOutput\Descriptors.h"></File><File path="Demos\Device\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\AudioOutput\makefile"></File></Folder><Folder name="CDC"><File path="Demos\Device\CDC\CDC.c"></File><File path="Demos\Device\CDC\CDC.h"></File><File path="Demos\Device\CDC\CDC.txt"></File><File path="Demos\Device\CDC\Descriptors.c"></File><File path="Demos\Device\CDC\Descriptors.h"></File><File path="Demos\Device\CDC\Doxygen.conf"></File><File path="Demos\Device\CDC\LUFA CDC.inf"></File><File path="Demos\Device\CDC\makefile"></File></Folder><Folder name="DualCDC"><File path="Demos\Device\DualCDC\Descriptors.c"></File><File path="Demos\Device\DualCDC\Descriptors.h"></File><File path="Demos\Device\DualCDC\Doxygen.conf"></File><File path="Demos\Device\DualCDC\DualCDC.c"></File><File path="Demos\Device\DualCDC\DualCDC.h"></File><File path="Demos\Device\DualCDC\DualCDC.txt"></File><File path="Demos\Device\DualCDC\LUFA DualCDC.inf"></File><File path="Demos\Device\DualCDC\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\GenericHID\Descriptors.c"></File><File path="Demos\Device\GenericHID\Descriptors.h"></File><File path="Demos\Device\GenericHID\GenericHID.c"></File><File path="Demos\Device\GenericHID\GenericHID.h"></File><File path="Demos\Device\GenericHID\makefile"></File><File path="Demos\Device\GenericHID\GenericHID.txt"></File><File path="Demos\Device\GenericHID\Doxygen.conf"></File></Folder><Folder name="Joystick"><File path="Demos\Device\Joystick\Descriptors.c"></File><File path="Demos\Device\Joystick\Descriptors.h"></File><File path="Demos\Device\Joystick\Doxygen.conf"></File><File path="Demos\Device\Joystick\Joystick.c"></File><File path="Demos\Device\Joystick\Joystick.h"></File><File path="Demos\Device\Joystick\Joystick.txt"></File><File path="Demos\Device\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\Keyboard\Descriptors.c"></File><File path="Demos\Device\Keyboard\Descriptors.h"></File><File path="Demos\Device\Keyboard\Doxygen.conf"></File><File path="Demos\Device\Keyboard\Keyboard.c"></File><File path="Demos\Device\Keyboard\Keyboard.h"></File><File path="Demos\Device\Keyboard\Keyboard.txt"></File><File path="Demos\Device\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><File path="Demos\Device\MassStorage\DataflashManager.c"></File><File path="Demos\Device\MassStorage\DataflashManager.h"></File><File path="Demos\Device\MassStorage\Descriptors.c"></File><File path="Demos\Device\MassStorage\Descriptors.h"></File><File path="Demos\Device\MassStorage\Doxygen.conf"></File><File path="Demos\Device\MassStorage\makefile"></File><File path="Demos\Device\MassStorage\MassStorage.c"></File><File path="Demos\Device\MassStorage\MassStorage.h"></File><File path="Demos\Device\MassStorage\MassStorage.txt"></File><File path="Demos\Device\MassStorage\SCSI.c"></File><File path="Demos\Device\MassStorage\SCSI.h"></File><File path="Demos\Device\MassStorage\SCSI_Codes.h"></File></Folder><Folder name="MIDI"><File path="Demos\Device\MIDI\Descriptors.c"></File><File path="Demos\Device\MIDI\Descriptors.h"></File><File path="Demos\Device\MIDI\Doxygen.conf"></File><File path="Demos\Device\MIDI\makefile"></File><File path="Demos\Device\MIDI\MIDI.c"></File><File path="Demos\Device\MIDI\MIDI.h"></File><File path="Demos\Device\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\Mouse\Descriptors.c"></File><File path="Demos\Device\Mouse\Descriptors.h"></File><File path="Demos\Device\Mouse\Doxygen.conf"></File><File path="Demos\Device\Mouse\makefile"></File><File path="Demos\Device\Mouse\Mouse.c"></File><File path="Demos\Device\Mouse\Mouse.h"></File><File path="Demos\Device\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><File path="Demos\Device\RNDISEthernet\ARP.c"></File><File path="Demos\Device\RNDISEthernet\ARP.h"></File><File path="Demos\Device\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\RNDISEthernet\DHCP.c"></File><File path="Demos\Device\RNDISEthernet\DHCP.h"></File><File path="Demos\Device\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\RNDISEthernet\Ethernet.c"></File><File path="Demos\Device\RNDISEthernet\Ethernet.h"></File><File path="Demos\Device\RNDISEthernet\EthernetProtocols.h"></File><File path="Demos\Device\RNDISEthernet\ICMP.c"></File><File path="Demos\Device\RNDISEthernet\ICMP.h"></File><File path="Demos\Device\RNDISEthernet\IP.c"></File><File path="Demos\Device\RNDISEthernet\IP.h"></File><File path="Demos\Device\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\RNDISEthernet\makefile"></File><File path="Demos\Device\RNDISEthernet\ProtocolDecoders.c"></File><File path="Demos\Device\RNDISEthernet\ProtocolDecoders.h"></File><File path="Demos\Device\RNDISEthernet\RNDIS.c"></File><File path="Demos\Device\RNDISEthernet\RNDIS.h"></File><File path="Demos\Device\RNDISEthernet\RNDISConstants.h"></File><File path="Demos\Device\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\RNDISEthernet\RNDISEthernet.txt"></File><File path="Demos\Device\RNDISEthernet\TCP.c"></File><File path="Demos\Device\RNDISEthernet\TCP.h"></File><File path="Demos\Device\RNDISEthernet\UDP.c"></File><File path="Demos\Device\RNDISEthernet\UDP.h"></File><File path="Demos\Device\RNDISEthernet\Webserver.c"></File><File path="Demos\Device\RNDISEthernet\Webserver.h"></File></Folder><Folder name="USBtoSerial"><File path="Demos\Device\USBtoSerial\Descriptors.c"></File><File path="Demos\Device\USBtoSerial\Descriptors.h"></File><File path="Demos\Device\USBtoSerial\Doxygen.conf"></File><File path="Demos\Device\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Demos\Device\USBtoSerial\makefile"></File><File path="Demos\Device\USBtoSerial\RingBuff.c"></File><File path="Demos\Device\USBtoSerial\RingBuff.h"></File><File path="Demos\Device\USBtoSerial\USBtoSerial.c"></File><File path="Demos\Device\USBtoSerial\USBtoSerial.h"></File><File path="Demos\Device\USBtoSerial\USBtoSerial.txt"></File></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="CDCHost"><File path="Demos\Host\CDCHost\CDCHost.c"></File><File path="Demos\Host\CDCHost\CDCHost.h"></File><File path="Demos\Host\CDCHost\CDCHost.txt"></File><File path="Demos\Host\CDCHost\ConfigDescriptor.c"></File><File path="Demos\Host\CDCHost\ConfigDescriptor.h"></File><File path="Demos\Host\CDCHost\Doxygen.conf"></File><File path="Demos\Host\CDCHost\makefile"></File></Folder><Folder name="GenericHIDHost"><File path="Demos\Host\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\GenericHIDHost\makefile"></File><File path="Demos\Host\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\GenericHIDHost\GenericHIDHost.txt"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\KeyboardHost\makefile"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File><File path="Demos\Host\KeyboardHostWithParser\makefile"></File></Folder><Folder name="MassStorageHost"><File path="Demos\Host\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\MassStorageHost\makefile"></File><File path="Demos\Host\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\MassStorageHost\MassStorageHost.txt"></File><File path="Demos\Host\MassStorageHost\MassStoreCommands.c"></File><File path="Demos\Host\MassStorageHost\MassStoreCommands.h"></File><File path="Demos\Host\MassStorageHost\SCSI_Codes.h"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\MouseHost\Doxygen.conf"></File><File path="Demos\Host\MouseHost\makefile"></File><File path="Demos\Host\MouseHost\MouseHost.c"></File><File path="Demos\Host\MouseHost\MouseHost.h"></File><File path="Demos\Host\MouseHost\MouseHost.txt"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\MouseHostWithParser\makefile"></File><File path="Demos\Host\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\MouseHostWithParser\MouseHostWithParser.h"></File><File path="Demos\Host\MouseHostWithParser\MouseHostWithParser.txt"></File></Folder><Folder name="StillImageHost"><File path="Demos\Host\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\StillImageHost\makefile"></File><File path="Demos\Host\StillImageHost\PIMACodes.h"></File><File path="Demos\Host\StillImageHost\StillImageCommands.c"></File><File path="Demos\Host\StillImageHost\StillImageCommands.h"></File><File path="Demos\Host\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\StillImageHost\StillImageHost.txt"></File></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="OTG"><Folder name="TestApp"><File path="Demos\OTG\TestApp\Descriptors.c"></File><File path="Demos\OTG\TestApp\Descriptors.h"></File><File path="Demos\OTG\TestApp\Doxygen.conf"></File><File path="Demos\OTG\TestApp\makefile"></File><File path="Demos\OTG\TestApp\TestApp.c"></File><File path="Demos\OTG\TestApp\TestApp.h"></File><File path="Demos\OTG\TestApp\TestApp.txt"></File><File path="Demos\OTG\TestApp\TestEvents.c"></File><File path="Demos\OTG\TestApp\TestEvents.h"></File></Folder><File path="Demos\OTG\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\FunctionAttributes.h"></File><File path="LUFA\Common\BoardTypes.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.c"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.h"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.h"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.c"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.h"></File><File path="LUFA\Drivers\USB\LowLevel\Host.c"></File><File path="LUFA\Drivers\USB\LowLevel\Host.h"></File><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File></Folder><Folder name="HighLevel"><File path="LUFA\Drivers\USB\HighLevel\USBTask.h"></File><File path="LUFA\Drivers\USB\HighLevel\Events.c"></File><File path="LUFA\Drivers\USB\HighLevel\Events.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBTask.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\HighLevel\StdRequestType.h"></File><File path="LUFA\Drivers\USB\HighLevel\StreamCallbacks.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBMode.h"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.h"></File></Folder><Folder name="Class"><File path="LUFA\Drivers\USB\Class\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\HIDReportData.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File></Folder><Folder name="Board"><Folder name="USBKEY"><File path="LUFA\Drivers\Board\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\USBKEY\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\USBKEY\LEDs.h"></File><File path="LUFA\Drivers\Board\USBKEY\Buttons.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\STK526\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\STK526\LEDs.h"></File><File path="LUFA\Drivers\Board\STK526\Buttons.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\STK525\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\STK525\LEDs.h"></File><File path="LUFA\Drivers\Board\STK525\Buttons.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\ATAVRUSBRF01\LEDs.h"></File><File path="LUFA\Drivers\Board\ATAVRUSBRF01\Buttons.h"></File></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AT90USBXXX67"><File path="LUFA\Drivers\Peripheral\AT90USBXXX67\ADC.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\Serial.c"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File><File path="LUFA\Drivers\Peripheral\SerialStream.c"></File><File path="LUFA\Drivers\Peripheral\SerialStream.h"></File></Folder></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.h"></File><File path="LUFA\Scheduler\Scheduler.c"></File></Folder><Folder name="MemoryAllocator"><File path="LUFA\MemoryAllocator\DynAlloc.h"></File><File path="LUFA\MemoryAllocator\DynAlloc.c"></File></Folder><Folder name="DriverStubs"><File path="LUFA\DriverStubs\Dataflash.h"></File><File path="LUFA\DriverStubs\Joystick.h"></File><File path="LUFA\DriverStubs\LEDs.h"></File><File path="LUFA\DriverStubs\Buttons.h"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\BuildingLinkableLibraries.txt"></File><File path="LUFA\GettingStarted.txt"></File><File path="LUFA\MainPage.txt"></File><File path="LUFA\SchedulerOverview.txt"></File><File path="LUFA\VIDAndPIDValues.txt"></File><File path="LUFA\ChangeLog.txt"></File><File path="LUFA\CompileTimeTokens.txt"></File><File path="LUFA\MigrationInformation.txt"></File><File path="LUFA\DirectorySummaries.txt"></File><File path="LUFA\Doxygen.conf"></File><File path="LUFA\WritingBoardDrivers.txt"></File><File path="LUFA\LUFAPoweredProjects.txt"></File><File path="LUFA\Groups.txt"></File></Folder><Folder name="Projects"><Folder name="MagStripe"><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\MagstripeHW.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File><File path="Projects\Magstripe\CircularBitBuffer.c"></File><File path="Projects\Magstripe\CircularBitBuffer.h"></File></Folder><File path="Projects\makefile"></File></Folder><Folder name="Bootloaders"><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File></Folder><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File></Folder><Folder name="TeensyHID"><File path="Bootloaders\TeensyHID\Descriptors.c"></File><File path="Bootloaders\TeensyHID\Descriptors.h"></File><File path="Bootloaders\TeensyHID\makefile"></File><File path="Bootloaders\TeensyHID\TeensyHID.c"></File><File path="Bootloaders\TeensyHID\TeensyHID.h"></File><File path="Bootloaders\TeensyHID\TeensyHID.txt"></File></Folder><File path="Bootloaders\makefile"></File></Folder><File path="makefile"></File></Project>
\ No newline at end of file
index 6ccbb7f..4a7f34e 100644 (file)
@@ -26,6 +26,8 @@
   *  - Removed DESCRIPTOR_COMPARATOR() macro - comparators should now use regular function definitions to clarify user code\r
   *  - USB_IsConnected is now cleared before the USB_Disconnect() event is fired in response to VBUS being removed\r
   *  - Fixed incorrect PID value being used in the USBtoSerial project (thanks to Phill)\r
+  *  - Deleted StdDescriptors.c, renamed USB_GetDescriptor() to CALLBACK_USB_GetDescriptor, moved ConfigDescriptor.c/.h from the\r
+  *    LUFA/Drivers/USB/Class/ directory to LUFA/Drivers/USB/HighLevel/ in preperation for the new USB class APIs\r
   *\r
   *\r
   *  \section Sec_ChangeLog090510 Version 090510\r
diff --git a/LUFA/Drivers/USB/Class/ConfigDescriptor.c b/LUFA/Drivers/USB/Class/ConfigDescriptor.c
deleted file mode 100644 (file)
index bbe258b..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
-  software without specific, written prior permission.\r
-\r
-  The author disclaim all warranties with regard to this\r
-  software, including all implied warranties of merchantability\r
-  and fitness.  In no event shall the author be liable for any\r
-  special, indirect or consequential damages or any damages\r
-  whatsoever resulting from loss of use, data or profits, whether\r
-  in an action of contract, negligence or other tortious action,\r
-  arising out of or in connection with the use or performance of\r
-  this software.\r
-*/\r
-\r
-#include "ConfigDescriptor.h"\r
-\r
-#if defined(USB_CAN_BE_HOST)\r
-uint8_t USB_GetDeviceConfigDescriptor(uint16_t* const ConfigSizePtr, void* BufferPtr)\r
-{\r
-       uint8_t ErrorCode;\r
-\r
-       USB_ControlRequest = (USB_Request_Header_t)\r
-               {\r
-                       .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE),\r
-                       .bRequest      = REQ_GetDescriptor,\r
-                       .wValue        = (DTYPE_Configuration << 8),\r
-                       .wIndex        = 0,\r
-                       .wLength       = sizeof(USB_Descriptor_Configuration_Header_t),\r
-               };\r
-       \r
-       Pipe_SelectPipe(PIPE_CONTROLPIPE);\r
-\r
-       if (BufferPtr == NULL)\r
-       {\r
-               uint8_t ConfigHeader[sizeof(USB_Descriptor_Configuration_Header_t)];\r
-\r
-               ErrorCode      = USB_Host_SendControlRequest(ConfigHeader);\r
-\r
-               #if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES)\r
-               *ConfigSizePtr = DESCRIPTOR_CAST(ConfigHeader, USB_Descriptor_Configuration_Header_t).TotalConfigurationSize;\r
-               #else\r
-               *ConfigSizePtr = DESCRIPTOR_CAST(ConfigHeader, USB_Descriptor_Configuration_Header_t).wTotalLength;             \r
-               #endif\r
-       }\r
-       else\r
-       {\r
-               USB_ControlRequest.wLength = *ConfigSizePtr;\r
-               \r
-               ErrorCode      = USB_Host_SendControlRequest(BufferPtr);                                \r
-       }\r
-\r
-       return ErrorCode;\r
-}\r
-#endif\r
-\r
-void USB_GetNextDescriptorOfType(uint16_t* const BytesRem,\r
-                                 uint8_t** const CurrConfigLoc,\r
-                                 const uint8_t Type)\r
-{\r
-       while (*BytesRem)\r
-       {\r
-               USB_GetNextDescriptor(BytesRem, CurrConfigLoc);   \r
-\r
-               if (DESCRIPTOR_TYPE(*CurrConfigLoc) == Type)\r
-                 return;\r
-       }\r
-}\r
-\r
-void USB_GetNextDescriptorOfTypeBefore(uint16_t* const BytesRem,\r
-                                       uint8_t** const CurrConfigLoc,\r
-                                       const uint8_t Type,\r
-                                       const uint8_t BeforeType)\r
-{\r
-       while (*BytesRem)\r
-       {\r
-               USB_GetNextDescriptor(BytesRem, CurrConfigLoc);\r
-\r
-               if (DESCRIPTOR_TYPE(*CurrConfigLoc) == Type)\r
-               {\r
-                       return;\r
-               }\r
-               else if (DESCRIPTOR_TYPE(*CurrConfigLoc) == BeforeType)\r
-               {\r
-                       *BytesRem = 0;\r
-                       return;\r
-               }\r
-       }\r
-}\r
-\r
-void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem,\r
-                                      uint8_t** const CurrConfigLoc,\r
-                                      const uint8_t Type,\r
-                                      const uint8_t AfterType)\r
-{\r
-       USB_GetNextDescriptorOfType(BytesRem, CurrConfigLoc, AfterType);\r
-       \r
-       if (*BytesRem)\r
-         USB_GetNextDescriptorOfType(BytesRem, CurrConfigLoc, Type);\r
-}\r
-                       \r
-uint8_t USB_GetNextDescriptorComp(uint16_t* BytesRem, uint8_t** CurrConfigLoc, ConfigComparatorPtr_t ComparatorRoutine)\r
-{\r
-       uint8_t ErrorCode;\r
-               \r
-       while (*BytesRem)\r
-       {\r
-               uint8_t*  PrevDescLoc  = *CurrConfigLoc;\r
-               uint16_t  PrevBytesRem = *BytesRem;\r
-\r
-               USB_GetNextDescriptor(BytesRem, CurrConfigLoc);\r
-\r
-               if ((ErrorCode = ComparatorRoutine(*CurrConfigLoc)) != DESCRIPTOR_SEARCH_NotFound)\r
-               {\r
-                       if (ErrorCode == DESCRIPTOR_SEARCH_Fail)\r
-                       {\r
-                               *CurrConfigLoc = PrevDescLoc;\r
-                               *BytesRem      = PrevBytesRem;\r
-                       }\r
-               \r
-                       return ErrorCode;\r
-               }\r
-       }\r
-       \r
-       return DESCRIPTOR_SEARCH_COMP_EndOfDescriptor;\r
-}\r
diff --git a/LUFA/Drivers/USB/Class/ConfigDescriptor.h b/LUFA/Drivers/USB/Class/ConfigDescriptor.h
deleted file mode 100644 (file)
index 5c2b6e2..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
-  software without specific, written prior permission.\r
-\r
-  The author disclaim all warranties with regard to this\r
-  software, including all implied warranties of merchantability\r
-  and fitness.  In no event shall the author be liable for any\r
-  special, indirect or consequential damages or any damages\r
-  whatsoever resulting from loss of use, data or profits, whether\r
-  in an action of contract, negligence or other tortious action,\r
-  arising out of or in connection with the use or performance of\r
-  this software.\r
-*/\r
-\r
-/** \file\r
- *\r
- *  Configuration descriptor parser API. This section of the library gives a friendly API which can be used in\r
- *  host applications to easily parse an attached device's configuration descriptor so that endpoint, interface\r
- *  and other descriptor data can be extracted and used as needed.\r
- */\r
-\r
-/** \ingroup Group_Descriptors\r
- *  @defgroup Group_ConfigDescriptorParser Configuration Descriptor Parser\r
- *\r
- *  Functions, macros, variables, enums and types related to the parsing of Configuration Descriptors.\r
- *\r
- *  @{\r
- */\r
-\r
-#ifndef __CONFIGDESCRIPTOR_H__\r
-#define __CONFIGDESCRIPTOR_H__\r
-\r
-       /* Includes: */\r
-               #include <avr/io.h>\r
-               \r
-               #include "../../../Common/Common.h"\r
-               #include "../HighLevel/USBMode.h"\r
-               #include "../LowLevel/HostChapter9.h"\r
-               #include "../HighLevel/StdDescriptors.h"\r
-               \r
-       /* Enable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       extern "C" {\r
-               #endif\r
-\r
-       /* Public Interface - May be used in end-application: */        \r
-               /* Macros: */\r
-                       /** Mask for determining the type of an endpoint from an endpoint descriptor. This should then be compared\r
-                        *  with the EP_TYPE_* masks to determine the exact type of the endpoint.\r
-                        */\r
-                       #define EP_TYPE_MASK                       0x03\r
-\r
-                       /** Casts a pointer to a descriptor inside the configuration descriptor into a pointer to the given\r
-                        *  descriptor type.\r
-                        *\r
-                        *  Usage Example:\r
-                        *  \code\r
-                        *  uint8_t* CurrDescriptor = &ConfigDescriptor[0]; // Pointing to the configuration header\r
-                        *  USB_Descriptor_Configuration_Header_t* ConfigHeaderPtr = DESCRIPTOR_PCAST(CurrDescriptor,\r
-                        *                                                           USB_Descriptor_Configuration_Header_t);\r
-                        *\r
-                        *  // Can now access elements of the configuration header struct using the -> indirection operator\r
-                        *  \endcode\r
-                        */\r
-                       #define DESCRIPTOR_PCAST(DescriptorPtr, Type) ((Type*)DescriptorPtr)\r
-\r
-                       /** Casts a pointer to a descriptor inside the configuration descriptor into the given descriptor\r
-                        *  type (as an actual struct instance rather than a pointer to a struct).\r
-                        *\r
-                        *  Usage Example:\r
-                        *  \code\r
-                        *  uint8_t* CurrDescriptor = &ConfigDescriptor[0]; // Pointing to the configuration header\r
-                        *  USB_Descriptor_Configuration_Header_t ConfigHeader = DESCRIPTOR_CAST(CurrDescriptor,\r
-                        *                                                       USB_Descriptor_Configuration_Header_t);\r
-                        *\r
-                        *  // Can now access elements of the configuration header struct using the . operator\r
-                        *  \endcode\r
-                        */\r
-                       #define DESCRIPTOR_CAST(DescriptorPtr, Type)  (*DESCRIPTOR_PCAST(DescriptorPtr, Type))\r
-\r
-                       /** Returns the descriptor's type, expressed as the 8-bit type value in the header of the descriptor.\r
-                        *  This value's meaning depends on the descriptor's placement in the descriptor, but standard type\r
-                        *  values can be accessed in the \ref USB_DescriptorTypes_t enum.\r
-                        */\r
-                       #if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES) || defined(__DOXYGEN__)\r
-                               #define DESCRIPTOR_TYPE(DescriptorPtr)    DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).Type\r
-                       #else\r
-                               #define DESCRIPTOR_TYPE(DescriptorPtr)    DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).bDescriptorType                       \r
-                       #endif\r
-                       \r
-                       /** Returns the descriptor's size, expressed as the 8-bit value indicating the number of bytes. */\r
-                       #if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES) || defined(__DOXYGEN__)\r
-                               #define DESCRIPTOR_SIZE(DescriptorPtr)    DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).Size\r
-                       #else\r
-                               #define DESCRIPTOR_SIZE(DescriptorPtr)    DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).bLength\r
-                       #endif\r
-\r
-               /* Type Defines: */\r
-                       /** Type define for a Configuration Descriptor comparator function (function taking a pointer to an array\r
-                        *  of type void, returning a uint8_t value).\r
-                        *\r
-                        *  \see \ref USB_GetNextDescriptorComp function for more details\r
-                        */\r
-                       typedef uint8_t (* const ConfigComparatorPtr_t)(void* const);\r
-\r
-               /* Function Prototypes: */\r
-                       /** Searches for the next descriptor in the given configuration descriptor using a premade comparator\r
-                        *  function. The routine updates the position and remaining configuration descriptor bytes values\r
-                        *  automatically. If a comparator routine fails a search, the descriptor pointer is retreated back\r
-                        *  so that the next descriptor search invocation will start from the descriptor which first caused the\r
-                        *  original search to fail. This behaviour allows for one comparator to be used immediately after another\r
-                        *  has failed, starting the second search from the descriptor which failed the first.\r
-                        *\r
-                        *  Comparator functions should be standard functions which accept a pointer to the header of the current\r
-                        *  descriptor inside the configuration descriptor which is being compared, and should return a value from\r
-                        *  the \ref DSearch_Return_ErrorCodes_t enum as a uint8_t value.\r
-                        *\r
-                        *  \note This function is available in USB Host mode only.\r
-                        *\r
-                        *  \param BytesRem  Pointer to an int storing the remaining bytes in the configuration descriptor\r
-                        *  \param CurrConfigLoc  Pointer to the current position in the configuration descriptor\r
-                        *  \param ComparatorRoutine  Name of the comparator search function to use on the configuration descriptor\r
-                        *\r
-                        *  \return Value of one of the members of the \ref DSearch_Comp_Return_ErrorCodes_t enum\r
-                        *\r
-                        *  Usage Example:\r
-                        *  \code\r
-                        *  uint8_t EndpointSearcher(void* CurrentDescriptor); // Comparator Prototype\r
-                        *\r
-                        *  uint8_t EndpointSearcher(void* CurrentDescriptor)\r
-                        *  {\r
-                        *     if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Endpoint)\r
-                        *         return DESCRIPTOR_SEARCH_Found;\r
-                        *     else\r
-                        *         return DESCRIPTOR_SEARCH_NotFound;\r
-                        *  }\r
-                        *\r
-                        *  //...\r
-                        *  // After retrieving configuration descriptor:\r
-                        *  if (USB_Host_GetNextDescriptorComp(&BytesRemaining, &ConfigDescriptorData, EndpointSearcher) ==\r
-                        *      Descriptor_Search_Comp_Found)\r
-                        *  {\r
-                        *      // Do something with the endpoint descriptor\r
-                        *  }\r
-                        *  \endcode\r
-                        */\r
-                       uint8_t USB_GetNextDescriptorComp(uint16_t* BytesRem, uint8_t** CurrConfigLoc, ConfigComparatorPtr_t ComparatorRoutine);\r
-                       \r
-               /* Enums: */\r
-                       /** Enum for return values of a descriptor comparator function. */\r
-                       enum DSearch_Return_ErrorCodes_t\r
-                       {\r
-                               DESCRIPTOR_SEARCH_Found                = 0, /**< Current descriptor matches comparator criteria. */\r
-                               DESCRIPTOR_SEARCH_Fail                 = 1, /**< No further descriptor could possibly match criteria, fail the search. */\r
-                               DESCRIPTOR_SEARCH_NotFound             = 2, /**< Current descriptor does not match comparator criteria. */\r
-                       };\r
-\r
-                       /** Enum for return values of \ref USB_GetNextDescriptorComp(). */\r
-                       enum DSearch_Comp_Return_ErrorCodes_t\r
-                       {\r
-                               DESCRIPTOR_SEARCH_COMP_Found           = 0, /**< Configuration descriptor now points to descriptor which matches\r
-                                                                            *   search criteria of the given comparator function. */\r
-                               DESCRIPTOR_SEARCH_COMP_Fail            = 1, /**< Comparator function returned Descriptor_Search_Fail. */\r
-                               DESCRIPTOR_SEARCH_COMP_EndOfDescriptor = 2, /**< End of configuration descriptor reached before match found. */\r
-                       };\r
-       \r
-               /* Function Prototypes: */\r
-                       /** Retrieves the configuration descriptor data or size from an attached device via a standard request.\r
-                        *\r
-                        *  \param ConfigSizePtr  Pointer to a uint16_t for either storing or retrieving the configuration\r
-                        *         descriptor size\r
-                        *\r
-                        *  \param BufferPtr  Pointer to the buffer for storing the configuration descriptor data. If this is\r
-                        *                    NULL, the size of the configuration descriptor will be retrieved instead and\r
-                        *                    placed in the variable pointed to by ConfigSizePtr. If this is non-NULL, the number\r
-                        *                    of bytes indicated by ConfigSizePtr of the configuration descriptor will be loaded\r
-                        *                    into the buffer\r
-                        */\r
-                       uint8_t USB_GetDeviceConfigDescriptor(uint16_t* const ConfigSizePtr, void* BufferPtr)\r
-                                                             ATTR_NON_NULL_PTR_ARG(1);\r
-\r
-                       /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value.\r
-                        *  The bytes remaining value is automatically decremented.\r
-                        *\r
-                        * \param BytesRem  Pointer to the number of bytes remaining of the configuration descriptor\r
-                        * \param CurrConfigLoc  Pointer to the current descriptor inside the configuration descriptor\r
-                        * \param Type  Descriptor type value to search for\r
-                        */\r
-                       void USB_GetNextDescriptorOfType(uint16_t* const BytesRem,\r
-                                                        uint8_t** const CurrConfigLoc,\r
-                                                        const uint8_t Type)\r
-                                                        ATTR_NON_NULL_PTR_ARG(1, 2);\r
-\r
-                       /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value,\r
-                        *  which must come before a descriptor of the second given type value. If the BeforeType type\r
-                        *  descriptor is reached first, the number of bytes remaining to process is set to zero and the\r
-                        *  function exits. The bytes remaining value is automatically decremented.\r
-                        *\r
-                        * \param BytesRem  Pointer to the number of bytes remaining of the configuration descriptor\r
-                        * \param CurrConfigLoc  Pointer to the current descriptor inside the configuration descriptor\r
-                        * \param Type  Descriptor type value to search for\r
-                        * \param BeforeType  Descriptor type value which must not be reached before the given Type descriptor\r
-                        */\r
-                       void USB_GetNextDescriptorOfTypeBefore(uint16_t* const BytesRem,\r
-                                                              uint8_t** const CurrConfigLoc,\r
-                                                              const uint8_t Type,\r
-                                                              const uint8_t BeforeType)\r
-                                                              ATTR_NON_NULL_PTR_ARG(1, 2);\r
-\r
-                       /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value,\r
-                        *  which must come after a descriptor of the second given type value. The bytes remaining value is\r
-                        *  automatically decremented.\r
-                        *\r
-                        * \param BytesRem  Pointer to the number of bytes remaining of the configuration descriptor\r
-                        * \param CurrConfigLoc  Pointer to the current descriptor inside the configuration descriptor\r
-                        * \param Type  Descriptor type value to search for\r
-                        * \param AfterType  Descriptor type value which must be reached before the given Type descriptor\r
-                        */\r
-                       void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem,\r
-                                                             uint8_t** const CurrConfigLoc,\r
-                                                             const uint8_t Type,\r
-                                                             const uint8_t AfterType)\r
-                                                             ATTR_NON_NULL_PTR_ARG(1, 2);\r
-\r
-               /* Inline Functions: */\r
-                       /** Skips over the current sub-descriptor inside the configuration descriptor, so that the pointer then\r
-                           points to the next sub-descriptor. The bytes remaining value is automatically decremented.\r
-                        *\r
-                        * \param BytesRem  Pointer to the number of bytes remaining of the configuration descriptor\r
-                        * \param CurrConfigLoc  Pointer to the current descriptor inside the configuration descriptor\r
-                        */\r
-                       static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,\r
-                                                                uint8_t** const CurrConfigLoc) \r
-                                                                ATTR_NON_NULL_PTR_ARG(1, 2);                                                                     \r
-                       static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,\r
-                                                                uint8_t** const CurrConfigLoc)\r
-                       {\r
-                               #if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES)\r
-                               uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).Size;\r
-                               #else\r
-                               uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).bLength;                         \r
-                               #endif\r
-\r
-                               *CurrConfigLoc += CurrDescriptorSize;\r
-                               *BytesRem      -= CurrDescriptorSize;\r
-                       }\r
-                       \r
-       /* Disable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       }\r
-               #endif\r
-\r
-#endif\r
-\r
-/** @} */\r
diff --git a/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c b/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c
new file mode 100644 (file)
index 0000000..bbe258b
--- /dev/null
@@ -0,0 +1,141 @@
+/*\r
+             LUFA Library\r
+     Copyright (C) Dean Camera, 2009.\r
+              \r
+  dean [at] fourwalledcubicle [dot] com\r
+      www.fourwalledcubicle.com\r
+*/\r
+\r
+/*\r
+  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+\r
+  Permission to use, copy, modify, and distribute this software\r
+  and its documentation for any purpose and without fee is hereby\r
+  granted, provided that the above copyright notice appear in all\r
+  copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting\r
+  documentation, and that the name of the author not be used in\r
+  advertising or publicity pertaining to distribution of the\r
+  software without specific, written prior permission.\r
+\r
+  The author disclaim all warranties with regard to this\r
+  software, including all implied warranties of merchantability\r
+  and fitness.  In no event shall the author be liable for any\r
+  special, indirect or consequential damages or any damages\r
+  whatsoever resulting from loss of use, data or profits, whether\r
+  in an action of contract, negligence or other tortious action,\r
+  arising out of or in connection with the use or performance of\r
+  this software.\r
+*/\r
+\r
+#include "ConfigDescriptor.h"\r
+\r
+#if defined(USB_CAN_BE_HOST)\r
+uint8_t USB_GetDeviceConfigDescriptor(uint16_t* const ConfigSizePtr, void* BufferPtr)\r
+{\r
+       uint8_t ErrorCode;\r
+\r
+       USB_ControlRequest = (USB_Request_Header_t)\r
+               {\r
+                       .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE),\r
+                       .bRequest      = REQ_GetDescriptor,\r
+                       .wValue        = (DTYPE_Configuration << 8),\r
+                       .wIndex        = 0,\r
+                       .wLength       = sizeof(USB_Descriptor_Configuration_Header_t),\r
+               };\r
+       \r
+       Pipe_SelectPipe(PIPE_CONTROLPIPE);\r
+\r
+       if (BufferPtr == NULL)\r
+       {\r
+               uint8_t ConfigHeader[sizeof(USB_Descriptor_Configuration_Header_t)];\r
+\r
+               ErrorCode      = USB_Host_SendControlRequest(ConfigHeader);\r
+\r
+               #if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES)\r
+               *ConfigSizePtr = DESCRIPTOR_CAST(ConfigHeader, USB_Descriptor_Configuration_Header_t).TotalConfigurationSize;\r
+               #else\r
+               *ConfigSizePtr = DESCRIPTOR_CAST(ConfigHeader, USB_Descriptor_Configuration_Header_t).wTotalLength;             \r
+               #endif\r
+       }\r
+       else\r
+       {\r
+               USB_ControlRequest.wLength = *ConfigSizePtr;\r
+               \r
+               ErrorCode      = USB_Host_SendControlRequest(BufferPtr);                                \r
+       }\r
+\r
+       return ErrorCode;\r
+}\r
+#endif\r
+\r
+void USB_GetNextDescriptorOfType(uint16_t* const BytesRem,\r
+                                 uint8_t** const CurrConfigLoc,\r
+                                 const uint8_t Type)\r
+{\r
+       while (*BytesRem)\r
+       {\r
+               USB_GetNextDescriptor(BytesRem, CurrConfigLoc);   \r
+\r
+               if (DESCRIPTOR_TYPE(*CurrConfigLoc) == Type)\r
+                 return;\r
+       }\r
+}\r
+\r
+void USB_GetNextDescriptorOfTypeBefore(uint16_t* const BytesRem,\r
+                                       uint8_t** const CurrConfigLoc,\r
+                                       const uint8_t Type,\r
+                                       const uint8_t BeforeType)\r
+{\r
+       while (*BytesRem)\r
+       {\r
+               USB_GetNextDescriptor(BytesRem, CurrConfigLoc);\r
+\r
+               if (DESCRIPTOR_TYPE(*CurrConfigLoc) == Type)\r
+               {\r
+                       return;\r
+               }\r
+               else if (DESCRIPTOR_TYPE(*CurrConfigLoc) == BeforeType)\r
+               {\r
+                       *BytesRem = 0;\r
+                       return;\r
+               }\r
+       }\r
+}\r
+\r
+void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem,\r
+                                      uint8_t** const CurrConfigLoc,\r
+                                      const uint8_t Type,\r
+                                      const uint8_t AfterType)\r
+{\r
+       USB_GetNextDescriptorOfType(BytesRem, CurrConfigLoc, AfterType);\r
+       \r
+       if (*BytesRem)\r
+         USB_GetNextDescriptorOfType(BytesRem, CurrConfigLoc, Type);\r
+}\r
+                       \r
+uint8_t USB_GetNextDescriptorComp(uint16_t* BytesRem, uint8_t** CurrConfigLoc, ConfigComparatorPtr_t ComparatorRoutine)\r
+{\r
+       uint8_t ErrorCode;\r
+               \r
+       while (*BytesRem)\r
+       {\r
+               uint8_t*  PrevDescLoc  = *CurrConfigLoc;\r
+               uint16_t  PrevBytesRem = *BytesRem;\r
+\r
+               USB_GetNextDescriptor(BytesRem, CurrConfigLoc);\r
+\r
+               if ((ErrorCode = ComparatorRoutine(*CurrConfigLoc)) != DESCRIPTOR_SEARCH_NotFound)\r
+               {\r
+                       if (ErrorCode == DESCRIPTOR_SEARCH_Fail)\r
+                       {\r
+                               *CurrConfigLoc = PrevDescLoc;\r
+                               *BytesRem      = PrevBytesRem;\r
+                       }\r
+               \r
+                       return ErrorCode;\r
+               }\r
+       }\r
+       \r
+       return DESCRIPTOR_SEARCH_COMP_EndOfDescriptor;\r
+}\r
diff --git a/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h b/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h
new file mode 100644 (file)
index 0000000..5c2b6e2
--- /dev/null
@@ -0,0 +1,271 @@
+/*\r
+             LUFA Library\r
+     Copyright (C) Dean Camera, 2009.\r
+              \r
+  dean [at] fourwalledcubicle [dot] com\r
+      www.fourwalledcubicle.com\r
+*/\r
+\r
+/*\r
+  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+\r
+  Permission to use, copy, modify, and distribute this software\r
+  and its documentation for any purpose and without fee is hereby\r
+  granted, provided that the above copyright notice appear in all\r
+  copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting\r
+  documentation, and that the name of the author not be used in\r
+  advertising or publicity pertaining to distribution of the\r
+  software without specific, written prior permission.\r
+\r
+  The author disclaim all warranties with regard to this\r
+  software, including all implied warranties of merchantability\r
+  and fitness.  In no event shall the author be liable for any\r
+  special, indirect or consequential damages or any damages\r
+  whatsoever resulting from loss of use, data or profits, whether\r
+  in an action of contract, negligence or other tortious action,\r
+  arising out of or in connection with the use or performance of\r
+  this software.\r
+*/\r
+\r
+/** \file\r
+ *\r
+ *  Configuration descriptor parser API. This section of the library gives a friendly API which can be used in\r
+ *  host applications to easily parse an attached device's configuration descriptor so that endpoint, interface\r
+ *  and other descriptor data can be extracted and used as needed.\r
+ */\r
+\r
+/** \ingroup Group_Descriptors\r
+ *  @defgroup Group_ConfigDescriptorParser Configuration Descriptor Parser\r
+ *\r
+ *  Functions, macros, variables, enums and types related to the parsing of Configuration Descriptors.\r
+ *\r
+ *  @{\r
+ */\r
+\r
+#ifndef __CONFIGDESCRIPTOR_H__\r
+#define __CONFIGDESCRIPTOR_H__\r
+\r
+       /* Includes: */\r
+               #include <avr/io.h>\r
+               \r
+               #include "../../../Common/Common.h"\r
+               #include "../HighLevel/USBMode.h"\r
+               #include "../LowLevel/HostChapter9.h"\r
+               #include "../HighLevel/StdDescriptors.h"\r
+               \r
+       /* Enable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       extern "C" {\r
+               #endif\r
+\r
+       /* Public Interface - May be used in end-application: */        \r
+               /* Macros: */\r
+                       /** Mask for determining the type of an endpoint from an endpoint descriptor. This should then be compared\r
+                        *  with the EP_TYPE_* masks to determine the exact type of the endpoint.\r
+                        */\r
+                       #define EP_TYPE_MASK                       0x03\r
+\r
+                       /** Casts a pointer to a descriptor inside the configuration descriptor into a pointer to the given\r
+                        *  descriptor type.\r
+                        *\r
+                        *  Usage Example:\r
+                        *  \code\r
+                        *  uint8_t* CurrDescriptor = &ConfigDescriptor[0]; // Pointing to the configuration header\r
+                        *  USB_Descriptor_Configuration_Header_t* ConfigHeaderPtr = DESCRIPTOR_PCAST(CurrDescriptor,\r
+                        *                                                           USB_Descriptor_Configuration_Header_t);\r
+                        *\r
+                        *  // Can now access elements of the configuration header struct using the -> indirection operator\r
+                        *  \endcode\r
+                        */\r
+                       #define DESCRIPTOR_PCAST(DescriptorPtr, Type) ((Type*)DescriptorPtr)\r
+\r
+                       /** Casts a pointer to a descriptor inside the configuration descriptor into the given descriptor\r
+                        *  type (as an actual struct instance rather than a pointer to a struct).\r
+                        *\r
+                        *  Usage Example:\r
+                        *  \code\r
+                        *  uint8_t* CurrDescriptor = &ConfigDescriptor[0]; // Pointing to the configuration header\r
+                        *  USB_Descriptor_Configuration_Header_t ConfigHeader = DESCRIPTOR_CAST(CurrDescriptor,\r
+                        *                                                       USB_Descriptor_Configuration_Header_t);\r
+                        *\r
+                        *  // Can now access elements of the configuration header struct using the . operator\r
+                        *  \endcode\r
+                        */\r
+                       #define DESCRIPTOR_CAST(DescriptorPtr, Type)  (*DESCRIPTOR_PCAST(DescriptorPtr, Type))\r
+\r
+                       /** Returns the descriptor's type, expressed as the 8-bit type value in the header of the descriptor.\r
+                        *  This value's meaning depends on the descriptor's placement in the descriptor, but standard type\r
+                        *  values can be accessed in the \ref USB_DescriptorTypes_t enum.\r
+                        */\r
+                       #if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES) || defined(__DOXYGEN__)\r
+                               #define DESCRIPTOR_TYPE(DescriptorPtr)    DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).Type\r
+                       #else\r
+                               #define DESCRIPTOR_TYPE(DescriptorPtr)    DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).bDescriptorType                       \r
+                       #endif\r
+                       \r
+                       /** Returns the descriptor's size, expressed as the 8-bit value indicating the number of bytes. */\r
+                       #if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES) || defined(__DOXYGEN__)\r
+                               #define DESCRIPTOR_SIZE(DescriptorPtr)    DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).Size\r
+                       #else\r
+                               #define DESCRIPTOR_SIZE(DescriptorPtr)    DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).bLength\r
+                       #endif\r
+\r
+               /* Type Defines: */\r
+                       /** Type define for a Configuration Descriptor comparator function (function taking a pointer to an array\r
+                        *  of type void, returning a uint8_t value).\r
+                        *\r
+                        *  \see \ref USB_GetNextDescriptorComp function for more details\r
+                        */\r
+                       typedef uint8_t (* const ConfigComparatorPtr_t)(void* const);\r
+\r
+               /* Function Prototypes: */\r
+                       /** Searches for the next descriptor in the given configuration descriptor using a premade comparator\r
+                        *  function. The routine updates the position and remaining configuration descriptor bytes values\r
+                        *  automatically. If a comparator routine fails a search, the descriptor pointer is retreated back\r
+                        *  so that the next descriptor search invocation will start from the descriptor which first caused the\r
+                        *  original search to fail. This behaviour allows for one comparator to be used immediately after another\r
+                        *  has failed, starting the second search from the descriptor which failed the first.\r
+                        *\r
+                        *  Comparator functions should be standard functions which accept a pointer to the header of the current\r
+                        *  descriptor inside the configuration descriptor which is being compared, and should return a value from\r
+                        *  the \ref DSearch_Return_ErrorCodes_t enum as a uint8_t value.\r
+                        *\r
+                        *  \note This function is available in USB Host mode only.\r
+                        *\r
+                        *  \param BytesRem  Pointer to an int storing the remaining bytes in the configuration descriptor\r
+                        *  \param CurrConfigLoc  Pointer to the current position in the configuration descriptor\r
+                        *  \param ComparatorRoutine  Name of the comparator search function to use on the configuration descriptor\r
+                        *\r
+                        *  \return Value of one of the members of the \ref DSearch_Comp_Return_ErrorCodes_t enum\r
+                        *\r
+                        *  Usage Example:\r
+                        *  \code\r
+                        *  uint8_t EndpointSearcher(void* CurrentDescriptor); // Comparator Prototype\r
+                        *\r
+                        *  uint8_t EndpointSearcher(void* CurrentDescriptor)\r
+                        *  {\r
+                        *     if (DESCRIPTOR_TYPE(CurrentDescriptor) == DTYPE_Endpoint)\r
+                        *         return DESCRIPTOR_SEARCH_Found;\r
+                        *     else\r
+                        *         return DESCRIPTOR_SEARCH_NotFound;\r
+                        *  }\r
+                        *\r
+                        *  //...\r
+                        *  // After retrieving configuration descriptor:\r
+                        *  if (USB_Host_GetNextDescriptorComp(&BytesRemaining, &ConfigDescriptorData, EndpointSearcher) ==\r
+                        *      Descriptor_Search_Comp_Found)\r
+                        *  {\r
+                        *      // Do something with the endpoint descriptor\r
+                        *  }\r
+                        *  \endcode\r
+                        */\r
+                       uint8_t USB_GetNextDescriptorComp(uint16_t* BytesRem, uint8_t** CurrConfigLoc, ConfigComparatorPtr_t ComparatorRoutine);\r
+                       \r
+               /* Enums: */\r
+                       /** Enum for return values of a descriptor comparator function. */\r
+                       enum DSearch_Return_ErrorCodes_t\r
+                       {\r
+                               DESCRIPTOR_SEARCH_Found                = 0, /**< Current descriptor matches comparator criteria. */\r
+                               DESCRIPTOR_SEARCH_Fail                 = 1, /**< No further descriptor could possibly match criteria, fail the search. */\r
+                               DESCRIPTOR_SEARCH_NotFound             = 2, /**< Current descriptor does not match comparator criteria. */\r
+                       };\r
+\r
+                       /** Enum for return values of \ref USB_GetNextDescriptorComp(). */\r
+                       enum DSearch_Comp_Return_ErrorCodes_t\r
+                       {\r
+                               DESCRIPTOR_SEARCH_COMP_Found           = 0, /**< Configuration descriptor now points to descriptor which matches\r
+                                                                            *   search criteria of the given comparator function. */\r
+                               DESCRIPTOR_SEARCH_COMP_Fail            = 1, /**< Comparator function returned Descriptor_Search_Fail. */\r
+                               DESCRIPTOR_SEARCH_COMP_EndOfDescriptor = 2, /**< End of configuration descriptor reached before match found. */\r
+                       };\r
+       \r
+               /* Function Prototypes: */\r
+                       /** Retrieves the configuration descriptor data or size from an attached device via a standard request.\r
+                        *\r
+                        *  \param ConfigSizePtr  Pointer to a uint16_t for either storing or retrieving the configuration\r
+                        *         descriptor size\r
+                        *\r
+                        *  \param BufferPtr  Pointer to the buffer for storing the configuration descriptor data. If this is\r
+                        *                    NULL, the size of the configuration descriptor will be retrieved instead and\r
+                        *                    placed in the variable pointed to by ConfigSizePtr. If this is non-NULL, the number\r
+                        *                    of bytes indicated by ConfigSizePtr of the configuration descriptor will be loaded\r
+                        *                    into the buffer\r
+                        */\r
+                       uint8_t USB_GetDeviceConfigDescriptor(uint16_t* const ConfigSizePtr, void* BufferPtr)\r
+                                                             ATTR_NON_NULL_PTR_ARG(1);\r
+\r
+                       /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value.\r
+                        *  The bytes remaining value is automatically decremented.\r
+                        *\r
+                        * \param BytesRem  Pointer to the number of bytes remaining of the configuration descriptor\r
+                        * \param CurrConfigLoc  Pointer to the current descriptor inside the configuration descriptor\r
+                        * \param Type  Descriptor type value to search for\r
+                        */\r
+                       void USB_GetNextDescriptorOfType(uint16_t* const BytesRem,\r
+                                                        uint8_t** const CurrConfigLoc,\r
+                                                        const uint8_t Type)\r
+                                                        ATTR_NON_NULL_PTR_ARG(1, 2);\r
+\r
+                       /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value,\r
+                        *  which must come before a descriptor of the second given type value. If the BeforeType type\r
+                        *  descriptor is reached first, the number of bytes remaining to process is set to zero and the\r
+                        *  function exits. The bytes remaining value is automatically decremented.\r
+                        *\r
+                        * \param BytesRem  Pointer to the number of bytes remaining of the configuration descriptor\r
+                        * \param CurrConfigLoc  Pointer to the current descriptor inside the configuration descriptor\r
+                        * \param Type  Descriptor type value to search for\r
+                        * \param BeforeType  Descriptor type value which must not be reached before the given Type descriptor\r
+                        */\r
+                       void USB_GetNextDescriptorOfTypeBefore(uint16_t* const BytesRem,\r
+                                                              uint8_t** const CurrConfigLoc,\r
+                                                              const uint8_t Type,\r
+                                                              const uint8_t BeforeType)\r
+                                                              ATTR_NON_NULL_PTR_ARG(1, 2);\r
+\r
+                       /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value,\r
+                        *  which must come after a descriptor of the second given type value. The bytes remaining value is\r
+                        *  automatically decremented.\r
+                        *\r
+                        * \param BytesRem  Pointer to the number of bytes remaining of the configuration descriptor\r
+                        * \param CurrConfigLoc  Pointer to the current descriptor inside the configuration descriptor\r
+                        * \param Type  Descriptor type value to search for\r
+                        * \param AfterType  Descriptor type value which must be reached before the given Type descriptor\r
+                        */\r
+                       void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem,\r
+                                                             uint8_t** const CurrConfigLoc,\r
+                                                             const uint8_t Type,\r
+                                                             const uint8_t AfterType)\r
+                                                             ATTR_NON_NULL_PTR_ARG(1, 2);\r
+\r
+               /* Inline Functions: */\r
+                       /** Skips over the current sub-descriptor inside the configuration descriptor, so that the pointer then\r
+                           points to the next sub-descriptor. The bytes remaining value is automatically decremented.\r
+                        *\r
+                        * \param BytesRem  Pointer to the number of bytes remaining of the configuration descriptor\r
+                        * \param CurrConfigLoc  Pointer to the current descriptor inside the configuration descriptor\r
+                        */\r
+                       static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,\r
+                                                                uint8_t** const CurrConfigLoc) \r
+                                                                ATTR_NON_NULL_PTR_ARG(1, 2);                                                                     \r
+                       static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,\r
+                                                                uint8_t** const CurrConfigLoc)\r
+                       {\r
+                               #if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES)\r
+                               uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).Size;\r
+                               #else\r
+                               uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).bLength;                         \r
+                               #endif\r
+\r
+                               *CurrConfigLoc += CurrDescriptorSize;\r
+                               *BytesRem      -= CurrDescriptorSize;\r
+                       }\r
+                       \r
+       /* Disable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       }\r
+               #endif\r
+\r
+#endif\r
+\r
+/** @} */\r
index 464f21a..e6d2bea 100644 (file)
                         *        \ref Group_USBManagement documentation).\r
                         */\r
                        void EVENT_USB_Reset(void);\r
-                       \r
-                       /** Event for USB device mode error. This event fires when the USB interface is in device mode,\r
-                        *  and an error occurs which prevents it from operating normally.\r
-                        *\r
-                        *  \param ErrorCode  Error code indicating the source of the error, a value in\r
-                        *                    \ref USB_Device_ErrorCodes_t\r
-                        *\r
-                        *  \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see\r
-                        *        \ref Group_USBManagement documentation).\r
-                        */\r
-                       void EVENT_USB_DeviceError(const uint8_t ErrorCode);\r
                #endif\r
                \r
        /* Private Interface - For use in library only: */\r
                                void EVENT_USB_Suspend(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
                                void EVENT_USB_WakeUp(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
                                void EVENT_USB_Reset(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
-                               void EVENT_USB_DeviceError(const uint8_t ErrorCode) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
                        #endif\r
        #endif\r
 \r
diff --git a/LUFA/Drivers/USB/HighLevel/StdDescriptors.c b/LUFA/Drivers/USB/HighLevel/StdDescriptors.c
deleted file mode 100644 (file)
index ae8cc71..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
-  software without specific, written prior permission.\r
-\r
-  The author disclaim all warranties with regard to this\r
-  software, including all implied warranties of merchantability\r
-  and fitness.  In no event shall the author be liable for any\r
-  special, indirect or consequential damages or any damages\r
-  whatsoever resulting from loss of use, data or profits, whether\r
-  in an action of contract, negligence or other tortious action,\r
-  arising out of or in connection with the use or performance of\r
-  this software.\r
-*/\r
-\r
-#include "USBMode.h"\r
-\r
-#if defined(USB_CAN_BE_DEVICE)\r
-\r
-#include "StdDescriptors.h"\r
-\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-{\r
-       EVENT_USB_DeviceError(DEVICE_ERROR_GetDescriptorNotHooked);\r
-\r
-       return 0;\r
-};\r
-\r
-#endif\r
index d94a912..7a0ca52 100644 (file)
                                #endif\r
                        } USB_Descriptor_String_t;\r
 \r
-               /* Function Prototypes: */\r
-                       /** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,\r
-                        *  index and language ID. This function MUST be overridden in the user application (added with full, identical  \r
-                        *  prototype and name except for the \ref ATTR_WEAK attribute) so that the library can call it to retrieve descriptor \r
-                        *  data.\r
-                        *\r
-                        *  \param wValue             The type of the descriptor to retrieve in the upper byte, and the index in the \r
-                        *                            lower byte (when more than one descriptor of the given type exists, such as the\r
-                        *                            case of string descriptors). The type may be one of the standard types defined\r
-                        *                            in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.\r
-                        *  \param wIndex             The language ID of the string to return if the wValue type indicates DTYPE_String,\r
-                        *                            otherwise zero for standard descriptors, or as defined in a class-specific\r
-                        *                            standards.\r
-                        *  \param DescriptorAddress  Pointer to the descriptor in memory. This should be set by the routine to\r
-                        *                            the address of the descriptor.\r
-                        *\r
-                        *  \note By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute.\r
-                        *        If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to\r
-                        *        allow the descriptors to be changed dynamically at runtime) either the USE_RAM_DESCRIPTORS or the \r
-                        *        USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D\r
-                        *        switch.\r
-                        *\r
-                        *  \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise\r
-                        */\r
-                       uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                                                          ATTR_WARN_UNUSED_RESULT ATTR_WEAK ATTR_NON_NULL_PTR_ARG(3);\r
-\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
index 8f53105..9bba234 100644 (file)
@@ -137,7 +137,7 @@ static void USB_Device_SetConfiguration(void)
 #else\r
        USB_Descriptor_Device_t* DevDescriptorPtr;\r
 \r
-       if ((USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DevDescriptorPtr) == NO_DESCRIPTOR) ||\r
+       if ((CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DevDescriptorPtr) == NO_DESCRIPTOR) ||\r
        #if defined(USE_RAM_DESCRIPTORS)\r
            ((uint8_t)USB_ControlRequest.wValue > DevDescriptorPtr->NumberOfConfigurations))\r
        #elif defined (USE_EEPROM_DESCRIPTORS)\r
@@ -179,8 +179,11 @@ static void USB_Device_GetDescriptor(void)
        void*    DescriptorPointer;\r
        uint16_t DescriptorSize;\r
        \r
-       if ((DescriptorSize = USB_GetDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex, &DescriptorPointer)) == NO_DESCRIPTOR)\r
-         return;\r
+       if ((DescriptorSize = CALLBACK_USB_GetDescriptor(USB_ControlRequest.wValue,\r
+                                                        USB_ControlRequest.wIndex, &DescriptorPointer)) == NO_DESCRIPTOR)\r
+       {\r
+               return;\r
+       }\r
        \r
        Endpoint_ClearSETUP();\r
        \r
index ea9be4b..cf54345 100644 (file)
                                #define USB_Device_IsUSBSuspended()           ((UDINT &  (1 << SUSPI)) ? true : false)\r
                        #endif\r
 \r
-               /* Enums: */\r
-                       /** Enum for the ErrorCode parameter of the \ref EVENT_USB_DeviceError() event.\r
+               /* Function Prototypes: */\r
+                       /** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,\r
+                        *  index and language ID. This function MUST be overridden in the user application (added with full, identical  \r
+                        *  prototype and name except for the \ref ATTR_WEAK attribute) so that the library can call it to retrieve descriptor \r
+                        *  data.\r
                         *\r
-                        *  \see Events.h for more information on this event.\r
+                        *  \param wValue             The type of the descriptor to retrieve in the upper byte, and the index in the \r
+                        *                            lower byte (when more than one descriptor of the given type exists, such as the\r
+                        *                            case of string descriptors). The type may be one of the standard types defined\r
+                        *                            in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.\r
+                        *  \param wIndex             The language ID of the string to return if the wValue type indicates DTYPE_String,\r
+                        *                            otherwise zero for standard descriptors, or as defined in a class-specific\r
+                        *                            standards.\r
+                        *  \param DescriptorAddress  Pointer to the descriptor in memory. This should be set by the routine to\r
+                        *                            the address of the descriptor.\r
+                        *\r
+                        *  \note By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute.\r
+                        *        If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to\r
+                        *        allow the descriptors to be changed dynamically at runtime) either the USE_RAM_DESCRIPTORS or the \r
+                        *        USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D\r
+                        *        switch.\r
+                        *\r
+                        *  \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise\r
                         */\r
-                       enum USB_Device_ErrorCodes_t\r
-                       {\r
-                               DEVICE_ERROR_GetDescriptorNotHooked        = 0, /**< Indicates that the \ref USB_GetDescriptor() method\r
-                                                                                *   has not been hooked by the user application.\r
-                                                                                *\r
-                                                                                *   \see \ref Group_Descriptors for more information on\r
-                                                                                *        the \ref USB_GetDescriptor() method.\r
-                                                                                */\r
-                       };\r
+                       uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                   ATTR_WARN_UNUSED_RESULT ATTR_WEAK ATTR_NON_NULL_PTR_ARG(3);\r
 \r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
index 346420f..8b395be 100644 (file)
@@ -206,7 +206,7 @@ void USB_ResetInterface(void)
        {\r
                USB_Descriptor_Device_t* DeviceDescriptorPtr;\r
 \r
-               if (USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DeviceDescriptorPtr) != NO_DESCRIPTOR)\r
+               if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DeviceDescriptorPtr) != NO_DESCRIPTOR)\r
                {                 \r
                        #if defined(USE_RAM_DESCRIPTORS)\r
                                USB_ControlEndpointSize = DeviceDescriptorPtr->Endpoint0Size;\r
index e0d8127..6d66c4d 100644 (file)
  *    - LUFA/Drivers/USB/LowLevel/LowLevel.c\r
  *    - LUFA/Drivers/USB/LowLevel/Pipe.c\r
  *    - LUFA/Drivers/USB/HighLevel/Events.c\r
- *    - LUFA/Drivers/USB/HighLevel/StdDescriptors.c\r
  *    - LUFA/Drivers/USB/HighLevel/USBInterrupt.c\r
  *    - LUFA/Drivers/USB/HighLevel/USBTask.c\r
- *    - LUFA/Drivers/USB/Class/ConfigDescriptor.c\r
+ *    - LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c\r
  *    - LUFA/Drivers/USB/Class/HIDParser.c\r
  *\r
  *  \section Module Description\r
@@ -97,7 +96,7 @@
                        #include "LowLevel/OTG.h"\r
                #endif\r
                \r
-               #include "Class/ConfigDescriptor.h"\r
+               #include "HighLevel/ConfigDescriptor.h"\r
                #include "Class/HIDParser.h"\r
                \r
 #endif\r
index 7b21b8c..2ee452c 100644 (file)
  *      \ref Group_Events for new API details.\r
  *    - The STREAM_CALLBACK() macro has been removed. User applications should replace all instances of the macro with regular\r
  *      function signatures of a function accepting no arguments and returning a uint8_t value.\r
+ *    - The Event_DeviceError() event no longer exists, as its sole caller (unlinked USB_GetDescriptor() function) now produces a\r
+ *      compilation error rather than a runtime error. The StdDescriptors.c file no longer exists as a result, and should be removed\r
+ *      from project makefiles.\r
+ *    - The USB_GetDescriptor() function has been renamed to CALLBACK_USB_GetDescriptor() to be in line with the new CALLBACK_ function\r
+ *      prefixes for functions which *must* be implemented in the user application.\r
  *\r
  *  <b>Host Mode</b>\r
  *    - Support for non-control data pipe interrupts has been dropped due to many issues in the implementation. All existing\r
index 3e1ce85..fc00097 100644 (file)
@@ -8,18 +8,18 @@
 \r
 # Makefile for the LUFA library itself.\r
 \r
-LUFA_SRC_FILES =     ./Drivers/USB/LowLevel/LowLevel.c           \\r
+LUFA_SRC_FILES =     ./Drivers/USB/LowLevel/DevChapter9.c        \\r
                      ./Drivers/USB/LowLevel/Endpoint.c           \\r
-                     ./Drivers/USB/LowLevel/Pipe.c               \\r
-                     ./Drivers/USB/LowLevel/DevChapter9.c        \\r
-                     ./Drivers/USB/LowLevel/HostChapter9.c       \\r
                      ./Drivers/USB/LowLevel/Host.c               \\r
-                     ./Drivers/USB/HighLevel/USBTask.c           \\r
-                     ./Drivers/USB/HighLevel/USBInterrupt.c      \\r
+                     ./Drivers/USB/LowLevel/HostChapter9.c       \\r
+                     ./Drivers/USB/LowLevel/LowLevel.c           \\r
+                     ./Drivers/USB/LowLevel/Pipe.c               \\r
                      ./Drivers/USB/HighLevel/Events.c            \\r
                      ./Drivers/USB/HighLevel/StdDescriptors.c    \\r
-                     ./Drivers/USB/Class/HIDParser.c             \\r
+                     ./Drivers/USB/HighLevel/USBInterrupt.c      \\r
+                     ./Drivers/USB/HighLevel/USBTask.c           \\r
                      ./Drivers/USB/Class/ConfigDescriptor.c      \\r
+                     ./Drivers/USB/Class/HIDParser.c             \\r
                      ./Scheduler/Scheduler.c                     \\r
                      ./MemoryAllocator/DynAlloc.c                \\r
                      ./Drivers/Board/Temperature.c               \\r
index 3d9dd08..1dee586 100644 (file)
@@ -196,7 +196,7 @@ USB_Descriptor_String_t PROGMEM ProductString =
  *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the\r
  *  USB host.\r
  */\r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
index 16299bb..9948085 100644 (file)
@@ -92,7 +92,7 @@
                #define DTYPE_Report                 0x22\r
 \r
        /* Function Prototypes: */\r
-               uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                          ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
+               uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+                                                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);\r
 \r
 #endif\r
index 597bafd..a83496b 100644 (file)
                void EVENT_USB_UnhandledControlPacket(void);\r
        \r
                bool GetNextReport(USB_KeyboardReport_Data_t* ReportData);\r
-               void SendKey(USB_KeyboardReport_Data_t* KeyboardReportData, uint8_t Key);\r
-               void Send(USB_KeyboardReport_Data_t* KeyboardReportData, bool SendReport);\r
                \r
 #endif\r
index 931c673..6a77cf0 100644 (file)
@@ -134,10 +134,9 @@ SRC = $(TARGET).c                                                 \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
          $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
-         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
          $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-         $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+         $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \
          $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \