Add support for mm_sound_set_focus_reacquisition_for_session function 56/119456/2
authorSangchul Lee <sc11.lee@samsung.com>
Fri, 17 Mar 2017 05:09:59 +0000 (14:09 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Fri, 17 Mar 2017 06:33:22 +0000 (15:33 +0900)
[Version] 0.10.101
[Profile] Common
[Issue Type] Backward compatibility

Change-Id: Ie8e85d7d83fa3f4b29482d1ea2431e2978a87979
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
focus_server/include/mm_sound_mgr_focus_ipc.h
focus_server/mm_sound_mgr_focus_dbus.c
focus_server/mm_sound_mgr_focus_ipc.c
include/mm_sound_client.h
include/mm_sound_focus.h
include/mm_sound_proxy.h
mm_sound_client.c
mm_sound_focus.c
mm_sound_proxy.c
packaging/libmm-sound.spec

index 171895d..224ea9c 100644 (file)
@@ -25,7 +25,7 @@
 #include <stdbool.h>
 
 int __mm_sound_mgr_focus_ipc_register_focus(int client_pid, int handle_id, const char* stream_type, bool is_for_session);
-int __mm_sound_mgr_focus_ipc_set_focus_reacquisition(int pid, int handle_id, bool reacquisition);
+int __mm_sound_mgr_focus_ipc_set_focus_reacquisition(int pid, int handle_id, bool reacquisition, bool is_for_session);
 int __mm_sound_mgr_focus_ipc_get_acquired_focus_stream_type(int focus_type, char **stream_type, int *option, char **ext_info);
 int __mm_sound_mgr_focus_ipc_acquire_focus(int pid, int handle_id, int focus_type, int option, const char *ext_info, bool is_for_session);
 int __mm_sound_mgr_focus_ipc_release_focus(int pid, int handle_id, int focus_type, int option, const char *ext_info, bool is_for_session);
index 6863782..2a242c8 100644 (file)
@@ -38,6 +38,7 @@ static const gchar introspection_xml[] =
   "      <arg name='pid' type='i' direction='in'/>"
   "      <arg name='handle_id' type='i' direction='in'/>"
   "      <arg name='reacquisition' type='b' direction='in'/>"
+  "      <arg name='is_for_session' type='b' direction='in'/>"
   "    </method>"
   "    <method name='GetAcquiredFocusStreamType'>"
   "      <arg name='focus_type' type='i' direction='in'/>"
@@ -324,6 +325,7 @@ static void handle_method_set_focus_reacquisition(GDBusMethodInvocation* invocat
        int ret = MM_ERROR_NONE;
        int pid = 0, handle_id = 0;
        gboolean reacquisition;
+       gboolean is_for_session;
        GVariant *params = NULL;
 
        debug_fenter();
@@ -334,8 +336,8 @@ static void handle_method_set_focus_reacquisition(GDBusMethodInvocation* invocat
                goto send_reply;
        }
 
-       g_variant_get(params, "(iib)", &pid, &handle_id, &reacquisition);
-       ret = __mm_sound_mgr_focus_ipc_set_focus_reacquisition(_get_sender_pid(invocation), handle_id, reacquisition);
+       g_variant_get(params, "(iibb)", &pid, &handle_id, &reacquisition, &is_for_session);
+       ret = __mm_sound_mgr_focus_ipc_set_focus_reacquisition(_get_sender_pid(invocation), handle_id, reacquisition, is_for_session);
 
 send_reply:
        if (ret == MM_ERROR_NONE) {
index d9bba46..319ad64 100644 (file)
@@ -62,7 +62,7 @@ int __mm_sound_mgr_focus_ipc_unregister_focus(int pid, int handle_id, bool is_fo
 }
 
 // method -> callback
-int __mm_sound_mgr_focus_ipc_set_focus_reacquisition(int pid, int handle_id, bool reacquisition)
+int __mm_sound_mgr_focus_ipc_set_focus_reacquisition(int pid, int handle_id, bool reacquisition, bool is_for_session)
 {
        _mm_sound_mgr_focus_param_t param;
        int ret = MM_ERROR_NONE;
@@ -71,7 +71,7 @@ int __mm_sound_mgr_focus_ipc_set_focus_reacquisition(int pid, int handle_id, boo
        param.pid = pid;
        param.handle_id = handle_id;
        param.reacquisition = reacquisition;
-       param.is_for_session = false;
+       param.is_for_session = is_for_session;
 
        ret = mm_sound_mgr_focus_set_reacquisition(&param);
 
index bf94720..1b37441 100644 (file)
@@ -60,7 +60,7 @@ int mm_sound_client_get_unique_id(int *id);
 int mm_sound_client_is_focus_cb_thread(GThread *mine, bool *result);
 int mm_sound_client_register_focus(int id, int pid, const char *stream_type, mm_sound_focus_changed_cb callback, bool is_for_session, void* user_data);
 int mm_sound_client_unregister_focus(int id);
-int mm_sound_client_set_focus_reacquisition(int id, bool reacquisition);
+int mm_sound_client_set_focus_reacquisition(int id, bool reacquisition, bool is_for_session);
 int mm_sound_client_get_focus_reacquisition(int id, bool *reacquisition);
 int mm_sound_client_get_acquired_focus_stream_type(int focus_type, char **stream_type, int *option, char **ext_info);
 int mm_sound_client_acquire_focus(int id, mm_sound_focus_type_e type, int option, const char *ext_info);
index 462e29a..4abb34d 100644 (file)
@@ -54,6 +54,7 @@ int mm_sound_register_focus(int id, const char *stream_type, mm_sound_focus_chan
 int mm_sound_register_focus_for_session(int id, int pid, const char *stream_type, mm_sound_focus_changed_cb callback, void *user_data);
 int mm_sound_unregister_focus(int id);
 int mm_sound_set_focus_reacquisition(int id, bool reacquisition);
+int mm_sound_set_focus_reacquisition_for_session(int id, bool reacquisition);
 int mm_sound_get_focus_reacquisition(int id, bool *reacquisition);
 int mm_sound_get_stream_type_of_acquired_focus(int focus_type, char **stream_type, int *option, char **ext_info);
 int mm_sound_acquire_focus(int id, mm_sound_focus_type_e focus_type, const char *ext_info);
index e2f5abf..0e72331 100644 (file)
@@ -69,7 +69,7 @@ int mm_sound_proxy_emergent_exit(int exit_pid);
 int mm_sound_proxy_get_unique_id(int *id);
 int mm_sound_proxy_register_focus(int id, int instance, const char *stream_type, mm_sound_focus_changed_cb callback, bool is_for_session, void* user_data);
 int mm_sound_proxy_unregister_focus(int instance, int id, bool is_for_session);
-int mm_sound_proxy_set_foucs_reacquisition(int instance, int id, bool reacquisition);
+int mm_sound_proxy_set_focus_reacquisition(int instance, int id, bool reacquisition, bool is_for_session);
 int mm_sound_proxy_get_acquired_focus_stream_type(int focus_type, char **stream_type, int *option, char **ext_info);
 int mm_sound_proxy_acquire_focus(int instance, int id, mm_sound_focus_type_e type, int option, const char *ext_info, bool is_for_session);
 int mm_sound_proxy_release_focus(int instance, int id, mm_sound_focus_type_e type, int option, const char *ext_info, bool is_for_session);
index b8551ef..a8a3b8b 100644 (file)
@@ -1798,7 +1798,7 @@ cleanup:
        return ret;
 }
 
-int mm_sound_client_set_focus_reacquisition(int id, bool reacquisition)
+int mm_sound_client_set_focus_reacquisition(int id, bool reacquisition, bool is_for_session)
 {
        int ret = MM_ERROR_NONE;
        int instance;
@@ -1821,7 +1821,7 @@ int mm_sound_client_set_focus_reacquisition(int id, bool reacquisition)
                debug_error("[Client] mm_sound_client_is_focus_cb_thread failed");
                goto cleanup;
        } else if (!result) {
-               ret = mm_sound_proxy_set_foucs_reacquisition(instance, id, reacquisition);
+               ret = mm_sound_proxy_set_focus_reacquisition(instance, id, reacquisition, is_for_session);
                if (ret == MM_ERROR_NONE) {
                        debug_msg("[Client] Success to set focus reacquisition to [%d]\n", reacquisition);
                } else {
index 53442ad..1bbee1a 100644 (file)
@@ -199,11 +199,29 @@ int mm_sound_set_focus_reacquisition(int id, bool reacquisition)
                return MM_ERROR_INVALID_ARGUMENT;
        }
 
-       ret = mm_sound_client_set_focus_reacquisition(id, reacquisition);
-       if (ret) {
+       if ((ret = mm_sound_client_set_focus_reacquisition(id, reacquisition, false)))
                debug_error("Could not set focus reacquisition, ret[0x%x]\n", ret);
+
+       debug_fleave();
+
+       return ret;
+}
+
+EXPORT_API
+int mm_sound_set_focus_reacquisition_for_session(int id, bool reacquisition)
+{
+       int ret = MM_ERROR_NONE;
+
+       debug_fenter();
+
+       if (id < 0) {
+               debug_error("argument is not valid\n");
+               return MM_ERROR_INVALID_ARGUMENT;
        }
 
+       if ((ret = mm_sound_client_set_focus_reacquisition(id, reacquisition, true)))
+               debug_error("Could not set focus reacquisition, ret[0x%x]\n", ret);
+
        debug_fleave();
 
        return ret;
index ea2e1d9..023843a 100644 (file)
@@ -907,14 +907,14 @@ int mm_sound_proxy_unregister_focus(int instance, int id, bool is_for_session)
        return ret;
 }
 
-int mm_sound_proxy_set_foucs_reacquisition(int instance, int id, bool reacquisition)
+int mm_sound_proxy_set_focus_reacquisition(int instance, int id, bool reacquisition, bool is_for_session)
 {
        int ret = MM_ERROR_NONE;
        GVariant *params = NULL, *result = NULL;
 
        debug_fenter();
 
-       params = g_variant_new("(iib)", instance, id, reacquisition);
+       params = g_variant_new("(iibb)", instance, id, reacquisition, is_for_session);
        if (params) {
                if ((ret = mm_sound_dbus_method_call_to(AUDIO_PROVIDER_FOCUS_SERVER, AUDIO_METHOD_SET_FOCUS_REACQUISITION, params, &result)) != MM_ERROR_NONE) {
                        debug_error("dbus set focus reacquisition failed");
index a7a93ed..1654c3b 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-sound
 Summary:    MMSound Package contains client lib and sound_server binary
-Version:    0.10.100
+Version:    0.10.101
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0