Esempio n. 1
0
BOOL CAudioSettings::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	DWORD dwIds[] = {IDC_STATIC_AUDIO_DEVICE,
                    IDC_STATIC_AUDIO_SAMPL_WIDTH,
                    IDC_STATIC_AUDIO_SAMPLE_RATE,
                    IDC_STATIC_AUDIO_SOURCE,
                   -1};

   MfcUtils::Localize(this, dwIds);


   for (int i = 0; i < m_arDevices.GetSize(); ++i)
      m_cmbAudioDevice.AddString(m_arDevices[i]);
   m_cmbAudioDevice.SetCurSel(m_nDevice);

   for (i = 0; i < m_arSampleWidths.GetSize(); ++i)
   {
      CString csSampleWidth;
      csSampleWidth.Format(_T("%d"), m_arSampleWidths[i]);
      m_cmbAudioSampleWidth.AddString(csSampleWidth);
   }
   m_cmbAudioSampleWidth.SetCurSel(m_nSampleWidth);
   
   for (i = 0; i < m_arSampleRates.GetSize(); ++i)
   {
      CString csSampleRate;
      csSampleRate.Format(_T("%d"), m_arSampleRates[i]);
      m_cmbAudioSampleRate.AddString(csSampleRate);
   }
   m_cmbAudioSampleRate.SetCurSel(m_nSampleRate);

   for (i = 0; i < m_arSources.GetSize(); ++i)
      m_cmbAudioSource.AddString(m_arSources[i]);
   m_cmbAudioSource.SetCurSel(m_nSource);

   SetVolumeRange(0, 100);
   
  
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
status_t AudioMTKVolumeController::initVolumeController()
{
    ALOGD("AudioMTKVolumeController initVolumeController\n");
    GetDefaultVolumeParameters(&mVolumeParam);
    for (int i = 0 ; i < NORMAL_VOLUME_TYPE_MAX ; i++)
    {
        ALOGD("normalaudiovolume %d = %d", i, mVolumeParam.normalaudiovolume[i]);
    }
    for (int i = 0 ; i < HEADSET_VOLUME_TYPE_MAX ; i++)
    {
        ALOGD("headsetaudiovolume %d = %d", i, mVolumeParam.headsetaudiovolume[i]);
    }
    for (int i = 0 ; i < SPEAKER_VOLUME_TYPE_MAX ; i++)
    {
        ALOGD("speakeraudiovolume %d = %d", i, mVolumeParam.speakeraudiovolume[i]);
    }
    for (int i = 0 ; i < HEADSET_SPEAKER_VOLUME_TYPE_MAX ; i++)
    {
        ALOGD("headsetspeakeraudiovolume %d = %d", i, mVolumeParam.headsetspeakeraudiovolume[i]);
    }
    for (int i = 0 ; i < VER1_NUM_OF_VOL_TYPE ; i++)
    {
        ALOGD("audiovolume_level %d = %d", i, mVolumeParam.audiovolume_level[i]);
    }

    // for normal platyback , let audio drvier can achevie maximun volume , and let computecustomvolume to
    // set mastervolume

    float MaxdB = 0.0, MindB = 0.0, micgain = 0.0;
    int degradegain = 0;
    degradegain = (unsigned char)MampAudioBufferVolume(mVolumeParam.normalaudiovolume[NORMAL_AUDIO_BUFFER]);
    SetVolumeRange(Audio_Earpiece, DEVICE_MAX_VOLUME  , DEVICE_MIN_VOLUME, degradegain);
    degradegain = (unsigned char)MampAudioBufferVolume(mVolumeParam.headsetaudiovolume[HEADSET_AUDIO_BUFFER]);
    SetVolumeRange(Audio_Headset, DEVICE_MAX_VOLUME  , DEVICE_MIN_VOLUME, degradegain);
    SetVolumeRange(Audio_Headphone, DEVICE_MAX_VOLUME  , DEVICE_MIN_VOLUME, degradegain);
#ifdef USING_EXTAMP_HP
    degradegain = (unsigned char)MampAudioBufferVolume(mVolumeParam.speakeraudiovolume[SPEAKER_AMP]);
#else
    degradegain = (unsigned char)MampSPKAMPVolume(mVolumeParam.speakeraudiovolume[SPEAKER_AMP]);
#endif
    SetVolumeRange(Audio_Speaker, DEVICE_AMP_MAX_VOLUME  , DEVICE_AMP_MIN_VOLUME, degradegain);

    degradegain = (unsigned char)MampAudioBufferVolume(mVolumeParam.normalaudiovolume[NORMAL_AUDIO_BUFFER]);
    SetVolumeRange(Audio_DualMode_Earpiece, DEVICE_MAX_VOLUME  , DEVICE_MIN_VOLUME, degradegain);
    degradegain = (unsigned char)MampAudioBufferVolume(mVolumeParam.headsetspeakeraudiovolume[HEADSET_SPEAKER_AUDIO_BUFFER]);
    SetVolumeRange(Audio_DualMode_Headset, DEVICE_MAX_VOLUME , DEVICE_MIN_VOLUME, degradegain);
    SetVolumeRange(Audio_DualMode_Headphone, DEVICE_MAX_VOLUME , DEVICE_MIN_VOLUME, degradegain);
    degradegain = (unsigned char)MampSPKAMPVolume(mVolumeParam.headsetspeakeraudiovolume[HEADSET_SPEAKER_AMP]);
    SetVolumeRange(Audio_DualMode_speaker, DEVICE_AMP_MAX_VOLUME  , DEVICE_AMP_MIN_VOLUME, degradegain);

    degradegain = (unsigned char)MampAudioBufferVolume(mVolumeParam.normalaudiovolume[NORMAL_AUDIO_BUFFER]);
    SetVolumeRange(Ringtone_Earpiece, DEVICE_MAX_VOLUME  , DEVICE_MIN_VOLUME, degradegain);
    degradegain = (unsigned char)MampAudioBufferVolume(mVolumeParam.headsetaudiovolume[HEADSET_AUDIO_BUFFER]);
    SetVolumeRange(Ringtone_Headset, DEVICE_MAX_VOLUME  , DEVICE_MIN_VOLUME, degradegain);
    SetVolumeRange(Ringtone_Headphone, DEVICE_MAX_VOLUME  , DEVICE_MIN_VOLUME, degradegain);
    degradegain = (unsigned char)MampSPKAMPVolume(mVolumeParam.speakeraudiovolume[HEADSET_SPEAKER_AMP]);
    SetVolumeRange(Ringtone_Speaker, DEVICE_AMP_MAX_VOLUME  , DEVICE_AMP_MIN_VOLUME, degradegain);

    degradegain = (unsigned char)MampAudioBufferVolume(mVolumeParam.normalaudiovolume[NORMAL_SIP_AUDIO_BUFFER]);
    SetVolumeRange(Sipcall_Earpiece, DEVICE_MAX_VOLUME  , DEVICE_MIN_VOLUME, degradegain);
    degradegain = (unsigned char)MampAudioBufferVolume(mVolumeParam.headsetaudiovolume[HEADSET_SIP_AUDIO_BUFFER]);
    SetVolumeRange(Sipcall_Headset, DEVICE_MAX_VOLUME  , DEVICE_MIN_VOLUME, degradegain);
    SetVolumeRange(Sipcall_Headphone, DEVICE_MAX_VOLUME  , DEVICE_MIN_VOLUME, degradegain);
    degradegain = (unsigned char)MampSPKAMPVolume(mVolumeParam.speakeraudiovolume[SPEAKER_SIP_AUDIO_BUFFER]);
    SetVolumeRange(Sipcall_Speaker, DEVICE_AMP_MAX_VOLUME , DEVICE_AMP_MIN_VOLUME, degradegain);

    //-----MIC VOLUME SETTING
    ALOGD(" not define MTK_AUDIO_GAIN_TABLE_SUPPORT");
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][4]);
    SetMicGain(Idle_Normal_Record,  degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_HEADSET_MODE][4]);
    SetMicGain(Idle_Headset_Record, degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][3]);
    SetMicGain(Normal_Mic,         degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_HEADSET_MODE][3]);
    SetMicGain(Headset_Mic,       degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_SPEAKER_MODE][3]);
    SetMicGain(Handfree_Mic,     degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][0]);
    SetMicGain(TTY_CTM_Mic ,     degradegain);

    // voice reconition usage
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][5]);
    SetMicGain(Voice_Rec_Mic_Handset,  degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_HEADSET_MODE][5]);
    SetMicGain(Voice_Rec_Mic_Headset,  degradegain);

    // add by chiepeng for VOIP mode
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][6]);
    SetMicGain(VOIP_Normal_Mic,     degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_HEADSET_MODE][6]);
    SetMicGain(VOIP_Headset_Mic,   degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_SPEAKER_MODE][6]);
    SetMicGain(VOIP_Handfree_Mic, degradegain);

    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][2]);
    SetMicGain(Idle_Video_Record_Handset,   degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_HEADSET_MODE][2]);
    SetMicGain(Idle_Video_Record_Headset,  degradegain);

    // voice unlock usage (input source AUDIO_SOURCE_VOICE_UNLOCK)
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][7]);
    SetMicGain(Voice_UnLock_Mic_Handset,  degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_HEADSET_MODE][7]);
    SetMicGain(Voice_UnLock_Mic_Headset,  degradegain);

    //MIC gain for customization input source usage
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][8]);
    SetMicGain(Customization1_Mic_Handset,  degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_HEADSET_MODE][8]);
    SetMicGain(Customization1_Mic_Headset,  degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][9]);
    SetMicGain(Customization2_Mic_Handset,  degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_HEADSET_MODE][9]);
    SetMicGain(Customization2_Mic_Headset,  degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][10]);
    SetMicGain(Customization3_Mic_Handset,  degradegain);
    degradegain = (unsigned char)MampUplinkGain(mVolumeParam.audiovolume_mic[VOLUME_HEADSET_MODE][10]);
    SetMicGain(Customization3_Mic_Headset,  degradegain);

    // level shift buffer, level shift buffer gain is used degrade gain.
    degradegain = (unsigned char)MampLevelShiftBufferGain(mVolumeParam.audiovolume_mic[VOLUME_NORMAL_MODE][1]);
    SetLevelShiftBufferGain(Level_Shift_Buffer_Gain,  degradegain);

    for (int i = 0; i < Num_Mic_Gain ; i++)
        ALOGD("micgain %d = %d", i, mMicGain[i]);

    // here save sidewtone gain to msidetone
    SetSideTone(EarPiece_SideTone_Gain, mVolumeParam.audiovolume_sid[VOLUME_NORMAL_MODE][3]);
    SetSideTone(Headset_SideTone_Gain, mVolumeParam.audiovolume_sid[VOLUME_HEADSET_MODE][3]);
    SetSideTone(LoudSpk_SideTone_Gain, mVolumeParam.audiovolume_sid[VOLUME_SPEAKER_MODE][3]);

    return NO_ERROR;
}