/* Description: AT command handler, handle command AT commands at*maudvol=P1,P2,P3 Parameters: pChip -- Pointer to chip data structure ParamCount -- Count of parameter array Params --- P1,P2,...,P6 */ int AtMaudVol(brcm_alsa_chip_t *pChip, Int32 ParamCount, Int32 *Params) { int *pVolume; int mode, vol; aTrace(LOG_AUDIO_DRIVER, "%s P1-P6=%ld %ld %ld %ld %ld %ld cnt=%ld\n", __func__, Params[0], Params[1], Params[2], Params[3], Params[4], Params[5], ParamCount); csl_caph_ControlHWClock(TRUE); switch (Params[0]) { case 6: /*at*maudvol=6 */ mode = AUDCTRL_GetAudioMode(); /*Get volume. Range -36 ~ 0 dB in Driver and DSP: */ Params[0] = AUDCTRL_GetTelephonySpkrVolume(AUDIO_GAIN_FORMAT_mB); Params[0] = Params[0] / 100; /* dB */ Params[0] += AudParmP()[mode].voice_volume_max; /* Range 0~36 dB shown in PCG */ /* pVolume = pChip->streamCtl[ CTL_STREAM_PANEL_VOICECALL -1].ctlLine[mode].iVolume; Params[0] = pVolume[0]; */ aTrace(LOG_AUDIO_DRIVER, "%s pVolume[0] %ld\n", __func__, Params[0]); return 0; case 7: /* at*maudvol=7,x Range 0~36 dB in PCG */ mode = AUDCTRL_GetAudioMode(); /* mode = pChip->streamCtl[ CTL_STREAM_PANEL_VOICECALL-1].iLineSelect[1]; */ pVolume = pChip->streamCtl[CTL_STREAM_PANEL_VOICECALL - 1].ctlLine[mode].iVolume; pVolume[0] = Params[1]; pVolume[1] = Params[1]; vol = Params[1]; vol -= AudParmP()[mode].voice_volume_max; /* Range -36 ~ 0 dB in DSP */ AUDCTRL_SetTelephonySpkrVolume(AUDIO_SINK_UNDEFINED, (vol * 100), AUDIO_GAIN_FORMAT_mB); aTrace(LOG_AUDIO_DRIVER, "%s pVolume[0] %d mode=%d vol %d\n", __func__, pVolume[0], mode, vol); return 0; default: aWarn("%s Unsupported cmd %ld\n", __func__, Params[0]); break; } return -1; }
static int HandleVOIPCommand(void) { static AUDIO_DRIVER_HANDLE_t drv_handle = NULL; switch(sgBrcm_auddrv_TestValues[1]) { case 1://open the capture device { VOIP_buffer_count = 0; drv_handle = AUDIO_DRIVER_Open(AUDIO_DRIVER_VOIP); if ( !drv_handle ) return -1; DEBUG(" Audio DDRIVER Open Complete\n"); DEBUG(" Audio VOIP DDRIVER Config\n"); //set UL callback AUDIO_DRIVER_Ctrl(drv_handle,AUDIO_DRIVER_SET_VOIP_UL_CB,(void*)VOIP_DumpUL_CB); //set the callback AUDIO_DRIVER_Ctrl(drv_handle,AUDIO_DRIVER_SET_VOIP_DL_CB,(void*)VOIP_FillDL_CB); } break; case 2: { AUDCTRL_SaveAudioModeFlag(AUDCTRL_SPK_HANDSET,0); AUDCTRL_EnableTelephony(AUDIO_HW_VOICE_IN,AUDIO_HW_VOICE_OUT,AUDCTRL_MIC_MAIN,AUDCTRL_SPK_HANDSET); AUDCTRL_SetTelephonySpkrVolume(AUDIO_HW_VOICE_OUT, AUDCTRL_SPK_HANDSET, AUDIO_VOLUME_DEFAULT, AUDIO_GAIN_FORMAT_VOL_LEVEL); AUDCTRL_SetTelephonyMicGain(AUDIO_HW_VOICE_IN, AUDCTRL_MIC_MAIN, AUDIO_VOLUME_DEFAULT); AUDIO_DRIVER_Ctrl(drv_handle,AUDIO_DRIVER_START,NULL); } break; case 3: { AUDIO_DRIVER_Ctrl(drv_handle,AUDIO_DRIVER_STOP,NULL); AUDCTRL_DisableTelephony(AUDIO_HW_VOICE_IN,AUDIO_HW_VOICE_OUT,AUDCTRL_MIC_MAIN,AUDCTRL_SPK_HANDSET); } break; case 4://close the capture device AUDIO_DRIVER_Close(drv_handle); break; default: break; } return 0; }