SAMV71 Xplained Ultra Software Package 1.5

AUDDFunction.h

Go to the documentation of this file.
00001 /* ---------------------------------------------------------------------------- */
00002 /*                  Atmel Microcontroller Software Support                      */
00003 /*                       SAM Software Package License                           */
00004 /* ---------------------------------------------------------------------------- */
00005 /* Copyright (c) 2015, Atmel Corporation                                        */
00006 /*                                                                              */
00007 /* All rights reserved.                                                         */
00008 /*                                                                              */
00009 /* Redistribution and use in source and binary forms, with or without           */
00010 /* modification, are permitted provided that the following condition is met:    */
00011 /*                                                                              */
00012 /* - Redistributions of source code must retain the above copyright notice,     */
00013 /* this list of conditions and the disclaimer below.                            */
00014 /*                                                                              */
00015 /* Atmel's name may not be used to endorse or promote products derived from     */
00016 /* this software without specific prior written permission.                     */
00017 /*                                                                              */
00018 /* DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR   */
00019 /* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
00020 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE   */
00021 /* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,      */
00022 /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
00023 /* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,  */
00024 /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF    */
00025 /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING         */
00026 /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
00027 /* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                           */
00028 /* ---------------------------------------------------------------------------- */
00029 /** \file */
00030 #ifndef AUDDFUNCTION_H
00031 #define AUDDFUNCTION_H
00032 /** \addtogroup usbd_aud_fun
00033  *@{
00034  */
00035 
00036 /*-----------------------------------------------------------------------------
00037  *         Headers
00038  *---------------------------------------------------------------------------*/
00039 
00040 #include <USBRequests.h>
00041 #include <AUDDSpeakerPhone.h>
00042 #include "USBD.h"
00043 #include <USBDDriver.h>
00044 
00045 /*-----------------------------------------------------------------------------
00046  *         Definitions
00047  *---------------------------------------------------------------------------*/
00048 
00049 /** \addtogroup audd_fun_desc USBD Audio Function definitions
00050  *      @{
00051  */
00052 /** ID for Speaker */
00053 #define AUDDFunction_Speaker                    0
00054 /** ID for Microphone */
00055 #define AUDDFunction_Microhpone                 1
00056 /** Max number of interfaces that supported by the function (AC + 2*AS) */
00057 #define AUDDFunction_MaxNumInterfaces           3
00058 /** Max number of channels supported by speaker stream (including master) */
00059 #define AUDDFunction_MaxNumSpeakerChannels      3
00060 /** Max number of channels supported by microphone stream (including master) */
00061 #define AUDDFunction_MaxNumMicrophoneChannels   3
00062 
00063 /** Endpoint polling interval 2^(x-1) * 125us */
00064 #define AUDDFunction_HS_INTERVAL                0x04
00065 /** Endpoint polling interval 2^(x-1) * ms */
00066 #define AUDDFunction_FS_INTERVAL                0x01
00067 
00068 /** Playback input terminal ID */
00069 #define AUDDFunction_INPUTTERMINAL              AUDD_ID_SpeakerIT
00070 /** Playback output terminal ID */
00071 #define AUDDFunction_OUTPUTTERMINAL             AUDD_ID_SpeakerOT
00072 /** Playback feature unit ID */
00073 #define AUDDFunction_FEATUREUNIT                AUDD_ID_SpeakerFU
00074 /** Record input terminal ID */
00075 #define AUDDFunction_INPUTTERMINAL_REC          AUDD_ID_MicrophoneIT
00076 /** Record output terminal ID */
00077 #define AUDDFunction_OUTPUTTERMINAL_REC         AUDD_ID_MicrophoneOT
00078 /** Record feature unit ID */
00079 #define AUDDFunction_FEATUREUNIT_REC            AUDD_ID_MicrophoneFU
00080 
00081 /**     @}*/
00082 
00083 /*-----------------------------------------------------------------------------
00084  *         Exported functions
00085  *---------------------------------------------------------------------------*/
00086 
00087 extern void AUDDFunction_Initialize(
00088     USBDDriver *pUsbd, uint8_t bInterface);
00089 extern void AUDDFunction_Configure(
00090     USBGenericDescriptor * pDescriptors, uint16_t wLength);
00091 extern void AUDDFunction_InterfaceSettingChangedHandler(
00092     uint8_t interface,uint8_t setting);
00093 extern uint32_t AUDDFunction_RequestHandler(const USBGenericRequest * request);
00094 extern uint8_t AUDDFunction_Read(
00095     void * buffer, uint32_t length,
00096     TransferCallback callback, void * argument);
00097 extern uint8_t AUDDFunction_SetupWrite(
00098     void * pListInit, void * pDmaInit, uint16_t listSize, uint16_t delaySize,
00099     TransferCallback callback,void * argument);
00100 extern uint8_t AUDDFunction_Write(void * buffer, uint16_t length);
00101 
00102 extern void AUDDFunction_MuteChanged(
00103     uint8_t idMic, uint8_t ch, uint8_t mute);
00104 extern void AUDDFunction_StreamSettingChanged(
00105     uint8_t idMic, uint8_t setting);
00106 
00107 /**@}*/
00108 #endif // #define AUDDFUNCTIONDRIVER_H
00109 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines