/* Audio routing, speaker/headset */ static pj_status_t bb10_initialize_playback_ctrl(struct bb10_stream *stream, bool speaker) { /* Although the play and capture have audio manager handles, audio routing * requires a separate handle */ int ret = PJ_SUCCESS; if (stream->pb_ctrl_audio_manager_handle == 0) { /* lazy init an audio manager handle */ ret = audio_manager_get_handle(AUDIO_TYPE_VOICE, 0, false, &stream->pb_ctrl_audio_manager_handle); if (ret != 0) { TRACE_((THIS_FILE, "audio_manager_get_handle ret = %d",ret)); return PJMEDIA_EAUD_SYSERR; } } /* Set for either speaker or earpiece */ if (speaker) { ret = audio_manager_set_handle_type( stream->pb_ctrl_audio_manager_handle, AUDIO_TYPE_VIDEO_CHAT, AUDIO_DEVICE_SPEAKER, AUDIO_DEVICE_DEFAULT); } else { ret = audio_manager_set_handle_type( stream->pb_ctrl_audio_manager_handle, AUDIO_TYPE_VOICE, AUDIO_DEVICE_DEFAULT, AUDIO_DEVICE_DEFAULT); } /* Make the routing selection stick even when earpeace is plugged in. * But this doesn't seem to work (tested on Q10 10.2.10 */ if (ret == 0) { ret = audio_manager_set_handle_routing_conditions( stream->pb_ctrl_audio_manager_handle, SETTINGS_NEVER_RESET); } if (ret != 0) { TRACE_((THIS_FILE, "audio_manager_set_handle_type error ret = %d",ret)); return PJMEDIA_EAUD_SYSERR; }else{ return PJ_SUCCESS; } }
void AudioControl::lazyInitializDtmfPlayer() { if(m_dtmfAudioManager == 0){ int ret = audio_manager_get_handle(AUDIO_TYPE_VOICE_TONES,0,true,&m_dtmfAudioManager); if(ret != 0){ qDebug() << "AudioControl::audioManagerHandle() = " << ret; } ret = audio_manager_set_handle_routing_conditions( m_dtmfAudioManager, SETTINGS_RESET_ON_DEVICE_DISCONNECTION | SETTINGS_RESET_ON_DEVICE_CONNECTION); if(ret != 0){ qDebug() << "AudioControl::audioManagerHandle() = " << ret; } m_mediaPlayer.setSourceUrl(QUrl("asset:///DTMFG.WAV")); m_mediaPlayer.setAudioManagerHandle(m_dtmfAudioManager); } }