From d1e52660368d34d693131f6aff3c8fd8584162e5 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Mon, 1 Jun 2009 11:03:39 +0000 Subject: Commit of new class abstraction APIs for all device demos other than the MIDI demo - not documented yet. Removed scheduler and memory allocation libraries. Added new EVENT_USB_StartOfFrame event in the library to indicate the start of each USB frame (when generated). Removed Tx interrupt from the USBtoSerial demo; now sends characters via polling to ensure more time for the Rx interrupt. --- LUFA/Drivers/USB/Class/Device/Audio.h | 70 +++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 LUFA/Drivers/USB/Class/Device/Audio.h (limited to 'LUFA/Drivers/USB/Class/Device/Audio.h') diff --git a/LUFA/Drivers/USB/Class/Device/Audio.h b/LUFA/Drivers/USB/Class/Device/Audio.h new file mode 100644 index 000000000..aa7b4069c --- /dev/null +++ b/LUFA/Drivers/USB/Class/Device/Audio.h @@ -0,0 +1,70 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2009. + + dean [at] fourwalledcubicle [dot] com + www.fourwalledcubicle.com +*/ + +/* + Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, 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 disclaim 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. +*/ + +#ifndef _AUDIO_CLASS_H_ +#define _AUDIO_CLASS_H_ + + /* Includes: */ + #include "../../USB.h" + + #include + + /* Macros: */ + + /* Enums: */ + + /* Type Defines: */ + typedef struct + { + uint8_t InterfaceNumber; + + uint8_t DataINEndpointNumber; + uint16_t DataINEndpointSize; + + uint8_t DataOUTEndpointNumber; + uint16_t DataOUTEndpointSize; + + bool InterfaceEnabled; + } USB_ClassInfo_Audio_t; + + /* Function Prototypes: */ + bool USB_Audio_ConfigureEndpoints(USB_ClassInfo_Audio_t* AudioInterfaceInfo); + void USB_Audio_ProcessControlPacket(USB_ClassInfo_Audio_t* AudioInterfaceInfo); + void USB_Audio_USBTask(USB_ClassInfo_Audio_t* AudioInterfaceInfo); + + int8_t USB_Audio_ReadSample8(void); + int16_t USB_Audio_ReadSample16(void); + int32_t USB_Audio_ReadSample24(void); + void USB_Audio_WriteSample8(int8_t Sample); + void USB_Audio_WriteSample16(int16_t Sample); + void USB_Audio_WriteSample24(int32_t Sample); + bool USB_Audio_IsSampleReceived(USB_ClassInfo_Audio_t* AudioInterfaceInfo); + bool USB_Audio_IsReadyForNextSample(USB_ClassInfo_Audio_t* AudioInterfaceInfo); +#endif -- cgit v1.2.3