Add in new invalid event hook check targets to project makefiles to produce compilati...
[pub/USBasp.git] / Demos / Device / LowLevel / AudioOutput / AudioOutput.h
index d8725a0..362a554 100644 (file)
                #include <avr/io.h>\r
                #include <avr/wdt.h>\r
                #include <avr/power.h>\r
+               #include <stdlib.h>\r
 \r
                #include "Descriptors.h"\r
                \r
-               #include <LUFA/Version.h>                    // Library Version Information\r
-               #include <LUFA/Drivers/USB/USB.h>            // USB Functionality\r
-               #include <LUFA/Drivers/Board/LEDs.h>         // LEDs driver\r
-               #include <LUFA/Scheduler/Scheduler.h>        // Simple scheduler for task management\r
+               #include <LUFA/Version.h>\r
+               #include <LUFA/Drivers/USB/USB.h>\r
+               #include <LUFA/Drivers/Board/LEDs.h>
        \r
        /* Macros: */\r
-               #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)\r
-                       #define TCCRxA          TCCR3A\r
-                       #define TCCRxB          TCCR3B\r
-                       #define OCRxA           OCR3A\r
-                       #define OCRxB           OCR3B\r
-                       #define WGMx0           WGM30\r
-                       #define WGMx2           WGM32\r
-                       #define COMxA1          COM3A1\r
-                       #define COMxA0          COM3A0\r
-                       #define COMxB1          COM3B1\r
-                       #define COMxB0          COM3B0\r
-                       #define CSx0            CS30\r
-               #else\r
-                       /** Timer count register used for left channel PWM audio output (or mixed output in mono output mode) */\r
-                       #define TCCRxA          TCCR1A\r
+               /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */\r
+               #define LEDMASK_USB_NOTREADY      LEDS_LED1\r
 \r
-                       /** Timer count register used for right channel PWM audio output */\r
-                       #define TCCRxB          TCCR1B\r
+               /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */\r
+               #define LEDMASK_USB_ENUMERATING  (LEDS_LED2 | LEDS_LED3)\r
 \r
-                       /** Timer compare register used for left channel PWM audio output (or mixed output in mono output mode) */\r
-                       #define OCRxA           OCR1A\r
+               /** LED mask for the library LED driver, to indicate that the USB interface is ready. */\r
+               #define LEDMASK_USB_READY        (LEDS_LED2 | LEDS_LED4)\r
 \r
-                       /** Timer compare register used for right channel PWM audio output */\r
-                       #define OCRxB           OCR1B\r
-\r
-                       /** Timer control register mask used to select PWM mode */\r
-                       #define WGMx0           WGM10\r
-\r
-                       /** Timer control register mask used to select PWM mode */\r
-                       #define WGMx2           WGM12\r
-\r
-                       /** Timer control register mask used to set, clear or toggle channel output pin on match */\r
-                       #define COMxA1          COM1A1\r
-\r
-                       /** Timer control register mask used to set, clear or toggle channel output pin on match */\r
-                       #define COMxA0          COM1A0\r
-\r
-                       /** Timer control register mask used to set, clear or toggle channel output pin on match */\r
-                       #define COMxB1          COM1B1\r
-\r
-                       /** Timer control register mask used to set, clear or toggle channel output pin on match */\r
-                       #define COMxB0          COM1B0\r
-\r
-                       /** Timer control register mask used to start the timer at Fcpu clock rate */\r
-                       #define CSx0            CS10\r
-               #endif\r
-               \r
-       /* Enums: */\r
-               /** Enum for the possible status codes for passing to the UpdateStatus() function. */\r
-               enum AudioOutput_StatusCodes_t\r
-               {\r
-                       Status_USBNotReady    = 0, /**< USB is not ready (disconnected from a USB host) */\r
-                       Status_USBEnumerating = 1, /**< USB interface is enumerating */\r
-                       Status_USBReady       = 2, /**< USB interface is connected and ready */\r
-               };\r
-\r
-       /* Task Definitions: */\r
-               TASK(USB_Audio_Task);\r
+               /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */\r
+               #define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)\r
        \r
        /* Function Prototypes: */\r
-               void EVENT_USB_Connect(void);\r
-               void EVENT_USB_Disconnect(void);\r
-               void EVENT_USB_ConfigurationChanged(void);\r
-               void EVENT_USB_UnhandledControlPacket(void);\r
-               \r
-               void UpdateStatus(uint8_t CurrentStatus);\r
+               void SetupHardware(void);\r
+               void USB_Audio_Task(void);\r
+\r
+               void EVENT_USB_Device_Connect(void);\r
+               void EVENT_USB_Device_Disconnect(void);\r
+               void EVENT_USB_Device_ConfigurationChanged(void);\r
+               void EVENT_USB_Device_UnhandledControlRequest(void);\r
 \r
 #endif\r