📄 msapi_audio_dvb.c
字号:
AUD_DEBUG(printf("apiAud>> Treble = %bu\n", u8Treble));
MDrv_AuProcessSetTreble(AUDIO_PATH_0, u8Treble);
}
void msAPI_AUD_SetEq(U8 u8band, U8 u8level)
{
MDrv_AuProcessSetEq(u8band, u8level);
}
void msAPI_AUD_SetEq_7band(U8 u8band, U8 u8level)
{
MDrv_AuProcessSetEq7(u8band, u8level);
}
//******************************************************************************
//Function name: msAPI_AUD_SetSurround
//Passing parameter: Au_surroundType enSurround: surround enlargement
//Return parameter: none
//Description: Set audio surround.
// [Doxygen]
/// Set audio surround
/// @param enSurround \b IN surround enlargement
//******************************************************************************
void msAPI_AUD_SetSurround ( Au_surroundType enSurround )
{
AUD_DEBUG(printf("apiAud>> Treble = %bu\n", (U8)enSurround ));
MDrv_AuProcessSetSurround(enSurround);
}
#if 0
//******************************************************************************
//Function name: msAPI_AUD_SetMute
//Passing parameter: dsp mute en flag, amp mute en flag, line-out mute en flag
//Return parameter: none
//Description: Set Chan output mute enable
// [Doxygen]
/// Set Channel output to mute
/// @param dsp_mute_en \b IN mute enable
/// @param amp_mute_en \b IN mute enable
/// @param lineout_mute_en \b IN mute enable
//******************************************************************************
void msAPI_AUD_SetMute(BOOLEAN dsp_mute_en, BOOLEAN amp_mute_en, BOOLEAN lineout_mute_en)
{
if (amp_mute_en)
{
AUD_DEBUG(printf("API_AMP_Mute\r\n"));
Audio_Amplifier_OFF();
MDrv_Timer_Delayms(30); //add delay time for mute noise
}
AUD_DEBUG(printf("apiAud>> Mute = %bu\n", (U8)dsp_mute_en ));
MDrv_AuProcessSetMute( AUDIO_PATH_0, dsp_mute_en );
MDrv_AuProcessSetMute( AUDIO_PATH_1, lineout_mute_en );
if (amp_mute_en == 0)
{
AUD_DEBUG(printf("API_AMP_unMute\r\n"));
MDrv_Timer_Delayms(30); //add delay time for mute noise
Audio_Amplifier_ON();
}
}
#endif
//******************************************************************************
//Function name: msAPI_AUD_DspMute
//Passing parameter: channel flag, dsp mute en flag
//Return parameter: none
//Description: Set channel dsp mute enable
// [Doxygen]
/// Set channel dsp to mute
/// @param ch_flag \b IN channel select
/// @param dsp_mute_en \b IN mute enable
//******************************************************************************
void msAPI_AUD_DspMute(BYTE path, BOOLEAN dsp_mute_en)
{
AUD_DEBUG(printf("apiAud>> Mute = %bu, path = %bu\n",(U8)dsp_mute_en, path ));
MDrv_AuProcessSetMute( path, dsp_mute_en );
if (dsp_mute_en)
g_u8MuteStatus |= (1<<path);
else
g_u8MuteStatus &= (~(1<<path));
}
//******************************************************************************
//Function name: msAPI_AUD_AmpMute
//Passing parameter: amp mute en flag
//Return parameter: none
//Description: Set amp mute enable
// [Doxygen]
/// Set channel amplifier to mute
/// @param amp_mute_en \b IN mute enable
//******************************************************************************
void msAPI_AUD_AmpMute(BOOLEAN amp_mute_en)
{
if (amp_mute_en)
{
AUD_DEBUG(printf("API_AMP_Mute\r\n"));
MDrv_Timer_Delayms(30); //add delay time for mute noise
g_u8MuteStatus |= 0x80;
}
else
{
AUD_DEBUG(printf("API_AMP_unMute\r\n"));
MDrv_Timer_Delayms(30); //add delay time for mute noise
g_u8MuteStatus &= 0x7F;
}
}
//******************************************************************************
//Function name: msAPI_AUD_Lineout_SetMute
//Passing parameter: Line-out mute enable flag
//Return parameter: none
//Description: Set Line-out mute enable
// [Doxygen]
/// Set Chan output mute enable
/// @param lineout_mute_en \b IN mute enable
//******************************************************************************
void msAPI_AUD_Lineout_SetMute(BOOLEAN lineout_mute_en)
{
MDrv_AuProcessSetMute( AUDIO_PATH_1, lineout_mute_en );
}
//******************************************************************************
//Function name: msAPI_AUD_GentTone
//Passing parameter: Set Tone Type
//Return parameter: none
//Description: none
//******************************************************************************
void msAPI_AUD_GentTone(U8 toneType)
{
AUD_DEBUG(printf("apiAud>> Tone = %bu\n", toneType ));
MDrv_AuDvb_tone_setToneType(toneType);
}
void msAPI_VAmp_Mute(BOOLEAN bFlag)
{
if ( bFlag )
{
g_u8MuteStatus |= 0x80;
}
else
{
g_u8MuteStatus &= 0x7F;
}
}
//******************************************************************************
//Function name: msAPI_AUD_GetStdard
//Passing parameter: Get Audio SIF Stardard Mode
//Return parameter: none
//Description: none
//******************************************************************************
U8 msAPI_AUD_GetStdard(void)
{
U8 aud_get_sif_std;
aud_get_sif_std = MDrv_AuSif_GetStandard();
return (aud_get_sif_std);
}
//******************************************************************************
//Function name: msAPI_AUD_SPDIF_Path_Sel
//Passing parameter: SPDIF OUTPUT Source Select
//Return parameter: none
//Description: none
//******************************************************************************
void msAPI_AUD_SPDIF_Path_Sel(U8 spdif_output_sel)
{
// 0: TV Source,
// 1: SPDIF_IN,
// 2: ADC,
// 3: I2S,
MDrv_AuSetSPDIF_Path(spdif_output_sel);
}
//******************************************************************************
//Function name: msAPI_AUD_SPDIF_Path_Sel
//Passing parameter: SPDIF OUTPUT Source Select
//Return parameter: none
//Description: none
// MDrv_AuReadPaser : read reg 0x2D36[0]
// MDrv_AuSetPaser : set reg 0x2D36[0]
//******************************************************************************
U8 msAPI_AUD_ReportAC3Status(void)
{
// 0: AC3 not exist,
// 1: AC3 exist,
BYTE PaserCmd_tmp;
PaserCmd_tmp = MDrv_AuReadPaser();
MDrv_AuSetPaser(MSAPI_AUD_PASER_PLAY);
MDrv_Timer_Delayms(5); // Wait CRC check
if ((MDrv_AuDvbRpt_DTVES()&0x80) && (MDrv_AuDvbRpt_DTVES()&0x01) )
return(1);
else
return(0);
MDrv_AuSetPaser(PaserCmd_tmp);
}
//******************************************************************************
//Function name: msAPI_AUD_SPDIF_Path_Sel
//Passing parameter: SPDIF OUTPUT Source Select
//Return parameter: none
//Description: none
//******************************************************************************
U8 msAPI_AUD_ReportMPEGStatus(void)
{
// 0: MPEG not exist,
// 1: MPEG exist,
if ((MDrv_AuDvbRpt_DTVES()&0x40) && (MDrv_AuDvbRpt_DTVES()&0x01) )
return(1);
else
return(0);
}
//******************************************************************************
//Function name: msAPI_AUD_SetADCThreshold
//Passing parameter: threshold
//Return parameter: none
//Description: none
//******************************************************************************
void msAPI_AUD_SetADCThreshold(U8 threshold)
{
MDrv_AuProcessSetADCThreshold(threshold);
}
#if 0 // TODO
//******************************************************************************
//Function name: msAPI_AUD_SRAM_DMOV1_TST
//Return parameter: none
//Description: SRAM dm_overlay1 test to enhance SRAMBIST check fail part
//******************************************************************************
U8 msAPI_AUD_SRAM_DMOV1_TST(void)
{
return(MDrv_AuSRAM_DMOV1_TST());
}
#endif
//******************************************************************************
//Function name: msAPI_AUD_SIF_SetMONOThr
//Return parameter: none
//Description: set SIF BTSC MONO Thr
// default value : BTSC_MONO_ON_Thr = 0x16b0 (Fluke 37 dBuV)
// BTSC_MONO_OFF_Thr= 0x2490 (Fluke 32 dBuV)
//*************************************************************************
void msAPI_AUD_SIF_BTSC_SetMONOThr(U8 mono_on_thr_hi, U8 mono_on_thr_lo, U8 mono_off_thr_hi, U8 mono_off_thr_lo)
{
mono_on_thr_hi = mono_on_thr_hi;
mono_on_thr_lo = mono_on_thr_lo;
mono_off_thr_hi = mono_off_thr_hi;
mono_off_thr_lo = mono_off_thr_lo;
// MDrv_AuSif_BTSC_setMonoThr(mono_on_thr_hi, mono_on_thr_lo, mono_off_thr_hi, mono_off_thr_lo);
}
//*************************************************************************
//Function name: msAPI_AUD_SIF_SetStereoThr
//Return parameter: none
//Description: set SIF BTSC STEREO Thr
// default value : BTSC_STEREO_ON_Thr = 0x3900 (Fluke 37 dBuV)
// BTSC_STEREO_OFF_Thr= 0x5b00 (Fluke 32 dBuV)
//*************************************************************************
void msAPI_AUD_SIF_BTSC_SetSTEREOThr(U8 stereo_on_thr_hi, U8 stereo_on_thr_lo, U8 stereo_off_thr_hi, U8 stereo_off_thr_lo)
{
stereo_on_thr_hi = stereo_on_thr_hi;
stereo_on_thr_lo = stereo_on_thr_lo;
stereo_off_thr_hi = stereo_off_thr_hi;
stereo_off_thr_lo = stereo_off_thr_lo;
// MDrv_AuSif_BTSC_setStereoThr(stereo_on_thr_hi, stereo_on_thr_lo, stereo_off_thr_hi, stereo_off_thr_lo);
}
//*************************************************************************
//Function name: msAPI_AUD_SIF_SetSAPThr
//Return parameter: none
//Description: set SIF BTSC SAP Thr
// default value : BTSC_SAP_ON_Thr = 0x1a20 (Fluke 37 dBuV)
// BTSC_SAP_OFF_Thr= 0x2eb0 (Fluke 32 dBuV)
//*************************************************************************
void msAPI_AUD_SIF_BTSC_SetSAPThr(U8 sap_on_thr_hi, U8 sap_on_thr_lo, U8 sap_off_thr_hi, U8 sap_off_thr_lo)
{
sap_on_thr_hi = sap_on_thr_hi;
sap_on_thr_lo = sap_on_thr_lo;
sap_off_thr_hi = sap_off_thr_hi;
sap_off_thr_lo = sap_off_thr_lo;
// MDrv_AuSif_BTSC_setSapThr(sap_on_thr_hi, sap_on_thr_lo, sap_off_thr_hi, sap_off_thr_lo);
}
//*************************************************************************
//Function name: msAPI_AUD_GetDecStatus
//Return parameter: MSAPI_AUD_DVB_DECCMD_STOP or MSAPI_AUD_DVB_DECCMD_PLAY
//Description: get decoder's status
//*************************************************************************
En_DVB_decCmdType msAPI_AUD_GetDecStatus(void)
{
return enDecoderStatus;
}
//*************************************************************************
//Function name: msAPI_AUD_GetDecStatus
//Return parameter: MSAPI_AUD_DVB_DECCMD_STOP or MSAPI_AUD_DVB_DECCMD_PLAY
//Description: get decoder's status
//*************************************************************************
void msAPI_AUD_SetPaser(U8 paser_stpen)
{
MDrv_AuSetPaser(paser_stpen);
}
//*************************************************************************
//Function name: msAPI_AUD_HDMI_Monitor
//Return parameter: non-PCM --> 0x2C0C[7:6]= 0x1
// PCM --> 0x2C0C[7:6]= 0x0
//Description: This function report HDMI non-PCM or PCM format (0x2C0C)
//*************************************************************************
BYTE msAPI_AUD_HDMI_Monitor(void)
{
return(MDrv_AuHDMI_Monitor());
}
//*************************************************************************
//Function name: msAPI_PCM_NONPCM_Set
//Return parameter: none
//Description: This function setting non-PCM or PCM relational register
//*************************************************************************
void msAPI_PCM_NONPCM_Set(BYTE nonPCM_en)
{
if (nonPCM_en)
{
msAPI_AUD_SetDecCommand( MSAPI_AUD_STOP );
msAPI_AUD_SifSetSystem( MSAPI_AUD_SIF_SYS_NOT_READY );
msAPI_AUD_SetDecSystem( MSAPI_AUD_DVB_AC3 );
msAPI_AUD_SetDecCommand( MSAPI_AUD_PLAY );
//printf("API-nonPCM\r\n");
}
MDrv_AuPCM_NONPCM_Set(nonPCM_en);
if (nonPCM_en)
{
MDrv_AuSetNormalPath(AUDIO_PATH_0, AUDIO_DSP1_DVB_INPUT, AUDIO_AUOUT0_OUTPUT);
MDrv_AuSetNormalPath(AUDIO_PATH_1, AUDIO_DSP1_DVB_INPUT, AUDIO_AUOUT1_OUTPUT);
}
else
{
MDrv_AuSetNormalPath(AUDIO_PATH_0, AUDIO_HDMI_INPUT, AUDIO_AUOUT0_OUTPUT);
MDrv_AuSetNormalPath(AUDIO_PATH_1, AUDIO_HDMI_INPUT, AUDIO_AUOUT1_OUTPUT);
}
}
#if AEON_TO_51_MAILBOX
void msAPI_AUD_Process_Aeon251Mailbox(U8 *u8AeonMailBox)
{
U32 u32Addr;
U32 u32LoopCounts;
U32 u32Length;
if (u8AeonMailBox[1]==0) // stop, play, resync
{
switch (u8AeonMailBox[2])
{
case MSAPI_AUD_AEON_CMD_51_DECCMD_STOP:
msAPI_AUD_SetDecCommand(MSAPI_AUD_DVB_DECCMD_STOP);
printf("AUD STOP\n");
break;
case MSAPI_AUD_AEON_CMD_51_DECCMD_PLAY:
msAPI_AUD_SetDecCommand(MSAPI_AUD_DVB_DECCMD_PLAY);
printf("AUD PLAY\n");
break;
case MSAPI_AUD_AEON_CMD_51_DECCMD_RESYNC:
msAPI_AUD_SetDecCommand(MSAPI_AUD_DVB_DECCMD_RESYNC);
printf("AUD RESYNC\n");
break;
default:
break;
}
}
else if (u8AeonMailBox[1]==1) //playfile
{
switch (u8AeonMailBox[2])
{
case MSAPI_AUD_AEON_CMD_51_DECCMD_PLAYFILE:
// loop
u32LoopCounts = (((U32)u8AeonMailBox[3])<<24)|(((U32)u8AeonMailBox[4])<<16)|(((U32)u8AeonMailBox[5])<<8)|u8AeonMailBox[6];
msAPI_AUD_SetDecCommand(MSAPI_AUD_DVB_DECCMD_PLAYFILE);
printf("AUD PLAYFILE loop %u\n", u32LoopCounts);
break;
case MSAPI_AUD_AEON_CMD_51_DECCMD_PLAYFILE_PARAM:
// just get param, don't cmd MAD to do something
// addr
u32Addr = (((U32)u8AeonMailBox[3])<<24)|(((U32)u8AeonMailBox[4])<<16)|(((U32)u8AeonMailBox[5])<<8)|u8AeonMailBox[6];
// length
u32Length = (((U32)u8AeonMailBox[7])<<24)|(((U32)u8AeonMailBox[8])<<16)|(((U32)u8AeonMailBox[9])<<8)|u8AeonMailBox[10];
printf("AUD PLAYFILE %Lu, %Lu\n", u32Addr, u32Length);
break;
default:
break;
}
}
}
#endif
#undef _MSAPI_AUDIO_C_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -