[ITC][media-controller][ACR-1237,1268][Added API to support playlist and metadata...
authorPriya Kohli <priya.kohli@samsung.com>
Fri, 27 Jul 2018 13:25:07 +0000 (18:55 +0530)
committerAmritanshu Pandia <a.pandia1@samsung.com>
Fri, 27 Jul 2018 13:39:57 +0000 (13:39 +0000)
Change-Id: I1b5f84eef2fa7dc9c24d145148b1ba97c169c796
Signed-off-by: Priya Kohli <priya.kohli@samsung.com>
src/itc/media-controller/ITs-media-controller-client.c
src/itc/media-controller/ITs-media-controller-common.h
src/itc/media-controller/ITs-media-controller-server.c
src/itc/media-controller/tct-media-controller-native_mobile.h
src/itc/media-controller/tct-media-controller-native_wearable.h

index 4e2b9a6..69de68d 100755 (executable)
 //
 #include "ITs-media-controller-common.h"
 
+static char *g_TestAppname = "org.tizen.media-controller-native-itc";
+static char *g_PlaylistName = "test_playlist";
+static gboolean g_ResultPlaylistCb = false;
+static char *g_McServerName = NULL;
+static mc_server_state_e g_McServerState = MC_SERVER_STATE_NONE;
+static char *g_McPlaylistName = "test_playlist";
+static char *g_ItemIndex="3";
 //& set: MediaController
 
 /** @addtogroup itc-media-controller-client
@@ -28,7 +35,8 @@ mc_subscription_type_e g_eMcSubscriptionType[] = {    MC_SUBSCRIPTION_TYPE_SERVER_S
                                                                                                        MC_SUBSCRIPTION_TYPE_PLAYBACK,
                                                                                                        MC_SUBSCRIPTION_TYPE_METADATA,
                                                                                                        MC_SUBSCRIPTION_TYPE_SHUFFLE_MODE,
-                                                                                                       MC_SUBSCRIPTION_TYPE_REPEAT_MODE
+                                                                                                       MC_SUBSCRIPTION_TYPE_REPEAT_MODE,
+                                                                                                       MC_SUBSCRIPTION_TYPE_PLAYLIST,
                                                                                                 };
 
 mc_playback_action_e g_ePlaybackActionArray[] = { MC_PLAYBACK_ACTION_PLAY,
@@ -41,6 +49,20 @@ mc_playback_action_e g_ePlaybackActionArray[] = { MC_PLAYBACK_ACTION_PLAY,
                                                                                                MC_PLAYBACK_ACTION_TOGGLE_PLAY_PAUSE};
 
 /*****************************************************Enum Definition End*****************************************************/
+static char* g_PlaylistArray[]={
+       "title_1",
+       "artist_1",
+       "album_1",
+       "author_1",
+       "genre_1",
+       "duration_1",
+       "date_1",
+       "copyright_1",
+       "destription_1",
+       "track_num_1",
+       "picture_1"
+};
+
 
 /****************************************************Callback Start****************************************************/
 
@@ -215,6 +237,107 @@ void ClientCustomComandReplyCallBack(const char *server_name, const char *reques
        return;
 }
 
+/**
+ * @function                           ClientMcPlaylistUpdatedCallBack
+ * @description                        Callback Function
+ * @parameter                  const char *server_name, mc_playback_h playback, int result_code, void *user_data
+ * @return                             NA
+ */
+void ClientMcPlaylistUpdatedCallBack(const char *pszServerName, mc_playlist_update_mode_e mode, const char *pszPlaylistName, mc_playlist_h hPlaylist, void *pUserData)
+{
+               FPRINTF("%d:%s  invoked\n", __LINE__, __FUNCTION__);
+
+               if(strncmp(pszServerName, g_TestAppname,strlen(g_TestAppname))) {
+                               FPRINTF("[%d:%s] wrong server name [%s][%s]\n", __LINE__, __FUNCTION__, pszServerName, g_TestAppname);
+                               QuitGmainLoop();
+                               return;
+               }
+
+               if(strncmp(pszPlaylistName, g_McPlaylistName, strlen(g_PlaylistName))) {
+                               FPRINTF("[%d:%s] wrong playlist name [%s][%s]\n", __LINE__, __FUNCTION__, pszPlaylistName, g_PlaylistName);
+                               QuitGmainLoop();
+                               return;
+               }
+
+               if ((mode != MC_PLAYLIST_UPDATED) && (mode != MC_PLAYLIST_REMOVED)) {
+                               FPRINTF("[%d:%s] wrong mode [%d]\n", __LINE__, __FUNCTION__, mode);
+                               QuitGmainLoop();
+                               return;
+               }
+               g_CallBackHit = true;
+               QuitGmainLoop();
+
+               return;
+}
+/**
+ * @function            ClientMcRegisterPlaylist
+ * @description         Register function ,create and update playlist
+ * @parameter           mc_playlist_h *playlist
+ * @return                      NA
+ */
+int ClientMcRegisterPlaylist(mc_playlist_h *hPlaylistReg)
+{
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_playlist_h hPlaylist = NULL;
+
+               nRet = mc_server_create_playlist(g_hMcServer, g_PlaylistName, &hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_create_playlist", MediaControllerGetError(nRet));
+               CHECK_HANDLE(hPlaylist, "mc_server_create_playlist");
+#ifndef WEARABLE
+               int sSize = sizeof(g_PlaylistArray)/sizeof(g_PlaylistArray[0]);
+               int StringIndex = 0;
+               for(StringIndex = 0; StringIndex < sSize; StringIndex++)
+               {
+                       FPRINTF("[%d:%s] Adding item to playlist index=%d, [%s]\n", __LINE__, __FUNCTION__, StringIndex, g_PlaylistArray[StringIndex]);
+                       nRet = mc_server_add_item_to_playlist(g_hMcServer, hPlaylist, "1", MC_META_MEDIA_TITLE, g_PlaylistArray[StringIndex]);
+                       PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_add_item_to_playlist", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist));
+               }
+
+               nRet = mc_server_update_playlist_done(g_hMcServer, hPlaylist);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_playlist_done", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist));
+#endif
+               *hPlaylistReg = hPlaylist;
+
+               return MEDIA_CONTROLLER_ERROR_NONE;
+}
+
+/**
+ * @function                           ClientMcServerPlaylistListCallback
+ * @description                        Playlist callback invoked.
+ * @parameter                  mc_playlist_h *playlist
+ * @return                             NA
+ */
+bool ClientMcServerPlaylistListCallback(mc_playlist_h hPlaylist, void *user_data)
+{
+               FPRINTF("%d:%s invoked\n", __LINE__, __FUNCTION__);
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               char *pszPlaylistName = NULL;
+
+               nRet = mc_playlist_get_name(hPlaylist, &pszPlaylistName);
+               if (nRet != MEDIA_CONTROLLER_ERROR_NONE)
+                               FPRINTF("[%d:%s] fail mc_playlist_get_name [%d]\n", __LINE__, __FUNCTION__, nRet);
+
+               if (pszPlaylistName != NULL) {
+                               if(strncmp(pszPlaylistName, g_PlaylistName,strlen(g_PlaylistName))) {
+                                               FPRINTF("[%d:%s] wrong playlist name [%s][%s]\n", __LINE__, __FUNCTION__, pszPlaylistName, g_PlaylistName);
+                                               FREE_MEMORY(pszPlaylistName);
+                                               QuitGmainLoop();
+                                               return false;
+                               }
+                               FREE_MEMORY(pszPlaylistName);
+               }
+
+               g_ResultPlaylistCb = true;
+               QuitGmainLoop();
+               return true;
+}
+
+
+
+
+
+
 /*****************************************************Callback End*****************************************************/
 
 /**
@@ -310,38 +433,38 @@ int ITs_mc_client_create_destroy_p(void)
  * @reviewer                   SRID(gupta.sanjay)
  * @type                                       auto
  * @since_tizen                        2.4
- * @description                                To test mc_client_set_server_update_cb and mc_client_unset_server_update_cb
- * @scenario                           Call mc_client_set_server_update_cb, mc_client_unset_server_update_cb
- * @apicovered                         mc_client_set_server_update_cb, mc_client_unset_server_update_cb
- * @passcase                           If mc_client_set_server_update_cb and mc_client_unset_server_update_cb returns MEDIA_CONTROLLER_ERROR_NONE
+ * @description                                To test mc_client_set_server_updated_cb and mc_client_unset_server_updated_cb
+ * @scenario                           Call mc_client_set_server_updated_cb, mc_client_unset_server_updated_cb
+ * @apicovered                         mc_client_set_server_updated_cb, mc_client_unset_server_updated_cb
+ * @passcase                           If mc_client_set_server_updated_cb and mc_client_unset_server_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE
  * @failcase                           If Precondition API or Target API Fails
  * @precondition                       NA
  * @postcondition                      NA
  * */
 //& type: auto
-//& purpose: To test mc_client_set_server_update_cb and mc_client_unset_server_update_cb
-int ITs_mc_client_set_unset_server_update_cb_p(void)
+//& purpose: To test server state updated callback and check its functionality
+int ITs_mc_client_set_unset_server_updated_cb_p(void)
 {
     START_TEST;
 
        int nRet = -1;
 
        g_CallBackHit = false;
-    nRet = mc_client_set_server_update_cb(g_hMcClient, ClientServerStateUpdatedCallBack, NULL);
-    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_server_update_cb", MediaControllerGetError(nRet));
+    nRet = mc_client_set_server_updated_cb(g_hMcClient, ClientServerStateUpdatedCallBack, NULL);
+    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_server_updated_cb", MediaControllerGetError(nRet));
 
        nRet = mc_server_destroy(g_hMcServer);
-    PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_destroy", MediaControllerGetError(nRet), mc_client_unset_server_update_cb(g_hMcClient));
+    PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_destroy", MediaControllerGetError(nRet), mc_client_unset_server_updated_cb(g_hMcClient));
 
     nRet = mc_server_create(&g_hMcServer);
-    PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_create", MediaControllerGetError(nRet), mc_client_unset_server_update_cb(g_hMcClient));
-    CHECK_HANDLE_CLEANUP(g_hMcServer, "mc_server_create", mc_client_unset_server_update_cb(g_hMcClient));
+    PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_create", MediaControllerGetError(nRet), mc_client_unset_server_updated_cb(g_hMcClient));
+    CHECK_HANDLE_CLEANUP(g_hMcServer, "mc_server_create", mc_client_unset_server_updated_cb(g_hMcClient));
 
        IterateGmainLoop();
-       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_server_update_cb", "CallBack Not Invoked", mc_client_unset_server_update_cb(g_hMcClient));
+       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_server_updated_cb", "CallBack Not Invoked", mc_client_unset_server_updated_cb(g_hMcClient));
 
-       nRet = mc_client_unset_server_update_cb(g_hMcClient);
-    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_server_update_cb", MediaControllerGetError(nRet));
+       nRet = mc_client_unset_server_updated_cb(g_hMcClient);
+    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_server_updated_cb", MediaControllerGetError(nRet));
 
        return 0;
 }
@@ -352,34 +475,34 @@ int ITs_mc_client_set_unset_server_update_cb_p(void)
  * @reviewer                   SRID(gupta.sanjay)
  * @type                                       auto
  * @since_tizen                        2.4
- * @description                                To test mc_client_set_playback_update_cb and mc_client_unset_playback_update_cb
- * @scenario                           Call mc_client_set_playback_update_cb, mc_client_unset_playback_update_cb
- * @apicovered                         mc_client_set_playback_update_cb, mc_client_unset_playback_update_cb
- * @passcase                           If mc_client_set_playback_update_cb and mc_client_unset_playback_update_cb returns MEDIA_CONTROLLER_ERROR_NONE
+ * @description                                To test mc_client_set_playback_updated_cb and mc_client_unset_playback_updated_cb
+ * @scenario                           Call mc_client_set_playback_updated_cb, mc_client_unset_playback_updated_cb
+ * @apicovered                         mc_client_set_playback_updated_cb, mc_client_unset_playback_updated_cb
+ * @passcase                           If mc_client_set_playback_updated_cb and mc_client_unset_playback_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE
  * @failcase                           If Precondition API or Target API Fails
  * @precondition                       NA
  * @postcondition                      NA
  * */
 //& type: auto
-//& purpose: To test mc_client_set_playback_update_cb and mc_client_unset_playback_update_cb
-int ITs_mc_client_set_unset_playback_update_cb_p(void)
+//& purpose: To test mc_client_set_playback_updated_cb and mc_client_unset_playback_updated_cb
+int ITs_mc_client_set_unset_playback_updated_cb_p(void)
 {
     START_TEST;
 
        int nRet = -1;
 
        g_CallBackHit = false;
-    nRet = mc_client_set_playback_update_cb(g_hMcClient, ClientPlayBackUpdatedCallBack, NULL);
-    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_playback_update_cb", MediaControllerGetError(nRet));
+    nRet = mc_client_set_playback_updated_cb(g_hMcClient, ClientPlayBackUpdatedCallBack, NULL);
+    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_playback_updated_cb", MediaControllerGetError(nRet));
 
        nRet = SetServerPlayBackInfo();
     PRINT_RESULT(0, nRet, "SetServerPlayBackInfo", "Return Value Not Correct");
 
        IterateGmainLoop();
-       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_playback_update_cb", "CallBack Not Invoked", mc_client_unset_playback_update_cb(g_hMcClient));
+       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_playback_updated_cb", "CallBack Not Invoked", mc_client_unset_playback_updated_cb(g_hMcClient));
 
-       nRet = mc_client_unset_playback_update_cb(g_hMcClient);
-    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_playback_update_cb", MediaControllerGetError(nRet));
+       nRet = mc_client_unset_playback_updated_cb(g_hMcClient);
+    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_playback_updated_cb", MediaControllerGetError(nRet));
 
        return 0;
 }
@@ -390,34 +513,34 @@ int ITs_mc_client_set_unset_playback_update_cb_p(void)
  * @reviewer                   SRID(gupta.sanjay)
  * @type                                       auto
  * @since_tizen                        2.4
- * @description                                To test mc_client_set_metadata_update_cb and mc_client_unset_metadata_update_cb
- * @scenario                           Call mc_client_set_metadata_update_cb, mc_client_unset_metadata_update_cb
- * @apicovered                         mc_client_set_metadata_update_cb, mc_client_unset_metadata_update_cb
- * @passcase                           If mc_client_set_metadata_update_cb and mc_client_unset_metadata_update_cb returns MEDIA_CONTROLLER_ERROR_NONE
+ * @description                                To test mc_client_set_metadata_updated_cb and mc_client_unset_metadata_updated_cb
+ * @scenario                           Call mc_client_set_metadata_updated_cb, mc_client_unset_metadata_updated_cb
+ * @apicovered                         mc_client_set_metadata_updated_cb, mc_client_unset_metadata_updated_cb
+ * @passcase                           If mc_client_set_metadata_updated_cb and mc_client_unset_metadata_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE
  * @failcase                           If Precondition API or Target API Fails
  * @precondition                       NA
  * @postcondition                      NA
  * */
 //& type: auto
-//& purpose: To test mc_client_set_metadata_update_cb and mc_client_unset_metadata_update_cb
-int ITs_mc_client_set_unset_metadata_update_cb_p(void)
+//& purpose: To test mc_client_set_metadata_updated_cb and mc_client_unset_metadata_updated_cb
+int ITs_mc_client_set_unset_metadata_updated_cb_p(void)
 {
     START_TEST;
 
        int nRet = -1;
 
        g_CallBackHit = false;
-    nRet = mc_client_set_metadata_update_cb(g_hMcClient, ClientMetadataUpdatedCallBack, NULL);
-    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_metadata_update_cb", MediaControllerGetError(nRet));
+    nRet = mc_client_set_metadata_updated_cb(g_hMcClient, ClientMetadataUpdatedCallBack, NULL);
+    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_metadata_updated_cb", MediaControllerGetError(nRet));
 
        nRet = SetServerMetaData();
     PRINT_RESULT(0, nRet, "SetServerMetaData", "Return Value Not Correct");
 
        IterateGmainLoop();
-       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_metadata_update_cb", "CallBack Not Invoked", mc_client_unset_metadata_update_cb(g_hMcClient));
+       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_metadata_updated_cb", "CallBack Not Invoked", mc_client_unset_metadata_updated_cb(g_hMcClient));
 
-       nRet = mc_client_unset_metadata_update_cb(g_hMcClient);
-    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_metadata_update_cb", MediaControllerGetError(nRet));
+       nRet = mc_client_unset_metadata_updated_cb(g_hMcClient);
+    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_metadata_updated_cb", MediaControllerGetError(nRet));
 
        return 0;
 }
@@ -428,34 +551,34 @@ int ITs_mc_client_set_unset_metadata_update_cb_p(void)
  * @reviewer                   SRID(gupta.sanjay)
  * @type                                       auto
  * @since_tizen                        2.4
- * @description                                To test mc_client_set_shuffle_mode_update_cb and mc_client_unset_shuffle_mode_update_cb
- * @scenario                           Call mc_client_set_shuffle_mode_update_cb, mc_client_unset_shuffle_mode_update_cb
- * @apicovered                         mc_client_set_shuffle_mode_update_cb, mc_client_unset_shuffle_mode_update_cb
- * @passcase                           If mc_client_set_shuffle_mode_update_cb and mc_client_unset_shuffle_mode_update_cb returns MEDIA_CONTROLLER_ERROR_NONE
+ * @description                                To test mc_client_set_shuffle_mode_updated_cb and mc_client_unset_shuffle_mode_updated_cb
+ * @scenario                           Call mc_client_set_shuffle_mode_updated_cb, mc_client_unset_shuffle_mode_updated_cb
+ * @apicovered                         mc_client_set_shuffle_mode_updated_cb, mc_client_unset_shuffle_mode_updated_cb
+ * @passcase                           If mc_client_set_shuffle_mode_updated_cb and mc_client_unset_shuffle_mode_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE
  * @failcase                           If Precondition API or Target API Fails
  * @precondition                       NA
  * @postcondition                      NA
  * */
 //& type: auto
-//& purpose: To test mc_client_set_shuffle_mode_update_cb and mc_client_unset_shuffle_mode_update_cb
-int ITs_mc_client_set_unset_shuffle_mode_update_cb_p(void)
+//& purpose: To test mc_client_set_shuffle_mode_updated_cb and mc_client_unset_shuffle_mode_updated_cb
+int ITs_mc_client_set_unset_shuffle_mode_updated_cb_p(void)
 {
     START_TEST;
 
        int nRet = -1;
 
        g_CallBackHit = false;
-    nRet = mc_client_set_shuffle_mode_update_cb(g_hMcClient, ClientShuffleModeUpdatedCallBack, NULL);
-    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_shuffle_mode_update_cb", MediaControllerGetError(nRet));
+    nRet = mc_client_set_shuffle_mode_updated_cb(g_hMcClient, ClientShuffleModeUpdatedCallBack, NULL);
+    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_shuffle_mode_updated_cb", MediaControllerGetError(nRet));
 
        nRet = UpdateServerModes();
     PRINT_RESULT(0, nRet, "UpdateServerModes", "Return Value Not Correct");
 
        IterateGmainLoop();
-       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_shuffle_mode_update_cb", "CallBack Not Invoked", mc_client_unset_shuffle_mode_update_cb(g_hMcClient));
+       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_shuffle_mode_updated_cb", "CallBack Not Invoked", mc_client_unset_shuffle_mode_updated_cb(g_hMcClient));
 
-       nRet = mc_client_unset_shuffle_mode_update_cb(g_hMcClient);
-    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_shuffle_mode_update_cb", MediaControllerGetError(nRet));
+       nRet = mc_client_unset_shuffle_mode_updated_cb(g_hMcClient);
+    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_shuffle_mode_updated_cb", MediaControllerGetError(nRet));
 
        return 0;
 }
@@ -466,34 +589,34 @@ int ITs_mc_client_set_unset_shuffle_mode_update_cb_p(void)
  * @reviewer                   SRID(gupta.sanjay)
  * @type                                       auto
  * @since_tizen                        2.4
- * @description                                To test mc_client_set_repeat_mode_update_cb and mc_client_unset_repeat_mode_update_cb
- * @scenario                           Call mc_client_set_repeat_mode_update_cb, mc_client_unset_repeat_mode_update_cb
- * @apicovered                         mc_client_set_repeat_mode_update_cb, mc_client_unset_repeat_mode_update_cb
- * @passcase                           If mc_client_set_repeat_mode_update_cb and mc_client_unset_repeat_mode_update_cb returns MEDIA_CONTROLLER_ERROR_NONE
+ * @description                                To test mc_client_set_repeat_mode_updated_cb and mc_client_unset_repeat_mode_updated_cb
+ * @scenario                           Call mc_client_set_repeat_mode_updated_cb, mc_client_unset_repeat_mode_updated_cb
+ * @apicovered                         mc_client_set_repeat_mode_updated_cb, mc_client_unset_repeat_mode_updated_cb
+ * @passcase                           If mc_client_set_repeat_mode_updated_cb and mc_client_unset_repeat_mode_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE
  * @failcase                           If Precondition API or Target API Fails
  * @precondition                       NA
  * @postcondition                      NA
  * */
 //& type: auto
-//& purpose: To test mc_client_set_repeat_mode_update_cb and mc_client_unset_repeat_mode_update_cb
-int ITs_mc_client_set_unset_repeat_mode_update_cb_p(void)
+//& purpose: To test mc_client_set_repeat_mode_updated_cb and mc_client_unset_repeat_mode_updated_cb
+int ITs_mc_client_set_unset_repeat_mode_updated_cb_p(void)
 {
     START_TEST;
 
        int nRet = -1;
 
        g_CallBackHit = false;
-    nRet = mc_client_set_repeat_mode_update_cb(g_hMcClient, ClientRepeatModeUpdatedCallBack, NULL);
-    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_repeat_mode_update_cb", MediaControllerGetError(nRet));
+    nRet = mc_client_set_repeat_mode_updated_cb(g_hMcClient, ClientRepeatModeUpdatedCallBack, NULL);
+    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_repeat_mode_updated_cb", MediaControllerGetError(nRet));
 
        nRet = UpdateServerModes();
     PRINT_RESULT(0, nRet, "UpdateServerModes", "Return Value Not Correct");
 
        IterateGmainLoop();
-       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_repeat_mode_update_cb", "CallBack Not Invoked", mc_client_unset_repeat_mode_update_cb(g_hMcClient));
+       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_repeat_mode_updated_cb", "CallBack Not Invoked", mc_client_unset_repeat_mode_updated_cb(g_hMcClient));
 
-       nRet = mc_client_unset_repeat_mode_update_cb(g_hMcClient);
-    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_repeat_mode_update_cb", MediaControllerGetError(nRet));
+       nRet = mc_client_unset_repeat_mode_updated_cb(g_hMcClient);
+    PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_repeat_mode_updated_cb", MediaControllerGetError(nRet));
 
        return 0;
 }
@@ -572,16 +695,16 @@ int ITc_mc_client_get_destroy_server_playback_info_p(void)
  * @reviewer                   SRID(gupta.sanjay)
  * @type                                       auto
  * @since_tizen                        2.4
- * @description                                To test mc_client_get_server_metadata and mc_client_destroy_metadata
- * @scenario                           Call mc_client_get_server_metadata, mc_client_destroy_metadata
- * @apicovered                         mc_client_get_server_metadata, mc_client_destroy_metadata
- * @passcase                           If mc_client_get_server_metadata and mc_client_destroy_metadata returns MEDIA_CONTROLLER_ERROR_NONE
+ * @description                                To test mc_client_get_server_metadata and mc_metadata_destroy
+ * @scenario                           Call mc_client_get_server_metadata, mc_metadata_destroy
+ * @apicovered                         mc_client_get_server_metadata, mc_metadata_destroy
+ * @passcase                           If mc_client_get_server_metadata and mc_metadata_destroy returns MEDIA_CONTROLLER_ERROR_NONE
  * @failcase                           If Precondition API or Target API Fails
  * @precondition                       NA
  * @postcondition                      NA
  * */
 //& type: auto
-//& purpose: To test mc_client_get_server_metadata and mc_client_destroy_metadata
+//& purpose: To test mc_client_get_server_metadata and mc_metadata_destroy
 int ITc_mc_client_get_destroy_server_metadata_p(void)
 {
     START_TEST;
@@ -595,10 +718,10 @@ int ITc_mc_client_get_destroy_server_metadata_p(void)
        nRet = mc_client_get_server_metadata(g_hMcClient, g_szServerName, &hMetaData);
        PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_metadata", MediaControllerGetError(nRet));
     CHECK_HANDLE(hMetaData, "mc_client_get_server_metadata");
-
-       nRet = mc_client_destroy_metadata(hMetaData);
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_destroy_metadata", MediaControllerGetError(nRet));
-
+#ifndef WEARABLE
+       nRet = mc_metadata_destroy(hMetaData);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_destroy", MediaControllerGetError(nRet));
+#endif
     return 0;
 }
 
@@ -751,48 +874,6 @@ int ITc_mc_client_get_playback_position_p(void)
 }
 
 /**
- * @testcase                           ITc_mc_client_get_metadata_p
- * @author                     SRID(abhishek1.g)
- * @reviewer                   SRID(gupta.sanjay)
- * @type                                       auto
- * @since_tizen                        2.4
- * @description                                To test mc_client_get_metadata
- * @scenario                           Call mc_client_get_metadata
- * @apicovered                         mc_client_get_metadata
- * @passcase                           If mc_client_get_metadata returns MEDIA_CONTROLLER_ERROR_NONE
- * @failcase                           If Precondition API or Target API Fails
- * @precondition                       NA
- * @postcondition                      NA
- * */
-//& type: auto
-//& purpose: To test mc_client_get_metadata
-int ITc_mc_client_get_metadata_p(void)
-{
-    START_TEST;
-
-       int nRet = -1;
-       mc_metadata_h hMetaData = NULL;
-       char *pszMetadata = NULL;
-
-       nRet = GetCompleteServerInfo();
-    PRINT_RESULT(0, nRet, "GetCompleteServerInfo", "Return Value Not Correct");
-
-       nRet = mc_client_get_server_metadata(g_hMcClient, g_szServerName, &hMetaData);
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_metadata", MediaControllerGetError(nRet));
-    CHECK_HANDLE(hMetaData, "mc_client_get_server_metadata");
-
-       nRet = mc_client_get_metadata(hMetaData, MC_META_MEDIA_TITLE, &pszMetadata);
-       PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_metadata", MediaControllerGetError(nRet), mc_client_destroy_metadata(hMetaData));
-       CHECK_HANDLE_CLEANUP(pszMetadata, "mc_client_get_metadata", mc_client_destroy_metadata(hMetaData));
-       FREE_MEMORY(pszMetadata);
-
-       nRet = mc_client_destroy_metadata(hMetaData);
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_destroy_metadata", MediaControllerGetError(nRet));
-
-    return 0;
-}
-
-/**
  * @testcase                           ITs_mc_client_foreach_server_p
  * @author                     SRID(abhishek1.g)
  * @reviewer                   SRID(gupta.sanjay)
@@ -903,6 +984,15 @@ int ITc_mc_client_subscribe_unsubscribe_p(void)
                nRet = SetUpdateCallBacks(g_eMcSubscriptionType[nEnumCounter]);
                PRINT_RESULT(0, nRet, "SetUpdateCallBacks", "Return Value Not Correct");
 
+               if(g_eMcSubscriptionType[nEnumCounter] == MC_SUBSCRIPTION_TYPE_PLAYLIST)
+               {
+#ifdef WEARABLE
+                       continue;
+#endif
+                       nRet = mc_client_set_playlist_updated_cb(g_hMcClient, ClientMcPlaylistUpdatedCallBack, NULL);
+                       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_playlist_updated_cb", MediaControllerGetError(nRet));
+               }
+
                nRet = mc_client_subscribe(g_hMcClient, g_eMcSubscriptionType[nEnumCounter], g_szServerName);
                PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_subscribe", MediaControllerGetError(nRet), UnSetUpdateCallBacks(g_eMcSubscriptionType[nEnumCounter]));
 
@@ -911,6 +1001,12 @@ int ITc_mc_client_subscribe_unsubscribe_p(void)
 
                nRet = UnSetUpdateCallBacks(g_eMcSubscriptionType[nEnumCounter]);
                PRINT_RESULT(0, nRet, "UnSetUpdateCallBacks", "Return Value Not Correct");
+
+               if(g_eMcSubscriptionType[nEnumCounter] == MC_SUBSCRIPTION_TYPE_PLAYLIST)
+               {
+                       nRet = mc_client_unset_playlist_updated_cb(g_hMcClient);
+                       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_playlist_updated_cb", MediaControllerGetError(nRet));
+               }
        }
 
     return 0;
@@ -942,11 +1038,20 @@ int ITc_mc_client_foreach_server_subscribed_p(void)
        nRet = GetCompleteServerInfo();
     PRINT_RESULT(0, nRet, "GetCompleteServerInfo", "Return Value Not Correct");
 
-       for (nEnumCounter=0; nEnumCounter<nEnumSize; nEnumCounter++)
+       for (nEnumCounter = 0; nEnumCounter < nEnumSize; nEnumCounter++)
        {
                nRet = SetUpdateCallBacks(g_eMcSubscriptionType[nEnumCounter]);
                PRINT_RESULT(0, nRet, "SetUpdateCallBacks", "Return Value Not Correct");
 
+               if(g_eMcSubscriptionType[nEnumCounter] == MC_SUBSCRIPTION_TYPE_PLAYLIST)
+               {
+#ifdef WEARABLE
+                       continue;
+#endif
+               nRet = mc_client_set_playlist_updated_cb(g_hMcClient, ClientMcPlaylistUpdatedCallBack, NULL);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_playlist_updated_cb", MediaControllerGetError(nRet));
+               }
+
                nRet = mc_client_subscribe(g_hMcClient, g_eMcSubscriptionType[nEnumCounter], g_szServerName);
                PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_subscribe", MediaControllerGetError(nRet), UnSetUpdateCallBacks(g_eMcSubscriptionType[nEnumCounter]));
 
@@ -961,6 +1066,12 @@ int ITc_mc_client_foreach_server_subscribed_p(void)
 
                nRet = UnSetUpdateCallBacks(g_eMcSubscriptionType[nEnumCounter]);
                PRINT_RESULT(0, nRet, "UnSetUpdateCallBacks", "Return Value Not Correct");
+
+               if(g_eMcSubscriptionType[nEnumCounter] == MC_SUBSCRIPTION_TYPE_PLAYLIST)
+               {
+                       nRet = mc_client_unset_playlist_updated_cb(g_hMcClient);
+                       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_playlist_updated_cb", MediaControllerGetError(nRet));
+               }
        }
 
     return 0;
@@ -1234,14 +1345,14 @@ int ITc_mc_client_set_unset_cb_send_event_reply_p(void)
        PRINT_RESULT_CLEANUP(nRet, MEDIA_CONTROLLER_ERROR_NONE, "mc_server_send_custom_event", MediaControllerGetError(nRet), FREE_MEMORY(pszClientName); mc_client_unset_custom_event_received_cb(g_hMcClient));
        CHECK_HANDLE_CLEANUP(pszRequestID, "mc_server_send_custom_event", FREE_MEMORY(pszClientName); mc_client_unset_custom_event_received_cb(g_hMcClient));
 
-       g_CallBackHit = FALSE;
+       g_CallBackHit = false;
        IterateGmainLoop();
 
        nRet = mc_client_send_event_reply(g_hMcClient, pszClientName, pszRequestID, 0, NULL);
        PRINT_RESULT_CLEANUP(nRet, MEDIA_CONTROLLER_ERROR_NONE, "mc_client_send_event_reply", MediaControllerGetError(nRet), FREE_MEMORY(pszRequestID); FREE_MEMORY(pszClientName); mc_client_unset_custom_event_received_cb(g_hMcClient));
        IterateGmainLoop();
 
-       PRINT_RESULT_CLEANUP(g_CallBackHit, TRUE, "mc_client_send_event_reply", "FALSE", FREE_MEMORY(pszRequestID); FREE_MEMORY(pszClientName); mc_client_unset_custom_event_received_cb(g_hMcClient));
+       PRINT_RESULT_CLEANUP(g_CallBackHit, true, "mc_client_send_event_reply", "false", FREE_MEMORY(pszRequestID); FREE_MEMORY(pszClientName); mc_client_unset_custom_event_received_cb(g_hMcClient));
 
        nRet = mc_client_unset_custom_event_received_cb(g_hMcClient);
        PRINT_RESULT_CLEANUP(nRet, MEDIA_CONTROLLER_ERROR_NONE, "mc_client_unset_event_reply_received_cb", MediaControllerGetError(nRet), FREE_MEMORY(pszRequestID); FREE_MEMORY(pszClientName));
@@ -1250,6 +1361,229 @@ int ITc_mc_client_set_unset_cb_send_event_reply_p(void)
        FREE_MEMORY(pszClientName);
        return 0;
 }
+/**
+ * @testcase                           ITc_mc_client_set_unset_playlist_updated_cb_p
+ * @author                     SRID(bipin.k)
+ * @reviewer                   SRID(a.pandia1)
+ * @type                                       auto
+ * @since_tizen                        4.0
+ * @description                                Positive test case to check wether callback is set and unset
+ * @scenario                           The media controller client which calls this function will receives the callback for playlist upgradation.
+ * @apicovered                         mc_client_set_playlist_updated_cb, mc_client_unset_playlist_updated_cb
+ * @passcase                           If mc_client_set_playlist_updated_cb is called.
+ * @failcase                           If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+ //& type: auto
+//& purpose: To check  wether set and unset of callback is correct or not
+int ITc_mc_client_set_unset_playlist_updated_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       mc_playlist_h hPlaylist = NULL;
+
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_playlist_updated_cb(g_hMcClient, ClientMcPlaylistUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_playlist_updated_cb", MediaControllerGetError(nRet));
+
+       nRet = ClientMcRegisterPlaylist(&hPlaylist);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "ClientMcRegisterPlaylist", MediaControllerGetError(nRet));
+       CHECK_HANDLE(hPlaylist, "ClientMcRegisterPlaylist");
+
+       IterateGmainLoop();
+       PRINT_RESULT_CLEANUP(g_CallBackHit, true, "mc_client_set_playlist_updated_cb", "Callback not hit Correctly", mc_client_unset_playlist_updated_cb(g_hMcClient));
+
+
+       nRet = mc_client_unset_playlist_updated_cb(g_hMcClient);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_playlist_updated_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_foreach_server_playlist_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                Positive test case to see server playlist is returned correctly.
+ * @scenario                                   The ClientMcServerPlaylistListCallback is being called which matches playlist name.
+ * @apicovered                         mc_client_get_latest_server_info,mc_client_foreach_server_playlist,mc_playlist_destroy
+ * @passcase                                   If ClientMcServerPlaylistListCallback is called.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+ //& type: auto
+//& purpose: To check callback invoked for each playlist.
+int ITc_mc_client_foreach_server_playlist_p(void)
+{
+
+       START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_playlist_h hPlaylist = NULL;
+               g_ResultPlaylistCb = false;
+
+               nRet = ClientMcRegisterPlaylist(&hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "ClientMcRegisterPlaylist", MediaControllerGetError(nRet));
+               CHECK_HANDLE(hPlaylist, "mc_server_create");
+
+               nRet = mc_client_get_latest_server_info(g_hMcClient, &g_McServerName, &g_McServerState);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_latest_server_info", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist));
+               CHECK_HANDLE(g_McServerName, "mc_client_get_latest_server_info");
+               if((g_McServerState < MC_SERVER_STATE_NONE) || (g_McServerState > MC_SERVER_STATE_DEACTIVATE))          
+               {
+                       FPRINTF("[Line : %d][%s] %s Enum returned is out of range =%d \\n", __LINE__, API_NAMESPACE, "g_McServerState ",g_McServerState);
+                       FREE_MEMORY(g_McServerName);
+                       mc_playlist_destroy(hPlaylist);
+                       return 1;
+               }
+
+
+               nRet = mc_client_foreach_server_playlist(g_hMcClient, g_McServerName, ClientMcServerPlaylistListCallback, NULL);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_latest_server_info", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist);FREE_MEMORY(g_McServerName));
+
+               IterateGmainLoop();
+               PRINT_RESULT_CLEANUP(true,g_ResultPlaylistCb, "ClientMcServerPlaylistListCallback", "CallBack Not Invoked", mc_playlist_destroy(hPlaylist);FREE_MEMORY(g_McServerName));
+
+               FREE_MEMORY(g_McServerName);
+               nRet = mc_playlist_destroy(hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_destroy", MediaControllerGetError(nRet));
+
+               return 0;
+}
 
+ /**
+ * @testcase                                   ITc_mc_client_get_playlist_item_index_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                Positive test case of ITc_mc_client_get_playlist_item_index_p
+ * @scenario                                   The mc_client_get_playlist_item_index returns correct index
+ * @apicovered                         mc_client_get_server_playback_info, mc_client_get_playlist_item_index,mc_client_destroy_playback
+ * @passcase                                   If the index returned is correct.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+//& type: auto
+//& purpose: To get playlist item index.
+int ITc_mc_client_get_playlist_item_index_p(void)
+{
+               START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_playback_h hPlaybackInfo = NULL;
+               char * pszIndex = 0;
+               
+               nRet = GetCompleteServerInfo();
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "GetCompleteServerInfo", MediaControllerGetError(nRet));
+
+#ifndef WEARABLE
+               nRet = mc_server_set_playlist_item_index(g_hMcServer, g_ItemIndex);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_playlist_item_index", MediaControllerGetError(nRet));
+#endif
+       nRet = mc_server_update_playback_info(g_hMcServer);
+           PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_playback_info", MediaControllerGetError(nRet));
+
+               nRet = mc_client_get_latest_server_info(g_hMcClient, &g_McServerName, &g_McServerState);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_latest_server_info", MediaControllerGetError(nRet));
+               CHECK_HANDLE(g_McServerName,"mc_client_get_latest_server_info");
+
+               if((g_McServerState < MC_SERVER_STATE_NONE) || (g_McServerState > MC_SERVER_STATE_DEACTIVATE))
+                {
+                        FPRINTF("[Line : %d][%s] %s Enum returned is out of range =%d \\n", __LINE__, API_NAMESPACE, "g_McServerState ",g_McServerState);
+                       FREE_MEMORY(g_McServerName);
+
+                        return 1;
+                }
+
+               nRet = mc_client_get_server_playback_info(g_hMcClient, g_McServerName, &hPlaybackInfo);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_playback_info", MediaControllerGetError(nRet),FREE_MEMORY(g_McServerName));
+               CHECK_HANDLE(hPlaybackInfo,"mc_client_get_server_playback_info");
+
+               nRet = mc_client_get_playlist_item_index(hPlaybackInfo, &pszIndex);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_playlist_item_index", MediaControllerGetError(nRet),mc_client_destroy_playback(hPlaybackInfo);FREE_MEMORY(g_McServerName));
+               CHECK_HANDLE(pszIndex,"mc_client_get_playlist_item_index");
+
+               if (strncmp(pszIndex, g_ItemIndex,strlen(g_ItemIndex))!= 0)
+               {
+                       FPRINTF("[Line : %d][%s] %s index returned did not match =%s \\n", __LINE__, API_NAMESPACE, "mc_client_get_playlist_item_index",pszIndex);
+                       mc_client_destroy_playback(hPlaybackInfo);
+                       FREE_MEMORY(pszIndex);
+                       FREE_MEMORY(g_McServerName);
+                       return 1;
+               }
+               FREE_MEMORY(pszIndex);
+               FREE_MEMORY(g_McServerName);
+
+               nRet = mc_client_destroy_playback(hPlaybackInfo);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_destroy_playback", MediaControllerGetError(nRet));
+
+               return 0;
+}
+
+ /**
+ * @testcase                                   ITc_mc_playlist_get_name_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                Positive test case of ITc_mc_playlist_get_name_p
+ * @scenario                                   The ITc_mc_playlist_get_name_p returns correct playlist name.
+ * @apicovered                         mc_server_create_playlist, mc_playlist_get_name
+ * @passcase                                   If the playlist name  returned is correct.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+ //& type: auto
+//& purpose: To get playlist name
+
+int ITc_mc_playlist_get_name_p(void)
+{
+               START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_playlist_h hPlaylist = NULL;
+               char *pszPlaylistName = NULL;
+               bool bCheckVal = false;
+
+               nRet = mc_server_create_playlist(g_hMcServer, g_PlaylistName, &hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_create_playlist", MediaControllerGetError(nRet));
+               CHECK_HANDLE(hPlaylist, "mc_server_create_playlist");
+       
+               nRet = mc_playlist_get_name(hPlaylist, &pszPlaylistName);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_get_name", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist));
+
+               if (pszPlaylistName != NULL) {
+                       if (strncmp(g_PlaylistName, pszPlaylistName,strlen(g_PlaylistName)) == 0)
+                               bCheckVal = true;
+
+                       FREE_MEMORY(pszPlaylistName);
+               }
+               else{
+                       FPRINTF("[Line : %d][%s] %s pszPlaylistName is NULL\\n", __LINE__, API_NAMESPACE,"mc_playlist_get_name");
+                       mc_playlist_destroy(hPlaylist);
+                       return 1;
+               }
+
+               if (bCheckVal != true)
+               {
+                       FPRINTF("[Line : %d][%s] %s index returned did not match\\n", __LINE__, API_NAMESPACE, "mc_playlist_get_name");
+                       mc_playlist_destroy(hPlaylist);
+                       return 1;
+               }
+
+               nRet = mc_playlist_destroy(hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_destroy", MediaControllerGetError(nRet));
+
+               return 0;
+}
 /** @} */
 /** @} */
index 07414f8..f55312f 100755 (executable)
@@ -121,6 +121,12 @@ void ClientRepeatModeUpdatedCallBack(const char *server_name, mc_repeat_mode_e m
 void ClientCustomComandReplyCallBack(const char *server_name, const char *request_id, int result_code, bundle *data, void *user_data);
 void EventReceivedCallback(const char *object_name, const char *request_id, int result_code, bundle *data, void *user_data);
 bool McActivatedClientCb(const char *client_name, void *user_data);
+void ClientMcPlaylistUpdatedCallBack(const char *server_name, mc_playlist_update_mode_e mode, const char *playlist_name, mc_playlist_h playlist, void *user_data);
+int  ClientMcRegisterPlaylist(mc_playlist_h *playlist);
+bool ClientMcServerPlaylistListCallback(mc_playlist_h playlist, void *user_data);
+int  ServerMcRegisterPlaylist(mc_playlist_h *playlist);
+bool ServerMcPlaylistListCallback(mc_playlist_h playlist, void *user_data);
+bool ServerPlaylistItemCallback(const char *index, mc_metadata_h meta, void *user_data);
 
 //Add helper function declarations here
 char* MediaControllerGetError(int nRet);
index e1808ec..050c34b 100755 (executable)
 #include "ITs-media-controller-common.h"
 
 void *g_UserData = NULL;
-
+static char *g_PlaylistName = "test_playlist";
+static gboolean g_ResultPlaylistCb = false;
+static char *g_McServerName = NULL;
+static mc_server_state_e g_McServerState = MC_SERVER_STATE_NONE;
+static char *g_ItemIndex="3";
+static char *g_McTestMetadata[] = {
+        "media_title",
+        "media_artist",
+        "media_album",
+        "media_author",
+        "media_genre",
+        "200",
+        "media_date",
+        "media_copyright",
+        "media_description",
+        "media_track_num 3/10",
+        "media_picture_path",
+};
+
+static char* g_PlaylistArray[]={
+       "title_1",
+       "artist_1",
+       "album_1",
+       "author_1",
+       "genre_1",
+       "duration_1",
+       "date_1",
+       "copyright_1",
+       "destription_1",
+       "track_num_1",
+       "picture_1"
+};
 //& set: MediaController
 
 /** @addtogroup itc-media-controller-server
@@ -147,6 +178,109 @@ void ServerCustomCommandReceivedCallback(const char client_name, const char *req
        g_CallBackHit = true;
        QuitGmainLoop();
 }
+/*
+ * @function                   ServerMcRegisterPlaylist
+ * @description                ServerMcRegisterPlaylist creates and add items into playlist.
+ * @parameter          mc_playlist_h *playlist
+ * @return                     correct error code
+ */
+int ServerMcRegisterPlaylist(mc_playlist_h *hPlaylistReg)
+{
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_playlist_h hPlaylist = NULL;
+
+               nRet = mc_server_create_playlist(g_hMcServer, g_PlaylistName, &hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_create_playlist", MediaControllerGetError(nRet));
+               CHECK_HANDLE(hPlaylist, "mc_server_create_playlist");
+#ifndef WEARABLE
+               int sSize = sizeof(g_PlaylistArray)/sizeof(g_PlaylistArray[0]);
+               int StringIndex = 0;
+               for(StringIndex = 0; StringIndex < sSize; StringIndex++)
+               {
+                       FPRINTF("[%d:%s] Adding item to playlist index=%d, [%s]\n", __LINE__, __FUNCTION__, StringIndex, g_PlaylistArray[StringIndex]);
+                       nRet = mc_server_add_item_to_playlist(g_hMcServer, hPlaylist, "1", StringIndex, g_PlaylistArray[StringIndex]);
+                       PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_add_item_to_playlist", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist));
+               }
+
+               nRet = mc_server_update_playlist_done(g_hMcServer, hPlaylist);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_playlist_done", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist));
+#endif
+               *hPlaylistReg = hPlaylist;
+
+               return MEDIA_CONTROLLER_ERROR_NONE;
+}
+/*
+ * @function                   ServerMcPlaylistListCallback
+ * @description                ServerMcPlaylistListCallback  is invoked when playlist is updated
+ * @parameter          mc_playlist_h playlist, void *user_data
+ * @return             true/false on success and failure
+ */
+bool ServerMcPlaylistListCallback(mc_playlist_h hPlaylist, void *pUserData)
+{
+               FPRINTF("%d:%s invoked\n", __LINE__, __FUNCTION__);
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               char *pszPlaylistName = NULL;
+
+               nRet = mc_playlist_get_name(hPlaylist, &pszPlaylistName);
+               if (nRet != MEDIA_CONTROLLER_ERROR_NONE)
+                               FPRINTF("[%d:%s] fail mc_playlist_get_name [%d]\n", __LINE__, __FUNCTION__, nRet);
+
+               if (pszPlaylistName != NULL) {
+                               if(strncmp(pszPlaylistName, g_PlaylistName,strlen(g_PlaylistName))) {
+                                               FPRINTF("[%d:%s] wrong server name [%s][%s]\n", __LINE__, __FUNCTION__, pszPlaylistName, g_PlaylistName);
+                                               FREE_MEMORY(pszPlaylistName);
+                                               return false;
+                               }
+                               FREE_MEMORY(pszPlaylistName);
+               }
+
+               g_ResultPlaylistCb = true;
+
+               QuitGmainLoop();
+               return true;
+}
+
+/*
+ * @function                   ServerPlaylistItemCallback
+ * @description                ServerPlaylistItemCallback  is invoked when playlist item is updated
+ * @parameter          const char *index, mc_metadata_h meta, void *user_data
+ * @return             true/false on success and failure
+ */
+bool ServerPlaylistItemCallback(const char *pIndex, mc_metadata_h hMetaData, void *pUserData)
+{
+               FPRINTF("%d:%s invoked\n", __LINE__, __FUNCTION__);
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               char *pszValue = NULL;
+
+               if (pIndex != NULL) {
+                               if(strncmp(pIndex, "1",strlen("1"))) {
+                                               FPRINTF("[%d:%s] wrong playlist index [%s]\n", __LINE__, __FUNCTION__, pIndex);
+                                               return false;
+                               }
+
+                               nRet = mc_metadata_get(hMetaData, MC_META_MEDIA_TITLE, &pszValue);
+                               if (nRet != MEDIA_CONTROLLER_ERROR_NONE)
+                                               FPRINTF("[%d:%s] fail mc_metadata_get [%d]\n", __LINE__, __FUNCTION__, nRet);
+
+                               if (pszValue != NULL) {
+                                               if(strncmp(pszValue, "title_1",strlen("title_1"))) {
+                                                               FPRINTF("[%d:%s] fail mc_metadata_get [%s]\n", __LINE__, __FUNCTION__, pszValue);
+                                                               FREE_MEMORY(pszValue);
+                                                               return false;
+                                               }
+                                               FREE_MEMORY(pszValue);
+                               }
+
+                               g_ResultPlaylistCb = true;
+               } else {
+                               FPRINTF("[%d:%s] wrong index\n", __LINE__, __FUNCTION__);
+                               return false;
+               }
+               QuitGmainLoop();
+               return true;
+}
 
 
 /** @addtogroup itc-media-controller-testcases
@@ -629,12 +763,12 @@ int ITc_mc_server_foreach_client_p(void)
        START_TEST;
 
        int nRet = MEDIA_CONTROLLER_ERROR_NONE;
-       g_CallBackHit = FALSE;
+       g_CallBackHit = false;
 
        nRet = mc_server_foreach_client(g_hMcServer, McActivatedClientCb, NULL);
        PRINT_RESULT(nRet, MEDIA_CONTROLLER_ERROR_NONE, "mc_server_foreach_client", MediaControllerGetError(nRet));
 
-       PRINT_RESULT(g_CallBackHit, TRUE, "mc_server_foreach_client", "FALSE");
+       PRINT_RESULT(g_CallBackHit, true, "mc_server_foreach_client", "false");
 
        return 0;
 }
@@ -662,7 +796,7 @@ int ITc_mc_server_set_unset_cb_send_custom_event_p(void)
        int nRet = MEDIA_CONTROLLER_ERROR_NONE;
        char *pszEvent = "test";
        char *pClientName = NULL;
-       g_CallBackHit = FALSE;
+       g_CallBackHit = false;
 
        nRet = mc_server_set_event_reply_received_cb(g_hMcServer, EventReceivedCallback, NULL);
        PRINT_RESULT(nRet, MEDIA_CONTROLLER_ERROR_NONE, "mc_server_set_event_reply_received_cb", MediaControllerGetError(nRet));
@@ -675,7 +809,7 @@ int ITc_mc_server_set_unset_cb_send_custom_event_p(void)
        PRINT_RESULT_CLEANUP(nRet, MEDIA_CONTROLLER_ERROR_NONE, "mc_server_send_custom_event", MediaControllerGetError(nRet), FREE_MEMORY(pClientName); mc_server_unset_event_reply_received_cb(g_hMcServer));
        IterateGmainLoop();
 
-       PRINT_RESULT_CLEANUP(g_CallBackHit, TRUE, "mc_server_send_custom_event", "FALSE", FREE_MEMORY(pClientName); mc_server_unset_event_reply_received_cb(g_hMcServer));
+       PRINT_RESULT_CLEANUP(g_CallBackHit, true, "mc_server_send_custom_event", "false", FREE_MEMORY(pClientName); mc_server_unset_event_reply_received_cb(g_hMcServer));
 
        nRet = mc_server_unset_event_reply_received_cb(g_hMcServer);
        PRINT_RESULT_CLEANUP(nRet, MEDIA_CONTROLLER_ERROR_NONE, "mc_server_unset_event_reply_received_cb", MediaControllerGetError(nRet), FREE_MEMORY(pClientName));
@@ -684,6 +818,362 @@ int ITc_mc_server_set_unset_cb_send_custom_event_p(void)
 
        return 0;
 }
+/**
+ * @testcase                                   ITc_mc_server_set_playlist_item_index_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                Sets playlist item index
+ * @scenario                                   Call mc_server_set_playlist_item_index and sets item index
+ * @apicovered                         mc_server_set_playlist_item_index
+ * @passcase                                   If mc_server_set_playlist_item_index index returns success error code
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+//& type: auto
+//& purpose: To set playlist item index
+
+int ITc_mc_server_set_playlist_item_index_p(void)
+{
+               START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+
+               nRet = mc_server_set_playlist_item_index(g_hMcServer, g_ItemIndex);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_playlist_item_index", MediaControllerGetError(nRet));
+
+               return 0;
+}
+
+  /**
+ * @testcase                                   ITc_mc_server_create_destroy_playlist_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                mc_server_create_playlist  creates a new playlist and then it is destroyed
+ * @scenario                                   Call mc_server_create_playlist and mc_playlist_destroy
+ * @apicovered                         mc_server_create_playlist,mc_playlist_destroy
+ * @passcase                                   If mc_server_create_playlist,mc_playlist_destroy  returns success error code
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+//& type: auto
+//& purpose:  To destroy created playlist
+
+int ITc_mc_server_create_destroy_playlist_p(void)
+{
+               START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_playlist_h hPlaylist = NULL;
+
+               nRet = mc_server_create_playlist(g_hMcServer, g_PlaylistName, &hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_create_playlist", MediaControllerGetError(nRet));
+               CHECK_HANDLE(hPlaylist, "mc_server_create_playlist");
+
+               nRet = mc_playlist_destroy(hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_destroy", MediaControllerGetError(nRet));
+
+               return 0;
+}
+
+ /**
+ * @testcase                                   ITc_mc_server_create_update_add_delete_playlist_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                ITc_mc_server_create_update_add_delete_playlist_p to create ,update ,add  and delete  item to playlist.
+ * @scenario                                   Call ServerMcRegisterPlaylist
+ * @apicovered                         mc_server_create_playlist,mc_server_create_playlist,mc_server_delete_playlist,mc_playlist_destroy
+ * @passcase                                   If create ,delete ,update and add is items into playlist is successful.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+//& type: auto
+//& purpose: To create ,update ,add  and  delete item to playlist.
+
+int ITc_mc_server_create_update_add_delete_playlist_p(void)
+{
+               START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_playlist_h hPlaylist = NULL;
+
+               nRet = ServerMcRegisterPlaylist(&hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "ServerMcRegisterPlaylist", MediaControllerGetError(nRet));
+               CHECK_HANDLE(hPlaylist, "ServerMcRegisterPlaylist");
+
+               nRet = mc_server_create_playlist(g_hMcServer, g_PlaylistName, &hPlaylist);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_create_playlist", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist));
+
+               nRet = mc_server_delete_playlist(g_hMcServer, hPlaylist);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_delete_playlist", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist));
+
+               nRet = mc_playlist_destroy(hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_destroy", MediaControllerGetError(nRet));
+
+               return 0;
+}
+
+ /**
+ * @testcase                                   ITc_mc_server_foreach_playlist_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                callback invoked for each playlist item.
+ * @scenario                                   Call ITc_mc_server_foreach_playlist_p
+ * @apicovered                         ServerMcRegisterPlaylist,mc_server_foreach_playlist,mc_playlist_destroy.
+ * @passcase                                   If ServerMcRegisterPlaylist,mc_server_foreach_playlist  is successful.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+//& type: auto
+//& purpose: To check wether playlist list callback is being invoked.
+int ITc_mc_server_foreach_playlist_p(void)
+{
+               START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_playlist_h hPlaylist = NULL;
+               g_ResultPlaylistCb = false;
+
+               nRet = ServerMcRegisterPlaylist(&hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "ServerMcRegisterPlaylist", MediaControllerGetError(nRet));
+               CHECK_HANDLE(hPlaylist, "ServerMcRegisterPlaylist");
+
+               nRet = mc_server_foreach_playlist(g_hMcServer, ServerMcPlaylistListCallback, NULL);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "ServerMcRegisterPlaylist", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist););
+
+
+               IterateGmainLoop();
+               PRINT_RESULT_CLEANUP(true, g_ResultPlaylistCb, "ServerMcPlaylistListCallback", "CallBack Not Invoked", mc_playlist_destroy(hPlaylist);mc_server_unset_playback_position_cmd_received_cb(g_hMcServer));
+
+               nRet = mc_playlist_destroy(hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_destroy", MediaControllerGetError(nRet));
+
+               return 0;
+}
+
+ /**
+ * @testcase                                   ITc_mc_playlist_foreach_item_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                Positive test case of mc_playlist_foreach_item
+ * @scenario                                   Callback invoked for each playlist item
+ * @apicovered                         mc_playlist_foreach_item,ServerMcRegisterPlaylist,mc_playlist_destroy.
+ * @passcase                                   If ServerMcRegisterPlaylist,mc_playlist_foreach_item is successful.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+//& type: auto
+//& purpose: To see wether playlist item callback is being invoked or not.
+int ITc_mc_playlist_foreach_item_p(void)
+{
+               START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_playlist_h hPlaylist = NULL;
+               g_ResultPlaylistCb = false;
+
+               nRet = ServerMcRegisterPlaylist(&hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "ITc_client_mc_register_playlist", MediaControllerGetError(nRet));
+               CHECK_HANDLE(hPlaylist, "ServerMcRegisterPlaylist");
+
+               nRet = mc_playlist_foreach_item(hPlaylist, ServerPlaylistItemCallback, NULL);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_foreach_item", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist));
+
+               IterateGmainLoop();
+               PRINT_RESULT_CLEANUP(true, g_ResultPlaylistCb, "ServerPlaylistItemCallback", "CallBack Not Invoked", mc_playlist_destroy(hPlaylist);mc_server_unset_playback_position_cmd_received_cb(g_hMcServer));
+
+               nRet = mc_playlist_destroy(hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_destroy", MediaControllerGetError(nRet));
+
+               return 0;
+}
+
+  /**
+ * @testcase                                   ITc_mc_playlist_clone_and_destroy_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                Positive test case for cloning and destroying playlist.
+ * @scenario                                   Call ServerMcRegisterPlaylist
+ * @apicovered                         ServerMcRegisterPlaylist,mc_playlist_clone,mc_playlist_destroy.
+ * @passcase                                   If mc_playlist_clone and mc_playlist_destroy is successful.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+//& type: auto
+//& purpose: To clone and destroy playlist data
+
+int ITc_mc_playlist_clone_and_destroy_p(void)
+{
+               START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_playlist_h hPlaylist = NULL;
+               mc_playlist_h hPlaylistDst = NULL;
+
+               nRet = ServerMcRegisterPlaylist(&hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "ServerMcRegisterPlaylist", MediaControllerGetError(nRet));
+               CHECK_HANDLE(hPlaylist, "mc_client_get_latest_server_info");
+
+               nRet = mc_playlist_clone(hPlaylist, &hPlaylistDst);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_clone", MediaControllerGetError(nRet),mc_playlist_destroy(hPlaylist));
+
+               nRet = mc_playlist_destroy(hPlaylist);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_destroy", MediaControllerGetError(nRet));
 
+               nRet = mc_playlist_destroy(hPlaylistDst);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_playlist_destroy", MediaControllerGetError(nRet));
+
+               return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_metadata_clone_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                Positive test case of metadata clone.
+ * @scenario                                   Call mc_metadata_clone
+ * @apicovered                         mc_client_get_latest_server_info,mc_client_get_server_metadata,mc_metadata_clone,mc_metadata_destroy
+ * @passcase                                   If mc_metadata_clone and mc_metadata_destroy is successful.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+ //& type: auto
+//& purpose: To clone and destroy metadata
+int ITc_mc_metadata_clone_p(void)
+{
+       START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_metadata_h hMetadata = NULL;
+               mc_metadata_h hMetadataDst = NULL;
+
+               nRet = mc_client_get_latest_server_info(g_hMcClient, &g_McServerName, &g_McServerState);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_latest_server_info", MediaControllerGetError(nRet));
+               CHECK_HANDLE(g_McServerName, "mc_client_get_latest_server_info");
+
+               nRet = mc_client_get_server_metadata(g_hMcClient, g_McServerName, &hMetadata);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_metadata", MediaControllerGetError(nRet),FREE_MEMORY(g_McServerName));
+               CHECK_HANDLE_CLEANUP(g_McServerName, "mc_client_get_server_metadata",FREE_MEMORY(g_McServerName));
+
+               nRet = mc_metadata_clone(hMetadata, &hMetadataDst);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_clone", MediaControllerGetError(nRet),FREE_MEMORY(g_McServerName);mc_metadata_destroy(hMetadata));
+
+               nRet = mc_metadata_destroy(hMetadata);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_destroy", MediaControllerGetError(nRet));
+
+
+               return 0;
+}
+  /**
+ * @testcase                                   ITc_mc_metadata_destroy_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                Positive test case to get server metadata and then destroy it.
+ * @scenario                                   Call  mc_client_get_server_metadata and mc_metadata_destroy
+ * @apicovered                         mc_client_get_latest_server_info,mc_client_get_server_metadata,mc_metadata_destroy
+ * @passcase                                   If mc_metadata_destroy is successful.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+ //& type: auto
+//& purpose: To destroy  server metadata
+int ITc_mc_metadata_destroy_p(void)
+{
+               START_TEST;
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_metadata_h hMetadata = NULL;
+
+               nRet = mc_client_get_latest_server_info(g_hMcClient, &g_McServerName, &g_McServerState);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_latest_server_info", MediaControllerGetError(nRet));
+               CHECK_HANDLE(g_McServerName, "mc_client_get_latest_server_info");
+
+               nRet = mc_client_get_server_metadata(g_hMcClient, g_McServerName, &hMetadata);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_metadata", MediaControllerGetError(nRet),FREE_MEMORY(g_McServerName));
+               CHECK_HANDLE_CLEANUP(hMetadata, "mc_client_get_server_metadata",FREE_MEMORY(g_McServerName));
+
+               nRet = mc_metadata_destroy(hMetadata);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_destroy", MediaControllerGetError(nRet),FREE_MEMORY(g_McServerName));
+
+        return 0;
+}
+
+  /**
+ * @testcase                                   ITc_mc_metadata_get_p
+ * @author                                     SRID(bipin.k)
+ * @reviewer                                   SRID(a.pandia1)
+ * @type                                               auto
+ * @since_tizen                                4.0
+ * @description                                Positive test case of mc_metadata_get and then destroy it.
+ * @scenario                                   Call ITc_mc_metadata_get_p, mc_metadata_destroy
+ * @apicovered                         mc_client_get_latest_server_info,mc_client_get_server_metadata,mc_metadata_get
+ * @passcase                                   If mc_metadata_get and mc_metadata_destroy is successful.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+ //& type: auto
+//& purpose: To get and destroy metadata
+int ITc_mc_metadata_get_p(void)
+{
+               START_TEST;
+
+               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+               mc_metadata_h hMetadata = NULL;
+               char *pValue = NULL;
+               bool bCheckVal = false;
+
+               nRet = mc_client_get_latest_server_info(g_hMcClient, &g_McServerName, &g_McServerState);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_latest_server_info", MediaControllerGetError(nRet));
+               CHECK_HANDLE(g_McServerName, "mc_client_get_latest_server_info");
+
+               nRet = mc_client_get_server_metadata(g_hMcClient, g_McServerName, &hMetadata);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_metadata", MediaControllerGetError(nRet),FREE_MEMORY(g_McServerName));
+               CHECK_HANDLE_CLEANUP(hMetadata, "mc_client_get_server_metadata",FREE_MEMORY(g_McServerName));
+
+               nRet = mc_metadata_get(hMetadata, MC_META_MEDIA_TITLE, &pValue);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_get", MediaControllerGetError(nRet),mc_metadata_destroy(hMetadata);FREE_MEMORY(g_McServerName));
+               CHECK_HANDLE_CLEANUP(pValue, "mc_metadata_get", mc_metadata_destroy(hMetadata);FREE_MEMORY(g_McServerName));
+
+               if (strncmp(pValue, g_McTestMetadata[0],strlen( g_McTestMetadata[0])) == 0){
+                       bCheckVal = true;
+               }
+               FREE_MEMORY(pValue);
+
+               if(bCheckVal != true){
+                       FPRINTF("[Line : %d][%s] %s Metadata is not Correct\\n", __LINE__, API_NAMESPACE, "mc_metadata_get");
+                       FREE_MEMORY(g_McServerName);
+                       mc_metadata_destroy(hMetadata);
+                       return 1;
+               }
+
+               FREE_MEMORY(g_McServerName);
+               nRet = mc_metadata_destroy(hMetadata);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_destroy_metadata", MediaControllerGetError(nRet));
+
+               return 0;
+}
 /** @} */
 /** @} */
index 2d5df0e..dba2cb7 100755 (executable)
@@ -40,11 +40,11 @@ extern int ITc_mc_server_set_unset_custom_cmd_received_cb_p(void);
 extern int ITc_mc_server_foreach_client_p(void);
 extern int ITc_mc_server_set_unset_cb_send_custom_event_p(void);
 extern int ITs_mc_client_create_destroy_p(void);
-extern int ITs_mc_client_set_unset_server_update_cb_p(void);
-extern int ITs_mc_client_set_unset_playback_update_cb_p(void);
-extern int ITs_mc_client_set_unset_metadata_update_cb_p(void);
-extern int ITs_mc_client_set_unset_shuffle_mode_update_cb_p(void);
-extern int ITs_mc_client_set_unset_repeat_mode_update_cb_p(void);
+extern int ITs_mc_client_set_unset_server_updated_cb_p(void);
+extern int ITs_mc_client_set_unset_playback_updated_cb_p(void);
+extern int ITs_mc_client_set_unset_metadata_updated_cb_p(void);
+extern int ITs_mc_client_set_unset_shuffle_mode_updated_cb_p(void);
+extern int ITs_mc_client_set_unset_repeat_mode_updated_cb_p(void);
 extern int ITc_mc_client_get_latest_server_info_p(void);
 extern int ITc_mc_client_get_destroy_server_playback_info_p(void);
 extern int ITc_mc_client_get_destroy_server_metadata_p(void);
@@ -52,7 +52,6 @@ extern int ITc_mc_client_get_server_shuffle_mode_p(void);
 extern int ITc_mc_client_get_server_repeat_mode_p(void);
 extern int ITc_mc_client_get_playback_state_p(void);
 extern int ITc_mc_client_get_playback_position_p(void);
-extern int ITc_mc_client_get_metadata_p(void);
 extern int ITs_mc_client_foreach_server_p(void);
 extern int ITs_mc_client_send_playback_action_cmd_p(void);
 extern int ITc_mc_client_subscribe_unsubscribe_p(void);
@@ -64,6 +63,19 @@ extern int ITc_mc_client_send_playlist_cmd_p(void);
 extern int ITc_mc_client_send_custom_cmd_p(void);
 extern int ITc_mc_client_set_unset_cmd_reply_received_cb_p(void);
 extern int ITc_mc_client_set_unset_cb_send_event_reply_p(void);
+extern int ITc_mc_client_set_unset_playlist_updated_cb_p(void);
+extern int ITc_mc_client_foreach_server_playlist_p(void);
+extern int ITc_mc_client_get_playlist_item_index_p(void);
+extern int ITc_mc_playlist_get_name_p(void);
+extern int ITc_mc_server_set_playlist_item_index_p(void);
+extern int ITc_mc_server_create_destroy_playlist_p(void);
+extern int ITc_mc_server_create_update_add_delete_playlist_p(void);
+extern int ITc_mc_server_foreach_playlist_p(void);
+extern int ITc_mc_playlist_foreach_item_p(void);
+extern int ITc_mc_playlist_clone_and_destroy_p(void);
+extern int ITc_mc_metadata_clone_p(void);
+extern int ITc_mc_metadata_destroy_p(void);
+extern int ITc_mc_metadata_get_p(void);
 
 testcase tc_array[] = {
        {"ITc_mc_server_create_destroy_p",ITc_mc_server_create_destroy_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
@@ -82,11 +94,11 @@ testcase tc_array[] = {
        {"ITc_mc_server_foreach_client_p",ITc_mc_server_foreach_client_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITc_mc_server_set_unset_cb_send_custom_event_p",ITc_mc_server_set_unset_cb_send_custom_event_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITs_mc_client_create_destroy_p",ITs_mc_client_create_destroy_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_set_unset_server_update_cb_p",ITs_mc_client_set_unset_server_update_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_set_unset_playback_update_cb_p",ITs_mc_client_set_unset_playback_update_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_set_unset_metadata_update_cb_p",ITs_mc_client_set_unset_metadata_update_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_set_unset_shuffle_mode_update_cb_p",ITs_mc_client_set_unset_shuffle_mode_update_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_set_unset_repeat_mode_update_cb_p",ITs_mc_client_set_unset_repeat_mode_update_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITs_mc_client_set_unset_server_updated_cb_p",ITs_mc_client_set_unset_server_updated_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITs_mc_client_set_unset_playback_updated_cb_p",ITs_mc_client_set_unset_playback_updated_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITs_mc_client_set_unset_metadata_updated_cb_p",ITs_mc_client_set_unset_metadata_updated_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITs_mc_client_set_unset_shuffle_mode_updated_cb_p",ITs_mc_client_set_unset_shuffle_mode_updated_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITs_mc_client_set_unset_repeat_mode_updated_cb_p",ITs_mc_client_set_unset_repeat_mode_updated_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_latest_server_info_p",ITc_mc_client_get_latest_server_info_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_destroy_server_playback_info_p",ITc_mc_client_get_destroy_server_playback_info_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_destroy_server_metadata_p",ITc_mc_client_get_destroy_server_metadata_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
@@ -94,7 +106,6 @@ testcase tc_array[] = {
        {"ITc_mc_client_get_server_repeat_mode_p",ITc_mc_client_get_server_repeat_mode_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_playback_state_p",ITc_mc_client_get_playback_state_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_playback_position_p",ITc_mc_client_get_playback_position_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITc_mc_client_get_metadata_p",ITc_mc_client_get_metadata_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITs_mc_client_foreach_server_p",ITs_mc_client_foreach_server_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITs_mc_client_send_playback_action_cmd_p",ITs_mc_client_send_playback_action_cmd_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_subscribe_unsubscribe_p",ITc_mc_client_subscribe_unsubscribe_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
@@ -106,6 +117,19 @@ testcase tc_array[] = {
        {"ITc_mc_client_send_custom_cmd_p",ITc_mc_client_send_custom_cmd_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_set_unset_cmd_reply_received_cb_p",ITc_mc_client_set_unset_cmd_reply_received_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_set_unset_cb_send_event_reply_p",ITc_mc_client_set_unset_cb_send_event_reply_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+     {"ITc_mc_client_set_unset_playlist_updated_cb_p",ITc_mc_client_set_unset_playlist_updated_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_foreach_server_playlist_p",ITc_mc_client_foreach_server_playlist_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_playlist_item_index_p",ITc_mc_client_get_playlist_item_index_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_playlist_get_name_p",ITc_mc_playlist_get_name_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_server_set_playlist_item_index_p",ITc_mc_server_set_playlist_item_index_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_server_create_destroy_playlist_p",ITc_mc_server_create_destroy_playlist_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_server_create_update_add_delete_playlist_p",ITc_mc_server_create_update_add_delete_playlist_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_server_foreach_playlist_p",ITc_mc_server_foreach_playlist_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_playlist_foreach_item_p",ITc_mc_playlist_foreach_item_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_playlist_clone_and_destroy_p",ITc_mc_playlist_clone_and_destroy_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_metadata_clone_p",ITc_mc_metadata_clone_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_metadata_destroy_p",ITc_mc_metadata_destroy_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_metadata_get_p",ITc_mc_metadata_get_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {NULL, NULL}
 };
 
index 2d5df0e..c87854e 100755 (executable)
@@ -32,19 +32,8 @@ extern int ITc_mc_server_update_playback_info_p(void);
 extern int ITc_mc_server_update_metadata_p(void);
 extern int ITc_mc_server_update_shuffle_mode_p(void);
 extern int ITc_mc_server_update_repeat_mode_p(void);
-extern int ITc_mc_server_set_unset_repeat_mode_cmd_received_cb_p(void);
 extern int ITc_mc_server_set_unset_shufle_mode_cmd_received_cb_p(void);
-extern int ITc_mc_server_set_unset_playback_position_cmd_received_cb_p(void);
-extern int ITc_mc_server_set_unset_playlist_cmd_received_cb_p(void);
-extern int ITc_mc_server_set_unset_custom_cmd_received_cb_p(void);
-extern int ITc_mc_server_foreach_client_p(void);
-extern int ITc_mc_server_set_unset_cb_send_custom_event_p(void);
 extern int ITs_mc_client_create_destroy_p(void);
-extern int ITs_mc_client_set_unset_server_update_cb_p(void);
-extern int ITs_mc_client_set_unset_playback_update_cb_p(void);
-extern int ITs_mc_client_set_unset_metadata_update_cb_p(void);
-extern int ITs_mc_client_set_unset_shuffle_mode_update_cb_p(void);
-extern int ITs_mc_client_set_unset_repeat_mode_update_cb_p(void);
 extern int ITc_mc_client_get_latest_server_info_p(void);
 extern int ITc_mc_client_get_destroy_server_playback_info_p(void);
 extern int ITc_mc_client_get_destroy_server_metadata_p(void);
@@ -52,18 +41,9 @@ extern int ITc_mc_client_get_server_shuffle_mode_p(void);
 extern int ITc_mc_client_get_server_repeat_mode_p(void);
 extern int ITc_mc_client_get_playback_state_p(void);
 extern int ITc_mc_client_get_playback_position_p(void);
-extern int ITc_mc_client_get_metadata_p(void);
 extern int ITs_mc_client_foreach_server_p(void);
-extern int ITs_mc_client_send_playback_action_cmd_p(void);
 extern int ITc_mc_client_subscribe_unsubscribe_p(void);
 extern int ITc_mc_client_foreach_server_subscribed_p(void);
-extern int ITc_mc_client_send_playback_position_cmd_p(void);
-extern int ITc_mc_client_send_shuffle_mode_cmd_p(void);
-extern int ITc_mc_client_send_repeat_mode_cmd_p(void);
-extern int ITc_mc_client_send_playlist_cmd_p(void);
-extern int ITc_mc_client_send_custom_cmd_p(void);
-extern int ITc_mc_client_set_unset_cmd_reply_received_cb_p(void);
-extern int ITc_mc_client_set_unset_cb_send_event_reply_p(void);
 
 testcase tc_array[] = {
        {"ITc_mc_server_create_destroy_p",ITc_mc_server_create_destroy_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
@@ -74,19 +54,8 @@ testcase tc_array[] = {
        {"ITc_mc_server_update_metadata_p",ITc_mc_server_update_metadata_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITc_mc_server_update_shuffle_mode_p",ITc_mc_server_update_shuffle_mode_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITc_mc_server_update_repeat_mode_p",ITc_mc_server_update_repeat_mode_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
-       {"ITc_mc_server_set_unset_repeat_mode_cmd_received_cb_p",ITc_mc_server_set_unset_repeat_mode_cmd_received_cb_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITc_mc_server_set_unset_shufle_mode_cmd_received_cb_p",ITc_mc_server_set_unset_shufle_mode_cmd_received_cb_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
-       {"ITc_mc_server_set_unset_playback_position_cmd_received_cb_p",ITc_mc_server_set_unset_playback_position_cmd_received_cb_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
-       {"ITc_mc_server_set_unset_playlist_cmd_received_cb_p",ITc_mc_server_set_unset_playlist_cmd_received_cb_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
-       {"ITc_mc_server_set_unset_custom_cmd_received_cb_p",ITc_mc_server_set_unset_custom_cmd_received_cb_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
-       {"ITc_mc_server_foreach_client_p",ITc_mc_server_foreach_client_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
-       {"ITc_mc_server_set_unset_cb_send_custom_event_p",ITc_mc_server_set_unset_cb_send_custom_event_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITs_mc_client_create_destroy_p",ITs_mc_client_create_destroy_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_set_unset_server_update_cb_p",ITs_mc_client_set_unset_server_update_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_set_unset_playback_update_cb_p",ITs_mc_client_set_unset_playback_update_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_set_unset_metadata_update_cb_p",ITs_mc_client_set_unset_metadata_update_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_set_unset_shuffle_mode_update_cb_p",ITs_mc_client_set_unset_shuffle_mode_update_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_set_unset_repeat_mode_update_cb_p",ITs_mc_client_set_unset_repeat_mode_update_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_latest_server_info_p",ITc_mc_client_get_latest_server_info_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_destroy_server_playback_info_p",ITc_mc_client_get_destroy_server_playback_info_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_destroy_server_metadata_p",ITc_mc_client_get_destroy_server_metadata_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
@@ -94,18 +63,9 @@ testcase tc_array[] = {
        {"ITc_mc_client_get_server_repeat_mode_p",ITc_mc_client_get_server_repeat_mode_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_playback_state_p",ITc_mc_client_get_playback_state_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_playback_position_p",ITc_mc_client_get_playback_position_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITc_mc_client_get_metadata_p",ITc_mc_client_get_metadata_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITs_mc_client_foreach_server_p",ITs_mc_client_foreach_server_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITs_mc_client_send_playback_action_cmd_p",ITs_mc_client_send_playback_action_cmd_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_subscribe_unsubscribe_p",ITc_mc_client_subscribe_unsubscribe_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_foreach_server_subscribed_p",ITc_mc_client_foreach_server_subscribed_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITc_mc_client_send_playback_position_cmd_p",ITc_mc_client_send_playback_position_cmd_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITc_mc_client_send_shuffle_mode_cmd_p",ITc_mc_client_send_shuffle_mode_cmd_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITc_mc_client_send_repeat_mode_cmd_p",ITc_mc_client_send_repeat_mode_cmd_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITc_mc_client_send_playlist_cmd_p",ITc_mc_client_send_playlist_cmd_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITc_mc_client_send_custom_cmd_p",ITc_mc_client_send_custom_cmd_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITc_mc_client_set_unset_cmd_reply_received_cb_p",ITc_mc_client_set_unset_cmd_reply_received_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
-       {"ITc_mc_client_set_unset_cb_send_event_reply_p",ITc_mc_client_set_unset_cb_send_event_reply_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {NULL, NULL}
 };