int mc_ipc_get_dbus_connection(GDBusConnection **conn, int *dref_count);
int mc_ipc_unref_dbus_connection(GDBusConnection *conn, int *dref_count);
int mc_ipc_register_listener(GList **manage_list, GDBusConnection *connection, const char *interface_name, const char *signal_name, mc_signal_received_cb callback, void *user_data);
-int mc_ipc_unregister_listener(GList **manage_list, GDBusConnection *connection, const char *interface_name, const char *signal_name);
-int mc_ipc_unregister_all_listener(GList **manage_list, GDBusConnection *connection);
+int mc_ipc_unregister_listener(GList **manage_list, const char *interface_name, const char *signal_name);
+int mc_ipc_unregister_all_listener(GList **manage_list);
int mc_ipc_send_message(GDBusConnection *connection, const char *dbus_name, const char *interface_name, const char* signal_name, const char* message, char **request_id);
int mc_ipc_send_reply(GDBusConnection *connection, const char *dbus_name, const char *interface_name, const char *signal_name, const char *message, const char *request_id);
int mc_ipc_send_message_to_server(mc_msg_type_e msg_type, mc_priv_type_e priv_type, const char *request_msg);
char *filter_data = (char *)g_strdup(server_name);
if (filter_data == NULL) {
mc_debug("memeory allocation failed");
- mc_ipc_unregister_listener(&mc_client->listeners, mc_client->dconn, filter_interface_name, signal_name);
+ mc_ipc_unregister_listener(&mc_client->listeners, filter_interface_name, signal_name);
MC_SAFE_FREE(filter_interface_name);
return MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY;
}
}
/*Unregister listener*/
- ret = mc_ipc_unregister_listener(&mc_client->listeners, mc_client->dconn, filter_interface_name, signal_name);
+ ret = mc_ipc_unregister_listener(&mc_client->listeners, filter_interface_name, signal_name);
if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
MC_SAFE_FREE(filter_interface_name);
return ret;
mc_debug("[%d][%s]", idx, interface_name);
/*Unregister listener*/
- ret = mc_ipc_unregister_listener(&mc_client->listeners, mc_client->dconn, interface_name, signal_name);
+ ret = mc_ipc_unregister_listener(&mc_client->listeners, interface_name, signal_name);
if (ret != MEDIA_CONTROLLER_ERROR_NONE)
mc_error("Fail mc_ipc_unregister_listener");
if ((event == MC_CLIENT_EVENT_CMD_REPLY) || (event == MC_CLIENT_EVENT_SERVER_CUSTOM)) {
interface_name = mc_util_get_interface_name(MC_CLIENT, mc_client->client_name);
- ret = mc_ipc_unregister_listener(&mc_client->listeners, mc_client->dconn, interface_name, cb_event[event].signal_name);
+ ret = mc_ipc_unregister_listener(&mc_client->listeners, interface_name, cb_event[event].signal_name);
MC_SAFE_FREE(interface_name);
} else {
- ret = mc_ipc_unregister_listener(&mc_client->listeners, mc_client->dconn, MC_DBUS_UPDATE_INTERFACE, cb_event[event].signal_name);
+ ret = mc_ipc_unregister_listener(&mc_client->listeners, MC_DBUS_UPDATE_INTERFACE, cb_event[event].signal_name);
ret = __mc_client_unregister_filter_listener(mc_client, &mc_client->updated_cb[event].filter_list, NULL, cb_event[event].signal_name);
}
mc_retvm_if(((subscription_type < MC_SUBSCRIPTION_TYPE_SERVER_STATE) || (subscription_type > MC_SUBSCRIPTION_TYPE_REPEAT_ABILITY)) , MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid subscription_type [%d]", subscription_type);
mc_retvm_if(mc_client->updated_cb[subscription_type].callback == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid callback");
- ret = mc_ipc_unregister_listener(&mc_client->listeners, mc_client->dconn, MC_DBUS_UPDATE_INTERFACE, cb_event[subscription_type].signal_name);
+ ret = mc_ipc_unregister_listener(&mc_client->listeners, MC_DBUS_UPDATE_INTERFACE, cb_event[subscription_type].signal_name);
if (subscription_type == MC_SUBSCRIPTION_TYPE_METADATA) {
ret = __mc_client_register_filter_listener(mc_client, &mc_client->updated_cb[subscription_type].filter_list, server_name, cb_event[subscription_type].signal_name,
}
/*Unregister all listener*/
- ret = mc_ipc_unregister_all_listener(&mc_client->listeners, mc_client->dconn);
+ ret = mc_ipc_unregister_all_listener(&mc_client->listeners);
if (ret != MEDIA_CONTROLLER_ERROR_NONE)
mc_error("Error mc_ipc_unregister_all_listener [%d]", ret);
static void _mc_ipc_signal_unsubscribe(GDBusConnection *connection, guint handler)
{
+ mc_retm_if(connection == NULL, "invalid connection");
+ mc_retm_if(handler == 0, "invalid handler");
+
g_dbus_connection_signal_unsubscribe(connection, handler);
}
return MEDIA_CONTROLLER_ERROR_NONE;
}
-int mc_ipc_unregister_listener(GList **listener_list, GDBusConnection *connection, const char *interface_name, const char *signal_name)
+int mc_ipc_unregister_listener(GList **listener_list, const char *interface_name, const char *signal_name)
{
int i = 0;
int list_len = 0;
char *key = NULL;
mc_retvm_if(listener_list == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "listener_list is NULL");
- mc_retvm_if(connection == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "connection is NULL");
mc_retvm_if(interface_name == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "interface_name is NULL");
mc_retvm_if(signal_name == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "signal_name is NULL");
for (i = list_len; i >= 0; i--) {
mc_ipc_listener_s *listener = (mc_ipc_listener_s *)g_list_nth_data(*listener_list, i);
if (listener && !g_strcmp0(listener->key, key)) {
- _mc_ipc_signal_unsubscribe(connection, listener->handler);
+ _mc_ipc_signal_unsubscribe(listener->dbus_conn, listener->handler);
MC_SAFE_FREE(listener->interface_name);
MC_SAFE_FREE(listener->signal_name);
MC_SAFE_G_FREE(listener->key);
return MEDIA_CONTROLLER_ERROR_NONE;
}
-int mc_ipc_unregister_all_listener(GList **listener_list, GDBusConnection *connection)
+int mc_ipc_unregister_all_listener(GList **listener_list)
{
int i = 0;
int list_len = 0;
- mc_retvm_if(connection == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "connection is NULL");
mc_retvm_if(listener_list == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "listener_list is NULL");
list_len = g_list_length(*listener_list) - 1;
mc_ipc_listener_s *listener = (mc_ipc_listener_s *)g_list_nth_data(*listener_list, i);
if (listener) {
mc_debug("listener[%s] is unregistered. listener_cnt[%d]", listener->key, g_list_length(*listener_list));
- _mc_ipc_signal_unsubscribe(connection, listener->handler);
+ _mc_ipc_signal_unsubscribe(listener->dbus_conn, listener->handler);
MC_SAFE_FREE(listener->interface_name);
MC_SAFE_FREE(listener->signal_name);
MC_SAFE_G_FREE(listener->key);
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, cb_event[event].signal_name);
+ ret = mc_ipc_unregister_listener(&mc_server->listeners, interface_name, cb_event[event].signal_name);
mc_server->updated_cb[event].callback = NULL;
mc_server->updated_cb[event].user_data = NULL;
mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Handle is NULL");
- ret = mc_ipc_unregister_all_listener(&mc_server->listeners, mc_server->dconn);
+ ret = mc_ipc_unregister_all_listener(&mc_server->listeners);
if (ret != MEDIA_CONTROLLER_ERROR_NONE)
mc_error("fail mc_ipc_unregister_all_listener [%d]", ret);