}
/* create stream info and acquire focus for rintone-voip stream */
g_voip_stream_info->stream_type = "ringtone-voip";
- ret = _make_pa_connection_and_register_focus(g_voip_stream_info, _voip_focus_state_change_callback, NULL);
+ ret = _make_pa_connection_and_register_focus(g_voip_stream_info, true, _voip_focus_state_change_callback, NULL);
if (ret != MM_ERROR_NONE) {
free(g_voip_stream_info);
g_voip_stream_info = NULL;
memset(g_voip_stream_info, 0, sizeof(sound_stream_info_s));
}
g_voip_stream_info->stream_type = "voip";
- ret = _make_pa_connection_and_register_focus(g_voip_stream_info, _voip_focus_state_change_callback, NULL);
+ ret = _make_pa_connection_and_register_focus(g_voip_stream_info, true, _voip_focus_state_change_callback, NULL);
if (ret != MM_ERROR_NONE) {
free(g_voip_stream_info);
g_voip_stream_info = NULL;
return ret;
}
-int _make_pa_connection_and_register_focus(sound_stream_info_s *stream_h, sound_stream_focus_state_changed_cb callback, void *user_data)
+int _make_pa_connection_and_register_focus(sound_stream_info_s *stream_h, bool is_for_session, sound_stream_focus_state_changed_cb callback, void *user_data)
{
int ret = MM_ERROR_NONE;
int pa_ret = PA_OK;
/* register focus */
if (!stream_h->is_focus_unavailable) {
- ret = mm_sound_register_focus(stream_h->index, stream_h->stream_type, _focus_state_change_callback, user_data);
+ if (is_for_session)
+ ret = mm_sound_register_focus_for_session(stream_h->index, getpid(), stream_h->stream_type, _focus_state_change_callback, user_data);
+ else
+ ret = mm_sound_register_focus(stream_h->index, stream_h->stream_type, _focus_state_change_callback, user_data);
if (ret == MM_ERROR_NONE) {
stream_h->user_cb = callback;
stream_h->user_data = user_data;