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

📄 msapi_audio.c

📁 mstar 776 开发的车载dvd
💻 C
📖 第 1 页 / 共 4 页
字号:
{
    MDrv_AuProcessSetAutoVolume( enAVC );
}

//******************************************************************************
//Function name:    msAPI_AUD_SetVolume
//Passing parameter:    U8 Volume: Audio Volume
//Return parameter:     none
//Description:          0 ~ 100
//  [Doxygen]
/// Set Audio Volume
/// @param u8Volume \b IN Volume 0 ~ 100
//******************************************************************************
code U16 VolumeTab[]=
{
/*		// saturn1
0x3FF,0x1FF,0x1F3,0x1E0,0x1C4,0x1AE,0x199,0x187,0x16E,0x152,    // 0~9
0x145,0x139,0x12E,0x12A,0x11E,0x11A,0x113,0x10E,0x108,0x101,    // 10~19
0x0FE,0x0F8,0x0F3,0x0F0,0x0ED,0x0EA,0x0E7,0x0E4,0x0E1,0x0DD,    // 20~29
0x0DA,0x0D8,0x0D6,0x0D4,0x0D2,0x0D0,0x0CE,0x0CC,0x0CA,0x0C8,    // 30~39
0x0C6,0x0C4,0x0C2,0x0C0,0x0BE,0x0BC,0x0BA,0x0B8,0x0B6,0x0B4,   // 40~49
0x0B2,0x0B0,0x0AE,0x0AC,0x0AA,0x0A8,0x0A6,0x0A4,0x0A2,0x0A0,    // 50~59
0x09E,0x09C,0x09A,0x098,0x096,0x094,0x092,0x090,0x08E,0x08C,    // 60~69
0x08A,0x088,0x086,0x084,0x082,0x080,0x07E,0x07C,0x07A,0x078,    // 70~79
0x076,0x074,0x072,0x070,0x06E,0x06C,0x06A,0x068,0x066,0x064,    // 80~89
0x062,0x060,0x05E,0x05C,0x05A,0x058,0x056,0x054,0x052,0x050,0x04E    // 90~100
*/
// for 8зspeaker  2007.04.06
0x3FF,0x232,0x221,0x217,0x209,0x1D4,0x1A3,0x181,0x177,0x163,          //0~9
0x154,0x149,0x13F,0x138,0x131,0x12B,0x123,0x11D,0x118,0x113,          //10~19
0x10F,0x109,0x104,0x100,0x0FC,0x0F9,0x0F5,0x0F2,0x0EF,0x0EC,          //20~29
0x0E9,0x0E7,0x0E5,0x0E4,0x0E2,0x0E0,0x0DF,0x0DD,0x0DB,0x0DA,          //30~39
0x0D8,0x0D6,0x0D5,0x0D3,0x0D1,0x0D0,0x0CE,0x0CC,0x0CB,0x0C9,          //40~49
0x0C7,0x0C6,0x0C4,0x0C2,0x0C1,0x0BF,0x0BD,0x0BC,0x0BA,0x0B8,          //50~59
0x0B6,0x0B4,0x0B2,0x0B0,0x0AE,0x0AC,0x0AA,0x0A8,0x0A6,0x0A4,          //60~69
0x0A2,0x0A0,0x09E,0x09C,0x09A,0x098,0x096,0x094,0x092,0x090,          //70~79
0x08E,0x08C,0x08A,0x088,0x086,0x084,0x082,0x080,0x07E,0x07C,          //80~89
0x07A,0x078,0x076,0x074,0x072,0x070,0x06E,0x06C,0x06A,0x068,0x066 //90~100

};

void msAPI_AUD_SetVolume ( U8 u8Volume )
{
    U16 ActuallyValue;

    if( u8Volume < 0 || u8Volume > 100)
    {
        AUD_DEBUG(printf("Volume Min Max Error"));
        return;
    }

	ActuallyValue = VolumeTab[u8Volume];

    AUD_DEBUG(printf("apiAud>> Vol = %d Vol1= %bu Vol2 = %bu \r\n", (U16)ActuallyValue, (U8)((ActuallyValue&0x3F8)>>3) ,(U8)((ActuallyValue&0x0007)) ));

    MDrv_AuProcessAbsoluteVolume(AUDIO_PATH_0, (U8)((ActuallyValue&0x3F8)>>3), (U8)((ActuallyValue&0x0007)));

    AUD_DEBUG(printf("apiAud>> Vol = %bu\n", u8Volume));
//    MDrv_AuProcessSetVolume( AUDIO_PATH_0, u8Volume );
}

