\r
#include "AudioInput.h"\r
\r
-/* Project Tags, for reading out using the ButtLoad project */\r
-BUTTLOADTAG(ProjName, "LUFA AudioIn App");\r
-BUTTLOADTAG(BuildTime, __TIME__);\r
-BUTTLOADTAG(BuildDate, __DATE__);\r
-BUTTLOADTAG(LUFAVersion, "LUFA V" LUFA_VERSION_STRING);\r
-\r
/* Scheduler Task List */\r
TASK_LIST\r
{\r
- { Task: USB_USBTask , TaskStatus: TASK_STOP },\r
- { Task: USB_Audio_Task , TaskStatus: TASK_STOP },\r
+ { .Task = USB_USBTask , .TaskStatus = TASK_STOP },\r
+ { .Task = USB_Audio_Task , .TaskStatus = TASK_STOP },\r
};\r
\r
\r
/** Event handler for the USB_Connect event. This indicates that the device is enumerating via the status LEDs, and\r
* configures the sample update and PWM timers.\r
*/\r
-EVENT_HANDLER(USB_Connect)\r
+void EVENT_USB_Connect(void)\r
{\r
/* Start USB management task */\r
Scheduler_SetTaskMode(USB_USBTask, TASK_RUN);\r
/** Event handler for the USB_Disconnect event. This indicates that the device is no longer connected to a host via\r
* the status LEDs, disables the sample update and PWM output timers and stops the USB and Audio management tasks.\r
*/\r
-EVENT_HANDLER(USB_Disconnect)\r
+void EVENT_USB_Disconnect(void)\r
{\r
/* Stop the sample reload timer */\r
TCCR0B = 0;\r
/** Event handler for the USB_ConfigurationChanged event. This is fired when the host set the current configuration\r
* of the USB device after enumeration - the device endpoints are configured.\r
*/\r
-EVENT_HANDLER(USB_ConfigurationChanged)\r
+void EVENT_USB_ConfigurationChanged(void)\r
{\r
/* Setup audio stream endpoint */\r
Endpoint_ConfigureEndpoint(AUDIO_STREAM_EPNUM, EP_TYPE_ISOCHRONOUS,\r
* control requests that are not handled internally by the USB library (including the Audio class-specific\r
* requests) so that they can be handled appropriately for the application.\r
*/\r
-EVENT_HANDLER(USB_UnhandledControlPacket)\r
+void EVENT_USB_UnhandledControlPacket(void)\r
{\r
/* Process General and Audio specific control requests */\r
- switch (bRequest)\r
+ switch (USB_ControlRequest.bRequest)\r
{\r
case REQ_SetInterface:\r
/* Set Interface is not handled by the library, as its function is application-specific */\r
- if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_INTERFACE))\r
+ if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_INTERFACE))\r
{\r
- uint16_t wValue = Endpoint_Read_Word_LE();\r
- \r
- Endpoint_ClearSetupReceived();\r
+ Endpoint_ClearSETUP();\r
\r
/* Check if the host is enabling the audio interface (setting AlternateSetting to 1) */\r
- if (wValue)\r
+ if (USB_ControlRequest.wValue)\r
{\r
/* Start audio task */\r
Scheduler_SetTaskMode(USB_Audio_Task, TASK_RUN);\r
}\r
\r
/* Acknowledge status stage */\r
- while (!(Endpoint_IsSetupINReady()));\r
- Endpoint_ClearSetupIN();\r
+ while (!(Endpoint_IsINReady()));\r
+ Endpoint_ClearIN();\r
}\r
\r
break;\r
/* Select the audio stream endpoint */\r
Endpoint_SelectEndpoint(AUDIO_STREAM_EPNUM);\r
\r
- /* Check if the current endpoint can be read from (contains a packet) and that the next sample should be stored */\r
- if (Endpoint_ReadWriteAllowed() && (TIFR0 & (1 << OCF0A)))\r
+ /* Check if the current endpoint can be written to and that the next sample should be stored */\r
+ if (Endpoint_IsINReady() && (TIFR0 & (1 << OCF0A)))\r
{\r
/* Clear the sample reload timer */\r
TIFR0 |= (1 << OCF0A);\r
Endpoint_Write_Word_LE(AudioSample);\r
\r
/* Check to see if the bank is now full */\r
- if (!(Endpoint_ReadWriteAllowed()))\r
+ if (!(Endpoint_IsReadWriteAllowed()))\r
{\r
/* Send the full packet to the host */\r
- Endpoint_ClearCurrentBank();\r
+ Endpoint_ClearIN();\r
}\r
}\r
}\r