From: Sangchul Lee Date: Thu, 7 May 2015 07:58:05 +0000 (+0900) Subject: Revise focus watch callback X-Git-Tag: submit/tizen/20150715.092047~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F11%2F41111%2F2;p=platform%2Fcore%2Fapi%2Fsound-manager.git Revise focus watch callback Change-Id: I06ffeef72c0a30f63d7aa657b67169c9ce473973 --- diff --git a/include/sound_manager_private.h b/include/sound_manager_private.h index 789eda5..d1e32aa 100644 --- a/include/sound_manager_private.h +++ b/include/sound_manager_private.h @@ -143,6 +143,7 @@ typedef struct { }_volume_changed_info_s; typedef struct { + int index; void *user_data; sound_stream_focus_state_watch_cb user_cb; }_focus_watch_info_s; @@ -176,7 +177,7 @@ do { \ void _focus_state_change_callback (int index, mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info, void *user_data); -void _focus_watch_callback (mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info, void *user_data); +void _focus_watch_callback (int id, mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info, void *user_data); int __convert_sound_manager_error_code (const char *func, int code); diff --git a/packaging/capi-media-sound-manager.spec b/packaging/capi-media-sound-manager.spec index 06f3ea5..28e1999 100755 --- a/packaging/capi-media-sound-manager.spec +++ b/packaging/capi-media-sound-manager.spec @@ -1,6 +1,6 @@ Name: capi-media-sound-manager Summary: Sound Manager library -Version: 0.3.5 +Version: 0.3.6 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/sound_manager.c b/src/sound_manager.c index d702cf5..5128ca1 100644 --- a/src/sound_manager.c +++ b/src/sound_manager.c @@ -19,7 +19,7 @@ _session_interrupt_info_s g_session_interrupt_cb_table = {0, NULL, NULL}; _volume_changed_info_s g_volume_changed_cb_table = {NULL, NULL}; -_focus_watch_info_s g_focus_watch_cb_table = {NULL, NULL}; +_focus_watch_info_s g_focus_watch_cb_table = {-1, NULL, NULL}; _device_connected_info_s g_device_connected_cb_table = {NULL, NULL}; _device_changed_info_s g_device_info_changed_cb_table = {NULL, NULL}; @@ -457,14 +457,16 @@ int sound_manager_get_focus_state (sound_stream_info_h stream_info, sound_stream int sound_manager_set_focus_state_watch_cb (sound_stream_focus_mask_e focus_mask, sound_stream_focus_state_watch_cb callback, void *user_data) { int ret = MM_ERROR_NONE; + int id = -1; LOGI(">> enter"); SM_NULL_ARG_CHECK(callback); if (!g_focus_watch_cb_table.user_cb) { - ret = mm_sound_set_focus_watch_callback((mm_sound_focus_type_e)focus_mask, _focus_watch_callback, user_data); + ret = mm_sound_set_focus_watch_callback((mm_sound_focus_type_e)focus_mask, _focus_watch_callback, user_data, &id); if (ret == MM_ERROR_NONE) { + g_focus_watch_cb_table.index = id; g_focus_watch_cb_table.user_cb = callback; g_focus_watch_cb_table.user_data = user_data; } @@ -484,8 +486,9 @@ int sound_manager_unset_focus_state_watch_cb (void) LOGI(">> enter"); if (g_focus_watch_cb_table.user_cb) { - ret = mm_sound_unset_focus_watch_callback(); + ret = mm_sound_unset_focus_watch_callback(g_focus_watch_cb_table.index); if (ret == MM_ERROR_NONE) { + g_focus_watch_cb_table.index = -1; g_focus_watch_cb_table.user_cb = NULL; g_focus_watch_cb_table.user_data = NULL; } else { diff --git a/src/sound_manager_private.c b/src/sound_manager_private.c index 492dabc..b47eea0 100644 --- a/src/sound_manager_private.c +++ b/src/sound_manager_private.c @@ -414,7 +414,7 @@ void _focus_state_change_callback (int index, mm_sound_focus_type_e focus_type, return; } -void _focus_watch_callback (mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info, void *user_data) +void _focus_watch_callback (int index, mm_sound_focus_type_e focus_type, mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info, void *user_data) { int ret = MM_ERROR_NONE; sound_stream_focus_change_reason_e change_reason = SOUND_STREAM_FOCUS_CHANGED_BY_MEDIA;