From 3d65778ab326da2ed8c143b7157855c1689d8f0d Mon Sep 17 00:00:00 2001 From: hj kim Date: Tue, 15 May 2018 08:43:29 +0900 Subject: [PATCH] Add code for sending and receiving request id Change-Id: I2e660c8494fb6b6088653038dacbfff459eee577 --- include/media_controller_private.h | 2 +- src/media_controller_client.c | 28 ++++++++++++++-------------- src/media_controller_ipc.c | 18 ++++++++++-------- src/media_controller_server.c | 28 ++++++++++++++-------------- 4 files changed, 39 insertions(+), 37 deletions(-) diff --git a/include/media_controller_private.h b/include/media_controller_private.h index c7465ea..a533226 100755 --- a/include/media_controller_private.h +++ b/include/media_controller_private.h @@ -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; diff --git a/src/media_controller_client.c b/src/media_controller_client.c index 19c46e5..2ee4c9f 100755 --- a/src/media_controller_client.c +++ b/src/media_controller_client.c @@ -19,7 +19,7 @@ #include "media_controller_db.h" #include -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"); diff --git a/src/media_controller_ipc.c b/src/media_controller_ipc.c index e69ebc0..083d399 100755 --- a/src/media_controller_ipc.c +++ b/src/media_controller_ipc.c @@ -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; } diff --git a/src/media_controller_server.c b/src/media_controller_server.c index 59ffc60..c2fd160 100755 --- a/src/media_controller_server.c +++ b/src/media_controller_server.c @@ -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"); -- 2.7.4