{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
mc_playback_h playback = NULL;
+ media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
+ mc_retm_if_failed(receiver && receiver->callback);
- media_controller_client_s *mc_client = (media_controller_client_s *)user_data;
- mc_retm_if_failed(mc_client);
-
- mc_playback_updated_cb callback = (mc_playback_updated_cb)mc_client->updated_cb[MC_CLIENT_EVENT_PLAYBACK_INFO].callback;
- mc_retm_if_failed(callback);
+ mc_playback_updated_cb callback = (mc_playback_updated_cb)receiver->callback;
mc_retm_if_failed(message);
mc_secure_debug("__client_playback_cb(%s, %s, %s, %s, %p)", interface_name, signal_name, message, request_id, user_data);
- ret = _mc_db_get_playback_info(mc_client->db_handle, message, &playback);
+ ret = _mc_db_get_playback_info(receiver->db_handle, message, &playback);
if (ret != MEDIA_CONTROLLER_ERROR_NONE)
mc_error("Fail to _mc_db_get_playback_info");
- callback(message, playback, mc_client->updated_cb[MC_CLIENT_EVENT_PLAYBACK_INFO].user_data);
+ callback(message, playback, receiver->user_data);
mc_client_destroy_playback(playback);
}
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
mc_metadata_h metadata = NULL;
+ media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
+ mc_retm_if_failed(receiver && receiver->callback);
- media_controller_client_s *mc_client = (media_controller_client_s *)user_data;
- mc_retm_if_failed(mc_client);
-
- mc_metadata_updated_cb callback = (mc_metadata_updated_cb)mc_client->updated_cb[MC_CLIENT_EVENT_METADATA].callback;
- mc_retm_if_failed(callback);
+ mc_metadata_updated_cb callback = (mc_metadata_updated_cb)receiver->callback;
mc_retm_if_failed(message);
mc_secure_debug("__client_metadata_cb(%s, %s, %s, %s, %p)", interface_name, signal_name, message, request_id, user_data);
- ret = _mc_db_get_metadata_info(mc_client->db_handle, message, &metadata);
+ ret = _mc_db_get_metadata_info(receiver->db_handle, message, &metadata);
if (ret != MEDIA_CONTROLLER_ERROR_NONE)
mc_error("Fail to _mc_db_get_metadata_info");
- callback(message, metadata, mc_client->updated_cb[MC_CLIENT_EVENT_METADATA].user_data);
+ callback(message, metadata, receiver->user_data);
mc_metadata_destroy(metadata);
}
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
mc_playback_ability_h ability = NULL;
+ media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
+ mc_retm_if_failed(receiver && receiver->callback);
- media_controller_client_s *mc_client = (media_controller_client_s *)user_data;
- mc_retm_if_failed(mc_client);
-
- mc_playback_ability_updated_cb callback = (mc_playback_ability_updated_cb)mc_client->updated_cb[MC_CLIENT_EVENT_PLAYBACK_ABILITY].callback;
- mc_retm_if_failed(callback);
+ mc_playback_ability_updated_cb callback = (mc_playback_ability_updated_cb)receiver->callback;
mc_retm_if_failed(message);
mc_secure_debug("__client_playback_ability_cb(%s, %s, %s, %s, %p)", interface_name, signal_name, message, request_id, user_data);
- ret = _mc_db_get_pb_action_ability(mc_client->db_handle, message, &ability);
+ ret = _mc_db_get_pb_action_ability(receiver->db_handle, message, &ability);
if (ret != MEDIA_CONTROLLER_ERROR_NONE)
mc_error("Fail to _mc_db_get_pb_action_ability");
- callback(message, ability, mc_client->updated_cb[MC_CLIENT_EVENT_PLAYBACK_ABILITY].user_data);
+ callback(message, ability, receiver->user_data);
mc_playback_ability_destroy(ability);
}
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
unsigned int ability = 0;
+ media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
+ mc_retm_if_failed(receiver && receiver->callback);
- media_controller_client_s *mc_client = (media_controller_client_s *)user_data;
- mc_retm_if_failed(mc_client);
-
- mc_ability_supported_items_updated_cb callback = (mc_ability_supported_items_updated_cb)mc_client->updated_cb[MC_CLIENT_EVENT_DISPLAY_MODE_ABILITY].callback;
- mc_retm_if_failed(callback);
+ mc_ability_supported_items_updated_cb callback = (mc_ability_supported_items_updated_cb)receiver->callback;
mc_retm_if_failed(message);
mc_secure_debug("__client_display_mode_ability_cb(%s, %s, %s, %s, %p)", interface_name, signal_name, message, request_id, user_data);
- ret = _mc_db_get_display_mode_ability(mc_client->db_handle, message, &ability);
+ ret = _mc_db_get_display_mode_ability(receiver->db_handle, message, &ability);
if (ret != MEDIA_CONTROLLER_ERROR_NONE)
mc_error("Fail to _mc_db_get_display_mode_ability");
- callback(message, ability, mc_client->updated_cb[MC_CLIENT_EVENT_DISPLAY_MODE_ABILITY].user_data);
+ callback(message, ability, receiver->user_data);
}
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
unsigned int ability = 0;
+ media_controller_receiver_s *receiver = (media_controller_receiver_s *)user_data;
+ mc_retm_if_failed(receiver && receiver->callback);
- media_controller_client_s *mc_client = (media_controller_client_s *)user_data;
- mc_retm_if_failed(mc_client);
-
- mc_ability_supported_items_updated_cb callback = (mc_ability_supported_items_updated_cb)mc_client->updated_cb[MC_CLIENT_EVENT_DISPLAY_ROTATION_ABILITY].callback;
- mc_retm_if_failed(callback);
+ mc_ability_supported_items_updated_cb callback = (mc_ability_supported_items_updated_cb)receiver->callback;
mc_retm_if_failed(message);
mc_secure_debug("__client_display_rotation_ability_cb(%s, %s, %s, %s, %p)", interface_name, signal_name, message, request_id, user_data);
- ret = _mc_db_get_display_rotation_ability(mc_client->db_handle, message, &ability);
+ ret = _mc_db_get_display_rotation_ability(receiver->db_handle, message, &ability);
if (ret != MEDIA_CONTROLLER_ERROR_NONE)
mc_error("Fail to _mc_db_get_display_rotation_ability");
- callback(message, ability, mc_client->updated_cb[MC_CLIENT_EVENT_DISPLAY_ROTATION_ABILITY].user_data);
+ callback(message, ability, receiver->user_data);
}
if ((event == MC_CLIENT_EVENT_CMD_REPLY) || (event == MC_CLIENT_EVENT_SERVER_CUSTOM)) {
#endif
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]));
-
- g_free(interface_name);
-
} else if ((event == MC_CLIENT_EVENT_PLAYBACK_INFO) || (event == MC_CLIENT_EVENT_METADATA) || (event == MC_CLIENT_EVENT_PLAYBACK_ABILITY)
|| (event == MC_CLIENT_EVENT_DISPLAY_MODE_ABILITY) || (event == MC_CLIENT_EVENT_DISPLAY_ROTATION_ABILITY)) {
- ret = _mc_ipc_register_listener(&mc_client->listeners, mc_client->dconn, MC_DBUS_UPDATE_INTERFACE, cb_event[event].signal_name,
- cb_event[event].cb_func, (void *)(mc_client));
+ interface_name = g_strdup(MC_DBUS_UPDATE_INTERFACE);
+ mc_client->updated_cb[event].db_handle = mc_client->db_handle;
} else {
- ret = _mc_ipc_register_listener(&mc_client->listeners, mc_client->dconn, MC_DBUS_UPDATE_INTERFACE, cb_event[event].signal_name,
- cb_event[event].cb_func, (void *)&(mc_client->updated_cb[event]));
+ interface_name = g_strdup(MC_DBUS_UPDATE_INTERFACE);
}
+ 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]));
+
+ g_free(interface_name);
+
return ret;
}
mc_client->updated_cb[event].callback = NULL;
mc_client->updated_cb[event].user_data = NULL;
mc_client->updated_cb[event].filter_list = NULL;
+ mc_client->updated_cb[event].db_handle = NULL;
return ret;
}
if (subscription_type == MC_SUBSCRIPTION_TYPE_METADATA || subscription_type == MC_SUBSCRIPTION_TYPE_PLAYBACK_ABILITY
|| subscription_type == MC_SUBSCRIPTION_TYPE_DISPLAY_MODE_ABILITY || subscription_type == MC_SUBSCRIPTION_TYPE_DISPLAY_ROTATION_ABILITY) {
- ret = __mc_client_register_filter_listener(mc_client, &mc_client->updated_cb[subscription_type].filter_list, server_name, cb_event[subscription_type].signal_name,
- cb_event[subscription_type].cb_func, (void *)(mc_client));
- } else {
- ret = __mc_client_register_filter_listener(mc_client, &mc_client->updated_cb[subscription_type].filter_list, server_name, cb_event[subscription_type].signal_name,
- cb_event[subscription_type].cb_func, (void *)&(mc_client->updated_cb[subscription_type]));
+ mc_client->updated_cb[subscription_type].db_handle = mc_client->db_handle;
}
+ ret = __mc_client_register_filter_listener(mc_client, &mc_client->updated_cb[subscription_type].filter_list, server_name, cb_event[subscription_type].signal_name,
+ cb_event[subscription_type].cb_func, (void *)&(mc_client->updated_cb[subscription_type]));
+
return ret;
}