Fix AudioOutput and AudioInput class driver demos' descriptors -- incorrect value...
authorDean Camera <dean@fourwalledcubicle.com>
Wed, 14 Oct 2009 09:42:11 +0000 (09:42 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Wed, 14 Oct 2009 09:42:11 +0000 (09:42 +0000)
Demos/Device/ClassDriver/AudioInput/AudioInput.h
Demos/Device/ClassDriver/AudioInput/Descriptors.c
Demos/Device/ClassDriver/AudioOutput/AudioOutput.h
Demos/Device/ClassDriver/AudioOutput/Descriptors.c
Demos/Device/LowLevel/AudioOutput/Descriptors.h
LUFA/Drivers/USB/HighLevel/Events.h
LUFA/ManPages/FutureChanges.txt

index 03e2a6d..cf08c4e 100644 (file)
@@ -43,7 +43,6 @@
 \r
                #include <LUFA/Version.h>\r
                #include <LUFA/Drivers/Board/LEDs.h>\r
-               #include <LUFA/Drivers/Board/Joystick.h>\r
                #include <LUFA/Drivers/Peripheral/ADC.h>\r
                #include <LUFA/Drivers/USB/USB.h>\r
                #include <LUFA/Drivers/USB/Class/Audio.h>\r
index e6419ad..6753171 100644 (file)
@@ -199,7 +199,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
                        \r
                        .SubFrameSize             = 0x02,\r
                        .BitResolution            = 16,\r
-                       .SampleFrequencyType      = (AUDIO_TOTAL_SAMPLE_RATES * sizeof(USB_Audio_SampleFreq_t)),\r
+                       .SampleFrequencyType      = AUDIO_TOTAL_SAMPLE_RATES,\r
                \r
                        .SampleFrequencies        = {AUDIO_SAMPLE_FREQ(AUDIO_SAMPLE_FREQUENCY)}\r
                },\r
index bc4c632..6dea126 100644 (file)
@@ -46,7 +46,6 @@
                \r
                #include <LUFA/Version.h>\r
                #include <LUFA/Drivers/Board/LEDs.h>\r
-               #include <LUFA/Drivers/Board/Joystick.h>\r
                #include <LUFA/Drivers/USB/USB.h>\r
                #include <LUFA/Drivers/USB/Class/Audio.h>\r
        \r
index efbe824..afc3046 100644 (file)
@@ -200,7 +200,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
                        .SubFrameSize             = 0x02,\r
                        .BitResolution            = 16,\r
 \r
-                       .SampleFrequencyType      = (AUDIO_TOTAL_SAMPLE_RATES * sizeof(USB_Audio_SampleFreq_t)),                \r
+                       .SampleFrequencyType      = AUDIO_TOTAL_SAMPLE_RATES,           \r
                        .SampleFrequencies        = {AUDIO_SAMPLE_FREQ(AUDIO_SAMPLE_FREQUENCY)}\r
                },\r
        \r
index 0623c77..9ad0299 100644 (file)
                #define EP_ACCEPTS_SMALL_PACKETS     (0 << 7)\r
 \r
                /** Endpoint number of the Audio isochronous streaming data endpoint. */\r
