summaryrefslogtreecommitdiffstats
path: root/lib/lufa/Demos/Host/LowLevel/AudioOutputHost
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lufa/Demos/Host/LowLevel/AudioOutputHost')
-rw-r--r--lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.c250
-rw-r--r--lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.h88
-rw-r--r--lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.txt83
-rw-r--r--lib/lufa/Demos/Host/LowLevel/AudioOutputHost/Config/AppConfig.h51
-rw-r--r--lib/lufa/Demos/Host/LowLevel/AudioOutputHost/Config/LUFAConfig.h93
-rw-r--r--lib/lufa/Demos/Host/LowLevel/AudioOutputHost/ConfigDescriptor.c220
-rw-r--r--lib/lufa/Demos/Host/LowLevel/AudioOutputHost/ConfigDescriptor.h73
-rw-r--r--lib/lufa/Demos/Host/LowLevel/AudioOutputHost/asf.xml54
-rw-r--r--lib/lufa/Demos/Host/LowLevel/AudioOutputHost/doxyfile2395
-rw-r--r--lib/lufa/Demos/Host/LowLevel/AudioOutputHost/makefile43
10 files changed, 0 insertions, 3350 deletions
diff --git a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.c b/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.c
deleted file mode 100644
index 2e56d7f356..0000000000
--- a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.c
+++ /dev/null
@@ -1,250 +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 AudioOutputHost demo. This file contains the main tasks of
- * the demo and is responsible for the initial application hardware configuration.
- */
-
-#include "AudioOutputHost.h"
-
-/** Main program entry point. This routine configures the hardware required by the application, then
- * enters a loop to run the application tasks in sequence.
- */
-int main(void)
-{
- SetupHardware();
-
- puts_P(PSTR(ESC_FG_CYAN "Audio Output Host Demo running.\r\n" ESC_FG_WHITE));
-
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
- GlobalInterruptEnable();
-
- for (;;)
- {
- 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 */
- Serial_Init(9600, false);
- Buttons_Init();
- ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_32);
- ADC_SetupChannel(MIC_IN_ADC_CHANNEL);
- LEDs_Init();
- USB_Init();
-
- /* Create a stdio stream for the serial port for stdin and stdout */
- Serial_CreateStream(NULL);
-
- /* Start the ADC conversion in free running mode */
- ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_GET_CHANNEL_MASK(MIC_IN_ADC_CHANNEL));
-}
-
-/** Event handler for the USB_DeviceAttached event. This indicates that a device has been attached to the host, and
- * starts the library USB task to begin the enumeration and USB management process.
- */
-void EVENT_USB_Host_DeviceAttached(void)
-{
- puts_P(PSTR(ESC_FG_GREEN "Device Attached.\r\n" ESC_FG_WHITE));
- LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
-}
-
-/** Event handler for the USB_DeviceUnattached event. This indicates that a device has been removed from the host, and
- * stops the library USB task management process.
- */
-void EVENT_USB_Host_DeviceUnattached(void)
-{
- puts_P(PSTR(ESC_FG_GREEN "Device Unattached.\r\n" ESC_FG_WHITE));
- LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-}
-
-/** Event handler for the USB_DeviceEnumerationComplete event. This indicates that a device has been successfully
- * enumerated by the host and is now ready to be used by the application.
- */
-void EVENT_USB_Host_DeviceEnumerationComplete(void)
-{
- puts_P(PSTR("Getting Config Data.\r\n"));
-
- uint8_t ErrorCode;
-
- /* Get and process the configuration descriptor data */
- if ((ErrorCode = ProcessConfigurationDescriptor()) != SuccessfulConfigRead)
- {
- if (ErrorCode == ControlError)
- puts_P(PSTR(ESC_FG_RED "Control Error (Get Configuration).\r\n"));
- else
- puts_P(PSTR(ESC_FG_RED "Invalid Device.\r\n"));
-
- printf_P(PSTR(" -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
-
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
- return;
- }
-
- /* Set the device configuration to the first configuration (rarely do devices use multiple configurations) */
- if ((ErrorCode = USB_Host_SetDeviceConfiguration(1)) != HOST_SENDCONTROL_Successful)
- {
- printf_P(PSTR(ESC_FG_RED "Control Error (Set Configuration).\r\n"
- " -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
-
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
- return;
- }
-
- if ((ErrorCode = USB_Host_SetInterfaceAltSetting(StreamingInterfaceIndex,
- StreamingInterfaceAltSetting)) != HOST_SENDCONTROL_Successful)
- {
- printf_P(PSTR(ESC_FG_RED "Could not set alternative streaming interface setting.\r\n"
- " -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
-
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
- USB_Host_SetDeviceConfiguration(0);
- return;
- }
-
- USB_ControlRequest = (USB_Request_Header_t)
- {
- .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_ENDPOINT),
- .bRequest = AUDIO_REQ_SetCurrent,
- .wValue = (AUDIO_EPCONTROL_SamplingFreq << 8),
- .wIndex = StreamingEndpointAddress,
- .wLength = sizeof(USB_Audio_SampleFreq_t),
- };
-
- USB_Audio_SampleFreq_t SampleRate = AUDIO_SAMPLE_FREQ(48000);
-
- /* Select the control pipe for the request transfer */
- Pipe_SelectPipe(PIPE_CONTROLPIPE);
-
- /* Set the sample rate on the streaming interface endpoint */
- if ((ErrorCode = USB_Host_SendControlRequest(&SampleRate)) != HOST_SENDCONTROL_Successful)
- {
- printf_P(PSTR(ESC_FG_RED "Could not set requested Audio sample rate.\r\n"
- " -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
-
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
- USB_Host_SetDeviceConfiguration(0);
- return;
- }
-
- /* Sample reload timer initialization */
- TIMSK0 = (1 << OCIE0A);
- OCR0A = ((F_CPU / 8 / 48000) - 1);
- TCCR0A = (1 << WGM01); // CTC mode
- TCCR0B = (1 << CS01); // Fcpu/8 speed
-
- puts_P(PSTR("Speaker Enumerated.\r\n"));
- LEDs_SetAllLEDs(LEDMASK_USB_READY);
-}
-
-/** Event handler for the USB_HostError event. This indicates that a hardware error occurred while in host mode. */
-void EVENT_USB_Host_HostError(const uint8_t ErrorCode)
-{
- USB_Disable();
-
- printf_P(PSTR(ESC_FG_RED "Host Mode Error\r\n"
- " -- Error Code %d\r\n" ESC_FG_WHITE), ErrorCode);
-
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
- for(;;);
-}
-
-/** Event handler for the USB_DeviceEnumerationFailed event. This indicates that a problem occurred while
- * enumerating an attached USB device.
- */
-void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
- const uint8_t SubErrorCode)
-{
- printf_P(PSTR(ESC_FG_RED "Dev Enum Error\r\n"
- " -- Error Code %d\r\n"
- " -- Sub Error Code %d\r\n"
- " -- In State %d\r\n" ESC_FG_WHITE), ErrorCode, SubErrorCode, USB_HostState);
-
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-}
-
-/** ISR to handle the reloading of the endpoint with the next sample. */
-ISR(TIMER0_COMPA_vect, ISR_BLOCK)
-{
- uint8_t PrevPipe = Pipe_GetCurrentPipe();
-
- Pipe_SelectPipe(AUDIO_DATA_OUT_PIPE);
- Pipe_Unfreeze();
-
- /* Check if the current pipe can be written to (device ready for more data) */
- if (Pipe_IsOUTReady())
- {
- int16_t AudioSample;
-
- #if defined(USE_TEST_TONE)
- static uint8_t SquareWaveSampleCount;
- static int16_t CurrentWaveValue;
-
- /* In test tone mode, generate a square wave at 1/256 of the sample rate */
- if (SquareWaveSampleCount++ == 0xFF)
- CurrentWaveValue ^= 0x8000;
-
- /* Only generate audio if the board button is being pressed */
- AudioSample = (Buttons_GetStatus() & BUTTONS_BUTTON1) ? CurrentWaveValue : 0;
- #else
- /* Audio sample is ADC value scaled to fit the entire range */
- 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);
- #endif
- #endif
-
- Pipe_Write_16_LE(AudioSample);
- Pipe_Write_16_LE(AudioSample);
-
- if (!(Pipe_IsReadWriteAllowed()))
- Pipe_ClearOUT();
- }
-
- Pipe_Freeze();
- Pipe_SelectPipe(PrevPipe);
-}
-
diff --git a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.h b/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.h
deleted file mode 100644
index a37113b84a..0000000000
--- a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.h
+++ /dev/null
@@ -1,88 +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 AudioOutputHost.c.
- */
-
-#ifndef _AUDIO_OUTPUT_HOST_H_
-#define _AUDIO_OUTPUT_HOST_H_
-
- /* Includes: */
- #include <avr/io.h>
- #include <avr/wdt.h>
- #include <avr/pgmspace.h>
- #include <avr/power.h>
- #include <avr/interrupt.h>
- #include <stdio.h>
-
- #include <LUFA/Drivers/Misc/TerminalCodes.h>
- #include <LUFA/Drivers/USB/USB.h>
- #include <LUFA/Drivers/Peripheral/Serial.h>
- #include <LUFA/Drivers/Peripheral/ADC.h>
- #include <LUFA/Drivers/Board/LEDs.h>
- #include <LUFA/Drivers/Board/Buttons.h>
- #include <LUFA/Platform/Platform.h>
-
- #include "ConfigDescriptor.h"
- #include "Config/AppConfig.h"
-
- /* Macros: */
- /** Maximum audio sample value for the microphone input. */
- #define SAMPLE_MAX_RANGE 0xFFFF
-
- /** Maximum ADC range for the microphone input. */
- #define ADC_MAX_RANGE 0x3FF
-
- /** 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_Host_HostError(const uint8_t ErrorCode);
- void EVENT_USB_Host_DeviceAttached(void);
- void EVENT_USB_Host_DeviceUnattached(void);
- void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
- const uint8_t SubErrorCode);
- void EVENT_USB_Host_DeviceEnumerationComplete(void);
-
-#endif
-
diff --git a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.txt b/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.txt
deleted file mode 100644
index 5e79a33e38..0000000000
--- a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.txt
+++ /dev/null
@@ -1,83 +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 Host Demo
- *
- * \section Sec_Compat Demo Compatibility:
- *
- * The following list indicates what microcontrollers are compatible with this demo.
- *
- * \li Series 7 USB AVRs (AT90USBxxx7)
- *
- * \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>Host</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 Output host demonstration application. This gives a simple reference
- * application for implementing a USB Audio host, for USB Audio devices using
- * the USB Audio 1.0 class profile.
- *
- * By default, the demo will produce a square wave test tone when the board
- * button is pressed. If USE_TEST_TONE is not defined in the project makefile,
- * incoming audio from the ADC channel 1 will be sampled and sent to the attached
- * USB audio device instead.
- *
- * \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>MIC_IN_ADC_CHANNEL</td>
- * <td>AppConfig.h</td>
- * <td>Sets the ADC channel used by the demo for the input audio samples from an attached microphone.</td>
- * </tr>
- * <tr>
- * <td>USE_TEST_TONE</td>
- * <td>AppConfig.h</td>
- * <td>When defined, this alters the demo to produce a square wave test tone when the first board button is pressed
- * instead of sampling the board microphone.</td>
- * </tr>
- * <tr>
- * <td>MICROPHONE_BIASED_TO_HALF_RAIL</td>
- * <td>AppConfig.h</td>
- * <td>When defined, this alters the demo so that the half VCC bias of the microphone input is subtracted.</td>
- * </tr>
- * </table>
- */
-
diff --git a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/Config/AppConfig.h b/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/Config/AppConfig.h
deleted file mode 100644
index ff8ed270de..0000000000
--- a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/Config/AppConfig.h
+++ /dev/null
@@ -1,51 +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 MIC_IN_ADC_CHANNEL 2
-
- #define MICROPHONE_BIASED_TO_HALF_RAIL
- #define USE_TEST_TONE
-
-#endif
diff --git a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/Config/LUFAConfig.h b/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/Config/LUFAConfig.h
deleted file mode 100644
index 197122fce1..0000000000
--- a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/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_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 {Insert Value Here}
-// #define DEVICE_STATE_AS_GPIOR {Insert Value Here}
-// #define FIXED_NUM_CONFIGURATIONS {Insert Value Here}
-// #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/Host/LowLevel/AudioOutputHost/ConfigDescriptor.c b/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/ConfigDescriptor.c
deleted file mode 100644
index c9d442107b..0000000000
--- a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/ConfigDescriptor.c
+++ /dev/null
@@ -1,220 +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 Configuration Descriptor processing routines, to determine the correct pipe configurations
- * needed to communication with an attached USB device. Descriptors are special computer-readable structures
- * which the host requests upon device enumeration, to determine the device's capabilities and functions.
- */
-
-#include "ConfigDescriptor.h"
-
-/** Index of the currently used Audio Streaming Interface within the device. */
-uint8_t StreamingInterfaceIndex = 0;
-
-/** Alternative Setting of the currently used Audio Streaming Interface within the device. */
-uint8_t StreamingInterfaceAltSetting = 0;
-
-/** Address of the streaming audio endpoint currently in use within the device. */
-uint8_t StreamingEndpointAddress = 0;
-
-
-/** Reads and processes an attached device's descriptors, to determine compatibility and pipe configurations. This
- * routine will read in the entire configuration descriptor, and configure the hosts pipes to correctly communicate
- * with compatible devices.
- *
- * This routine searches for a Streaming Audio interface descriptor containing a valid Isochronous audio endpoint.
- *
- * \return An error code from the \ref AudioHost_GetConfigDescriptorDataCodes_t enum.
- */
-uint8_t ProcessConfigurationDescriptor(void)
-{
- uint8_t ConfigDescriptorData[512];
- void* CurrConfigLocation = ConfigDescriptorData;
- uint16_t CurrConfigBytesRem;
-
- USB_Descriptor_Interface_t* AudioControlInterface = NULL;
- USB_Descriptor_Interface_t* AudioStreamingInterface = NULL;
- USB_Descriptor_Endpoint_t* DataOUTEndpoint = NULL;
-
- /* Retrieve the entire configuration descriptor into the allocated buffer */
- switch (USB_Host_GetDeviceConfigDescriptor(1, &CurrConfigBytesRem, ConfigDescriptorData, sizeof(ConfigDescriptorData)))
- {
- case HOST_GETCONFIG_Successful:
- break;
- case HOST_GETCONFIG_InvalidData:
- return InvalidConfigDataReturned;
- case HOST_GETCONFIG_BuffOverflow:
- return DescriptorTooLarge;
- default:
- return ControlError;
- }
-
- while (!(DataOUTEndpoint))
- {
- /* See if we've found a likely compatible interface, and if there is an endpoint within that interface */
- if (!(AudioControlInterface) ||
- USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
- DComp_NextAudioInterfaceDataEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)
- {
- /* Check if we haven't found an Audio Control interface yet, or if we have run out of related Audio Streaming interfaces */
- if (!(AudioControlInterface) ||
- USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
- DComp_NextAudioStreamInterface) != DESCRIPTOR_SEARCH_COMP_Found)
- {
- /* Find a new Audio Control interface if the current one doesn't contain a compatible streaming interface */
- if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
- DComp_NextAudioControlInterface) != DESCRIPTOR_SEARCH_COMP_Found)
- {
- /* Descriptor not found, error out */
- return NoCompatibleInterfaceFound;
- }
-
- /* Save the interface in case we need to refer back to it later */
- AudioControlInterface = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Interface_t);
-
- /* Find the next Audio Streaming interface within that Audio Control interface */
- if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
- DComp_NextAudioStreamInterface) != DESCRIPTOR_SEARCH_COMP_Found)
- {
- /* Descriptor not found, error out */
- return NoCompatibleInterfaceFound;
- }
- }
-
- /* Save the interface in case we need to refer back to it later */
- AudioStreamingInterface = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Interface_t);
-
- /* Skip the remainder of the loop as we have not found an endpoint yet */
- continue;
- }
-
- /* Retrieve the endpoint address from the endpoint descriptor */
- USB_Descriptor_Endpoint_t* EndpointData = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Endpoint_t);
-
- /* Save the endpoint if it is an OUT type endpoint */
- if ((EndpointData->EndpointAddress & ENDPOINT_DIR_MASK) == ENDPOINT_DIR_OUT)
- DataOUTEndpoint = EndpointData;
- }
-
- StreamingInterfaceIndex = AudioStreamingInterface->InterfaceNumber;
- StreamingInterfaceAltSetting = AudioStreamingInterface->AlternateSetting;
- StreamingEndpointAddress = DataOUTEndpoint->EndpointAddress;
-
- /* Configure the Audio data OUT pipe */
- Pipe_ConfigurePipe(AUDIO_DATA_OUT_PIPE, EP_TYPE_ISOCHRONOUS, DataOUTEndpoint->EndpointAddress, DataOUTEndpoint->EndpointSize, 2);
-
- /* Valid data found, return success */
- return SuccessfulConfigRead;
-}
-
-/** Descriptor comparator function. This comparator function is can be called while processing an attached USB device's
- * configuration descriptor, to search for a specific sub descriptor. It can also be used to abort the configuration
- * descriptor processing if an incompatible descriptor configuration is found.
- *
- * This comparator searches for the next Interface descriptor of the correct Audio Control Class, Subclass and Protocol values.
- *
- * \return A value from the DSEARCH_Return_ErrorCodes_t enum
- */
-uint8_t DComp_NextAudioControlInterface(void* CurrentDescriptor)
-{
- USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
-
- if (Header->Type == DTYPE_Interface)
- {
- USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t);
-
- if ((Interface->Class == AUDIO_CSCP_AudioClass) &&
- (Interface->SubClass == AUDIO_CSCP_ControlSubclass) &&
- (Interface->Protocol == AUDIO_CSCP_ControlProtocol))
- {
- return DESCRIPTOR_SEARCH_Found;
- }
- }
-
- return DESCRIPTOR_SEARCH_NotFound;
-}
-
-/** Descriptor comparator function. This comparator function is can be called while processing an attached USB device's
- * configuration descriptor, to search for a specific sub descriptor. It can also be used to abort the configuration
- * descriptor processing if an incompatible descriptor configuration is found.
- *
- * This comparator searches for the next Interface descriptor of the correct Audio Streaming Class, Subclass and Protocol values.
- *
- * \return A value from the DSEARCH_Return_ErrorCodes_t enum
- */
-uint8_t DComp_NextAudioStreamInterface(void* CurrentDescriptor)
-{
- USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
-
- if (Header->Type == DTYPE_Interface)
- {
- USB_Descriptor_Interface_t* Interface = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Interface_t);
-
- if ((Interface->Class == AUDIO_CSCP_AudioClass) &&
- (Interface->SubClass == AUDIO_CSCP_AudioStreamingSubclass) &&
- (Interface->Protocol == AUDIO_CSCP_StreamingProtocol))
- {
- return DESCRIPTOR_SEARCH_Found;
- }
- }
-
- return DESCRIPTOR_SEARCH_NotFound;
-}
-
-/** Descriptor comparator function. This comparator function is can be called while processing an attached USB device's
- * configuration descriptor, to search for a specific sub descriptor. It can also be used to abort the configuration
- * descriptor processing if an incompatible descriptor configuration is found.
- *
- * This comparator searches for the next Isochronous Endpoint descriptor within the current interface, aborting the
- * search if another interface descriptor is found before the next endpoint.
- *
- * \return A value from the DSEARCH_Return_ErrorCodes_t enum
- */
-uint8_t DComp_NextAudioInterfaceDataEndpoint(void* CurrentDescriptor)
-{
- USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
-
- if (Header->Type == DTYPE_Endpoint)
- {
- USB_Descriptor_Endpoint_t* Endpoint = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Endpoint_t);
-
- if ((Endpoint->Attributes & EP_TYPE_MASK) == EP_TYPE_ISOCHRONOUS)
- return DESCRIPTOR_SEARCH_Found;
- }
- else if (Header->Type == DTYPE_Interface)
- {
- return DESCRIPTOR_SEARCH_Fail;
- }
-
- return DESCRIPTOR_SEARCH_NotFound;
-}
-
diff --git a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/ConfigDescriptor.h b/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/ConfigDescriptor.h
deleted file mode 100644
index 0ed865edcc..0000000000
--- a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/ConfigDescriptor.h
+++ /dev/null
@@ -1,73 +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 ConfigDescriptor.c.
- */
-
-#ifndef _CONFIGDESCRIPTOR_H_
-#define _CONFIGDESCRIPTOR_H_
-
- /* Includes: */
- #include <LUFA/Drivers/USB/USB.h>
-
- #include "AudioOutputHost.h"
- #include "Config/AppConfig.h"
-
- /* Macros: */
- /** Pipe address for the Audio data OUT pipe. */
- #define AUDIO_DATA_OUT_PIPE (PIPE_DIR_OUT | 1)
-
- /* Enums: */
- /** Enum for the possible return codes of the \ref ProcessConfigurationDescriptor() function. */
- enum AudioHost_GetConfigDescriptorDataCodes_t
- {
- SuccessfulConfigRead = 0, /**< Configuration Descriptor was processed successfully */
- ControlError = 1, /**< A control request to the device failed to complete successfully */
- DescriptorTooLarge = 2, /**< The device's Configuration Descriptor is too large to process */
- InvalidConfigDataReturned = 3, /**< The device returned an invalid Configuration Descriptor */
- NoCompatibleInterfaceFound = 4, /**< A compatible interface with the required endpoints was not found */
- };
-
- /* External Variables: */
- extern uint8_t StreamingInterfaceIndex;
- extern uint8_t StreamingInterfaceAltSetting;
- extern uint8_t StreamingEndpointAddress;
-
- /* Function Prototypes: */
- uint8_t ProcessConfigurationDescriptor(void);
-
- uint8_t DComp_NextAudioControlInterface(void* CurrentDescriptor);
- uint8_t DComp_NextAudioStreamInterface(void* CurrentDescriptor);
- uint8_t DComp_NextAudioInterfaceDataEndpoint(void* CurrentDescriptor);
-
-#endif
-
diff --git a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/asf.xml b/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/asf.xml
deleted file mode 100644
index c568eb98b8..0000000000
--- a/lib/lufa/Demos/Host/LowLevel/AudioOutputHost/asf.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<asf xmlversion="1.0">
- <project caption="Audio Output Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.audio_output.example.avr8">
- <require