summaryrefslogtreecommitdiffstats
path: root/lib/lufa/Demos/Device/ClassDriver/AudioOutput
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lufa/Demos/Device/ClassDriver/AudioOutput')
-rw-r--r--lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c311
-rw-r--r--lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.h87
-rw-r--r--lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt92
-rw-r--r--lib/lufa/Demos/Device/ClassDriver/AudioOutput/Config/AppConfig.h50
-rw-r--r--lib/lufa/Demos/Device/ClassDriver/AudioOutput/Config/LUFAConfig.h93
-rw-r--r--lib/lufa/Demos/Device/ClassDriver/AudioOutput/Descriptors.c312
-rw-r--r--lib/lufa/Demos/Device/ClassDriver/AudioOutput/Descriptors.h106
-rw-r--r--lib/lufa/Demos/Device/ClassDriver/AudioOutput/asf.xml50
-rw-r--r--lib/lufa/Demos/Device/ClassDriver/AudioOutput/doxyfile2395
-rw-r--r--lib/lufa/Demos/Device/ClassDriver/AudioOutput/makefile43
10 files changed, 0 insertions, 3539 deletions
diff --git a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c b/lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c
deleted file mode 100644
index 4c78deb9f6..0000000000
--- a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2017.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- 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
- 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
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- *
- * Main source file for the AudioOutput demo. This file contains the main tasks of
- * the demo and is responsible for the initial application hardware configuration.
- */
-
-#include "AudioOutput.h"
-
-/** LUFA Audio Class driver interface configuration and state information. This structure is
- * passed to all Audio Class driver functions, so that multiple instances of the same class
- * within a device can be differentiated from one another.
- */
-USB_ClassInfo_Audio_Device_t Speaker_Audio_Interface =
- {
- .Config =
- {
- .ControlInterfaceNumber = INTERFACE_ID_AudioControl,
- .StreamingInterfaceNumber = INTERFACE_ID_AudioStream,
- .DataOUTEndpoint =
- {
- .Address = AUDIO_STREAM_EPADDR,
- .Size = AUDIO_STREAM_EPSIZE,
- .Banks = 2,
- },
- },
- };
-
-/** Current audio sampling frequency of the streaming audio endpoint. */
-static uint32_t CurrentAudioSampleFrequency = 48000;
-
-
-/** Main program entry point. This routine contains the overall program flow, including initial
- * setup of all components and the main program loop.
- */
-int main(void)
-{
- SetupHardware();
-
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
- GlobalInterruptEnable();
-
- for (;;)
- {
- Audio_Device_USBTask(&Speaker_Audio_Interface);
- USB_USBTask();
- }
-}
-
-/** Configures the board hardware and chip peripherals for the demo's functionality. */
-void SetupHardware(void)
-{
-#if (ARCH == ARCH_AVR8)
- /* Disable watchdog if enabled by bootloader/fuses */
- MCUSR &= ~(1 << WDRF);
- wdt_disable();
-
- /* Disable clock division */
- clock_prescale_set(clock_div_1);
-#endif
-
- /* Hardware Initialization */
- LEDs_Init();
- USB_Init();
-}
-
-/** ISR to handle the reloading of the PWM timer with the next sample. */
-ISR(TIMER0_COMPA_vect, ISR_BLOCK)
-{
- uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();
-
- /* Check that the USB bus is ready for the next sample to read */
- if (Audio_Device_IsSampleReceived(&Speaker_Audio_Interface))
- {
- /* Retrieve the signed 16-bit left and right audio samples, convert to 8-bit */
- int8_t LeftSample_8Bit = (Audio_Device_ReadSample16(&Speaker_Audio_Interface) >> 8);
- int8_t RightSample_8Bit = (Audio_Device_ReadSample16(&Speaker_Audio_Interface) >> 8);
-
- /* Mix the two channels together to produce a mono, 8-bit sample */
- int8_t MixedSample_8Bit = (((int16_t)LeftSample_8Bit + (int16_t)RightSample_8Bit) >> 1);
-
- #if defined(AUDIO_OUT_MONO)
- /* Load the sample into the PWM timer channel */
- OCR3A = (MixedSample_8Bit ^ (1 << 7));
- #elif defined(AUDIO_OUT_STEREO)
- /* Load the dual 8-bit samples into the PWM timer channels */
- OCR3A = (LeftSample_8Bit ^ (1 << 7));
- OCR3B = (RightSample_8Bit ^ (1 << 7));
- #elif defined(AUDIO_OUT_PORTC)
- /* Load the 8-bit mixed sample into PORTC */
- PORTC = MixedSample_8Bit;
- #endif
-
- uint8_t LEDMask = LEDS_NO_LEDS;
-
- /* Turn on LEDs as the sample amplitude increases */
- if (MixedSample_8Bit > 16)
- LEDMask = (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4);
- else if (MixedSample_8Bit > 8)
- LEDMask = (LEDS_LED1 | LEDS_LED2 | LEDS_LED3);
- else if (MixedSample_8Bit > 4)
- LEDMask = (LEDS_LED1 | LEDS_LED2);
- else if (MixedSample_8Bit > 2)
- LEDMask = (LEDS_LED1);
-
- LEDs_SetAllLEDs(LEDMask);
- }
-
- Endpoint_SelectEndpoint(PrevEndpoint);
-}
-
-/** Event handler for the library USB Connection event. */
-void EVENT_USB_Device_Connect(void)
-{
- LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
-
- /* Sample reload timer initialization */
- TIMSK0 = (1 << OCIE0A);
- OCR0A = ((F_CPU / 8 / CurrentAudioSampleFrequency) - 1);
- TCCR0A = (1 << WGM01); // CTC mode
- TCCR0B = (1 << CS01); // Fcpu/8 speed
-
- #if defined(AUDIO_OUT_MONO)
- /* Set speaker as output */
- DDRC |= (1 << 6);
- #elif defined(AUDIO_OUT_STEREO)
- /* Set speakers as outputs */
- DDRC |= ((1 << 6) | (1 << 5));
- #elif defined(AUDIO_OUT_PORTC)
- /* Set PORTC as outputs */
- DDRC |= 0xFF;
- #endif
-
- #if (defined(AUDIO_OUT_MONO) || defined(AUDIO_OUT_STEREO))
- /* PWM speaker timer initialization */
- TCCR3A = ((1 << WGM30) | (1 << COM3A1) | (1 << COM3A0)
- | (1 << COM3B1) | (1 << COM3B0)); // Set on match, clear on TOP
- TCCR3B = ((1 << WGM32) | (1 << CS30)); // Fast 8-Bit PWM, F_CPU speed
- #endif
-}
-
-/** Event handler for the library USB Disconnection event. */
-void EVENT_USB_Device_Disconnect(void)
-{
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-
- /* Stop the sample reload timer */
- TCCR0B = 0;
-
- #if (defined(AUDIO_OUT_MONO) || defined(AUDIO_OUT_STEREO))
- /* Stop the PWM generation timer */
- TCCR3B = 0;
- #endif
-
- #if defined(AUDIO_OUT_MONO)
- /* Set speaker as input to reduce current draw */
- DDRC &= ~(1 << 6);
- #elif defined(AUDIO_OUT_STEREO)
- /* Set speakers as inputs to reduce current draw */
- DDRC &= ~((1 << 6) | (1 << 5));
- #elif defined(AUDIO_OUT_PORTC)
- /* Set PORTC low */
- PORTC = 0x00;
- #endif
-}
-
-/** Event handler for the library USB Configuration Changed event. */
-void EVENT_USB_Device_ConfigurationChanged(void)
-{
- bool ConfigSuccess = true;
-
- ConfigSuccess &= Audio_Device_ConfigureEndpoints(&Speaker_Audio_Interface);
-
- LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR);
-}
-
-/** Event handler for the library USB Control Request reception event. */
-void EVENT_USB_Device_ControlRequest(void)
-{
- Audio_Device_ProcessControlRequest(&Speaker_Audio_Interface);
-}
-
-/** Audio class driver callback for the setting and retrieval of streaming endpoint properties. This callback must be implemented
- * in the user application to handle property manipulations on streaming audio endpoints.
- *
- * When the DataLength parameter is NULL, this callback should only indicate whether the specified operation is valid for
- * the given endpoint index, and should return as fast as possible. When non-NULL, this value may be altered for GET operations
- * to indicate the size of the retrieved data.
- *
- * \note The length of the retrieved data stored into the Data buffer on GET operations should not exceed the initial value
- * of the \c DataLength parameter.
- *
- * \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
- * \param[in] EndpointProperty Property of the endpoint to get or set, a value from Audio_ClassRequests_t.
- * \param[in] EndpointAddress Address of the streaming endpoint whose property is being referenced.
- * \param[in] EndpointControl Parameter of the endpoint to get or set, a value from Audio_EndpointControls_t.
- * \param[in,out] DataLength For SET operations, the length of the parameter data to set. For GET operations, the maximum
- * length of the retrieved data. When NULL, the function should return whether the given property
- * and parameter is valid for the requested endpoint without reading or modifying the Data buffer.
- * \param[in,out] Data Pointer to a location where the parameter data is stored for SET operations, or where
- * the retrieved data is to be stored for GET operations.
- *
- * \return Boolean \c true if the property get/set was successful, \c false otherwise
- */
-bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
- const uint8_t EndpointProperty,
- const uint8_t EndpointAddress,
- const uint8_t EndpointControl,
- uint16_t* const DataLength,
- uint8_t* Data)
-{
- /* Check the requested endpoint to see if a supported endpoint is being manipulated */
- if (EndpointAddress == Speaker_Audio_Interface.Config.DataOUTEndpoint.Address)
- {
- /* Check the requested control to see if a supported control is being manipulated */
- if (EndpointControl == AUDIO_EPCONTROL_SamplingFreq)
- {
- switch (EndpointProperty)
- {
- case AUDIO_REQ_SetCurrent:
- /* Check if we are just testing for a valid property, or actually adjusting it */
- if (DataLength != NULL)
- {
- /* Set the new sampling frequency to the value given by the host */
- CurrentAudioSampleFrequency = (((uint32_t)Data[2] << 16) | ((uint32_t)Data[1] << 8) | (uint32_t)Data[0]);
-
- /* Adjust sample reload timer to the new frequency */
- OCR0A = ((F_CPU / 8 / CurrentAudioSampleFrequency) - 1);
- }
-
- return true;
- case AUDIO_REQ_GetCurrent:
- /* Check if we are just testing for a valid property, or actually reading it */
- if (DataLength != NULL)
- {
- *DataLength = 3;
-
- Data[2] = (CurrentAudioSampleFrequency >> 16);
- Data[1] = (CurrentAudioSampleFrequency >> 8);
- Data[0] = (CurrentAudioSampleFrequency & 0xFF);
- }
-
- return true;
- }
- }
- }
-
- return false;
-}
-
-/** Audio class driver callback for the setting and retrieval of streaming interface properties. This callback must be implemented
- * in the user application to handle property manipulations on streaming audio interfaces.
- *
- * When the DataLength parameter is NULL, this callback should only indicate whether the specified operation is valid for
- * the given entity and should return as fast as possible. When non-NULL, this value may be altered for GET operations
- * to indicate the size of the retrieved data.
- *
- * \note The length of the retrieved data stored into the Data buffer on GET operations should not exceed the initial value
- * of the \c DataLength parameter.
- *
- * \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
- * \param[in] Property Property of the interface to get or set, a value from Audio_ClassRequests_t.
- * \param[in] EntityAddress Address of the audio entity whose property is being referenced.
- * \param[in] Parameter Parameter of the entity to get or set, specific to each type of entity (see USB Audio specification).
- * \param[in,out] DataLength For SET operations, the length of the parameter data to set. For GET operations, the maximum
- * length of the retrieved data. When NULL, the function should return whether the given property
- * and parameter is valid for the requested endpoint without reading or modifying the Data buffer.
- * \param[in,out] Data Pointer to a location where the parameter data is stored for SET operations, or where
- * the retrieved data is to be stored for GET operations.
- *
- * \return Boolean \c true if the property GET/SET was successful, \c false otherwise
- */
-bool CALLBACK_Audio_Device_GetSetInterfaceProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
- const uint8_t Property,
- const uint8_t EntityAddress,
- const uint16_t Parameter,
- uint16_t* const DataLength,
- uint8_t* Data)
-{
- /* No audio interface entities in the device descriptor, thus no properties to get or set. */
- return false;
-}
diff --git a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.h b/lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.h
deleted file mode 100644
index 4dbec315e2..0000000000
--- a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2017.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- 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
- 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
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- *
- * Header file for AudioOutput.c.
- */
-
-#ifndef _AUDIO_OUTPUT_H_
-#define _AUDIO_OUTPUT_H_
-
- /* Includes: */
- #include <avr/io.h>
- #include <avr/wdt.h>
- #include <avr/power.h>
- #include <avr/interrupt.h>
- #include <stdlib.h>
-
- #include "Descriptors.h"
- #include "Config/AppConfig.h"
-
- #include <LUFA/Drivers/Board/LEDs.h>
- #include <LUFA/Drivers/USB/USB.h>
- #include <LUFA/Platform/Platform.h>
-
- /* Macros: */
- /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
- #define LEDMASK_USB_NOTREADY LEDS_LED1
-
- /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */
- #define LEDMASK_USB_ENUMERATING (LEDS_LED2 | LEDS_LED3)
-
- /** LED mask for the library LED driver, to indicate that the USB interface is ready. */
- #define LEDMASK_USB_READY (LEDS_LED2 | LEDS_LED4)
-
- /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
- #define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3)
-
- /* Function Prototypes: */
- void SetupHardware(void);
-
- void EVENT_USB_Device_Connect(void);
- void EVENT_USB_Device_Disconnect(void);
- void EVENT_USB_Device_ConfigurationChanged(void);
- void EVENT_USB_Device_ControlRequest(void);
-
- bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
- const uint8_t EndpointProperty,
- const uint8_t EndpointAddress,
- const uint8_t EndpointControl,
- uint16_t* const DataLength,
- uint8_t* Data) ATTR_NON_NULL_PTR_ARG(1);
- bool CALLBACK_Audio_Device_GetSetInterfaceProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
- const uint8_t Property,
- const uint8_t EntityAddress,
- const uint16_t Parameter,
- uint16_t* const DataLength,
- uint8_t* Data);
-#endif
-
diff --git a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt b/lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt
deleted file mode 100644
index 8f0c7d656c..0000000000
--- a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-/** \file
- *
- * 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 Output Device Demo
- *
- * \section Sec_Compat Demo Compatibility:
- *
- * The following list indicates what microcontrollers are compatible with this demo.
- *
- * \li Series 7 USB AVRs (AT90USBxxx7)
- * \li Series 6 USB AVRs (AT90USBxxx6)
- * \li Series 4 USB AVRs (ATMEGAxxU4)
- *
- * \section Sec_Info USB Information:
- *
- * The following table gives a rundown of the USB utilization of this demo.
- *
- * <table>
- * <tr>
- * <td><b>USB Mode:</b></td>
- * <td>Device</td>
- * </tr>
- * <tr>
- * <td><b>USB Class:</b></td>
- * <td>Audio Class</td>
- * </tr>
- * <tr>
- * <td><b>USB Subclass:</b></td>
- * <td>Standard Audio Device</td>
- * </tr>
- * <tr>
- * <td><b>Relevant Standards:</b></td>
- * <td>USBIF Audio 1.0 Class Specification \n
- * USBIF Audio 1.0 Class Terminal Types Specification \n
- * USBIF Audio 1.0 Data Formats Specification</td>
- * </tr>
- * <tr>
- * <td><b>Supported USB Speeds:</b></td>
- * <td>Full Speed Mode</td>
- * </tr>
- * </table>
- *
- * \section Sec_Description Project Description:
- *
- * Audio demonstration application. This gives a simple reference
- * application for implementing a USB Audio Output 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 speaker. Outgoing audio will output in 8-bit PWM onto
- * the timer 3 output compare channel A for AUDIO_OUT_MONO mode, on
- * timer 3 channels A and B for AUDIO_OUT_STEREO and on PORTC as a signed
- * mono sample for AUDIO_OUT_PORTC. Audio output will also be indicated on
- * the board LEDs in all modes. Decouple audio outputs with a capacitor and
- * attach to a speaker to hear the audio.
- *
- * Under Windows, if a driver request dialogue pops up, select the option
- * to automatically install the appropriate drivers.
- *
- * \section Sec_Options Project Options
- *
- * The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
- *
- * <table>
- * <tr>
- * <th><b>Define Name:</b></th>
- * <th><b>Location:</b></th>
- * <th><b>Description:</b></th>
- * </tr>
- * <tr>
- * <td>AUDIO_OUT_STEREO</td>
- * <td>AppConfig.h</td>
- * <td>When defined, this outputs the audio samples in stereo to the timer output pins of the microcontroller.</td>
- * </tr>
- * <tr>
- * <td>AUDIO_OUT_MONO</td>
- * <td>AppConfig.h</td>
- * <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
- * </tr>
- * <tr>
- * <td>AUDIO_OUT_PORTC</td>
- * <td>AppConfig.h</td>
- * <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an
- * external DAC.</td>
- * </tr>
- * </table>
- */
-
diff --git a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/Config/AppConfig.h b/lib/lufa/Demos/Device/ClassDriver/AudioOutput/Config/AppConfig.h
deleted file mode 100644
index e93cfc8136..0000000000
--- a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/Config/AppConfig.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2017.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- 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
- 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
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- * \brief Application Configuration Header File
- *
- * This is a header file which is be used to configure some of
- * the application's compile time options, as an alternative to
- * specifying the compile time constants supplied through a
- * makefile or build system.
- *
- * For information on what each token does, refer to the
- * \ref Sec_Options section of the application documentation.
- */
-
-#ifndef _APP_CONFIG_H_
-#define _APP_CONFIG_H_
-
- #define AUDIO_OUT_STEREO
-// #define AUDIO_OUT_MONO
-// #define AUDIO_OUT_PORTC
-
-#endif
diff --git a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/Config/LUFAConfig.h b/lib/lufa/Demos/Device/ClassDriver/AudioOutput/Config/LUFAConfig.h
deleted file mode 100644
index 6048c1d809..0000000000
--- a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/Config/LUFAConfig.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2017.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- 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
- 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
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- * \brief LUFA Library Configuration Header File
- *
- * This header file is used to configure LUFA's compile time options,
- * as an alternative to the compile time constants supplied through
- * a makefile.
- *
- * For information on what each token does, refer to the LUFA
- * manual section "Summary of Compile Tokens".
- */
-
-#ifndef _LUFA_CONFIG_H_
-#define _LUFA_CONFIG_H_
-
- #if (ARCH == ARCH_AVR8)
-
- /* Non-USB Related Configuration Tokens: */
-// #define DISABLE_TERMINAL_CODES
-
- /* USB Class Driver Related Tokens: */
-// #define HID_HOST_BOOT_PROTOCOL_ONLY
-// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here}
-// #define HID_USAGE_STACK_DEPTH {Insert Value Here}
-// #define HID_MAX_COLLECTIONS {Insert Value Here}
-// #define HID_MAX_REPORTITEMS {Insert Value Here}
-// #define HID_MAX_REPORT_IDS {Insert Value Here}
-// #define NO_CLASS_DRIVER_AUTOFLUSH
-
- /* General USB Driver Related Tokens: */
-// #define ORDERED_EP_CONFIG
- #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
- #define USB_DEVICE_ONLY
-// #define USB_HOST_ONLY
-// #define USB_STREAM_TIMEOUT_MS {Insert Value Here}
-// #define NO_LIMITED_CONTROLLER_CONNECT
-// #define NO_SOF_EVENTS
-
- /* USB Device Mode Driver Related Tokens: */
-// #define USE_RAM_DESCRIPTORS
- #define USE_FLASH_DESCRIPTORS
-// #define USE_EEPROM_DESCRIPTORS
-// #define NO_INTERNAL_SERIAL
- #define FIXED_CONTROL_ENDPOINT_SIZE 8
-// #define DEVICE_STATE_AS_GPIOR {Insert Value Here}
- #define FIXED_NUM_CONFIGURATIONS 1
-// #define CONTROL_ONLY_DEVICE
-// #define INTERRUPT_CONTROL_ENDPOINT
-// #define NO_DEVICE_REMOTE_WAKEUP
-// #define NO_DEVICE_SELF_POWER
-
- /* USB Host Mode Driver Related Tokens: */
-// #define HOST_STATE_AS_GPIOR {Insert Value Here}
-// #define USB_HOST_TIMEOUT_MS {Insert Value Here}
-// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here}
-// #define NO_AUTO_VBUS_MANAGEMENT
-// #define INVERTED_VBUS_ENABLE_LINE
-
- #else
-
- #error Unsupported architecture for this LUFA configuration file.
-
- #endif
-#endif
diff --git a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/Descriptors.c b/lib/lufa/Demos/Device/ClassDriver/AudioOutput/Descriptors.c
deleted file mode 100644
index 42bd528bca..0000000000
--- a/lib/lufa/Demos/Device/ClassDriver/AudioOutput/Descriptors.c
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2017.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- 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
- 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
- software without specific, written prior permission.
-
- The author disclaims all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- *
- * 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.
- */
-
-#include "Descriptors.h"
-
-/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
- * device characteristics, including the supported USB version, control endpoint size and the
- * number of device configurations. The descriptor is read out by the USB host when the enumeration
- * process begins.
- */
-const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
-{
- .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device},
-
- .USBSpecification = VERSION_BCD(2,0,0),
- .Class = USB_CSCP_NoDeviceClass,
- .SubClass = USB_CSCP_NoDeviceSubclass,
- .Protocol = USB_CSCP_NoDeviceProtocol,
-
- .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE,
-
- .VendorID = 0x03EB,
- .ProductID = 0x2046,
- .ReleaseNumber = VERSION_BCD(0,0,2),
-
- .ManufacturerStrIndex = STRING_ID_Manufacturer,
- .ProductStrIndex = STRING_ID_Product,
- .SerialNumStrIndex = NO_DESCRIPTOR,
-
- .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
-};
-
-/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
- * of the device in one of its supported configurations, including information about any device interfaces
- * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting
- * a configuration so that the host may correctly communicate with the USB device.
- */
-const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
-{
- .Config =
- {
- .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration},
-
- .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t),
- .TotalInterfaces = 2,
-
- .ConfigurationNumber = 1,
- .ConfigurationStrIndex = NO_DESCRIPTOR,
-
- .ConfigAttributes = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED),
-
- .MaxPowerConsumption = USB_CONFIG_POWER_MA(100)
- },
-
- .Audio_ControlInterface =
- {
- .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
-
- .InterfaceNumber = INTERFACE_ID_AudioControl,
- .AlternateSetting = 0,
-
- .TotalEndpoints = 0,
-
- .Class = AUDIO_CSCP_AudioClass,
- .SubClass = AUDIO_CSCP_ControlSubclass,
- .Protocol = AUDIO_CSCP_ControlProtocol,
-
- .InterfaceStrIndex = NO_DESCRIPTOR
- },
-
- .Audio_ControlInterface_SPC =
- {
- .Header = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_CSInterface},
- .Subtype = AUDIO_DSUBTYPE_CSInterface_Header,
-
- .ACSpecification = VERSION_BCD(1,0,0),
- .TotalLength = (sizeof(USB_Audio_Descriptor_Interface_AC_t) +
- sizeof(USB_Audio_Descriptor_InputTerminal_t) +
- sizeof(USB_Audio_Descriptor_OutputTerminal_t)),
-
- .InCollection = 1,
- .InterfaceNumber = INTERFACE_ID_AudioStream,
- },
-
- .Audio_InputTerminal =
- {
- .Header = {.Size = sizeof(USB_Audio_Descriptor_InputTerminal_t), .Type = DTYPE_CSInterface},
- .Subtype = AUDIO_DSUBTYPE_CSInterface_InputTerminal,
-
- .TerminalID = 0x01,
- .TerminalType = AUDIO_TERMINAL_STREAMING,
- .AssociatedOutputTerminal = 0x00,
-
- .TotalChannels = 2,
- .ChannelConfig = (AUDIO_CHANNEL_LEFT_FRONT | AUDIO_CHANNEL_RIGHT_FRONT),
-
- .ChannelStrIndex = NO_DESCRIPTOR,
- .TerminalStrIndex = NO_DESCRIPTOR
- },
-
- .Audio_OutputTerminal =
- {
- .Header = {.Size = sizeof(USB_Audio_Descriptor_OutputTerminal_t), .Type = DTYPE_CSInterface},
- .Subtype = AUDIO_DSUBTYPE_CSInterface_OutputTerminal,
-
- .TerminalID = 0x02,
- .TerminalType = AUDIO_TERMINAL_OUT_SPEAKER,
- .AssociatedInputTerminal = 0x00,
-
- .SourceID = 0x01,
-
- .TerminalStrIndex = NO_DESCRIPTOR
- },
-
- .Audio_StreamInterface_Alt0 =
- {
- .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
-
- .InterfaceNumber = INTERFACE_ID_AudioStream,
- .AlternateSetting = 0,
-
- .TotalEndpoints = 0,
-
- .Class = AUDIO_CSCP_AudioClass,
- .SubClass = AUDIO_CSCP_AudioStreamingSubclass,
- .Protocol = AUDIO_CSCP_StreamingProtocol,
-
- .InterfaceStrIndex = NO_DESCRIPTOR
- },
-
- .Audio_StreamInterface_Alt1 =
- {
- .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
-
- .InterfaceNumber = INTERFACE_ID_AudioStream,
- .AlternateSetting = 1,
-
- .TotalEndpoints = 1,
-
- .Class = AUDIO_CSCP_AudioClass,
- .SubClass = AUDIO_CSCP_AudioStreamingSubclass,
- .Protocol = AUDIO_CSCP_StreamingProtocol,
-
- .InterfaceStrIndex = NO_DESCRIPTOR
- },
-
- .Audio_StreamInterface_SPC =
- {
- .Header = {.Size = sizeof(USB_Audio_Descriptor_Interface_AS_t), .Type = DTYPE_CSInterface},
- .Subtype = AUDIO_DSUBTYPE_CSInterface_General,
-
- .TerminalLink = 0x01,
-
- .FrameDelay = 1,
- .AudioFormat = 0x0001
- },
-
- .Audio_AudioFormat =
- {
- .Header = {.Size = sizeof(USB_Audio_Descriptor_Format_t) +
- sizeof(ConfigurationDescriptor.Audio_AudioFormatSampleRates),
- .Type = DTYPE_CSInterface},
- .Subtype = AUDIO_DSUBTYPE_CSInterface_FormatType,
-
- .FormatType = 0x01,
- .Channels = 0x02,
-
- .SubFrameSize = 0x02,
- .BitResolution = 16,
-
- .TotalDiscreteSampleRates = (sizeof(ConfigurationDescriptor.Audio_AudioFormatSampleRates) / sizeof(USB_Audio_SampleFreq_t)),
- },
-
- .Audio_AudioFormatSampleRates =
- {
- AUDIO_SAMPLE_FREQ(8000),
- AUDIO_SAMPLE_FREQ(11025),
- AUDIO_SAMPLE_FREQ(22050),
- AUDIO_SAMPLE_FREQ(44100),
- AUDIO_SAMPLE_FREQ(48000),
- },
-
- .Audio_StreamEndpoint =