((new_session == SOUND_SESSION_TYPE_MEDIA) && (cur_session == MM_SESSION_TYPE_MEDIA_RECORD))) {
LOGI("already set type=%d, ret=0x%x", type, ret);
goto LEAVE;
- } else {
- ret = mm_session_finish();
- if (ret != MM_ERROR_NONE)
- goto LEAVE;
+ }
+
+ ret = mm_session_finish();
+ if (ret != MM_ERROR_NONE)
+ goto LEAVE;
- g_session_interrupt_cb_table.is_registered = 0;
- if (cur_session == MM_SESSION_TYPE_VOIP) {
- /* De-initialize regarding VoIP session */
- g_cached_session_mode = -1;
- g_cached_voip_device_id = -1;
- g_cached_voip_device_id2 = -1;
- if (g_voip_vstream_h) {
- _stop_progress_virtual_stream(g_voip_vstream_h);
- g_voip_vstream_h = NULL;
- }
- if (g_voip_ringtone_vstream_h) {
- _stop_progress_virtual_stream(g_voip_ringtone_vstream_h);
- g_voip_ringtone_vstream_h = NULL;
- }
- if (g_voip_stream_info) {
- ret = _destroy_pa_connection_and_unregister_focus(g_voip_stream_info);
- SM_SAFE_FREE(g_voip_stream_info);
- if (ret != MM_ERROR_NONE)
- goto LEAVE;
- }
- if (g_voip_ringtone_stream_info) {
- ret = _destroy_pa_connection_and_unregister_focus(g_voip_ringtone_stream_info);
- SM_SAFE_FREE(g_voip_ringtone_stream_info);
- if (ret != MM_ERROR_NONE)
- goto LEAVE;
- }
+ g_session_interrupt_cb_table.is_registered = 0;
+ if (cur_session == MM_SESSION_TYPE_VOIP) {
+ /* De-initialize regarding VoIP session */
+ g_cached_session_mode = -1;
+ g_cached_voip_device_id = -1;
+ g_cached_voip_device_id2 = -1;
+ if (g_voip_vstream_h) {
+ _stop_progress_virtual_stream(g_voip_vstream_h);
+ g_voip_vstream_h = NULL;
+ }
+ if (g_voip_ringtone_vstream_h) {
+ _stop_progress_virtual_stream(g_voip_ringtone_vstream_h);
+ g_voip_ringtone_vstream_h = NULL;
+ }
+ if (g_voip_ringtone_stream_info) {
+ if ((ret = mm_sound_release_focus(g_voip_ringtone_stream_info->index, g_voip_ringtone_stream_info->acquired_focus, EXT_INFO_VOIP_SESSION)))
+ LOGE("failed to release focus for ringtone-voip stream info, ret(0x%x)", ret);
+ } else if (g_voip_stream_info) {
+ if ((ret = mm_sound_release_focus(g_voip_stream_info->index, g_voip_stream_info->acquired_focus, EXT_INFO_VOIP_SESSION)))
+ LOGE("failed to release focus for voip stream info, ret(0x%x)", ret);
+ }
+ if (g_voip_stream_info) {
+ ret = _destroy_pa_connection_and_unregister_focus(g_voip_stream_info);
+ SM_SAFE_FREE(g_voip_stream_info);
+ if (ret != MM_ERROR_NONE)
+ goto LEAVE;
+ }
+ if (g_voip_ringtone_stream_info) {
+ ret = _destroy_pa_connection_and_unregister_focus(g_voip_ringtone_stream_info);
+ SM_SAFE_FREE(g_voip_ringtone_stream_info);
+ if (ret != MM_ERROR_NONE)
+ goto LEAVE;
}
}
}