diff options
Diffstat (limited to 'Demos/Device/LowLevel/AudioInput')
-rw-r--r-- | Demos/Device/LowLevel/AudioInput/AudioInput.c | 25 | ||||
-rw-r--r-- | Demos/Device/LowLevel/AudioInput/AudioInput.h | 23 | ||||
-rw-r--r-- | Demos/Device/LowLevel/AudioInput/AudioInput.txt | 13 | ||||
-rw-r--r-- | Demos/Device/LowLevel/AudioInput/Descriptors.c | 137 | ||||
-rw-r--r-- | Demos/Device/LowLevel/AudioInput/Descriptors.h | 69 | ||||
-rw-r--r-- | Demos/Device/LowLevel/AudioInput/makefile | 49 |
6 files changed, 161 insertions, 155 deletions
diff --git a/Demos/Device/LowLevel/AudioInput/AudioInput.c b/Demos/Device/LowLevel/AudioInput/AudioInput.c index 4abc17422..a984a2ab8 100644 --- a/Demos/Device/LowLevel/AudioInput/AudioInput.c +++ b/Demos/Device/LowLevel/AudioInput/AudioInput.c @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -9,13 +9,13 @@ /* Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -48,7 +48,7 @@ int main(void) LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); sei(); - + for (;;) { USB_Audio_Task(); @@ -65,13 +65,13 @@ void SetupHardware(void) /* Disable clock division */ clock_prescale_set(clock_div_1); - + /* Hardware Initialization */ LEDs_Init(); ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_32); ADC_SetupChannel(MIC_IN_ADC_CHANNEL); USB_Init(); - + /* Start the ADC conversion in free running mode */ ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | MIC_IN_ADC_MUX_MASK); } @@ -133,7 +133,7 @@ void EVENT_USB_Device_UnhandledControlRequest(void) /* Set Interface is not handled by the library, as its function is application-specific */ if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_INTERFACE)) { - Endpoint_ClearSETUP(); + Endpoint_ClearSETUP(); Endpoint_ClearStatusStage(); /* Check if the host is enabling the audio interface (setting AlternateSetting to 1) */ @@ -157,7 +157,7 @@ void USB_Audio_Task(void) /* Select the audio stream endpoint */ Endpoint_SelectEndpoint(AUDIO_STREAM_EPNUM); - + /* Check if the current endpoint can be written to and that the next sample should be stored */ if (Endpoint_IsINReady() && (TIFR0 & (1 << OCF0A))) { @@ -166,7 +166,7 @@ void USB_Audio_Task(void) /* Audio sample is ADC value scaled to fit the entire range */ int16_t AudioSample = ((SAMPLE_MAX_RANGE / ADC_MAX_RANGE) * ADC_GetResult()); - + #if defined(MICROPHONE_BIASED_TO_HALF_RAIL) /* Microphone is biased to half rail voltage, subtract the bias from the sample value */ AudioSample -= (SAMPLE_MAX_RANGE / 2); @@ -183,3 +183,4 @@ void USB_Audio_Task(void) } } } + diff --git a/Demos/Device/LowLevel/AudioInput/AudioInput.h b/Demos/Device/LowLevel/AudioInput/AudioInput.h index 7be23e8dd..53b63517b 100644 --- a/Demos/Device/LowLevel/AudioInput/AudioInput.h +++ b/Demos/Device/LowLevel/AudioInput/AudioInput.h @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -9,13 +9,13 @@ /* Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -32,7 +32,7 @@ * * Header file for AudioInput.c. */ - + #ifndef _AUDIO_INPUT_H_ #define _AUDIO_INPUT_H_ @@ -43,7 +43,7 @@ #include <avr/interrupt.h> #include "Descriptors.h" - + #include <LUFA/Version.h> #include <LUFA/Drivers/USB/USB.h> #include <LUFA/Drivers/Board/LEDs.h> @@ -52,10 +52,10 @@ /* Macros: */ /** ADC channel number for the microphone input. */ #define MIC_IN_ADC_CHANNEL 2 - + /** ADC channel MUX mask for the microphone input. */ #define MIC_IN_ADC_MUX_MASK ADC_CHANNEL2 - + /** Maximum ADC sample value for the microphone input. */ #define SAMPLE_MAX_RANGE 0xFFFF @@ -82,5 +82,6 @@ void EVENT_USB_Device_Disconnect(void); void EVENT_USB_Device_ConfigurationChanged(void); void EVENT_USB_Device_UnhandledControlRequest(void); - + #endif + diff --git a/Demos/Device/LowLevel/AudioInput/AudioInput.txt b/Demos/Device/LowLevel/AudioInput/AudioInput.txt index d61e77a52..39d78e784 100644 --- a/Demos/Device/LowLevel/AudioInput/AudioInput.txt +++ b/Demos/Device/LowLevel/AudioInput/AudioInput.txt @@ -3,7 +3,7 @@ * This file contains special DoxyGen information for the generation of the main page and other special * documentation pages. It is not a project source file. */ - + /** \mainpage Audio Input Device Demo * * \section SSec_Compat Demo Compatibility: @@ -27,7 +27,7 @@ * <td><b>USB Class:</b></td> * <td>Audio Class</td> * </tr> - * <tr> + * <tr> * <td><b>USB Subclass:</b></td> * <td>Standard Audio Device</td> * </tr> @@ -43,19 +43,19 @@ * </tr> * </table> * - * \section SSec_Description Project Description: + * \section SSec_Description Project Description: * * Audio demonstration application. This gives a simple reference * application for implementing a USB Audio Input device using the * basic USB Audio 1.0 drivers in all modern OSes (i.e. no special drivers * required). - * + * * On start-up the system will automatically enumerate and function * as a USB microphone. Incoming audio from the ADC channel 1 will * be sampled and sent to the host computer. - * + * * To use, connect a microphone to the ADC channel 2. - * + * * Under Windows, if a driver request dialogue pops up, select the option * to automatically install the appropriate drivers. * @@ -81,3 +81,4 @@ * </tr> * </table> */ + diff --git a/Demos/Device/LowLevel/AudioInput/Descriptors.c b/Demos/Device/LowLevel/AudioInput/Descriptors.c index 150fb3367..432f0c909 100644 --- a/Demos/Device/LowLevel/AudioInput/Descriptors.c +++ b/Demos/Device/LowLevel/AudioInput/Descriptors.c @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -9,13 +9,13 @@ /* Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -30,11 +30,11 @@ /** \file * - * USB Device Descriptors, for library use when in USB device mode. Descriptors are special + * USB Device Descriptors, for library use when in USB device mode. Descriptors are special * computer-readable structures which the host requests upon device enumeration, to determine - * the device's capabilities and functions. + * the device's capabilities and functions. */ - + #include "Descriptors.h" /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall @@ -45,22 +45,22 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor = { .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, - + .USBSpecification = VERSION_BCD(01.10), .Class = 0x00, .SubClass = 0x00, .Protocol = 0x00, - + .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, - + .VendorID = 0x03EB, .ProductID = 0x2047, .ReleaseNumber = VERSION_BCD(00.01), - + .ManufacturerStrIndex = 0x01, .ProductStrIndex = 0x02, .SerialNumStrIndex = NO_DESCRIPTOR, - + .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS }; @@ -71,7 +71,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor = */ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = { - .Config = + .Config = { .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, @@ -80,134 +80,134 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = .ConfigurationNumber = 1, .ConfigurationStrIndex = NO_DESCRIPTOR, - + .ConfigAttributes = (USB_CONFIG_ATTR_BUSPOWERED | USB_CONFIG_ATTR_SELFPOWERED), - + .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) }, - - .Audio_ControlInterface = + + .Audio_ControlInterface = { .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, .InterfaceNumber = 0, .AlternateSetting = 0, - + .TotalEndpoints = 0, - + .Class = 0x01, .SubClass = 0x01, .Protocol = 0x00, - + .InterfaceStrIndex = NO_DESCRIPTOR }, - - .Audio_ControlInterface_SPC = + + .Audio_ControlInterface_SPC = { .Header = {.Size = sizeof(USB_Audio_Interface_AC_t), .Type = DTYPE_CSInterface}, .Subtype = DSUBTYPE_AudioHeader, - + .ACSpecification = VERSION_BCD(01.00), .TotalLength = (sizeof(USB_Audio_Interface_AC_t) + sizeof(USB_Audio_InputTerminal_t) + sizeof(USB_Audio_OutputTerminal_t)), - + .InCollection = 1, .InterfaceNumbers = {1}, }, - .Audio_InputTerminal = + .Audio_InputTerminal = { .Header = {.Size = sizeof(USB_Audio_InputTerminal_t), .Type = DTYPE_CSInterface}, .Subtype = DSUBTYPE_InputTerminal, - + .TerminalID = 0x01, .TerminalType = TERMINAL_IN_MIC, .AssociatedOutputTerminal = 0x00, - + .TotalChannels = 1, .ChannelConfig = 0, - + .ChannelStrIndex = NO_DESCRIPTOR, .TerminalStrIndex = NO_DESCRIPTOR }, - .Audio_OutputTerminal = + .Audio_OutputTerminal = { .Header = {.Size = sizeof(USB_Audio_OutputTerminal_t), .Type = DTYPE_CSInterface}, .Subtype = DSUBTYPE_OutputTerminal, - + .TerminalID = 0x02, .TerminalType = TERMINAL_STREAMING, .AssociatedInputTerminal = 0x00, - + .SourceID = 0x01, - + .TerminalStrIndex = NO_DESCRIPTOR }, - .Audio_StreamInterface_Alt0 = + .Audio_StreamInterface_Alt0 = { .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, .InterfaceNumber = 1, .AlternateSetting = 0, - + .TotalEndpoints = 0, - + .Class = 0x01, .SubClass = 0x02, .Protocol = 0x00, - + .InterfaceStrIndex = NO_DESCRIPTOR }, - .Audio_StreamInterface_Alt1 = + .Audio_StreamInterface_Alt1 = { .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, .InterfaceNumber = 1, .AlternateSetting = 1, - + .TotalEndpoints = 1, - + .Class = 0x01, .SubClass = 0x02, .Protocol = 0x00, - + .InterfaceStrIndex = NO_DESCRIPTOR }, - - .Audio_StreamInterface_SPC = + + .Audio_StreamInterface_SPC = { .Header = {.Size = sizeof(USB_Audio_Interface_AS_t), .Type = DTYPE_CSInterface}, .Subtype = DSUBTYPE_General, - + .TerminalLink = 0x02, - + .FrameDelay = 1, .AudioFormat = 0x0001 }, - - .Audio_AudioFormat = + + .Audio_AudioFormat = { .Header = {.Size = sizeof(USB_Audio_Format_t), .Type = DTYPE_CSInterface}, .Subtype = DSUBTYPE_Format, .FormatType = 0x01, .Channels = 0x01, - + .SubFrameSize = 0x02, .BitResolution = 16, .SampleFrequencyType = (sizeof(ConfigurationDescriptor.Audio_AudioFormat.SampleFrequencies) / sizeof(Audio_SampleFreq_t)), - + .SampleFrequencies = {SAMPLE_FREQ(AUDIO_SAMPLE_FREQUENCY)} }, - - .Audio_StreamEndpoint = + + .Audio_StreamEndpoint = { - .Endpoint = + .Endpoint = { .Header = {.Size = sizeof(USB_Audio_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint}, @@ -216,18 +216,18 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = .EndpointSize = AUDIO_STREAM_EPSIZE, .PollingIntervalMS = 1 }, - + .Refresh = 0, .SyncEndpointNumber = 0 }, - - .Audio_StreamEndpoint_SPC = + + .Audio_StreamEndpoint_SPC = { .Header = {.Size = sizeof(USB_Audio_StreamEndpoint_Spc_t), .Type = DTYPE_CSEndpoint}, .Subtype = DSUBTYPE_General, - + .Attributes = EP_ACCEPTS_SMALL_PACKETS, - + .LockDelayUnits = 0x00, .LockDelay = 0x0000 } @@ -240,7 +240,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = USB_Descriptor_String_t PROGMEM LanguageString = { .Header = {.Size = USB_STRING_LEN(1), .Type = DTYPE_String}, - + .UnicodeString = {LANGUAGE_ID_ENG} }; @@ -251,7 +251,7 @@ USB_Descriptor_String_t PROGMEM LanguageString = USB_Descriptor_String_t PROGMEM ManufacturerString = { .Header = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String}, - + .UnicodeString = L"Dean Camera" }; @@ -262,7 +262,7 @@ USB_Descriptor_String_t PROGMEM ManufacturerString = USB_Descriptor_String_t PROGMEM ProductString = { .Header = {.Size = USB_STRING_LEN(18), .Type = DTYPE_String}, - + .UnicodeString = L"LUFA Audio In Demo" }; @@ -288,30 +288,31 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, Address = &DeviceDescriptor; Size = sizeof(USB_Descriptor_Device_t); break; - case DTYPE_Configuration: + case DTYPE_Configuration: Address = &ConfigurationDescriptor; Size = sizeof(USB_Descriptor_Configuration_t); break; - case DTYPE_String: + case DTYPE_String: switch (DescriptorNumber) { - case 0x00: + case 0x00: Address = &LanguageString; Size = pgm_read_byte(&LanguageString.Header.Size); break; - case 0x01: + case 0x01: Address = &ManufacturerString; Size = pgm_read_byte(&ManufacturerString.Header.Size); break; - case 0x02: + case 0x02: Address = &ProductString; Size = pgm_read_byte(&ProductString.Header.Size); break; } - + break; } - + *DescriptorAddress = Address; return Size; } + diff --git a/Demos/Device/LowLevel/AudioInput/Descriptors.h b/Demos/Device/LowLevel/AudioInput/Descriptors.h index d154f01a4..c8b43b617 100644 --- a/Demos/Device/LowLevel/AudioInput/Descriptors.h +++ b/Demos/Device/LowLevel/AudioInput/Descriptors.h @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -9,13 +9,13 @@ /* Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -32,7 +32,7 @@ * * Header file for Descriptors.c. */ - + #ifndef _DESCRIPTORS_H_ #define _DESCRIPTORS_H_ @@ -59,7 +59,7 @@ /** Audio class descriptor subtype value for an Audio class specific descriptor indicating the format of an audio stream. */ #define DSUBTYPE_Format 0x02 - + //@{ /** Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details. */ @@ -94,7 +94,7 @@ //@{ /** Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details. */ - + #define TERMINAL_UNDEFINED 0x0100 #define TERMINAL_STREAMING 0x0101 #define TERMINAL_VENDOR 0x01FF @@ -120,7 +120,7 @@ * \param[in] freq Required audio sampling frequency in HZ */ #define SAMPLE_FREQ(freq) {LowWord: ((uint32_t)(freq) & 0x00FFFF), HighByte: (((uint32_t)(freq) >> 16) & 0x0000FF)} - + /** Mask for the attributes parameter of an Audio class specific Endpoint descriptor, indicating that the endpoint * accepts only filled endpoint packets of audio samples. */ @@ -133,16 +133,16 @@ /** Endpoint number of the Audio isochronous streaming data endpoint. */ #define AUDIO_STREAM_EPNUM 1 - + /** Endpoint size in bytes of the Audio isochronous streaming data endpoint. The Windows audio stack requires * at least 192 bytes for correct output, thus the smaller 128 byte maximum endpoint size on some of the smaller * USB AVR models will result in unavoidable distorted output. */ #define AUDIO_STREAM_EPSIZE ENDPOINT_MAX_SIZE(AUDIO_STREAM_EPNUM) - + /** Sample frequency of the data being transmitted through the streaming endpoint. */ #define AUDIO_SAMPLE_FREQUENCY 48000 - + /* Type Defines: */ /** Type define for an Audio class specific interface descriptor. This follows a regular interface descriptor to * supply extra information about the audio device's layout to the host. See the USB Audio specification for more @@ -155,11 +155,11 @@ uint16_t ACSpecification; /**< Binary coded decimal value, indicating the supported Audio Class specification version */ uint16_t TotalLength; /**< Total length of the Audio class specific descriptors, including this descriptor */ - + uint8_t InCollection; /**< Total number of audio class interfaces within this device */ uint8_t InterfaceNumbers[1]; /**< Interface numbers of each audio interface */ } USB_Audio_Interface_AC_t; - + /** Type define for an Audio class specific Feature Unit descriptor. This indicates to the host what features * are present in the device's audio stream for basic control, such as per-channel volume. See the USB Audio * specification for more details. @@ -168,13 +168,13 @@ { USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length */ uint8_t Subtype; /**< Sub type value used to distinguish between audio class specific descriptors */ - + uint8_t UnitID; /**< ID value of this feature unit - must be a unique value within the device */ uint8_t SourceID; /**< Source ID value of the audio source input into this feature unit */ - + uint8_t ControlSize; /**< Size of each element in the ChanelControlls array */ uint8_t ChannelControls[3]; /**< Feature masks for the control channel, and each separate audio channel */ - + uint8_t FeatureUnitStrIndex; /**< Index of a string descriptor describing this descriptor within the device */ } USB_Audio_FeatureUnit_t; @@ -186,7 +186,7 @@ { USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length */ uint8_t Subtype; /**< Sub type value used to distinguish between audio class specific descriptors */ - + uint8_t TerminalID; /**< ID value of this terminal unit - must be a unique value within the device */ uint16_t TerminalType; /**< Type of terminal, a TERMINAL_* mask */ uint8_t AssociatedOutputTerminal; /**< ID of associated output terminal, for physically grouped terminals @@ -194,7 +194,7 @@ */ uint8_t TotalChannels; /**< Total number of separate audio channels within this interface (right, left, etc.) */ uint16_t ChannelConfig; /**< CHANNEL_* masks indicating what channel layout is supported by this terminal */ - + uint8_t ChannelStrIndex; /**< Index of a string descriptor describing this channel within the device */ uint8_t TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device */ } USB_Audio_InputTerminal_t; @@ -207,17 +207,17 @@ { USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length */ uint8_t Subtype; /**< Sub type value used to distinguish between audio class specific descriptors */ - + uint8_t TerminalID; /**< ID value of this terminal unit - must be a unique value within the device */ uint16_t TerminalType; /**< Type of terminal, a TERMINAL_* mask */ uint8_t AssociatedInputTerminal; /**< ID of associated input terminal, for physically grouped terminals * such as the speaker and microphone of a phone handset */ uint8_t SourceID; /**< ID value of the unit this terminal's audio is sourced from */ - + uint8_t TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device */ } USB_Audio_OutputTerminal_t; - + /** Type define for an Audio class specific streaming interface descriptor. This indicates to the host * how audio streams within the device are formatted. See the USB Audio specification for more details. */ @@ -225,13 +225,13 @@ { USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length */ uint8_t Subtype; /**< Sub type value used to distinguish between audio class specific descriptors */ - + uint8_t TerminalLink; /**< ID value of the output terminal this descriptor is describing */ - + uint8_t FrameDelay; /**< Delay in frames resulting from the complete sample processing from input to output */ uint16_t AudioFormat; /**< Format of the audio stream, see Audio Device Formats specification */ } USB_Audio_Interface_AS_t; - + /** Type define for a 24bit audio sample frequency structure. GCC does not contain a built in 24bit datatype, * this this structure is used to build up the value instead. Fill this structure with the SAMPLE_FREQ() macro. */ @@ -252,15 +252,15 @@ uint8_t FormatType; /**< Format of the audio stream, see Audio Device Formats specification */ uint8_t Channels; /**< Total number of discrete channels in the stream */ - + uint8_t SubFrameSize; /**< Size in bytes of each channel's sample data in the stream */ uint8_t BitResolution; /**< Bits of resolution of each channel's samples in the stream */ - uint8_t SampleFrequencyType; /**< Total number of sample frequencies supported by the device */ + uint8_t SampleFrequencyType; /**< Total number of sample frequencies supported by the device */ Audio_SampleFreq_t SampleFrequencies[1]; /**< Sample frequencies supported by the device */ } USB_Audio_Format_t; - - /** Type define for an Audio class specific endpoint descriptor. This contains a regular endpoint + + /** Type define for an Audio class specific endpoint descriptor. This contains a regular endpoint * descriptor with a few Audio-class specific extensions. See the USB Audio specification for more details. */ typedef struct @@ -270,7 +270,7 @@ uint8_t Refresh; /**< Always set to zero */ uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */ } USB_Audio_StreamEndpoint_Std_t; - + /** Type define for an Audio class specific extended endpoint descriptor. This contains extra information * on the usage of endpoints used to stream audio in and out of the USB Audio device, and follows an Audio * class specific extended endpoint descriptor. See the USB Audio specification for more details. @@ -279,13 +279,13 @@ { USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length */ uint8_t Subtype; /**< Sub type value used to distinguish between audio class specific descriptors */ - + uint8_t Attributes; /**< Audio class specific endpoint attributes, such as ACCEPTS_SMALL_PACKETS */ uint8_t LockDelayUnits; /**< Units used for the LockDelay field, see Audio class specification */ uint16_t LockDelay; /**< Time required to internally lock endpoint's internal clock recovery circuitry */ } USB_Audio_StreamEndpoint_Spc_t; - + /** Type define for the device configuration descriptor structure. This must be defined in the * application code, as the configuration descriptor contains several sub-descriptors which * vary between devices, and which describe the device's usage to the host. @@ -304,7 +304,7 @@ USB_Audio_StreamEndpoint_Std_t Audio_StreamEndpoint; USB_Audio_StreamEndpoint_Spc_t Audio_StreamEndpoint_SPC; } USB_Descriptor_Configuration_t; - + /* Function Prototypes: */ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, @@ -312,3 +312,4 @@ ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); #endif + diff --git a/Demos/Device/LowLevel/AudioInput/makefile b/Demos/Device/LowLevel/AudioInput/makefile index 34d6b2545..1b7fd07a3 100644 --- a/Demos/Device/LowLevel/AudioInput/makefile +++ b/Demos/Device/LowLevel/AudioInput/makefile @@ -47,7 +47,7 @@ # make doxygen = Generate DoxyGen documentation for the project (must have # DoxyGen installed) # -# make debug = Start either simulavr or avarice as specified for debugging, +# make debug = Start either simulavr or avarice as specified for debugging, # with avr-gdb or avr-insight as the front end for debugging. # # make filename.s = Just compile filename.c into the assembler code only. @@ -64,14 +64,14 @@ MCU = at90usb1287 # Target board (see library "Board Types" documentation, NONE for projects not requiring -# LUFA board drivers). If USER is selected, put custom board drivers in a directory called +# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # "Board" inside the application directory. BOARD = USBKEY # Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to # calculate timings. Do NOT tack on a 'UL' at the end, this will be done # automatically to create a 32-bit value in your source code. # @@ -84,7 +84,7 @@ F_CPU = 8000000 # Input clock frequency. -# This will define a symbol, F_CLOCK, in all source code files equal to the +# This will define a symbol, F_CLOCK, in all source code files equal to the # input clock frequency (before any prescaling is performed) in Hz. This value may # differ from F_CPU if prescaling is used on the latter, and is required as the # raw input clock is fed directly to the PLL sections of the AVR for high speed @@ -136,7 +136,7 @@ SRC = $(TARGET).c \ # List C++ source files here. (C dependencies are automatically generated.) -CPPSRC = +CPPSRC = # List Assembler source files here. @@ -149,7 +149,7 @@ CPPSRC = ASRC = -# Optimization level, can be [0, 1, 2, 3, s]. +# Optimization level, can be [0, 1, 2, 3, s]. # 0 = turn off optimization. s = optimize for size. # (Note: 3 is not always the best optimization level. See avr-libc FAQ.) OPT = s @@ -263,7 +263,7 @@ CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) # for use in COFF files, additional information about filenames # and function names needs to be present in the assembler source # files -- see avr-libc docs [FIXME: not yet described there] -# -listing-cont-lines: Sets the maximum number of continuation lines of hex +# -listing-cont-lines: Sets the maximum number of continuation lines of hex # dump that will be displayed for a given single line of source input. ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100 @@ -276,7 +276,7 @@ PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt # If this is left blank, then it will use the Standard printf version. -PRINTF_LIB = +PRINTF_LIB = #PRINTF_LIB = $(PRINTF_LIB_MIN) #PRINTF_LIB = $(PRINTF_LIB_FLOAT) @@ -288,7 +288,7 @@ SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt # If this is left blank, then it will use the Standard scanf version. -SCANF_LIB = +SCANF_LIB = #SCANF_LIB = $(SCANF_LIB_MIN) #SCANF_LIB = $(SCANF_LIB_FLOAT) @@ -300,7 +300,7 @@ MATH_LIB = -lm # Each directory must be seperated by a space. # Use forward slashes for directory separators. # For a directory that has spaces, enclose it in quotes. -EXTRALIBDIRS = +EXTRALIBDIRS = @@ -323,7 +323,7 @@ EXTMEMOPTS = # -Map: create map file # --cref: add cross reference to map file LDFLAGS = -Wl,-Map=$(TARGET).map,--cref -LDFLAGS += -Wl,--relax +LDFLAGS += -Wl,--relax LDFLAGS += -Wl,--gc-sections LDFLAGS += $(EXTMEMOPTS) LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) @@ -357,7 +357,7 @@ AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex #AVRDUDE_NO_VERIFY = -V # Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> +# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> # to submit bug reports. #AVRDUDE_VERBOSE = -v -v @@ -391,7 +391,7 @@ JTAG_DEV = /dev/com1 DEBUG_PORT = 4242 # Debugging host used to communicate between GDB / avarice / simulavr, normally -# just set to localhost unless doing some sort of crazy debugging when +# just set to localhost unless doing some sort of crazy debugging when # avarice is running on a different computer. DEBUG_HOST = localhost @@ -420,7 +420,7 @@ WINSHELL = cmd MSG_ERRORS_NONE = Errors: none MSG_BEGIN = -------- begin -------- MSG_END = -------- end -------- -MSG_SIZE_BEFORE = Size before: +MSG_SIZE_BEFORE = Size before: MSG_SIZE_AFTER = Size after: MSG_COFF = Converting to AVR COFF: MSG_EXTENDED_COFF = Converting to AVR Extended COFF: @@ -439,10 +439,10 @@ MSG_CREATING_LIBRARY = Creating library: # Define all object files. -OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) +OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) # Define all listing files. -LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) +LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) # Compiler flags to generate dependency files. @@ -507,11 +507,11 @@ sizeafter: # Display compiler version information. -gccversion : +gccversion : @$(CC) --version -# Program the device. +# Program the device. program: $(TARGET).hex $(TARGET).eep $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) @@ -538,9 +538,9 @@ dfu-ee: $(TARGET).hex $(TARGET).eep # Generate avr-gdb config/init file which does the following: -# define the reset signal, load the target file, connect to target, and set +# define the reset signal, load the target file, connect to target, and set # a breakpoint at main(). -gdb-config: +gdb-config: @$(REMOVE) $(GDBINIT_FILE) @echo define reset >> $(GDBINIT_FILE) @echo SIGNAL SIGHUP >> $(GDBINIT_FILE) @@ -638,14 +638,14 @@ extcoff: $(TARGET).elf $(OBJDIR)/%.o : %.c @echo @echo $(MSG_COMPILING) $< - $(CC) -c $(ALL_CFLAGS) $< -o $@ + $(CC) -c $(ALL_CFLAGS) $< -o $@ # Compile: create object files from C++ source files. $(OBJDIR)/%.o : %.cpp @echo @echo $(MSG_COMPILING_CPP) $< - $(CC) -c $(ALL_CPPFLAGS) $< -o $@ + $(CC) -c $(ALL_CPPFLAGS) $< -o $@ # Compile: create assembler files from C source files. @@ -667,7 +667,7 @@ $(OBJDIR)/%.o : %.S # Create preprocessed source for use in sending a bug report. %.i : %.c - $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ + $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ # Target: clean project. @@ -711,3 +711,4 @@ $(shell mkdir $(OBJDIR) 2>/dev/null) build elf hex eep lss sym coff extcoff doxygen clean \ clean_list clean_doxygen program dfu flip flip-ee dfu-ee \ debug gdb-config + |