-               #define AUDIO_STREAM_EPNUM       1\r
+               #define AUDIO_STREAM_EPNUM           1\r
                \r
                /** Endpoint size in bytes of the Audio isochronous streaming data endpoint. The Windows audio stack requires\r
                 *  at least 192 bytes for correct output, thus the smaller 128 byte maximum endpoint size on some of the smaller\r
index 5a007ff..1e03e7b 100644 (file)
@@ -40,7 +40,8 @@
  *  listed here. If an event with no user-associated handler is fired within the library, it by default maps to an\r
  *  internal empty stub function.\r
  *\r
- *  Each event must only have one associated event handler, but can be raised by multiple sources.\r
+ *  Each event must only have one associated event handler, but can be raised by multiple sources by calling the event\r
+ *  name just like any regular C function (with any required event parameters).\r
  *\r
  *  @{\r
  */\r
                        /** Event for USB device enumeration completion. This event fires when a the USB interface is\r
                         *  in host mode and an attached USB device has been completely enumerated and is ready to be\r
                         *  controlled by the user application.\r
+                        *\r
+                        *  This event is time-critical; exceeding OS-specific delays within this event handler (typically of around\r
+                        *  1 second) when a transaction is waiting to be processed by the device will prevent break communications\r
+                        *  and cause the host to reset the USB bus.\r
                         */\r
                        void EVENT_USB_Host_DeviceEnumerationComplete(void);\r
 \r
                        /** Event for USB device connection. This event fires when the AVR in device mode and the device is connected\r
                         *  to a host, beginning the enumeration process, measured by a rising level on the AVR's VBUS pin.\r
                         *\r
+                        *  This event is time-critical; exceeding OS-specific delays within this event handler (typically of around\r
+                        *  two seconds) will prevent the device from enumerating correctly.\r
+                        *\r
                         *  \note For the smaller series 2 USB AVRs with limited USB controllers, VBUS is not available to the USB controller.\r
                         *        this means that the current connection state is derived from the bus suspension and wake up events by default,\r
                         *        which is not always accurate (host may suspend the bus while still connected). If the actual connection state\r
                        /** Event for unhandled control requests. This event fires when a the USB host issues a control\r
                         *  request to the control endpoint (address 0) that the library does not handle. This may either\r
                         *  be a standard request that the library has no handler code for, or a class specific request\r
-                        *  issued to the device which must be handled appropriately. Due to the strict timing requirements\r
-                        *  on control transfers, interrupts are disabled during control request processing.\r
+                        *  issued to the device which must be handled appropriately.\r
+                        *\r
+                        *  This event is time-critical; eack packet within the request transaction must be acknowedged or\r
+                        *  sent within 50ms or the host will abort the transfer.\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
                         *  selected configuration number while in device mode. This event should be hooked in device\r
                         *  applications to create the endpoints and configure the device for the selected configuration.\r
                         *\r
+                        *  This event is time-critical; exceeding OS-specific delays within this event handler (typically of around\r
+                        *  one second) will prevent the device from enumerating correctly.\r
+                        *\r
                         *  This event fires after the value of \ref USB_ConfigurationNumber has been changed.\r
                         *\r
                         *  \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see\r
                         *  a the USB host requests that the device reset its interface. This event fires after the control\r
                         *  endpoint has been automatically configured by the library.\r
                         *\r
+                        *  This event is time-critical; exceeding OS-specific delays within this event handler (typically of around\r
+                        *  two seconds) will prevent the device from enumerating correctly.\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
                         *  frame, once per millisecond, and is synchronised to the USB bus. This can be used as an accurate\r
                         *  millisecond timer source when the USB bus is enumerated in device mode to a USB host.\r
                         *\r
-                        *  This event is not normally active - it must be manually enabled and disabled via the\r
-                        *  \ref USB_Device_EnableSOFEvents() and \ref USB_Device_DisableSOFEvents() commands after enumeration.\r
+                        *  This event is time-critical; it is run once per millisecond and thus long handlers will significantly\r
+                        *  degrade device performance. This event should only be enabled when needed to reduce device wakeups.\r
+                        *\r
+                        *  \note This event is not normally active - it must be manually enabled and disabled via the\r
+                        *        \ref USB_Device_EnableSOFEvents() and \ref USB_Device_DisableSOFEvents() commands after enumeration.\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
index b9ea7b6..7ea7489 100644 (file)
   *  - Change makefiles to allow for absolute LUFA location to be used\r
   *  - Abstract out the physical media from the Mass Storage device demos\r
   *  - Add RNDIS Host Class driver\r
-  *  - Make CDC Host Class driver work for devices with bidirectional endpoints\r
   *  - Make new demos\r
   *      -# Multiple-report HID device\r
   *      -# Mouse/CDC Dual Class Device\r
-  *      -# MIDI Host class driver and demo\r
   *  - Port LUFA to other architectures\r
   *      -# AVR32 UC3B series microcontrollers\r
   *      -# Atmel ARM7 series microcontrollers\r