www.pudn.com > LPC2148_IAR_LPC2148.zip > audio_class.h


/************************************************************************* 
 * 
 *    Used with ICCARM and AARM. 
 * 
 *    (c) Copyright IAR Systems 2005 
 * 
 *    File name   : audio_class.h 
 *    Description : AUDIO CLASS definitions 
 * 
 *    History : 
 *    1. Data        : November 29, 2005 
 *       Author      : Stanimir Bonev 
 *       Description : Create 
 * 
 *    $Revision: 1.1.2.1 $ 
**************************************************************************/ 
#include  
 
#ifndef __AUDIO_CLASS_H 
#define __AUDIO_CLASS_H 
 
#define SubFrameSize  2 
#define SempRerFrame  48 
#define SampFreq      (SempRerFrame KHZ) 
 
#define MinVol        0x8000 
 
#define Feat1MinVol   0xD000UL 
#define Feat1MaxVol   0x0600UL 
#define Feat1ResVol   0x0001UL 
 
#define Feat2MinVol   0xD000UL 
#define Feat2MaxVol   0x0600UL 
#define Feat2ResVol   0x0001UL 
 
typedef enum 
{ 
  FeatUnit1Id = 1, FeatUnit2Id, 
  SpkInTermID, SpkOutTermID, 
  MicInTermID, MicOutTermID, 
  SelUnit1ID, 
} AudioID_t; 
 
// Audio Class-Specific Request Codes 
#define REQUEST_CODE_UNDEFINED        			0x00 
#define REQUEST_SET_CUR               			0x01 
#define REQUEST_GET_CUR               			0x81 
#define REQUEST_SET_MIN               			0x02 
#define REQUEST_GET_MIN               			0x82 
#define REQUEST_SET_MAX               			0x03 
#define REQUEST_GET_MAX               			0x83 
#define REQUEST_SET_RES               			0x04 
#define REQUEST_GET_RES               			0x84 
#define REQUEST_SET_MEM               			0x05 
#define REQUEST_GET_MEM               			0x85 
#define REQUEST_GET_STAT              			0xFF 
                                      			 
// Terminal Control Selectors         			 
#define TE_CONTROL_UNDEFINED          			0x00 
#define TE_COPY_PROTECT_CONTROL       			0x01 
                                      			 
// Feature Unit Control Selectors     			 
#define FU_CONTROL_UNDEFINED          			0x00 
#define FU_MUTE_CONTROL               			0x01 
#define FU_VOLUME_CONTROL             			0x02 
#define FU_BASS_CONTROL               			0x03 
#define FU_MID_CONTROL                			0x04 
#define FU_TREBLE_CONTROL             			0x05 
#define FU_GRAPHIC_EQUALIZER_CONTROL  			0x06 
#define FU_AUTOMATIC_GAIN_CONTROL     			0x07 
#define FU_DELAY_CONTROL              			0x08 
#define FU_BASS_BOOST_CONTROL         			0x09 
#define FU_LOUDNESS_CONTROL           			0x0A 
 
// Endpoint Control Selectors 
#define EP_CONTROL_UNDEFINED           			0x00 
#define SAMPLING_FREQ_CONTROL         			0x01 
#define PITCH_CONTROL                  			0x02 
 
/************************************************************************* 
 * Function Name: AudioClassInit 
 * Parameters: none 
 * 
 * Return: none 
 * 
 * Description: USB Class Audio Init 
 * 
 *************************************************************************/ 
void AudioClassInit (void); 
 
/************************************************************************* 
 * Function Name: UsbClassAudioConfigure 
 * Parameters:  void * pArg 
 * 
 * Return: void * 
 * 
 * Description: USB Class Audio configure 
 * 
 *************************************************************************/ 
void * UsbClassAudioConfigure (void * pArg); 
 
/************************************************************************* 
 * Function Name: AudioInHadler 
 * Parameters:  void * pArg 
 * 
 * Return: none 
 * 
 * Description: USB Class Audio Out EP handler 
 * 
 *************************************************************************/ 
void AudioInHadler (void *Arg); 
 
/************************************************************************* 
 * Function Name: AudioOutHadler 
 * Parameters:  void * pArg 
 * 
 * Return: none 
 * 
 * Description: USB Class Audio In EP handler 
 * 
 *************************************************************************/ 
void AudioOutHadler (void *Arg); 
 
/************************************************************************* 
 * Function Name: fiq_handler 
 * Parameters: none 
 * 
 * Return: none 
 * 
 * Description: 
 *		 
 *************************************************************************/ 
__fiq __arm void fiq_handler (void); 
 
/************************************************************************* 
 * Function Name: AudioFeatureGetReg 
 * Parameters:  Int32U CS, Int32U Id 
 * 
 * Return: Boolean 
 * 
 * Description: 
 * 
 *************************************************************************/ 
static Boolean AudioFeatureGetReg (Int32U CS, Int32U Id); 
 
/************************************************************************* 
 * Function Name: UsbClassAudioRequest 
 * Parameters:  void * pArg 
 * 
 * Return: void * 
 * 
 * Description: USB Class Audio Requests 
 * 
 *************************************************************************/ 
void * UsbClassAudioRequest (void * pArg); 
 
/************************************************************************* 
 * Function Name: UsbClassAudioData 
 * Parameters:  void * pArg 
 * 
 * Return: void * 
 * 
 * Description: USB Class Audio Data receive 
 * 
 *************************************************************************/ 
void * UsbClassAudioData (void * pArg); 
 
 
#endif //__AUDIO_CLASS_H