Add code for sending and receiving request id 05/178905/1
authorhj kim <backto.kim@samsung.com>
Mon, 14 May 2018 23:43:29 +0000 (08:43 +0900)
committerhj kim <backto.kim@samsung.com>
Mon, 14 May 2018 23:43:29 +0000 (08:43 +0900)
Change-Id: I2e660c8494fb6b6088653038dacbfff459eee577

include/media_controller_private.h
src/media_controller_client.c
src/media_controller_ipc.c
src/media_controller_server.c

index c7465ea..a533226 100755 (executable)
@@ -252,7 +252,7 @@ typedef struct {
 } media_controller_client_s;
 
 /* formal callback to receive signal */
-typedef void(*mc_signal_received_cb)(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data);
+typedef void(*mc_signal_received_cb)(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data);
 typedef struct {
        GDBusConnection                 *dbus_conn;
        char                                    *interface_name;
index 19c46e5..2ee4c9f 100755 (executable)
@@ -19,7 +19,7 @@
 #include "media_controller_db.h"
 #include <bundle_internal.h>
 
-static void __client_server_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __client_server_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        media_controller_receiver_s *reciever = (media_controller_receiver_s *)user_data;
@@ -29,7 +29,7 @@ static void __client_server_cb(const char *interface_name, const char *signal_na
        mc_retm_if(reciever->callback == NULL, "server_state_cb is NULL");
        mc_retm_if(message == NULL, "message is NULL");
 
-       mc_debug("__client_server_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__client_server_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid server data");
@@ -39,7 +39,7 @@ static void __client_server_cb(const char *interface_name, const char *signal_na
        g_strfreev(params);
 }
 
-static void __client_playback_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __client_playback_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        media_controller_receiver_s *reciever = (media_controller_receiver_s *)user_data;
@@ -50,7 +50,7 @@ static void __client_playback_cb(const char *interface_name, const char *signal_
        mc_retm_if(reciever->callback == NULL, "playback_cb is NULL");
        mc_retm_if(message == NULL, "message is NULL");
 
-       mc_debug("__client_playback_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__client_playback_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        playback = (media_controller_playback_s *)calloc(1, sizeof(media_controller_playback_s));
        mc_retm_if(playback == NULL, "Error allocation memory");
@@ -73,7 +73,7 @@ static void __client_playback_cb(const char *interface_name, const char *signal_
        g_strfreev(params);
 }
 
-static void __client_metadata_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __client_metadata_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        mc_metadata_h metadata = NULL;
@@ -84,7 +84,7 @@ static void __client_metadata_cb(const char *interface_name, const char *signal_
        mc_retm_if(mc_client->metadata_cb.callback == NULL, "metadata_cb is NULL");
        mc_retm_if(message == NULL, "message is NULL");
 
-       mc_debug("__client_metadata_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__client_metadata_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        ret = mc_db_get_metadata_info(mc_client->db_handle, message, &metadata);
        if (ret != MEDIA_CONTROLLER_ERROR_NONE)
@@ -95,7 +95,7 @@ static void __client_metadata_cb(const char *interface_name, const char *signal_
        mc_client_destroy_metadata(metadata);
 }
 
-static void __client_shuffle_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __client_shuffle_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        media_controller_receiver_s *reciever = (media_controller_receiver_s *)user_data;
@@ -104,7 +104,7 @@ static void __client_shuffle_cb(const char *interface_name, const char *signal_n
 
        mc_retm_if(reciever->callback == NULL, "shuffle_cb is NULL");
 
-       mc_debug("__client_shuffle_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__client_shuffle_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid shuffle mode data");
@@ -114,7 +114,7 @@ static void __client_shuffle_cb(const char *interface_name, const char *signal_n
        g_strfreev(params);
 }
 
-static void __client_repeat_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __client_repeat_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        media_controller_receiver_s *reciever = (media_controller_receiver_s *)user_data;
@@ -123,7 +123,7 @@ static void __client_repeat_cb(const char *interface_name, const char *signal_na
 
        mc_retm_if(reciever->callback == NULL, "repeat_cb is NULL");
 
-       mc_debug("__client_repeat_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__client_repeat_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid repeat mode data");
@@ -133,7 +133,7 @@ static void __client_repeat_cb(const char *interface_name, const char *signal_na
        g_strfreev(params);
 }
 
-static void __client_reply_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __client_reply_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        int enc_size = 0;
@@ -145,7 +145,7 @@ static void __client_reply_cb(const char *interface_name, const char *signal_nam
        mc_command_reply_received_cb callback = (mc_command_reply_received_cb)reciever->callback;
        mc_retm_if(reciever->callback == NULL, "reply_cb is NULL");
 
-       mc_debug("__client_reply_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__client_reply_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid custom data");
@@ -159,7 +159,7 @@ static void __client_reply_cb(const char *interface_name, const char *signal_nam
        g_strfreev(params);
 }
 
-static void __client_playlist_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __client_playlist_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
        gchar **params = NULL;
@@ -173,7 +173,7 @@ static void __client_playlist_cb(const char *interface_name, const char *signal_
        mc_retm_if(mc_client->playlist_cb.callback == NULL, "playlist_cb is NULL");
        mc_retm_if(message == NULL, "message is NULL");
 
-       mc_debug("__client_playlist_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__client_playlist_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid custom data");
index e69ebc0..083d399 100755 (executable)
@@ -53,8 +53,9 @@ static void __mc_ipc_signal_cb(GDBusConnection *connection,
        mc_debug("__mc_ipc_signal_cb Received :");
 
        gchar *message = NULL;
-       int internal_flags = 0;
-       g_variant_get(parameters, "(i&s)", &internal_flags, &message);
+       unsigned int request_id = 0;
+
+       g_variant_get(parameters, "(u&s)", &request_id, &message);
        if (!message) {
                mc_error("g_variant_get() fail");
                return;
@@ -70,8 +71,8 @@ static void __mc_ipc_signal_cb(GDBusConnection *connection,
        for (i = 0; i < listener_cnt; i++) {
                listener = (mc_ipc_listener_s *)g_list_nth_data(*listener_list, i);
                if (listener && !g_strcmp0(listener->key, key)) {
-                       mc_debug("Received : [%s] (flags = %x) from %s.%s", message, internal_flags, listener->interface_name, listener->signal_name);
-                       listener->callback(listener->interface_name, listener->signal_name, message, 0, listener->user_data);
+                       mc_debug("Received : [%s] (req_id = %ld) from %s.%s", message, request_id, listener->interface_name, listener->signal_name);
+                       listener->callback(listener->interface_name, listener->signal_name, message, request_id, listener->user_data);
                        break;
                }
        }
@@ -279,6 +280,7 @@ int mc_ipc_unregister_all_listener(GList **listener_list, GDBusConnection *conne
 int mc_ipc_send_message(GDBusConnection *connection, const char *dbus_name, const char *interface_name, const char *signal_name, const char *message, unsigned int *request_id)
 {
        GError *error = NULL;
+       unsigned int req_id = 0;
 
        mc_retvm_if(connection == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "connection is NULL");
        mc_retvm_if(!MC_STRING_VALID(signal_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid signal_name");
@@ -286,13 +288,16 @@ int mc_ipc_send_message(GDBusConnection *connection, const char *dbus_name, cons
 
        mc_debug("emit signal - interface_name [%s], signal_name [%s]", interface_name, signal_name);
 
+       if (request_id != NULL)
+               mc_util_get_request_id(&req_id);
+
        gboolean emmiting = g_dbus_connection_emit_signal(
                                                connection,
                                                dbus_name,
                                                MC_DBUS_PATH,
                                                interface_name,
                                                signal_name,
-                                               g_variant_new("(is)", 0, message),
+                                               g_variant_new("(us)", req_id, message),
                                                &error);
        if (!emmiting) {
                mc_error("g_dbus_connection_emit_signal failed : %s", error ? error->message : "none");
@@ -303,9 +308,6 @@ int mc_ipc_send_message(GDBusConnection *connection, const char *dbus_name, cons
                return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
        }
 
-       if (request_id != NULL)
-               mc_util_get_request_id(request_id);
-
        return MEDIA_CONTROLLER_ERROR_NONE;
 }
 
index 59ffc60..c2fd160 100755 (executable)
@@ -103,7 +103,7 @@ static int __mc_server_destoy(media_controller_server_s *mc_server)
        return ret;
 }
 
-static void __server_playback_state_command_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __server_playback_state_command_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
@@ -115,7 +115,7 @@ static void __server_playback_state_command_cb(const char *interface_name, const
        mc_server_playback_state_command_received_cb callback = receiver->callback;
        mc_retm_if(receiver->callback == NULL, "playback_state_command_received_cb is NULL");
 
-       mc_debug("__server_playback_state_command_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__server_playback_state_command_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid playback state command");
@@ -137,7 +137,7 @@ static void __server_playback_state_command_cb(const char *interface_name, const
        g_strfreev(params);
 }
 
-static void __server_playback_action_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __server_playback_action_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
@@ -149,7 +149,7 @@ static void __server_playback_action_cb(const char *interface_name, const char *
        mc_server_playback_action_received_cb callback = receiver->callback;
        mc_retm_if(receiver->callback == NULL, "playback_action_command_received_cb is NULL");
 
-       mc_debug("__server_playback_action_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__server_playback_action_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid playback_action command");
@@ -171,7 +171,7 @@ static void __server_playback_action_cb(const char *interface_name, const char *
        g_strfreev(params);
 }
 
-static void __server_playback_position_command_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __server_playback_position_command_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
@@ -183,7 +183,7 @@ static void __server_playback_position_command_cb(const char *interface_name, co
        mc_server_playback_position_command_received_cb callback = receiver->callback;
        mc_retm_if(receiver->callback == NULL, "playback_position_command_received_cb is NULL");
 
-       mc_debug("__server_playback_position_command_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__server_playback_position_command_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid playback_position command");
@@ -205,7 +205,7 @@ static void __server_playback_position_command_cb(const char *interface_name, co
        g_strfreev(params);
 }
 
-static void __server_shuffle_mode_command_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __server_shuffle_mode_command_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
@@ -217,7 +217,7 @@ static void __server_shuffle_mode_command_cb(const char *interface_name, const c
        mc_server_shuffle_mode_command_received_cb callback = receiver->callback;
        mc_retm_if(receiver->callback == NULL, "shuffle_mode_command_received_cb is NULL");
 
-       mc_debug("__server_shuffle_mode_command_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__server_shuffle_mode_command_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid shuffle_mode command");
@@ -239,7 +239,7 @@ static void __server_shuffle_mode_command_cb(const char *interface_name, const c
        g_strfreev(params);
 }
 
-static void __server_repeat_mode_command_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __server_repeat_mode_command_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
@@ -251,7 +251,7 @@ static void __server_repeat_mode_command_cb(const char *interface_name, const ch
        mc_server_repeat_mode_command_received_cb callback = receiver->callback;
        mc_retm_if(receiver->callback == NULL, "repeat_mode_command_received_cb is NULL");
 
-       mc_debug("__server_repeat_mode_command_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__server_repeat_mode_command_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid repeat_mode command");
@@ -273,7 +273,7 @@ static void __server_repeat_mode_command_cb(const char *interface_name, const ch
        g_strfreev(params);
 }
 
-static void __server_custom_command_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __server_custom_command_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        int enc_size = 0;
@@ -287,7 +287,7 @@ static void __server_custom_command_cb(const char *interface_name, const char *s
        mc_server_custom_command_received_cb callback = receiver->callback;
        mc_retm_if(receiver->callback == NULL, "custom_command_received_cb is NULL");
 
-       mc_debug("__server_custom_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__server_custom_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid custom data");
@@ -315,7 +315,7 @@ static void __server_custom_command_cb(const char *interface_name, const char *s
        g_strfreev(params);
 }
 
-static void __server_play_playlist_command_cb(const char *interface_name, const char *signal_name, const char *message, int size, void *user_data)
+static void __server_play_playlist_command_cb(const char *interface_name, const char *signal_name, const char *message, const unsigned int request_id, void *user_data)
 {
        gchar **params = NULL;
        media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
@@ -328,7 +328,7 @@ static void __server_play_playlist_command_cb(const char *interface_name, const
        mc_server_playlist_command_received_cb callback = receiver->callback;
        mc_retm_if(receiver->callback == NULL, "mc_server_playlist_command_received_cb is NULL");
 
-       mc_debug("__server_play_playlist_command_cb(%s, %s, %s, %d, %p)", interface_name, signal_name, message, size, user_data);
+       mc_debug("__server_play_playlist_command_cb(%s, %s, %s, %ld, %p)", interface_name, signal_name, message, request_id, user_data);
 
        params = g_strsplit(message, MC_STRING_DELIMITER, 0);
        mc_retm_if(params == NULL, "invalid play_playlist command");