//******************************************************************************
//Function name:    msAPI_AUD_SetVolumeMap
//Passing parameter:    U8 u8MapNo:
//Return parameter:     none
//Description:
//  [Doxygen]
/// Set Audio Volume
/// @param u8MapNo \b IN
//******************************************************************************
void msAPI_AUD_SetVolumeMap ( U8 u8MapNo )
{
    AUD_DEBUG(printf("msAPI_AUD_SetVolumeMap>> map no. = %bu\n", u8MapNo));

    switch ( u8MapNo )
    {
        case 1:
            MDrv_AuProcessSetVolumeMap(0x7F, 0x4F, 0x28, 0x18, 0x0C);
            return;

        case 2:
            MDrv_AuProcessSetVolumeMap(0x7F, 0x54, 0x2D, 0x1D, 0x11);
            return;

        default:
            return;
    }
}

//******************************************************************************
//Function name:    msAPI_AUD_AbsoluteVolume
//Passing parameter:
//Return parameter:     none
//Description:
//  [Doxygen]
/// Set Absolute Volume
/// @param u8Vol1 \b IN: range from 0x00 to 0x7E , gain: +12db to   -114db (-1 db per step)
/// @param u8Vol2 \b IN: range from 0x00 to 0x07 , gain:  -0db to -0.875db (-0.125 db per step)
//******************************************************************************
void msAPI_AUD_AbsoluteVolume ( U8 u8Vol1, U8 u8Vol2 )
{
    AUD_DEBUG(printf("apiAud>> AbsoluteVolume: Vol1 = %bu, Vol2 = %bu\n", u8Vol1, u8Vol2));
    MDrv_AuProcessAbsoluteVolume(AUDIO_PATH_0, u8Vol1, u8Vol2);
}

//******************************************************************************
//Function name:    msAPI_AUD_SetPreScale
//Passing parameter:
//Return parameter:     none
//Description:
//  [Doxygen]
/// Set the pre-scale
/// @param u8Path \b IN: select channel
/// @param u8PreScale \b IN: range from 0x01 to 0x7F , gain: -3.294db to +14db (0.13725 db per step)
///                            0x00: disable pre-scale
///                            0x19: gain = 0db
///                            0x7F: gain = +14db
//******************************************************************************
void msAPI_AUD_SetPreScale ( U8 u8Path, U8 u8PreScale )
{
    AUD_DEBUG(printf("apiAud>> pre-scale: Path = %bu, PreScale = %bu\n", u8Path, u8PreScale));
    MDrv_AuProcessSetPreScale(u8Path, u8PreScale);
}


//******************************************************************************
//Function name:    msAPI_AUD_DisableChannel
//Passing parameter:
//Return parameter:     none
//Description:
//  [Doxygen]
/// Disable channel
/// @param u8Path \b IN: select channel
/// @param u8Disable \b IN: 1: disable channel, 0: enable channel
//******************************************************************************
void msAPI_AUD_DisableChannel( U8 u8Path, U8 u8Disable )
{
	AUD_DEBUG(printf("apiAud>> pre-scale: Path = %bu, Disable = %bu\n", u8Path, u8Disable));
	MDrv_AuProcessDisableChannel(u8Path, u8Disable);
}

//******************************************************************************
//Function name:    msAPI_AUD_SetBalance
//Passing parameter:    U8 u8Balance: audio balance (bit[0-4] = data, bit5 = L/R)
//Return parameter:     none
//Description:      Set audio balance. 0 ~ 100
//  [Doxygen]
/// Set audio balance. 0 ~ 100
/// @param u8Balance \b IN audio balance (bit[0-4] = data, bit5 = L/R)
//******************************************************************************
void msAPI_AUD_SetBalance ( U8 u8Balance )
{
    AUD_DEBUG(printf("apiAud>> Balance = %bu\n", u8Balance));
    MDrv_AuProcessSetBalance(AUDIO_PATH_0, u8Balance);
}

//******************************************************************************
//Function name:    msAPI_AUD_SetBass
//Passing parameter:    U8 u8Bass: audio bass(bit0 - bit5)
//Return parameter:     none
//Description:      Set audio bass. 0 ~ 100
//  [Doxygen]
/// Set audio bass. 0 ~ 100
/// @param u8Bass \b IN audio bass(bit0 - bit5)
//******************************************************************************
void msAPI_AUD_SetBass ( U8 u8Bass )
{
    AUD_DEBUG(printf("apiAud>> Bass = %bu\n", u8Bass));
    MDrv_AuProcessSetBass(AUDIO_PATH_0, u8Bass);
}

//******************************************************************************
//Function name:    msAPI_AUD_SetTreble
//Passing parameter:    U8 u8Treble: audio treble (bit0 - bit5)
//Return parameter:     none
//Description:      Set audio treble. 0 ~ 100
//  [Doxygen]
/// Set audio treble. 0 ~ 100
/// @param u8Treble \b IN audio treble (bit0 - bit5)
//******************************************************************************
void msAPI_AUD_SetTreble ( U8 u8Treble )
{
    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"));
        Audio_Amplifier_OFF();
        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
        Audio_Amplifier_ON();
		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)
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -