From: hj kim Date: Mon, 3 Sep 2018 07:00:31 +0000 (+0900) Subject: Code refactoring. Unify server callback register/unregister APIs X-Git-Tag: submit/tizen/20180903.072508^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=81ae4afda6bef1ccdd62c941bd80ffe2634b7ef9;p=platform%2Fcore%2Fapi%2Fmedia-controller.git Code refactoring. Unify server callback register/unregister APIs Change-Id: Id3e11bdf1faf7bc4ef636cce0111f8efe72b4e15 --- diff --git a/include/media_controller_private.h b/include/media_controller_private.h index 8656e12..c47ab63 100755 --- a/include/media_controller_private.h +++ b/include/media_controller_private.h @@ -285,11 +285,24 @@ typedef enum { MC_CLIENT_EVENT_SHUFFLE_ABILITY = MC_SUBSCRIPTION_TYPE_SHUFFLE_ABILITY, MC_CLIENT_EVENT_REPEAT_ABILITY = MC_SUBSCRIPTION_TYPE_REPEAT_ABILITY, MC_CLIENT_EVENT_CMD_REPLY, - MC_CLIENT_EVENT_CLIENT_CUSTOM, //from client to server - MC_CLIENT_EVENT_SERVER_CUSTOM, //from server to client + MC_CLIENT_EVENT_CLIENT_CUSTOM, //from client to server. deprecated + MC_CLIENT_EVENT_SERVER_CUSTOM, //receive event from server to client MC_CLIENT_EVENT_MAX, } mc_client_receive_event_e; +typedef enum { + MC_SERVER_EVENT_PLAYBACK_STATE, //deprecated. use action instead of it. + MC_SERVER_EVENT_PLAYBACK_ACTION, + MC_SERVER_EVENT_PLAYBACK_POSITION, + MC_SERVER_EVENT_SHUFFLE, + MC_SERVER_EVENT_REPEAT, + MC_SERVER_EVENT_PLAYLIST, + MC_SERVER_EVENT_CLIENT_CUSTOM, //received event from client + MC_SERVER_EVENT_CLIENT_CUSTOM_OLD, //received event from client, deprecated + MC_SERVER_EVENT_REPLY_CUSTOM, //received event reply from client + MC_SERVER_EVENT_MAX, +} mc_server_receive_event_e; + typedef struct { char *server_name; void* db_handle; @@ -307,15 +320,7 @@ typedef struct { media_controller_ability_s basic_ability; /* receiver */ - media_controller_receiver_s playback_state_reciever; - media_controller_receiver_s playback_action_reciever; - media_controller_receiver_s playback_position_reciever; - media_controller_receiver_s shuffle_mode_reciever; - media_controller_receiver_s repeat_mode_reciever; - media_controller_receiver_s custom_cmd_reciever; - media_controller_receiver_s play_playlist_reciever; - media_controller_receiver_s custom_command_reciever; - media_controller_receiver_s event_reply_receiver; + media_controller_receiver_s updated_cb[MC_SERVER_EVENT_MAX]; } media_controller_server_s; typedef struct { @@ -359,6 +364,7 @@ typedef enum { /* formal callback to receive signal */ typedef void(*mc_signal_received_cb)(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); + typedef struct { GDBusConnection *dbus_conn; char *interface_name; @@ -369,6 +375,11 @@ typedef struct { char *key; } mc_ipc_listener_s; +typedef struct { + const char *signal_name; + mc_signal_received_cb cb_func; +} mc_cb_event_s; + /* util */ int mc_util_get_own_name(char **name); diff --git a/packaging/capi-media-controller.spec b/packaging/capi-media-controller.spec index c14d71c..89d5e7a 100755 --- a/packaging/capi-media-controller.spec +++ b/packaging/capi-media-controller.spec @@ -1,6 +1,6 @@ Name: capi-media-controller Summary: A media controller library in Tizen Native API -Version: 0.1.67 +Version: 0.1.68 Release: 1 Group: Multimedia/API License: Apache-2.0 diff --git a/src/media_controller_client.c b/src/media_controller_client.c index dafbe57..04a4f1d 100755 --- a/src/media_controller_client.c +++ b/src/media_controller_client.c @@ -33,12 +33,7 @@ static void __client_repeat_ability_cb(const char *interface_name, const char *s static void __client_shuffle_ability_cb(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); -typedef struct { - const char *signal_name; - mc_signal_received_cb cb_func; -} mc_cb_event_s; - -mc_cb_event_s cb_event[MC_CLIENT_EVENT_MAX] = { +static mc_cb_event_s cb_event[MC_CLIENT_EVENT_MAX] = { {MC_DBUS_SIGNAL_NAME_SERVER_STATE, __client_server_cb}, {MC_DBUS_SIGNAL_NAME_PLAY_BACK, __client_playback_cb}, {MC_DBUS_SIGNAL_NAME_METADATA, __client_metadata_cb}, @@ -645,12 +640,20 @@ static int __mc_client_set_updated_cb(mc_client_h client, mc_client_receive_even mc_retvm_if(mc_client == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL"); mc_retvm_if(((event < MC_CLIENT_EVENT_SERVER_STATE) || (event >= MC_CLIENT_EVENT_MAX)) , MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid event [%d]", event); + + if ((event == MC_CLIENT_EVENT_CLIENT_CUSTOM) && (mc_client->updated_cb[event].callback != NULL)) { //deprecated + mc_client->updated_cb[event].callback = callback; + mc_client->updated_cb[event].user_data = user_data; + + return ret; + } + mc_retvm_if(mc_client->updated_cb[event].callback != NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is already set [%d]", event); mc_client->updated_cb[event].callback = callback; mc_client->updated_cb[event].user_data = user_data; - if ((event == MC_CLIENT_EVENT_CMD_REPLY) || (event == MC_CLIENT_EVENT_SERVER_CUSTOM)) { + if ((event == MC_CLIENT_EVENT_CMD_REPLY) || (event == MC_CLIENT_EVENT_SERVER_CUSTOM) || (event == MC_CLIENT_EVENT_CLIENT_CUSTOM)) { interface_name = mc_util_get_interface_name(MC_CLIENT, mc_client->client_name); ret = mc_ipc_register_listener(&mc_client->listeners, mc_client->dconn, interface_name, cb_event[event].signal_name, cb_event[event].cb_func, (void *)&(mc_client->updated_cb[event])); diff --git a/src/media_controller_server.c b/src/media_controller_server.c index 4b6b571..4f01d85 100755 --- a/src/media_controller_server.c +++ b/src/media_controller_server.c @@ -20,6 +20,28 @@ #define MAX_PLAYLIST_LEN 100 +static void __server_playback_state_command_cb(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); +static void __server_playback_action_cb(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); +static void __server_playback_position_cmd_cb(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); +static void __server_shuffle_mode_cmd_cb(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); +static void __server_repeat_mode_cmd_cb(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); +static void __server_custom_command_cb(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); +static void __server_play_playlist_cmd_cb(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); +static void __server_custom_cmd_cb(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); +static void __server_event_reply_received_cb(const char *interface_name, const char *signal_name, const char *message, const char *request_id, void *user_data); + +static mc_cb_event_s cb_event[MC_SERVER_EVENT_MAX] = { + {MC_DBUS_SIGNAL_NAME_PLAYBACK_STATE_CMD, __server_playback_state_command_cb}, + {MC_DBUS_SIGNAL_NAME_PLAYBACK_ACTION, __server_playback_action_cb}, + {MC_DBUS_SIGNAL_NAME_PLAYBACK_POS_CMD, __server_playback_position_cmd_cb}, + {MC_DBUS_SIGNAL_NAME_SHUFFLE_CMD, __server_shuffle_mode_cmd_cb}, + {MC_DBUS_SIGNAL_NAME_REPEAT_CMD, __server_repeat_mode_cmd_cb}, + {MC_DBUS_SIGNAL_NAME_PLAYBACK_PLAYLIST, __server_play_playlist_cmd_cb}, + {MC_DBUS_SIGNAL_NAME_CUSTOM_CMD, __server_custom_cmd_cb}, + {MC_DBUS_SIGNAL_NAME_CUSTOM_COMMAND, __server_custom_command_cb}, //deprecated one + {MC_DBUS_SIGNAL_NAME_EVENT_REPLY, __server_event_reply_received_cb}, +}; + static int __mc_server_create(media_controller_server_s **mc_server) { int ret = MEDIA_CONTROLLER_ERROR_NONE; @@ -1048,230 +1070,145 @@ int mc_server_foreach_playlist(mc_server_h server, mc_playlist_cb callback, void return ret; } -int mc_server_set_playback_state_command_received_cb(mc_server_h server, mc_server_playback_state_command_received_cb callback, void *user_data) +static int __mc_server_set_updated_cb(mc_server_h server, mc_server_receive_event_e event, void *callback, void *user_data) { int ret = MEDIA_CONTROLLER_ERROR_NONE; media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_warning("DEPRECATION WARNING: mc_server_set_playback_state_command_received_cb() is deprecated and will be removed from next release. Use mc_server_set_playback_action_cmd_received_cb() instead."); + char *interface_name = NULL; mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL"); + mc_retvm_if(((event < MC_SERVER_EVENT_PLAYBACK_STATE) || (event >= MC_SERVER_EVENT_MAX)) , MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid event [%d]", event); + + mc_server->updated_cb[event].callback = callback; + mc_server->updated_cb[event].user_data = user_data; - mc_server->playback_state_reciever.callback = callback; - mc_server->playback_state_reciever.user_data = user_data; + interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_PLAYBACK_STATE_CMD, __server_playback_state_command_cb, (void *)&(mc_server->playback_state_reciever)); + ret = mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name, cb_event[event].signal_name, cb_event[event].cb_func, (void *)&(mc_server->updated_cb[event])); MC_SAFE_FREE(interface_name); return ret; } -int mc_server_unset_playback_state_command_received_cb(mc_server_h server) +static int __mc_server_unset_updated_cb(mc_server_h server, mc_server_receive_event_e event) { int ret = MEDIA_CONTROLLER_ERROR_NONE; media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_warning("DEPRECATION WARNING: mc_server_set_playback_state_command_received_cb() is deprecated and will be removed from next release. Use mc_server_unset_playback_action_cmd_received_cb() instead."); + char *interface_name = NULL; mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); + mc_retvm_if(((event < MC_SERVER_EVENT_PLAYBACK_STATE) || (event >= MC_SERVER_EVENT_MAX)) , MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid event [%d]", event); + + interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_unregister_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_PLAYBACK_STATE_CMD); + ret = mc_ipc_unregister_listener(&mc_server->listeners, mc_server->dconn, interface_name, cb_event[event].signal_name); - mc_server->playback_state_reciever.callback = NULL; - mc_server->playback_state_reciever.user_data = NULL; + mc_server->updated_cb[event].callback = NULL; + mc_server->updated_cb[event].user_data = NULL; MC_SAFE_FREE(interface_name); return ret; } -int mc_server_set_playback_action_cmd_received_cb(mc_server_h server, mc_server_playback_action_cmd_received_cb callback, void *user_data) +int mc_server_set_playback_state_command_received_cb(mc_server_h server, mc_server_playback_state_command_received_cb callback, void *user_data) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL"); + mc_warning("DEPRECATION WARNING: mc_server_set_playback_state_command_received_cb() is deprecated and will be removed from next release. Use mc_server_set_playback_action_cmd_received_cb() instead."); - mc_server->playback_action_reciever.callback = callback; - mc_server->playback_action_reciever.user_data = user_data; + return __mc_server_set_updated_cb(server, MC_SERVER_EVENT_PLAYBACK_STATE, callback, user_data); +} - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_PLAYBACK_ACTION, __server_playback_action_cb, (void *)&(mc_server->playback_action_reciever)); +int mc_server_unset_playback_state_command_received_cb(mc_server_h server) +{ + mc_warning("DEPRECATION WARNING: mc_server_set_playback_state_command_received_cb() is deprecated and will be removed from next release. Use mc_server_unset_playback_action_cmd_received_cb() instead."); - MC_SAFE_FREE(interface_name); + return __mc_server_unset_updated_cb(server, MC_SERVER_EVENT_PLAYBACK_STATE); +} - return ret; +int mc_server_set_playback_action_cmd_received_cb(mc_server_h server, mc_server_playback_action_cmd_received_cb callback, void *user_data) +{ + return __mc_server_set_updated_cb(server, MC_SERVER_EVENT_PLAYBACK_ACTION, callback, user_data); } int mc_server_unset_playback_action_cmd_received_cb(mc_server_h server) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_unregister_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_PLAYBACK_ACTION); - - mc_server->playback_action_reciever.callback = NULL; - mc_server->playback_action_reciever.user_data = NULL; - - MC_SAFE_FREE(interface_name); - - return ret; + return __mc_server_unset_updated_cb(server, MC_SERVER_EVENT_PLAYBACK_ACTION); } int mc_server_set_playback_position_cmd_received_cb(mc_server_h server, mc_server_playback_position_cmd_received_cb callback, void *user_data) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL"); - - mc_server->playback_position_reciever.callback = callback; - mc_server->playback_position_reciever.user_data = user_data; - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_PLAYBACK_POS_CMD, __server_playback_position_cmd_cb, (void *)&(mc_server->playback_position_reciever)); - - MC_SAFE_FREE(interface_name); - - return ret; + return __mc_server_set_updated_cb(server, MC_SERVER_EVENT_PLAYBACK_POSITION, callback, user_data); } int mc_server_unset_playback_position_cmd_received_cb(mc_server_h server) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_unregister_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_PLAYBACK_POS_CMD); - - mc_server->playback_position_reciever.callback = NULL; - mc_server->playback_position_reciever.user_data = NULL; - - MC_SAFE_FREE(interface_name); - - return ret; + return __mc_server_unset_updated_cb(server, MC_SERVER_EVENT_PLAYBACK_POSITION); } int mc_server_set_shuffle_mode_cmd_received_cb(mc_server_h server, mc_server_shuffle_mode_cmd_received_cb callback, void *user_data) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL"); - - mc_server->shuffle_mode_reciever.callback = callback; - mc_server->shuffle_mode_reciever.user_data = user_data; - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_SHUFFLE_CMD, __server_shuffle_mode_cmd_cb, (void *)&(mc_server->shuffle_mode_reciever)); - - MC_SAFE_FREE(interface_name); - - return ret; + return __mc_server_set_updated_cb(server, MC_SERVER_EVENT_SHUFFLE, callback, user_data); } int mc_server_unset_shuffle_mode_cmd_received_cb(mc_server_h server) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_unregister_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_SHUFFLE_CMD); - - mc_server->shuffle_mode_reciever.callback = NULL; - mc_server->shuffle_mode_reciever.user_data = NULL; - - MC_SAFE_FREE(interface_name); - - return ret; + return __mc_server_unset_updated_cb(server, MC_SERVER_EVENT_SHUFFLE); } int mc_server_set_repeat_mode_cmd_received_cb(mc_server_h server, mc_server_repeat_mode_cmd_received_cb callback, void *user_data) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL"); - - mc_server->repeat_mode_reciever.callback = callback; - mc_server->repeat_mode_reciever.user_data = user_data; - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_REPEAT_CMD, __server_repeat_mode_cmd_cb, (void *)&(mc_server->repeat_mode_reciever)); - - MC_SAFE_FREE(interface_name); - - return ret; + return __mc_server_set_updated_cb(server, MC_SERVER_EVENT_REPEAT, callback, user_data); } int mc_server_unset_repeat_mode_cmd_received_cb(mc_server_h server) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_unregister_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_REPEAT_CMD); - - mc_server->repeat_mode_reciever.callback = NULL; - mc_server->repeat_mode_reciever.user_data = NULL; + return __mc_server_unset_updated_cb(server, MC_SERVER_EVENT_REPEAT); +} - MC_SAFE_FREE(interface_name); +int mc_server_set_playlist_cmd_received_cb(mc_server_h server, mc_server_playlist_cmd_received_cb callback, void *user_data) +{ + return __mc_server_set_updated_cb(server, MC_SERVER_EVENT_PLAYLIST, callback, user_data); +} - return ret; +int mc_server_unset_playlist_cmd_received_cb(mc_server_h server) +{ + return __mc_server_unset_updated_cb(server, MC_SERVER_EVENT_PLAYLIST); } int mc_server_set_custom_command_received_cb(mc_server_h server, mc_server_custom_command_received_cb callback, void *user_data) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL"); + mc_warning("DEPRECATION WARNING: mc_server_set_custom_command_received_cb() is deprecated and will be removed from next release. Use mc_server_set_custom_cmd_received_cb() instead."); - mc_server->custom_command_reciever.callback = callback; - mc_server->custom_command_reciever.user_data = user_data; - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_CUSTOM_COMMAND, __server_custom_command_cb, (void *)&(mc_server->custom_command_reciever)); - - MC_SAFE_FREE(interface_name); - - return ret; + return __mc_server_set_updated_cb(server, MC_SERVER_EVENT_CLIENT_CUSTOM_OLD, callback, user_data); } int mc_server_unset_custom_command_received_cb(mc_server_h server) { - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; + mc_warning("DEPRECATION WARNING: mc_server_unset_custom_command_received_cb() is deprecated and will be removed from next release. Use mc_server_unset_custom_cmd_received_cb() instead."); - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); + return __mc_server_unset_updated_cb(server, MC_SERVER_EVENT_CLIENT_CUSTOM_OLD); +} - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_unregister_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_CUSTOM_COMMAND); +int mc_server_set_custom_cmd_received_cb(mc_server_h server, mc_server_custom_cmd_received_cb callback, void *user_data) +{ + return __mc_server_set_updated_cb(server, MC_SERVER_EVENT_CLIENT_CUSTOM, callback, user_data); +} - mc_server->custom_command_reciever.callback = NULL; - mc_server->custom_command_reciever.user_data = NULL; +int mc_server_unset_custom_cmd_received_cb(mc_server_h server) +{ + return __mc_server_unset_updated_cb(server, MC_SERVER_EVENT_CLIENT_CUSTOM); +} - MC_SAFE_FREE(interface_name); +int mc_server_set_event_reply_received_cb(mc_server_h server, mc_server_event_reply_received_cb callback, void *user_data) +{ + return __mc_server_set_updated_cb(server, MC_SERVER_EVENT_REPLY_CUSTOM, callback, user_data); +} - return ret; +int mc_server_unset_event_reply_received_cb(mc_server_h server) +{ + return __mc_server_unset_updated_cb(server, MC_SERVER_EVENT_REPLY_CUSTOM); } int mc_server_send_command_reply(mc_server_h server, const char *client_name, int result_code, bundle *data) @@ -1302,80 +1239,6 @@ int mc_server_send_command_reply(mc_server_h server, const char *client_name, in return ret; } -int mc_server_set_playlist_cmd_received_cb(mc_server_h server, mc_server_playlist_cmd_received_cb callback, void *user_data) -{ - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL"); - - mc_server->play_playlist_reciever.callback = callback; - mc_server->play_playlist_reciever.user_data = user_data; - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_PLAYBACK_PLAYLIST, __server_play_playlist_cmd_cb, (void *)&(mc_server->play_playlist_reciever)); - - MC_SAFE_FREE(interface_name); - - return ret; -} - -int mc_server_unset_playlist_cmd_received_cb(mc_server_h server) -{ - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_unregister_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_PLAYBACK_PLAYLIST); - - mc_server->play_playlist_reciever.callback = NULL; - mc_server->play_playlist_reciever.user_data = NULL; - - MC_SAFE_FREE(interface_name); - - return ret; -} - -int mc_server_set_custom_cmd_received_cb(mc_server_h server, mc_server_custom_cmd_received_cb callback, void *user_data) -{ - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL"); - - mc_server->custom_cmd_reciever.callback = callback; - mc_server->custom_cmd_reciever.user_data = user_data; - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_CUSTOM_CMD, __server_custom_cmd_cb, (void *)&(mc_server->custom_cmd_reciever)); - - MC_SAFE_FREE(interface_name); - - return ret; -} - -int mc_server_unset_custom_cmd_received_cb(mc_server_h server) -{ - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_unregister_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_CUSTOM_CMD); - - mc_server->custom_cmd_reciever.callback = NULL; - mc_server->custom_cmd_reciever.user_data = NULL; - - MC_SAFE_FREE(interface_name); - - return ret; -} - int mc_server_send_cmd_reply(mc_server_h server, const char *client_name, const char *request_id, int result_code, bundle *data) { int ret = MEDIA_CONTROLLER_ERROR_NONE; @@ -1443,45 +1306,6 @@ int mc_server_send_custom_event(mc_server_h server, const char *client_name, con return ret; } -int mc_server_set_event_reply_received_cb(mc_server_h server, mc_server_event_reply_received_cb callback, void *user_data) -{ - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - mc_retvm_if(callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is NULL"); - mc_retvm_if(mc_server->event_reply_receiver.callback != NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "callback is already set"); - - mc_server->event_reply_receiver.callback = callback; - mc_server->event_reply_receiver.user_data = user_data; - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_register_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_EVENT_REPLY, - __server_event_reply_received_cb, (void *)&(mc_server->event_reply_receiver)); - - MC_SAFE_FREE(interface_name); - - return ret; -} - -int mc_server_unset_event_reply_received_cb(mc_server_h server) -{ - int ret = MEDIA_CONTROLLER_ERROR_NONE; - media_controller_server_s *mc_server = (media_controller_server_s *)server; - - mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL"); - - char *interface_name = mc_util_get_interface_name(MC_SERVER, mc_server->server_name); - ret = mc_ipc_unregister_listener(&mc_server->listeners, mc_server->dconn, interface_name, MC_DBUS_SIGNAL_NAME_EVENT_REPLY); - - mc_server->event_reply_receiver.callback = NULL; - mc_server->event_reply_receiver.user_data = NULL; - - MC_SAFE_FREE(interface_name); - - return ret; -} - int mc_server_set_icon(mc_server_h server, const char *uri) { int ret = MEDIA_CONTROLLER_ERROR_NONE; diff --git a/test/client_test/media_controller_client_test.c b/test/client_test/media_controller_client_test.c index f886349..8b2768f 100755 --- a/test/client_test/media_controller_client_test.c +++ b/test/client_test/media_controller_client_test.c @@ -42,6 +42,7 @@ static char *g_server_name; static char *g_playlist_name; static mc_playback_states_e g_playback_state; +static mc_playback_action_e g_playback_action; static unsigned long long g_playback_position; static mc_shuffle_mode_e g_shuffle_mode; static mc_repeat_mode_e g_repeat_mode; @@ -564,7 +565,6 @@ static gboolean _send() { g_print("== send command to latest server \n"); int ret = MEDIA_CONTROLLER_ERROR_NONE; - mc_playback_action_e action = MC_PLAYBACK_ACTION_PLAY; if (g_playback_state == MC_PLAYBACK_STATE_PLAYING) g_playback_state = MC_PLAYBACK_STATE_STOPPED; @@ -576,7 +576,12 @@ static gboolean _send() return FALSE; } - ret = mc_client_send_playback_action_cmd(g_mc_client, g_server_name, action, &g_request_id[TEST_REQ_PB_ACT_CMD]); + if (g_playback_action == MC_PLAYBACK_ACTION_PLAY) + g_playback_action = MC_PLAYBACK_ACTION_STOP; + else + g_playback_action = MC_PLAYBACK_ACTION_PLAY; + + ret = mc_client_send_playback_action_cmd(g_mc_client, g_server_name, g_playback_action, &g_request_id[TEST_REQ_PB_ACT_CMD]); if (ret != MEDIA_CONTROLLER_ERROR_NONE) { g_print("Fail to send playback action command [%d]", ret); return FALSE; @@ -1034,6 +1039,7 @@ int main(int argc, char **argv) g_io_add_watch(stdin_channel, G_IO_IN, (GIOFunc)input, NULL); g_playback_state = MC_PLAYBACK_STATE_PLAYING; + g_playback_action = MC_PLAYBACK_ACTION_PLAY; g_playback_position = 1000; g_shuffle_mode = MC_SHUFFLE_MODE_OFF; g_repeat_mode = MC_REPEAT_MODE_OFF; diff --git a/test/server_test/media_controller_server_test.c b/test/server_test/media_controller_server_test.c index 49db338..4dd19a4 100755 --- a/test/server_test/media_controller_server_test.c +++ b/test/server_test/media_controller_server_test.c @@ -86,7 +86,7 @@ int g_menu_send_event = 0; void __playback_state_command_received_cb(const char *client_name, mc_playback_states_e state, void *user_data) { - mc_debug("[%s] recieved playback state:[%d] from [%s]", client_name, state, client_name); + g_print("[Deprecated] srecieved playback state:[%d] from [%s]\n", state, client_name); } void __playback_action_received_cb(const char *client_name, const char *request_id, mc_playback_action_e action, void *user_data)