typedef bool (*mc_activated_server_cb)(const char *server_name, void *user_data);
/**
+ * @deprecated Deprecated since 4.0. Use mc_cmd_reply_received_cb() instead.
* @brief Called when receiving the command processing result from the server.
* @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
*
- * @remarks The callback is called in the dbus event loop. @a data should be released using @c bundle_free().
+ * @remarks The callback is called in the dbus event loop. @a data should be released using bundle_free().
*
* @param[in] server_name The app_id of the media controller server which sent the reply, It can be used only in the callback. To use outside, make a copy.
* @param[in] result_code The result code of custom command
*
* @see mc_client_send_custom_command()
*/
-typedef void (*mc_command_reply_received_cb)(const char *server_name, int result_code, bundle *data, void *user_data);
+typedef void (*mc_command_reply_received_cb)(const char *server_name, int result_code, bundle *data, void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @brief Called when the result of the command from the server is received.
+ * @since_tizen 4.0
+ *
+ * @remarks The callback is called in the dbus event loop. @a data should be released using bundle_free().
+ *
+ * @param[in] server_name The app_id of the media controller server which sent the reply, It can be used only in the callback. To use outside, make a copy.
+ * @param[in] request_id The id of the command request
+ * @param[in] result_code The result code of the action
+ * @param[in] data The extra data
+ * @param[in] user_data The user data passed from the mc_client_send_custom_command() function
+ *
+ * @pre mc_client_send_custom_cmd()
+ * @pre mc_client_set_cmd_reply_cb()
+ *
+ * @see mc_client_send_custom_cmd()
+ */
+typedef void (*mc_cmd_reply_received_cb)(const char *server_name, const char *request_id, int result_code, bundle *data, void *user_data);
/**
* @brief Called when requesting the list of subscribed servers.
* @privlevel public
* @privilege %http://tizen.org/privilege/mediacontroller.client
*
- * @remarks The @a client should be released using @c mc_client_destroy(). And you can create only one client handle for each process.
+ * @remarks The @a client should be released using @c mc_client_destroy(). You can create only one client handle for each process.
*
* @param[out] client The handle to the media controller client
* @return @c 0 on success,
*/
int mc_client_unset_repeat_mode_update_cb(mc_client_h client);
+/**
+ * @brief Sets the callback for receiving the result of the command from the media controller server.
+ * @details The media controller client which calls this function will receives the result of the command from all media controller servers.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.client
+ *
+ * @param[in] client The handle to the media controller client
+ * @param[in] callback The callback to be invoked when the reply is received
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller client handle by calling mc_client_create().
+ * @see mc_client_create()
+ * @see mc_client_unset_cmd_reply_received_cb()
+ * @see mc_client_destroy()
+ */
+int mc_client_set_cmd_reply_received_cb(mc_client_h client, mc_cmd_reply_received_cb callback, void *user_data);
+
+/**
+ * @brief Unsets the callback for receiving common reply of the media controller server.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.client
+ *
+ * @param[in] client The handle to the media controller client
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller client handle by calling mc_client_create().
+ * @see mc_client_create()
+ * @see mc_client_set_cmd_reply_received_cb()
+ * @see mc_client_destroy()
+ */
+int mc_client_unset_cmd_reply_received_cb(mc_client_h client);
+
/**
* @brief Subscribes media controller server for monitoring status.
* @details If media controller client subscribe media controller server, \n
int mc_client_foreach_server(mc_client_h client, mc_activated_server_cb callback, void *user_data);
/**
+ * @deprecated Deprecated since 4.0. Use mc_client_send_playback_action_cmd() instead.
* @brief Sends the playback state command to server.
* @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
*
* @see mc_client_create()
* @see mc_client_get_server_playback_info()
*/
-int mc_client_send_playback_state_command(mc_client_h client, const char *server_name, mc_playback_states_e state);
+int mc_client_send_playback_state_command(mc_client_h client, const char *server_name, mc_playback_states_e state) TIZEN_DEPRECATED_API;
+
+/**
+ * @brief Sends the playback action command to server.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.client
+ *
+ * @remarks The @a request_id should be released using free().\n
+ * If the @a request_id is null, the server will not send the reply of the command.
+ *
+ * @param[in] client The handle to the media controller client
+ * @param[in] server_name The app_id of the media controller server
+ * @param[in] action The playback action command to send to the media controller server
+ * @param[out] request_id The id of the command request, it will be passed to the mc_cmd_reply_received_cb() function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller client handle by calling mc_client_create().
+ * @see mc_client_create()
+ * @see mc_client_get_server_playback_info()
+ * @see mc_client_set_cmd_reply_received_cb()
+ */
+int mc_client_send_playback_action_cmd(mc_client_h client, const char *server_name, mc_playback_action_e action, char **request_id);
+
+/**
+ * @brief Sends the playback position command to server.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.client
+ *
+ * @remarks The @a request_id should be released using free().\n
+ * If the @a request_id is null, the server will not send the reply of the command.
+ *
+ * @param[in] client The handle to the media controller client
+ * @param[in] server_name The app_id of the media controller server
+ * @param[in] position The position of the playback in milliseconds to send to media controller server.
+ * @param[out] request_id The id of the command request, it will be passed to the mc_cmd_reply_received_cb() function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller client handle by calling mc_client_create().
+ * @see mc_client_create()
+ * @see mc_client_get_server_playback_info()
+ * @see mc_client_set_cmd_reply_received_cb()
+ */
+int mc_client_send_playback_position_cmd(mc_client_h client, const char *server_name, unsigned long long position, char **request_id);
+
+/**
+ * @brief Sends the shuffle mode command to server.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.client
+ *
+ * @remarks The @a request_id should be released using free().\n
+ * If the @a request_id is null, the server will not send the reply of the command.
+ *
+ * @param[in] client The handle to the media controller client
+ * @param[in] server_name The app_id of the media controller server
+ * @param[in] shuffle_mode The shuffle mode to send to media controller server
+ * @param[out] request_id The id of the command request, it will be passed to the mc_cmd_reply_received_cb() function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller client handle by calling mc_client_create().
+ * @see mc_client_create()
+ * @see mc_client_get_server_playback_info()
+ * @see mc_client_set_cmd_reply_received_cb()
+ */
+int mc_client_send_shuffle_mode_cmd(mc_client_h client, const char *server_name, mc_shuffle_mode_e shuffle_mode, char **request_id);
+
+/**
+ * @brief Sends the repeat mode command to server.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.client
+ *
+ * @remarks The @a request_id should be released using free().\n
+ * If the @a request_id is null, the server will not send the reply of the command.
+ *
+ * @param[in] client The handle to the media controller client
+ * @param[in] server_name The app_id of the media controller server
+ * @param[in] repeat_mode The repeat mode to send to media controller server
+ * @param[out] request_id The id of the command request, it will be passed to the mc_cmd_reply_received_cb() function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller client handle by calling mc_client_create().
+ * @see mc_client_create()
+ * @see mc_client_get_server_playback_info()
+ * @see mc_client_set_cmd_reply_received_cb()
+ */
+int mc_client_send_repeat_mode_cmd(mc_client_h client, const char *server_name, mc_repeat_mode_e repeat_mode, char **request_id);
/**
* @brief Sends the custom command to server.
* @pre Create a media controller client handle by calling mc_client_create().
* @see mc_client_create()
*/
-int mc_client_send_custom_command(mc_client_h client, const char *server_name, const char *command, bundle *data, mc_command_reply_received_cb callback, void *user_data);
+int mc_client_send_custom_command(mc_client_h client, const char *server_name, const char *command, bundle *data, mc_command_reply_received_cb callback, void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @brief Sends the playlist command to server.
+ * @details The media controller client can send "index" of the playlist to the media controller server with playback action and position.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.client
+ *
+ * @remarks The @a request_id should be released using free().\n
+ * If the @a request_id is null, the server will not send the reply of the command.
+ *
+ * @param[in] client The handle to the media controller client
+ * @param[in] server_name The app_id of the media controller server
+ * @param[in] playlist_name The playlist name of the server
+ * @param[in] index The index of the media in playlist to send to the media controller server
+ * @param[in] action The playback action command to send to the media controller server
+ * @param[in] position The position of the playback in milliseconds to send to media controller server
+ * @param[out] request_id The id of the command request, it will be passed to the mc_cmd_reply_received_cb() function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller client handle by calling mc_client_create().
+ * @see mc_client_create()
+ * @see mc_client_set_cmd_reply_received_cb()
+ */
+int mc_client_send_playlist_cmd(mc_client_h client, const char *server_name, const char *playlist_name, const char *index, mc_playback_action_e action, unsigned long long position, char **request_id);
+
+/**
+ * @brief Sends the custom command to server.
+ * @details If the server sends the result of the command, the media controller client will get the result of the custom command by mc_cmd_reply_received_cb() callback.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.client
+ *
+ * @remarks The @a request_id should be released using free().\n
+ * If the @a request_id is null, the server will not send the reply of the command.
+ *
+ * @param[in] client The handle to the media controller client
+ * @param[in] server_name The app_id of the media controller server
+ * @param[in] command The command to be sent
+ * @param[in] data The extra data
+ * @param[out] request_id The id of the command request, it will be passed to the mc_cmd_reply_received_cb() function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller client handle by calling mc_client_create().
+ * @see mc_client_create()
+ * @see mc_client_set_cmd_reply_received_cb()
+ */
+int mc_client_send_custom_cmd(mc_client_h client, const char *server_name, const char *command, bundle *data, char **request_id);
/**
* @brief Destroys client.
*/
/**
- * @brief Called when the Server received playback state command from the client.
+ * @deprecated Deprecated since 4.0. Use mc_server_playback_action_cmd_received_cb() instead.
+ * @brief Called when the server receives the playback state from the client.
* @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
*
- * @details This callback is called when server received playback state recommand from client.
- *
* @remarks The callback is called in the dbus event loop.
*
- * @param[in] client_name The app_id of the media controller client, it can be used only in the callback. To use outside, make a copy.
+ * @param[in] client_name The app_id of the media controller client. It can be used only in the callback. To use outside, make a copy.
* @param[in] state The received playback state
* @param[in] user_data The user data passed from the mc_server_set_playback_state_command_received_cb() function
*
typedef void (*mc_server_playback_state_command_received_cb)(const char* client_name, mc_playback_states_e state, void *user_data);
/**
- * @brief Called when the Server received custom command from the client.
- * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
+ * @brief Called when the server receives the playback action command from the client.
+ * @since_tizen 4.0
+ *
+ * @remarks The callback is called in the dbus event loop.\n
+ * If @a request_id is not null, the server should send the reply to the client with the @a request_id.
+ *
+ * @param[in] client_name The app_id of the media controller client. It can be used only in the callback. To use outside, make a copy.
+ * @param[in] request_id The request_id of the media controller client.
+ * @param[in] action The received playback action
+ * @param[in] user_data The user data passed from the mc_server_set_playback_action_cmd_received_cb() function
+ *
+ * @pre mc_server_set_playback_action_cmd_received_cb()
+ *
+ * @see mc_server_set_playback_action_cmd_received_cb()
+ * @see mc_server_send_cmd_reply()
+ */
+typedef void (*mc_server_playback_action_cmd_received_cb)(const char* client_name, const char *request_id, mc_playback_action_e action, void *user_data);
+
+/**
+ * @brief Called when the server receives the playback position from the client.
+ * @since_tizen 4.0
+ *
+ * @remarks The callback is called in the dbus event loop.\n
+ * If @a request_id is not null, the server should send the reply to the client with the @a request_id.
+ *
+ * @param[in] client_name The app_id of the media controller client. It can be used only in the callback. To use outside, make a copy.
+ * @param[in] request_id The request_id of the media controller client.
+ * @param[in] position The received playback position (milliseconds)
+ * @param[in] user_data The user data passed from the mc_server_set_playback_position_cmd_received_cb() function
+ *
+ * @pre mc_server_set_playback_position_cmd_received_cb()
+ *
+ * @see mc_server_set_playback_position_cmd_received_cb()
+ * @see mc_server_send_cmd_reply()
+ */
+typedef void (*mc_server_playback_position_cmd_received_cb)(const char* client_name, const char *request_id, unsigned long long position, void *user_data);
+
+/**
+ * @brief Called when the server receives the shuffle mode from the client.
+ * @since_tizen 4.0
+ *
+ * @remarks The callback is called in the dbus event loop.\n
+ * If @a request_id is not null, the server should send the reply to the client with the @a request_id.
*
- * @details This callback is called when server received custom recommand from client.
+ * @param[in] client_name The app_id of the media controller client. It can be used only in the callback. To use outside, make a copy.
+ * @param[in] request_id The request_id of the media controller client.
+ * @param[in] shuffle_mode The received shuffle_mode
+ * @param[in] user_data The user data passed from the mc_server_set_shuffle_mode_cmd_received_cb() function
+ *
+ * @pre mc_server_set_shuffle_mode_cmd_received_cb()
+ *
+ * @see mc_server_set_shuffle_mode_cmd_received_cb()
+ * @see mc_server_send_cmd_reply()
+ */
+typedef void (*mc_server_shuffle_mode_cmd_received_cb)(const char* client_name, const char *request_id, mc_shuffle_mode_e shuffle_mode, void *user_data);
+
+/**
+ * @brief Called when the server receives the repeat mode from the client.
+ * @since_tizen 4.0
+ *
+ * @remarks The callback is called in the dbus event loop.\n
+ * If @a request_id is not null, the server should send the reply to the client with the @a request_id.
+ *
+ * @param[in] client_name The app_id of the media controller client. It can be used only in the callback. To use outside, make a copy.
+ * @param[in] request_id The request_id of the media controller client.
+ * @param[in] repeat_mode The received repeat mode
+ * @param[in] user_data The user data passed from the mc_server_set_repeat_mode_cmd_received_cb() function
+ *
+ * @pre mc_server_set_repeat_mode_cmd_received_cb()
+ *
+ * @see mc_server_set_repeat_mode_cmd_received_cb()
+ * @see mc_server_send_cmd_reply()
+ */
+typedef void (*mc_server_repeat_mode_cmd_received_cb)(const char* client_name, const char *request_id, mc_repeat_mode_e repeat_mode, void *user_data);
+
+/**
+ * @deprecated Deprecated since 4.0. Use mc_server_custom_cmd_received_cb() instead.
+ * @brief Called when the Server receives custom command from the client.
+ * @details This callback is called when server receives custom command from client.
* If there is reply for command, call mc_server_send_command_reply() function.
+ * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
*
- * @remarks The callback is called in the dbus event loop.
+ * @remarks The callback is called in the dbus event loop. @a data should be released using bundle_free().\n
+ * If @a request_id is not null, the server should send the reply to the client with the @a request_id.
*
- * @param[in] client_name The app_id of the media controller client, it can be used only in the callback. To use outside, make a copy.
- * @param[in] command The received command
+ * @param[in] client_name The app_id of the media controller client. It can be used only in the callback. To use outside, make a copy.
+ * @param[in] command The received command. It can be used only in the callback. To use outside, make a copy.
* @param[in] data The extra data
* @param[in] user_data The user data passed from the mc_server_set_custom_command_received_cb() function
*
*
* @see mc_server_set_custom_command_received_cb()
*/
-typedef void (*mc_server_custom_command_received_cb)(const char* client_name, const char *command, bundle *data, void *user_data);
+typedef void (*mc_server_custom_command_received_cb)(const char* client_name, const char *command, bundle *data, void *user_data) TIZEN_DEPRECATED_API;
+
+/**
+ * @brief Called when the Server receives playlist command from the client.
+ * @since_tizen 4.0
+ *
+ * @remarks The callback is called in the dbus event loop. \n
+ * If @a request_id is not null, the server should send the reply to the client with the @a request_id.
+ *
+ * @param[in] client_name The app_id of the media controller client. It can be used only in the callback. To use outside, make a copy.
+ * @param[in] request_id The request_id of the media controller client.
+ * @param[in] playlist_name The name of the server playlist. It can be used only in the callback. To use outside, make a copy.
+ * @param[in] index The index of the media in playlist. It can be used only in the callback. To use outside, make a copy.
+ * @param[in] action The received playback action
+ * @param[in] position The received playback position (milliseconds)
+ * @param[in] user_data The user data passed from the mc_server_set_playlist_cmd_received_cb() function
+ *
+ * @pre mc_server_set_playlist_cmd_received_cb()
+ *
+ * @see mc_server_set_playlist_cmd_received_cb()
+ * @see mc_server_send_cmd_reply()
+ */
+typedef void (*mc_server_playlist_cmd_received_cb)(const char* client_name, const char *request_id, const char *playlist_name, const char *index, mc_playback_action_e action, unsigned long long position, void *user_data);
+
+/**
+ * @brief Called when the Server receives custom command from the client.
+ * @details This callback is called when server receives custom command from client.
+ * If you want to reply to the command, call mc_server_send_cmd_reply() function.
+ * @since_tizen 4.0
+ *
+ * @remarks The callback is called in the dbus event loop. @a data should be released using bundle_free().\n
+ * If @a request_id is not null, the server should send the reply to the client with the @a request_id.
+ *
+ * @param[in] client_name The app_id of the media controller client. It can be used only in the callback. To use outside, make a copy.
+ * @param[in] request_id The id of the command request
+ * @param[in] command The received command. It can be used only in the callback. To use outside, make a copy.
+ * @param[in] data The extra data
+ * @param[in] user_data The user data passed from the mc_server_set_custom_cmd_received_cb() function
+ *
+ * @pre mc_server_set_custom_cmd_received_cb()
+ *
+ * @see mc_server_set_custom_cmd_received_cb()
+ * @see mc_server_unset_custom_cmd_received_cb()
+ * @see mc_server_send_cmd_reply()
+ */
+typedef void (*mc_server_custom_cmd_received_cb)(const char* client_name, const char *request_id, const char *command, bundle *data, void *user_data);
/**
* @brief Creates a media controller server.
* @privlevel public
* @privilege %http://tizen.org/privilege/mediacontroller.server
*
- * @remarks The @a server should be released using mc_server_destroy(). And you can create only one server handle for each process.
+ * @remarks The @a server should be released using mc_server_destroy(). You can create only one server handle for each process.
*
* @param[out] server The handle to media controller server
* @return @c 0 on success,
int mc_server_update_repeat_mode(mc_server_h server, mc_repeat_mode_e mode);
/**
+ * @deprecated Deprecated since 4.0. Use mc_server_set_playback_action_cmd_received_cb() instead.
* @brief Sets the callback for receiving playback state command from client.
* @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
*
* @see mc_server_create()
* @see mc_server_destroy()
*/
-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 mc_server_set_playback_state_command_received_cb(mc_server_h server, mc_server_playback_state_command_received_cb callback, void *user_data) TIZEN_DEPRECATED_API;
/**
+ * @deprecated Deprecated since 4.0. Use mc_server_unset_playback_action_cmd_received_cb() instead.
* @brief Unsets the callback for receiving playback state command from client.
* @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
*
* @see mc_server_create()
* @see mc_server_destroy()
*/
-int mc_server_unset_playback_state_command_received_cb(mc_server_h server);
+int mc_server_unset_playback_state_command_received_cb(mc_server_h server) TIZEN_DEPRECATED_API;
+
+/**
+ * @brief Sets the callback for receiving playback action command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @param[in] callback The callback to be invoked when media controller server receives playback action from client.
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_set_playback_action_cmd_received_cb(mc_server_h server, mc_server_playback_action_cmd_received_cb callback, void *user_data);
+
+/**
+ * @brief Unsets the callback for receiving playback action command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_unset_playback_action_cmd_received_cb(mc_server_h server);
+
+/**
+ * @brief Sets the callback for receiving playback position command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @param[in] callback The callback to be invoked when media controller server receives position command from client.
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_set_playback_position_cmd_received_cb(mc_server_h server, mc_server_playback_position_cmd_received_cb callback, void *user_data);
/**
+ * @brief Unsets the callback for receiving playback position command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_unset_playback_position_cmd_received_cb(mc_server_h server);
+
+/**
+ * @brief Sets the callback for receiving shuffle mode command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @param[in] callback The callback to be invoked when media controller server receives shuffle mode from client.
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_set_shuffle_mode_cmd_received_cb(mc_server_h server, mc_server_shuffle_mode_cmd_received_cb callback, void *user_data);
+
+/**
+ * @brief Unsets the callback for receiving shuffle mode command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_unset_shuffle_mode_cmd_received_cb(mc_server_h server);
+
+/**
+ * @brief Sets the callback for receiving repeat mode command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @param[in] callback The callback to be invoked when media controller server receives repeat mode from client.
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_set_repeat_mode_cmd_received_cb(mc_server_h server, mc_server_repeat_mode_cmd_received_cb callback, void *user_data);
+
+/**
+ * @brief Unsets the callback for receiving repeat mode command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_unset_repeat_mode_cmd_received_cb(mc_server_h server);
+
+/**
+ * @deprecated Deprecated since 4.0. Use mc_server_set_custom_cmd_received_cb() instead.
* @brief Sets the callback for receiving custom command from client.
* @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
*
* @see mc_server_create()
* @see mc_server_destroy()
*/
-int mc_server_set_custom_command_received_cb(mc_server_h server, mc_server_custom_command_received_cb callback, void *user_data);
+int mc_server_set_custom_command_received_cb(mc_server_h server, mc_server_custom_command_received_cb callback, void *user_data) TIZEN_DEPRECATED_API;
/**
+ * @deprecated Deprecated since 4.0. Use mc_server_unset_custom_cmd_received_cb() instead.
* @brief Unsets the callback for receiving custom command from client.
* @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
*
* @see mc_server_create()
* @see mc_server_destroy()
*/
-int mc_server_unset_custom_command_received_cb(mc_server_h server);
+int mc_server_unset_custom_command_received_cb(mc_server_h server) TIZEN_DEPRECATED_API;
/**
+ * @deprecated Deprecated since 4.0. Use mc_server_send_cmd_reply() instead.
* @brief Sends a reply for the requested command to the client.
* @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
*
* @see mc_server_create()
* @see mc_server_destroy()
*/
-int mc_server_send_command_reply(mc_server_h server, const char *client_name, int result_code, bundle *data);
+int mc_server_send_command_reply(mc_server_h server, const char *client_name, int result_code, bundle *data) TIZEN_DEPRECATED_API;
+
+/**
+ * @brief Sets the callback for receiving playlist command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @param[in] callback The callback to be invoked when media controller server receives playlist command from client.
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_set_playlist_cmd_received_cb(mc_server_h server, mc_server_playlist_cmd_received_cb callback, void *user_data);
+
+/**
+ * @brief Unsets the callback for receiving playlist command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_unset_playlist_cmd_received_cb(mc_server_h server);
+
+/**
+ * @brief Sets the callback for receiving custom command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @param[in] callback The callback to be invoked when media controller server receives custom command from client.
+ * @param[in] user_data The user data to be passed to the callback function
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_set_custom_cmd_received_cb(mc_server_h server, mc_server_custom_cmd_received_cb callback, void *user_data);
+
+/**
+ * @brief Unsets the callback for receiving custom command from client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @param[in] server The handle to media controller server
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_destroy()
+ */
+int mc_server_unset_custom_cmd_received_cb(mc_server_h server);
+
+/**
+ * @brief Replys the result of the requested command to the client.
+ * @since_tizen 4.0
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/mediacontroller.server
+ *
+ * @remarks When the server receives a command, this function can be called by mc_server_playback_action_cmd_received_cb(), mc_server_playback_position_cmd_received_cb(), mc_server_shuffle_mode_cmd_received_cb(), mc_server_repeat_mode_cmd_received_cb(), mc_server_playlist_cmd_received_cb() and mc_server_custom_cmd_received_cb().\n
+ * If @a request_id is null, this function will return #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER.
+ *
+ * @param[in] server The handle to media controller server
+ * @param[in] client_name The app_id of the media controller client
+ * @param[in] request_id The id of the command request, received in the mc_server_custom_cmd_received_cb() function.
+ * @param[in] result_code The result code of custom command
+ * @param[in] data The extra data
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #MEDIA_CONTROLLER_ERROR_NONE Successful
+ * @retval #MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED Permission denied
+ * @pre Create a media controller server handle by calling mc_server_create().
+ * @see mc_server_create()
+ * @see mc_server_playback_action_cmd_received_cb()
+ * @see mc_server_playback_position_cmd_received_cb()
+ * @see mc_server_shuffle_mode_cmd_received_cb()
+ * @see mc_server_repeat_mode_cmd_received_cb()
+ * @see mc_server_playlist_cmd_received_cb()
+ * @see mc_server_custom_cmd_received_cb()
+ * @see mc_server_destroy()
+ */
+int mc_server_send_cmd_reply(mc_server_h server, const char *client_name, const char *request_id, int result_code, bundle *data);
/**
* @brief Destroys media controller server.