⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msapi_audio_dvb.c

📁 mstar 776 开发的车载dvd
💻 C
📖 第 1 页 / 共 3 页
字号:
    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 + -