auddrv.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:7k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef __AUDDRV_H__
  2. #define __AUDDRV_H__
  3. #include "global.h"
  4. #include "user_init.h"
  5. #include "auddef.h"
  6. #include "dsp3_def.h"
  7. #include "dsp3_if.h"
  8. #include "dsp3rom.h"
  9. #include "audkernel.h"
  10. #ifdef MP3_JPEG_COWORK //ycwen 2005/1/21 : this header file is needed 
  11. #include "fsNav.h"
  12. #endif
  13. /*======================================*/
  14. /*=====    Wave format related     =====*/
  15. /*======================================*/
  16. #include "wave_fmt.h"
  17. extern WAVFORMATMACRO   wfmt;
  18. extern UINT32           aud_frequency;
  19. extern UINT32           aud_frame_size;
  20. /*======================================*/
  21. /*=====     WMA format related     =====*/
  22. /*======================================*/
  23. #ifdef SUPPORT_WMA
  24. extern WMAHEADER    wma_header;
  25. extern BYTE         wmabuf[8];
  26. extern UINT32     ploadlen;
  27. extern BYTE         wmambn;
  28. extern BYTE         apf;
  29. #endif
  30. extern UINT32     pldcnt;
  31. //#define TEST_BASS_MANAGEMENT    //oliver testing
  32. //#define TEST_BASS_COMMAND       //oliver testing
  33. /*============================================================*/
  34. #define AUDIF_RampDown_DSP(x)
  35. do {
  36. regs0->aud_pcm_ramp_delta = 1;
  37. regs0->aud_pcm_ramp_cfg = 1;
  38. } while (0)
  39. #define AUDIF_RampUp_DSP(x)
  40. do {
  41. regs0->aud_pcm_ramp_delta = 1;
  42. regs0->aud_pcm_ramp_cfg = 2;
  43. } while (0)
  44.         
  45. //change AUDIF_RampWait_DSP method equals to to delay_srv_10ms(3) to prevent dead loop
  46. #define AUDIF_RampWait_DSP() delay_srv_10ms(3)
  47. /*
  48. #define dsp3_ramp_wait()
  49.             do {                                    
  50.                 polling();                          
  51.             } while (regs0->aud_pcm_ramp_value>0)   
  52. */
  53. /***********************************************************************
  54.  *  RISC Macro & Declaration Session
  55.  ***********************************************************************/
  56. //#ifdef SUPPORT_RECEIVER
  57. void AUDIF_Init_NewDSPCodec(UINT32 coding_mode);
  58. //#else
  59. //void AUDIF_Init_NewDSPCodec(UINT16 coding_mode);
  60. //#endif
  61. UINT16 AUDIF_Set_FrqMsk(UINT16 mask);
  62. UINT16 AUDIF_Get_FrqMsk(void);
  63. void AUDIF_Set_Channel(int chn);
  64. int AUDIF_AutoDownload_Codec(UINT8 chn);
  65. void AUDIF_Set_CodingMode(UINT32 coding_mode);
  66. void AUDIF_Set_SampleRate(int smp_rate);
  67. void AUDIF_Set_SmpRate(UINT32 freq);
  68. /*======================================*/
  69. /*===== Media Initialization APIs ======*/
  70. /*======================================*/
  71. void AUDIF_Init_DSPCodingMode(void);
  72. void AUDIF_Init_Audio(void);
  73. void AUDIF_Init_CDDA(void);
  74. void AUDIF_Init_DTSCD(void);
  75. void AUDIF_Init_AC3CD(void);
  76. void AUDIF_Init_MIDI(void);
  77. void AUDIF_Init_WMA(void);
  78. void AUDIF_Init_AAC(void);
  79. void AUDIF_Init_MP3(void);
  80. void AUDIF_Init_JPG(void);
  81. /***********************************************************************
  82.  *  DSP Macro & Declaration Session
  83.  ***********************************************************************/
  84. /*======================================*/
  85. /*=====    Flow Control APIs    ======*/
  86. /*======================================*/
  87. int AUDIF_Set_FastForward(BYTE speed);
  88. int AUDIF_Set_Play(void);
  89. int AUDIF_Set_Pause(void);
  90. int AUDIF_Set_Stop(void);
  91. int AUDIF_Set_Continue(void);
  92. void AUDIF_Reset_DSP(void);
  93. void AUDIF_Wait_DSPReady(int dspChanged);
  94. //Audio DSP SPDIF control command ( 0:OFF, 1:PCM, 2:BITSTREAM )
  95. inline int AUDIF_Set_SPDIF(UINT32 mode);
  96. //Audio DSP Output Mode control command
  97. //0x01:Stereo(L/R), 0x02:L/L, 0x03:R/R, 0x04:Auto-L, 0x05:Auto-R, 
  98. //0x06:5.1 channel, 0x07:2 channel, 0x08:DownMix Lx,Rx(for ProLogic)
  99. //0x10:RF_MODE-K3, 0x20:LINE_MODE-K2, 0x30:no vocal, 0x40:left vocal, 
  100. //0x50:right vocal, 0x60:both vocal
  101. inline int AUDIF_Set_OutputMode(UINT32 outmode, UINT32 outparam);
  102. /*======================================*/
  103. /*=====    Volume Related APIs    ======*/
  104. /*======================================*/
  105. int AUDIF_Set_Volume(UINT16 x);
  106. int AUDIF_Demute();
  107. //Audio DSP key-shift control command ( 1~15 )
  108. inline int AUDIF_Set_Key(UINT32 keyshift);
  109. //Audio DSP 3D-Surround control command ( 0:off, 1~..:type )
  110. inline int AUDIF_Set_Surround(UINT32 stype);
  111. //Audio DSP set EQ type command (0:standard, 0x0010:user-defined )
  112. inline int AUDIF_Set_EQType(UINT32 eqtype);
  113. //Audio DSP ECHO control command ( level:0(off)  (light)1~8(heavy) )
  114. inline int AUDIF_Set_Echo(UINT32 delay, UINT32 decay);
  115. inline int AUDIF_Set_EchoPara(UINT16 x);
  116. //Audio DSP MIC control command
  117. //threshold://(0~0xff:0x55:for Yuxing, 0x35 for small board, 0x25 for large board)
  118. //sensitivity:(1~7:default=1)
  119. //on:threshold=0, sensitivity=0 //off:threshold=0xff, sensitivity=0xff
  120. inline int AUDIF_Set_MICStatus(UINT32 threshold, UINT32 sensitivity);
  121. //Audio DSP MIC Vol(gain) control command ( 0~8(0:off) )
  122. inline int AUDIF_Set_MICVol(UINT32 tblval);
  123. inline int AUDIF_Set_MICVol2(UINT32 tblval);
  124. //Pro LogicII control
  125. inline int AUDIF_Set_ProLogicII(UINT32 mode);
  126. /*======================================*/
  127. /*=====   Speaker Related APIs    ======*/
  128. /*======================================*/
  129. //Audio DSP Speaker Delay control command
  130. //spk : 1(center spk), 2(surround spk)  //delay: time(ms)
  131. inline int AUDIF_Set_SpkDelay(UINT32 spktype, UINT32 delay);
  132. //Audio DSP Front Speaker Gain control command ( 0~8(0:off) )
  133. inline int AUDIF_Set_FSPKGain(UINT32 gainval);
  134. //Audio DSP Center Speaker Gain control command ( 0~8(0:off) )
  135. inline int AUDIF_Set_CSPKGain(UINT32 gainval);
  136. //Audio DSP Surround Speaker Gain control command ( 0~8(0:off) )
  137. inline int AUDIF_Set_SSPKGain(UINT32 gainval);
  138. //Audio DSP 5 Speaker Gain control command ( s:speaker_type x:gain)
  139. inline int AUDIF_Set_5SPKGain(UINT32 spktype, UINT32 gainval);
  140. void AUDIF_Set_SubWoof(UINT8 status); //Audio DSP Sub-woof control command //0:OFF, 1:ON
  141. inline void AUDIF_Set_BassConfig(UINT16 spktype, INT16 setupvalue); //(UINT8 ufront, UINT8 ucenter, UINT8 usurround, UINT8 usub);
  142. inline UINT16 AUDIF_Get_BassConfig(void);
  143. //#define AUDIF_Set_BassMag(x) DSP_AudioIOControl(BASSMANAGEMENT,0,x) 
  144. inline int AUDIF_Flush_Buffer(void);
  145. inline int AUDIF_Set_VCDFF2PLAY(void);
  146. /*==============================*/
  147. /*=====  WMA related APIs  =====*/
  148. /*==============================*/
  149. void AUDIF_WMA_Init_Parm();
  150. /*======================================*/
  151. /*=====  Wave format related APIs  =====*/
  152. /*======================================*/
  153. void AUDIF_LPCM_Init_Param(UINT32 mode, WAVFORMATMACRO wfmt);
  154. int AUDIF_Init_Wave_Audio(WAVFORMATMACRO wfmt);
  155. /*======================================*/
  156. /*=====     Message Queue APIs     =====*/
  157. /*======================================*/
  158. #ifdef MESSAGE_QUEUE
  159. INT32 AUDIF_Wait_GeneralAck(void); // wait_genwait_ack();
  160. INT32 AUDIF_Wait_StateTransAck(void); // wait_statewait_ack();
  161. void  AUDIF_Polling_MQ(void);
  162. #endif
  163. #endif // __AUDDRV_H__