Esempio n. 1
0
/* 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);
	}
}