[ITC][media-controller][ACR-1444][Add new APIs for subtitles, 360 mode, display mode... 88/215288/4
authorABHISHEK JAIN <j.abhishek@samsung.com>
Fri, 4 Oct 2019 12:59:09 +0000 (18:29 +0530)
committershobhit verma <shobhit.v@samsung.com>
Wed, 9 Oct 2019 05:58:32 +0000 (05:58 +0000)
Change-Id: Ia2bb5213e1d287e55e83c94238a8265052e2b557
Signed-off-by: ABHISHEK JAIN <j.abhishek@samsung.com>
src/itc/media-controller/ITs-media-controller-client.c
src/itc/media-controller/ITs-media-controller-common.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_tizeniot.h
src/itc/media-controller/tct-media-controller-native_wearable.h

index 44080c06ac056564a037916f1adf607b5af4974b..f59d2c8d1a5716cd1824e65456d273503f83b9b3 100755 (executable)
@@ -64,6 +64,22 @@ mc_ability_e g_eAbilitySupportAllArray[] = {MC_ABILITY_SHUFFLE,    /**< Shuffle
                                                  MC_ABILITY_CLIENT_CUSTOM,  /**< Custom command from a client */
                                                  MC_ABILITY_SEARCH,    /**< Search */ };
 
+mc_display_mode_e g_controller_eDisplayModeArray[] =
+{
+       MC_DISPLAY_MODE_LETTER_BOX,     /**< Letter box */
+       MC_DISPLAY_MODE_ORIGIN_SIZE,    /**< Origin size */
+       MC_DISPLAY_MODE_FULL_SCREEN,    /**< Full-screen */
+       MC_DISPLAY_MODE_CROPPED_FULL    /**< Cropped full-screen */
+};
+
+mc_display_rotation_e g_controller_eDisplayRotationArray[] =
+{
+       MC_DISPLAY_ROTATION_NONE,               /**< Display is not rotated */
+       MC_DISPLAY_ROTATION_90,         /**< Display is rotated 90 degrees */
+       MC_DISPLAY_ROTATION_180,        /**< Display is rotated 180 degrees */
+       MC_DISPLAY_ROTATION_270         /**< Display is rotated 270 degrees */
+};
+
 /*****************************************************Enum Definition End*****************************************************/
 static char* g_PlaylistArray[]={
        "title_1",
@@ -103,7 +119,6 @@ void ServerPlayBackActionCallBack(const char* client_name, const char *request_i
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
 
 /**
@@ -120,7 +135,6 @@ void ClientServerStateUpdatedCallBack(const char *server_name, mc_server_state_e
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
 
 /**
@@ -154,7 +168,6 @@ void ClientMetadataUpdatedCallBack(const char *server_name, mc_metadata_h metada
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
 
 /**
@@ -171,7 +184,6 @@ void ClientShuffleModeUpdatedCallBack(const char *server_name, mc_shuffle_mode_e
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
 
 /**
@@ -188,7 +200,6 @@ void ClientRepeatModeUpdatedCallBack(const char *server_name, mc_repeat_mode_e m
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
 
 /**
@@ -205,7 +216,6 @@ bool ClientForeachServerCallBack(const char *server_name, void *user_data)
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return false;
 }
 
 /**
@@ -222,7 +232,6 @@ bool ForeachServerSubscribedCallBack(const char *server_name, void *user_data)
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return false;
 }
 
 /**
@@ -239,11 +248,8 @@ void ClientCustomComandReplyCallBack(const char *server_name, const char *reques
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
 
-
-
 /**
  * @function                           ClientMcPlaylistUpdatedCallBack
  * @description                        Callback Function
@@ -252,30 +258,30 @@ void ClientCustomComandReplyCallBack(const char *server_name, const char *reques
  */
 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__);
+       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;
+       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);
+       }
+
+       g_CallBackHit = true;
+       QuitGmainLoop();
+
+       return;
 }
+
 /**
  * @function            ClientMcRegisterPlaylist
  * @description         Register function ,create and update playlist
@@ -284,27 +290,27 @@ void ClientMcPlaylistUpdatedCallBack(const char *pszServerName, mc_playlist_upda
  */
 int ClientMcRegisterPlaylist(mc_playlist_h *hPlaylistReg)
 {
-               int nRet = MEDIA_CONTROLLER_ERROR_NONE;
-               mc_playlist_h hPlaylist = NULL;
+       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_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");
 
-               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));
-               }
+       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));
-               *hPlaylistReg = 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));
+       *hPlaylistReg = hPlaylist;
 
-               return MEDIA_CONTROLLER_ERROR_NONE;
+       return MEDIA_CONTROLLER_ERROR_NONE;
 }
 
 /**
@@ -321,7 +327,6 @@ void ClientPlaybackAbilityUpdatedCallBack(const char *server_name, mc_playback_a
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
 
 /**
@@ -355,7 +360,6 @@ void McServerSearchCmdReceivedCallBack(const char *client_name, const char *requ
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
 
 /*
@@ -370,11 +374,13 @@ void ServerCustomCmdReceivedCallback(const char * client_name, const char *reque
        FPRINTF("[Line : %d][%s] %s Callback Invoked\\n", __LINE__, API_NAMESPACE, "ServerCustomCmdReceivedCallback");
 #endif
        if(client_name)
+       {
                strncpy(g_szClientName, client_name, strlen(client_name)+1);
+       }
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
+
 /**
  * @function           ClientAbilitySupportUpdatedCallBack
  * @description                Callback Function
@@ -391,6 +397,134 @@ void ClientAbilitySupportUpdatedCallBack(const char *server_name, mc_ability_e a
        QuitGmainLoop();
        return;
 }
+
+/**
+ * @function           ClientAbilitySupportedItemsUpdatedCallBack
+ * @description                Callback Function
+ * @parameter          const char *pszServerName, unsigned int nSupportedItems, void *pszData
+ * @return             NA
+ */
+void ClientAbilitySupportedItemsUpdatedCallBack(const char *pszServerName, unsigned int nSupportedItems, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] ClientAbilitySupportedItemsUpdatedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+       QuitGmainLoop();
+}
+
+/**
+ * @function           ClientBoolAttributeUpdatedCallBack
+ * @description                Callback Function
+ * @parameter          const char *pszServerName, bool bIsEnabled, void *pszData
+ * @return             NA
+ */
+void ClientBoolAttributeUpdatedCallBack(const char *pszServerName, bool bIsEnabled, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] ClientBoolAttributeUpdatedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+       QuitGmainLoop();
+}
+
+/**
+ * @function           ClientDisplayModeUpdatedCallBack
+ * @description                Callback Function
+ * @parameter          const char *pszServerName, mc_display_mode_e eDisplayMode, void *pszData
+ * @return             NA
+ */
+void ClientDisplayModeUpdatedCallBack(const char *pszServerName, mc_display_mode_e eDisplayMode, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] ClientDisplayModeUpdatedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+
+       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 (eDisplayMode != g_controller_eDisplayModeArray[g_nModeIdx])
+       {
+               FPRINTF("[%d:%s] wrong display mode [%d] expected display mode is[%d]\\n", __LINE__, __FUNCTION__, eDisplayMode, g_controller_eDisplayModeArray[g_nModeIdx]);
+       }
+
+       QuitGmainLoop();
+}
+
+/**
+ * @function           ClientDisplayRotationUpdatedCallBack
+ * @description                Callback Function
+ * @parameter          const char *pszServerName, mc_display_rotation_e eDisplayRotation, void *pszData
+ * @return             NA
+ */
+void ClientDisplayRotationUpdatedCallBack(const char *pszServerName, mc_display_rotation_e eDisplayRotation, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] ClientDisplayRotationUpdatedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+
+       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 (eDisplayRotation != g_controller_eDisplayRotationArray[g_nRotationIdx])
+       {
+               FPRINTF("[%d:%s] wrong display rotation [%d] expected display rotation is [%d]\\n", __LINE__, __FUNCTION__, eDisplayRotation, g_controller_eDisplayRotationArray[g_nRotationIdx]);
+       }
+       QuitGmainLoop();
+}
+
+/**
+ * @function           ServerDisplayModeCmdReceivedCallBack
+ * @description                Callback Function
+ * @parameter          const char *pszClientName, const char *pszReqID, mc_display_mode_e eDisplayMode, void *pszData
+ * @return             NA
+ */
+void ServerDisplayModeCmdReceivedCallBack(const char *pszClientName, const char *pszReqID, mc_display_mode_e eDisplayMode, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] ServerDisplayModeCmdReceivedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+
+       if (eDisplayMode != g_controller_eDisplayModeArray[g_nModeIdx]){
+               FPRINTF("[%d:%s] wrong display mode [%d] expected display mode is [%d]\\n", __LINE__, __FUNCTION__, eDisplayMode, g_controller_eDisplayModeArray[g_nModeIdx]);
+       }
+       QuitGmainLoop();
+}
+
+/**
+ * @function           ServerDisplayRotationCmdReceivedCallBack
+ * @description                Callback Function
+ * @parameter          const char *pszClientName, const char *pszReqID, mc_display_mode_e eDisplayMode, void *pszData
+ * @return             NA
+ */
+void ServerDisplayRotationCmdReceivedCallBack(const char *pszClientName, const char *pszReqID, mc_display_rotation_e eDisplayRotation, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] ServerDisplayRotationCmdReceivedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+
+       if (eDisplayRotation != MC_DISPLAY_ROTATION_270) {
+               FPRINTF("[%d:%s] wrong display rotation [%d] expected display rotation is [%d]\\n", __LINE__, __FUNCTION__, eDisplayRotation, MC_DISPLAY_ROTATION_270);
+       }
+       QuitGmainLoop();
+}
+
 /*****************************************************Callback End*****************************************************/
 
 /**
@@ -2064,5 +2198,670 @@ int ITc_mc_client_get_server_ability_support_p(void)
 
        return 0;
 }
+
+/**
+ * @testcase                                   ITc_mc_client_set_unset_display_mode_ability_updated_cb_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sets and unset the callback for monitoring the display mode ability of the media controller server.
+ * @scenario                                   Call mc_client_set_display_mode_ability_updated_cb and mc_client_unset_display_mode_ability_updated_cb
+ * @apicovered                                 mc_client_set_display_mode_ability_updated_cb, mc_client_unset_display_mode_ability_updated_cb
+ * @passcase                                   If mc_client_set_display_mode_ability_updated_cb, mc_client_unset_display_mode_ability_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sets and unset the callback for monitoring the display mode ability of the media controller server.
+int ITc_mc_client_set_unset_display_mode_ability_updated_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       unsigned int uDisplayMode = MC_DISPLAY_MODE_LETTER_BOX | MC_DISPLAY_MODE_ORIGIN_SIZE | MC_DISPLAY_MODE_FULL_SCREEN | MC_DISPLAY_MODE_CROPPED_FULL;
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_display_mode_ability_updated_cb(g_hMcClient, ClientAbilitySupportedItemsUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_display_mode_ability_updated_cb", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_display_mode_ability(g_hMcServer, uDisplayMode, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_mode_ability", MediaControllerGetError(nRet), mc_client_unset_display_mode_ability_updated_cb(g_hMcClient));
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "mc_client_set_display_mode_ability_updated_cb", "CallBack Not Invoked");
+
+       nRet = mc_client_unset_display_mode_ability_updated_cb(g_hMcClient);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_display_mode_ability_updated_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sets and unsets the callback for monitoring the display rotation ability of the media controller server.
+ * @scenario                                   Call mc_client_set_display_rotation_ability_updated_cb and mc_client_unset_display_rotation_ability_updated_cb
+ * @apicovered                                 mc_client_set_display_rotation_ability_updated_cb, mc_client_unset_display_rotation_ability_updated_cb
+ * @passcase                                   If mc_client_set_display_rotation_ability_updated_cb, mc_client_unset_display_rotation_ability_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sets and unsets the callback for monitoring the display rotation ability of the media controller server.
+int ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       unsigned int uDisplayRotation = MC_DISPLAY_ROTATION_NONE | MC_DISPLAY_ROTATION_90 | MC_DISPLAY_ROTATION_180 | MC_DISPLAY_ROTATION_270;
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_display_rotation_ability_updated_cb(g_hMcClient, ClientAbilitySupportedItemsUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_display_rotation_ability_updated_cb", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_display_rotation_ability(g_hMcServer, uDisplayRotation, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_rotation_ability", MediaControllerGetError(nRet), mc_client_unset_display_rotation_ability_updated_cb(g_hMcClient));
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "mc_client_set_display_rotation_ability_updated_cb", "CallBack Not Invoked");
+
+       nRet = mc_client_unset_display_rotation_ability_updated_cb(g_hMcClient);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_display_rotation_ability_updated_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_set_unset_subtitles_updated_cb_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sets and unsets the callback for monitoring the media controller server's subtitles display.
+ * @scenario                                   Call mc_client_set_subtitles_updated_cb and mc_client_unset_subtitles_updated_cb
+ * @apicovered                                 mc_client_set_subtitles_updated_cb, mc_client_unset_subtitles_updated_cb
+ * @passcase                                   If mc_client_set_subtitles_updated_cb, mc_client_unset_subtitles_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sets and unsets the callback for monitoring the media controller server's subtitles display.
+int ITc_mc_client_set_unset_subtitles_updated_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_subtitles_updated_cb(g_hMcClient, ClientBoolAttributeUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_subtitles_updated_cb", MediaControllerGetError(nRet));
+
+       nRet = mc_server_update_subtitles_enabled(g_hMcServer, true);
+       PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_subtitles_enabled", MediaControllerGetError(nRet), mc_client_unset_subtitles_updated_cb(g_hMcClient));
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "mc_client_set_subtitles_updated_cb", "CallBack Not Invoked");
+
+       nRet = mc_client_unset_subtitles_updated_cb(g_hMcClient);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_subtitles_updated_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_set_unset_360_mode_updated_cb_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sets and unsets the callback for monitoring the media controller server's 360 mode display.
+ * @scenario                                   Call mc_client_set_360_mode_updated_cb and mc_client_unset_360_mode_updated_cb
+ * @apicovered                                 mc_client_set_360_mode_updated_cb, mc_client_unset_360_mode_updated_cb
+ * @passcase                                   If mc_client_set_360_mode_updated_cb, mc_client_unset_360_mode_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sets and unsets the callback for monitoring the media controller server's 360 mode display.
+int ITc_mc_client_set_unset_360_mode_updated_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_360_mode_updated_cb(g_hMcClient, ClientBoolAttributeUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_360_mode_updated_cb", MediaControllerGetError(nRet));
+
+       nRet = mc_server_update_360_mode_enabled(g_hMcServer, true);
+       PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_360_mode_enabled", MediaControllerGetError(nRet), mc_client_unset_360_mode_updated_cb(g_hMcClient));
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "mc_client_set_360_mode_updated_cb", "CallBack Not Invoked");
+
+       nRet = mc_client_unset_360_mode_updated_cb(g_hMcClient);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_360_mode_updated_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_set_unset_display_mode_updated_cb_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sets and unsets the callback for monitoring the media controller server's display mode.
+ * @scenario                                   Call mc_client_set_display_mode_updated_cb and mc_client_unset_display_mode_updated_cb
+ * @apicovered                                 mc_client_set_display_mode_updated_cb, mc_client_unset_display_mode_updated_cb
+ * @passcase                                   If mc_client_set_display_mode_updated_cb, mc_client_unset_display_mode_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sets and unsets the callback for monitoring the media controller server's display mode.
+int ITc_mc_client_set_unset_display_mode_updated_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+
+       nRet = mc_client_set_display_mode_updated_cb(g_hMcClient, ClientDisplayModeUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_display_mode_updated_cb", MediaControllerGetError(nRet));
+
+       int nModeSize = sizeof(g_controller_eDisplayModeArray)/sizeof(g_controller_eDisplayModeArray[0]);
+
+       for(g_nModeIdx = 0; g_nModeIdx < nModeSize; g_nModeIdx++)
+       {
+               g_CallBackHit = false;
+               nRet = mc_server_update_display_mode(g_hMcServer, g_controller_eDisplayModeArray[g_nModeIdx]);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_display_mode", MediaControllerGetError(nRet), mc_client_unset_display_mode_updated_cb(g_hMcClient));
+
+               IterateGmainLoop();
+               PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_display_mode_updated_cb", "CallBack Not Invoked", mc_client_unset_display_mode_updated_cb(g_hMcClient));
+       }
+
+       nRet = mc_client_unset_display_mode_updated_cb(g_hMcClient);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_display_mode_updated_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_set_unset_display_rotation_updated_cb_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sets and unsets the callback for monitoring the media controller server's display rotation.
+ * @scenario                                   Call mc_client_set_display_rotation_updated_cb and mc_client_unset_display_rotation_updated_cb
+ * @apicovered                                 mc_client_set_display_rotation_updated_cb, mc_client_unset_display_rotation_updated_cb
+ * @passcase                                   If mc_client_set_display_rotation_updated_cb, mc_client_unset_display_rotation_updated_cb returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sets and unsets the callback for monitoring the media controller server's display rotation.
+int ITc_mc_client_set_unset_display_rotation_updated_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+
+       nRet = mc_client_set_display_rotation_updated_cb(g_hMcClient, ClientDisplayRotationUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_display_rotation_updated_cb", MediaControllerGetError(nRet));
+
+       int nRotationSize = sizeof(g_controller_eDisplayRotationArray)/sizeof(g_controller_eDisplayRotationArray[0]);
+
+       for(g_nRotationIdx = 0; g_nRotationIdx < nRotationSize; g_nRotationIdx++)
+       {
+               g_CallBackHit = false;
+               nRet = mc_server_update_display_rotation(g_hMcServer, g_controller_eDisplayRotationArray[g_nRotationIdx]);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_display_rotation", MediaControllerGetError(nRet), mc_client_unset_display_rotation_updated_cb(g_hMcClient));
+
+               IterateGmainLoop();
+               PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_set_display_rotation_updated_cb", "CallBack Not Invoked", mc_client_unset_display_rotation_updated_cb(g_hMcClient));
+       }
+
+       nRet = mc_client_unset_display_rotation_updated_cb(g_hMcClient);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_unset_display_rotation_updated_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_get_server_subtitles_enabled_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Gets the latest subtitles display status.
+ * @scenario                                   Call mc_client_get_server_subtitles_enabled
+ * @apicovered                                 mc_client_get_server_subtitles_enabled
+ * @passcase                                   If mc_client_get_server_subtitles_enabled returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Gets the latest subtitles display status.
+int ITc_mc_client_get_server_subtitles_enabled_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       bool bIsEnabled = false;
+
+       nRet = mc_server_update_subtitles_enabled(g_hMcServer, true);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_subtitles_enabled", 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));
+
+       nRet = mc_client_get_server_subtitles_enabled(g_hMcClient, g_McServerName, &bIsEnabled);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_subtitles_enabled", MediaControllerGetError(nRet));
+
+       PRINT_RESULT(true, bIsEnabled, "mc_client_get_server_subtitles_enabled", "mc_client_get_server_subtitles_enabled return value is different");
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_get_server_360_mode_enabled_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Gets the latest subtitles display status.
+ * @scenario                                   Call mc_client_get_server_subtitles_enabled
+ * @apicovered                                 mc_client_get_server_subtitles_enabled
+ * @passcase                                   If mc_client_get_server_subtitles_enabled returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Gets the latest subtitles display status.
+int ITc_mc_client_get_server_360_mode_enabled_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       bool bIsEnabled = false;
+
+       nRet = mc_server_update_360_mode_enabled(g_hMcServer, true);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_360_mode_enabled", 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));
+
+       nRet = mc_client_get_server_360_mode_enabled(g_hMcClient, g_McServerName, &bIsEnabled);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_360_mode_enabled", MediaControllerGetError(nRet));
+
+       PRINT_RESULT(true, bIsEnabled, "mc_client_get_server_360_mode_enabled", "mc_client_get_server_360_mode_enabled return value is different");
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_get_server_display_mode_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Gets the latest display mode.
+ * @scenario                                   Call mc_client_get_server_display_mode
+ * @apicovered                                 mc_client_get_server_display_mode
+ * @passcase                                   If mc_client_get_server_display_mode returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Gets the latest display mode.
+int ITc_mc_client_get_server_display_mode_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       mc_display_mode_e eGetMode = 0;
+
+       int nModeSize = sizeof(g_controller_eDisplayModeArray)/sizeof(g_controller_eDisplayModeArray[0]);
+       int nModeIdx;
+
+       for(nModeIdx = 0; nModeIdx < nModeSize; nModeIdx++)
+       {
+               nRet = mc_server_update_display_mode(g_hMcServer, g_controller_eDisplayModeArray[nModeIdx]);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_display_mode", 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));
+
+               nRet = mc_client_get_server_display_mode(g_hMcClient, g_McServerName, &eGetMode);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_display_mode", MediaControllerGetError(nRet));
+
+               PRINT_RESULT(g_controller_eDisplayModeArray[nModeIdx], eGetMode, "mc_client_get_server_display_mode", "display mode return value is different than updated");
+       }
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_get_server_display_rotation_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Gets the latest display rotation.
+ * @scenario                                   Call mc_client_get_server_display_rotation
+ * @apicovered                                 mc_client_get_server_display_rotation
+ * @passcase                                   If mc_client_get_server_display_rotation returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Gets the latest display rotation.
+int ITc_mc_client_get_server_display_rotation_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       mc_display_rotation_e eGetRotation = 0;
+
+       int nRotationSize = sizeof(g_controller_eDisplayRotationArray)/sizeof(g_controller_eDisplayRotationArray[0]);
+       int nRotationIdx;
+
+       for(nRotationIdx = 0; nRotationIdx < nRotationSize; nRotationIdx++)
+       {
+               nRet = mc_server_update_display_rotation(g_hMcServer, g_controller_eDisplayRotationArray[nRotationIdx]);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_display_rotation", 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));
+
+               nRet = mc_client_get_server_display_rotation(g_hMcClient, g_McServerName, &eGetRotation);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_display_rotation", MediaControllerGetError(nRet));
+
+               PRINT_RESULT(g_controller_eDisplayRotationArray[nRotationIdx], eGetRotation, "mc_client_get_server_display_rotation", "Updated and get display rotation is not matching");
+       }
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_get_server_display_mode_ability_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Gets the supported display mode of the updated media controller server.
+ * @scenario                                   Call mc_client_get_server_display_mode_ability
+ * @apicovered                                 mc_client_get_server_display_mode_ability
+ * @passcase                                   If mc_client_get_server_display_mode_ability returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Gets the supported display mode of the updated media controller server.
+int ITc_mc_client_get_server_display_mode_ability_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       unsigned int uSetDisplayAbility = MC_DISPLAY_MODE_LETTER_BOX | MC_DISPLAY_MODE_ORIGIN_SIZE | MC_DISPLAY_MODE_FULL_SCREEN | MC_DISPLAY_MODE_CROPPED_FULL;
+       unsigned int uGetDisplayAbility = 0;
+
+       nRet = mc_server_set_display_mode_ability(g_hMcServer, uSetDisplayAbility, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_mode_ability", 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));
+
+       nRet = mc_client_get_server_display_mode_ability(g_hMcClient, g_McServerName, &uGetDisplayAbility);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_display_mode_ability", MediaControllerGetError(nRet));
+
+       if(ClientGetDisplayModeAbility(uGetDisplayAbility))
+       {
+               return 1;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_get_server_display_rotation_ability_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Gets the supported display rotation of the updated media controller server.
+ * @scenario                                   Call mc_client_get_server_display_rotation_ability
+ * @apicovered                                 mc_client_get_server_display_rotation_ability
+ * @passcase                                   If mc_client_get_server_display_rotation_ability returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Gets the supported display rotation of the updated media controller server.
+int ITc_mc_client_get_server_display_rotation_ability_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       unsigned int uSetSupportedRotations = MC_DISPLAY_ROTATION_NONE | MC_DISPLAY_ROTATION_90 | MC_DISPLAY_ROTATION_180 | MC_DISPLAY_ROTATION_270;
+       unsigned int uGetSupportedRotations = 0;
+
+       nRet = mc_server_set_display_rotation_ability(g_hMcServer, uSetSupportedRotations, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_rotation_ability", 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));
+
+       nRet = mc_client_get_server_display_rotation_ability(g_hMcClient, g_McServerName, &uGetSupportedRotations);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_get_server_display_rotation_ability", MediaControllerGetError(nRet));
+
+       if(ClientGetDisplayRotationAbility(uGetSupportedRotations))
+       {
+               return 1;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_send_subtitles_cmd_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sends the subtitles command to server.
+ * @scenario                                   Call mc_client_send_subtitles_cmd
+ * @apicovered                                 mc_client_send_subtitles_cmd
+ * @passcase                                   If mc_client_send_subtitles_cmd returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sends the subtitles command to server.
+int ITc_mc_client_send_subtitles_cmd_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       mc_ability_e eAbilitySupport = MC_ABILITY_SUBTITLES;
+       char *pszReqID = NULL;
+       g_CallBackHit = false;
+
+       nRet = mc_server_set_ability_support(g_hMcServer, eAbilitySupport, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_ability_support", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_subtitles_cmd_received_cb(g_hMcServer, ServerEnableCmdReceivedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_subtitles_cmd_received_cb", 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));
+
+       nRet = mc_client_send_subtitles_cmd(g_hMcClient, g_McServerName, true, &pszReqID);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_send_subtitles_cmd", MediaControllerGetError(nRet));
+       CHECK_HANDLE(pszReqID, "mc_client_send_subtitles_cmd");
+
+       FREE_MEMORY(pszReqID);
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "mc_client_send_subtitles_cmd", "CallBack Not Invoked");
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_send_360_mode_cmd_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sends the 360 mode command to server.
+ * @scenario                                   Call mc_client_send_360_mode_cmd
+ * @apicovered                                 mc_client_send_360_mode_cmd
+ * @passcase                                   If mc_client_send_360_mode_cmd returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sends the 360 mode command to server.
+int ITc_mc_client_send_360_mode_cmd_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       mc_ability_e eAbilitySupport = MC_ABILITY_360_MODE;
+       char *pszReqID = NULL;
+       g_CallBackHit = false;
+
+       nRet = mc_server_set_ability_support(g_hMcServer, eAbilitySupport, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_ability_support", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_360_mode_cmd_received_cb(g_hMcServer, ServerEnableCmdReceivedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_360_mode_cmd_received_cb", 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));
+
+       nRet = mc_client_send_360_mode_cmd(g_hMcClient, g_McServerName, true, &pszReqID);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_send_360_mode_cmd", MediaControllerGetError(nRet));
+       FREE_MEMORY(pszReqID);
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "mc_client_send_360_mode_cmd", "CallBack Not Invoked");
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_send_display_mode_cmd_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sends the display mode command to server.
+ * @scenario                                   Call mc_client_send_display_mode_cmd
+ * @apicovered                                 mc_client_send_display_mode_cmd
+ * @passcase                                   If mc_client_send_display_mode_cmd returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sends the display mode command to server.
+int ITc_mc_client_send_display_mode_cmd_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       unsigned int unSetDisplayAbility = MC_DISPLAY_MODE_LETTER_BOX | MC_DISPLAY_MODE_ORIGIN_SIZE | MC_DISPLAY_MODE_FULL_SCREEN | MC_DISPLAY_MODE_CROPPED_FULL;
+       char *pszReqID = NULL;
+       g_CallBackHit = false;
+
+       nRet = mc_server_set_display_mode_ability(g_hMcServer, unSetDisplayAbility, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_mode_ability", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_display_mode_cmd_received_cb(g_hMcServer, ServerDisplayModeCmdReceivedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_mode_cmd_received_cb", 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));
+
+       int nModeSize = sizeof(g_controller_eDisplayModeArray)/sizeof(g_controller_eDisplayModeArray[0]);
+
+       for(g_nModeIdx = 0; g_nModeIdx < nModeSize; g_nModeIdx++)
+       {
+               g_CallBackHit = false;
+               nRet = mc_client_send_display_mode_cmd(g_hMcClient, g_McServerName, g_controller_eDisplayModeArray[g_nModeIdx], &pszReqID);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_send_display_mode_cmd", MediaControllerGetError(nRet));
+
+               CHECK_HANDLE(pszReqID, "mc_client_send_display_mode_cmd");
+               FREE_MEMORY(pszReqID);
+
+               IterateGmainLoop();
+               PRINT_RESULT(true, g_CallBackHit, "mc_client_send_display_mode_cmd", "CallBack Not Invoked");
+       }
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_client_send_display_rotation_cmd_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sends the display rotation command to server.
+ * @scenario                                   Call mc_client_send_display_rotation_cmd
+ * @apicovered                                 mc_client_send_display_rotation_cmd
+ * @passcase                                   If mc_client_send_display_rotation_cmd returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_server_create
+ * @postcondition                              mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sends the display rotation command to server.
+int ITc_mc_client_send_display_rotation_cmd_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       unsigned int uSetSupportedRotations = MC_DISPLAY_ROTATION_NONE | MC_DISPLAY_ROTATION_90 | MC_DISPLAY_ROTATION_180 | MC_DISPLAY_ROTATION_270;
+       char *pszReqID = NULL;
+       g_CallBackHit = false;
+       mc_display_rotation_e eSetDisplayRotation = MC_DISPLAY_ROTATION_270; // MC_DISPLAY_ROTATION_NONE, MC_DISPLAY_ROTATION_90 and MC_DISPLAY_ROTATION_180 are not supported
+
+       nRet = mc_server_set_display_rotation_ability(g_hMcServer, uSetSupportedRotations, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_rotation_ability", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_display_rotation_cmd_received_cb(g_hMcServer, ServerDisplayRotationCmdReceivedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_rotation_cmd_received_cb", 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));
+
+       nRet = mc_client_send_display_rotation_cmd(g_hMcClient, g_McServerName, eSetDisplayRotation, &pszReqID);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_send_display_rotation_cmd", MediaControllerGetError(nRet));
+       FREE_MEMORY(pszReqID);
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "mc_client_send_display_rotation_cmd", "CallBack Not Invoked");
+
+       return 0;
+}
+
 /** @} */
 /** @} */
index 5596849bf628f317c2bd965a73bf31445f5da1f4..6230d5a89d92c4f2699fad96b00f4f875eb9ec87 100755 (executable)
@@ -379,4 +379,83 @@ bool UnSetUpdateCallBacks(mc_subscription_type_e eSubscriptionType)
        return 0;
 }
 
+/**
+ * @function           ServerEnableCmdReceivedCallBack
+ * @description                Callback Function
+ * @parameter          const char *pszClientName, const char *pszReqID, bool bIsEnabled, void *pszData
+ * @return             NA
+ */
+void ServerEnableCmdReceivedCallBack(const char *pszClientName, const char *pszReqID, bool bIsEnabled, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] ServerEnableCmdReceivedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+       QuitGmainLoop();
+       return;
+}
+/**
+* @function            ClientGetDisplayModeAbility
+* @description         Check, if supported mode is same as set.
+* @parameter           bitwise ORed mc_display_mode_e SupportedModes
+* @return              0/1 mode matched or not
+*/
+int ClientGetDisplayModeAbility(unsigned int SupportedModes)
+{
+       int nRet = 0;
+       if (!(SupportedModes & MC_DISPLAY_MODE_LETTER_BOX)) {
+               FPRINTF("[%d:%s] wrong supported mode [%d] expected is [%d]\\n", __LINE__, __FUNCTION__, SupportedModes, MC_DISPLAY_MODE_LETTER_BOX);
+               nRet = 1;
+       }
+
+       if (!(SupportedModes & MC_DISPLAY_MODE_ORIGIN_SIZE)) {
+               FPRINTF("[%d:%s] wrong supported mode [%d] expected is [%d]\\n", __LINE__, __FUNCTION__, SupportedModes, MC_DISPLAY_MODE_ORIGIN_SIZE);
+               nRet = 1;
+       }
+
+       if (!(SupportedModes & MC_DISPLAY_MODE_FULL_SCREEN)) {
+               FPRINTF("[%d:%s] wrong supported mode [%d] expected is [%d]\\n", __LINE__, __FUNCTION__, SupportedModes, MC_DISPLAY_MODE_FULL_SCREEN);
+               nRet = 1;
+       }
+
+       if (!(SupportedModes & MC_DISPLAY_MODE_CROPPED_FULL)) {
+               FPRINTF("[%d:%s] wrong supported mode [%d] expected is [%d]\\n", __LINE__, __FUNCTION__, SupportedModes, MC_DISPLAY_MODE_CROPPED_FULL);
+               nRet = 1;
+       }
+       return nRet;
+
+}
+
+/**
+* @function            ClientGetDisplayRotationAbility
+* @description         Check, if supported rotation is same as set.
+* @parameter           bitwise ORed mc_display_rotation_e SupportedRotations
+* @return              0/1 mode matched or not
+*/
+int ClientGetDisplayRotationAbility(unsigned int SupportedRotations)
+{
+       int nRet = 0;
+       if (!(SupportedRotations & MC_DISPLAY_ROTATION_NONE)) {
+               FPRINTF("[%d:%s] wrong supported rotation [%d] expected is [%d]\\n", __LINE__, __FUNCTION__, SupportedRotations, MC_DISPLAY_ROTATION_NONE);
+               nRet = 1;
+       }
+
+       if (!(SupportedRotations & MC_DISPLAY_ROTATION_90)) {
+               FPRINTF("[%d:%s] wrong supported rotation [%d] expected is [%d]\\n", __LINE__, __FUNCTION__, SupportedRotations, MC_DISPLAY_ROTATION_90);
+               nRet = 1;
+       }
+
+       if (!(SupportedRotations & MC_DISPLAY_ROTATION_180)) {
+               FPRINTF("[%d:%s] wrong supported rotation [%d] expected is [%d]\\n", __LINE__, __FUNCTION__, SupportedRotations, MC_DISPLAY_ROTATION_180);
+               nRet = 1;
+       }
+
+       if (!(SupportedRotations & MC_DISPLAY_ROTATION_270)) {
+               FPRINTF("[%d:%s] wrong supported rotation [%d] expected is [%d]\\n", __LINE__, __FUNCTION__, SupportedRotations, MC_DISPLAY_ROTATION_270);
+               nRet = 1;
+       }
+       return nRet;
+}
+
 /** @} */
index bd9493712c8ac7f9140b1cd54276f840c1c7f27f..6440fa25003612fffbaa76e04807917c7707fa98 100755 (executable)
@@ -110,6 +110,9 @@ GMainLoop *g_pMainLoop;
 const static char *g_szPlaylistName = "test_playlist";
 static char *g_request_id = NULL;
 static char *g_mcTestAppName = "org.tizen.media-controller-native-itc";
+int g_nModeIdx;
+int g_nRotationIdx;
+
 //Add callback function declarations here
 void ServerPlayBackActionCallBack(const char* client_name, const char *request_id, mc_playback_action_e action, void *user_data);
 void ServerRepeateModeCommandReceivedCallBack(const char* client_name, const char *request_id, mc_repeat_mode_e repeat_mode, void *user_data);
@@ -134,6 +137,7 @@ void ClientShuffleAbilityUpdatedCallBack(const char *server_name, mc_ability_sup
 void ClientRepeatAbilityUpdatedCallBack(const char *server_name, mc_ability_support_e support, void *user_data);
 bool McSearchConditionCallBack(mc_content_type_e content_type, mc_search_category_e category, const char *search_keyword, bundle *data, void *user_data);
 void McServerSearchCmdReceivedCallBack(const char *client_name, const char *request_id, mc_search_h search, void *user_data);
+void ServerEnableCmdReceivedCallBack(const char *pszClientName, const char *pszReqID, bool bIsEnabled, void *pszData);
 
 //Add helper function declarations here
 char* MediaControllerGetError(int nRet);
@@ -147,6 +151,8 @@ bool CreateCompleteServer(void);
 bool GetCompleteServerInfo(void);
 bool SetUpdateCallBacks(mc_subscription_type_e eSubscriptionType);
 bool UnSetUpdateCallBacks(mc_subscription_type_e eSubscriptionType);
+int ClientGetDisplayModeAbility(unsigned int SupportedModes);
+int ClientGetDisplayRotationAbility(unsigned int SupportedRotations);
 
 /** @} */
 #endif  //_ITS_MEDIA_CONTROLLER_COMMON_H_
index fb09b126391c0231a3788bbac13347dc68909f2e..c27af89c2c3601c5039abe1b16225986312cdcb2 100755 (executable)
@@ -20,7 +20,7 @@ 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",
@@ -60,6 +60,15 @@ mc_playback_action_e g_ePlaybackActionArr[] = { MC_PLAYBACK_ACTION_PLAY,
 
 mc_ability_support_e g_eAbilitySupportArray[] = {MC_ABILITY_SUPPORTED_YES,
                                                MC_ABILITY_SUPPORTED_NO};
+
+mc_display_mode_e g_server_eDisplayModeArray[] =
+{
+       MC_DISPLAY_MODE_LETTER_BOX,     /**< Letter box */
+       MC_DISPLAY_MODE_ORIGIN_SIZE,    /**< Origin size */
+       MC_DISPLAY_MODE_FULL_SCREEN,    /**< Full-screen */
+       MC_DISPLAY_MODE_CROPPED_FULL    /**< Cropped full-screen */
+};
+
 //& set: MediaController
 
 /** @addtogroup itc-media-controller-server
@@ -132,7 +141,6 @@ void ServerPositionCommandReceivedCallBack(const char* client_name, const char *
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
 
 /*
@@ -149,7 +157,6 @@ void ServerShufleModeCommandReceivedCallBack(const char* client_name, const char
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
 
 /*
@@ -166,8 +173,8 @@ void ServerRepeateModeCommandReceivedCallBack(const char* client_name, const cha
 
        g_CallBackHit = true;
        QuitGmainLoop();
-       return;
 }
+
 /*
  * @function           ServerPlaylistCommandReceivedCallback
  * @description                Callback Function
@@ -199,6 +206,7 @@ void ServerCustomCommandReceivedCallback(const char client_name, const char *req
        g_CallBackHit = true;
        QuitGmainLoop();
 }
+
 /*
  * @function           ServerForeachPlaylistCommandReceivedCallback
  * @description                Callback Function
@@ -213,6 +221,7 @@ void ServerForeachPlaylistCommandReceivedCallback(const char *app_id, mc_playlis
        g_CallBackHit = true;
        QuitGmainLoop();
 }
+
 /*
  * @function                   ServerMcRegisterPlaylist
  * @description                ServerMcRegisterPlaylist creates and add items into playlist.
@@ -300,6 +309,121 @@ bool ServerPlaylistItemCallback(const char *pIndex, mc_metadata_h hMetaData, voi
        return false;
 }
 
+/*
+ * @function           ServerAttributeUpdatedCallBack
+ * @description                ServerAttributeUpdatedCallBack is invoked when subtitles or 360 mode is enabled
+ * @parameter          const char *pszServerName, bool bIsEnabled, void *pszData
+ * @return             N/A
+ */
+void ServerAttributeUpdatedCallBack(const char *pszServerName, bool bIsEnabled, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] %s Callback Invoked\\n", __LINE__, API_NAMESPACE, "ServerPlaylistCommandReceivedCallback");
+#endif
+       g_CallBackHit = true;
+
+       if (!bIsEnabled) {
+               FPRINTF("[%d:%s] wrong attribute status [%d] [%d]\\n", __LINE__, __FUNCTION__, bIsEnabled, false);
+       }
+
+       QuitGmainLoop();
+}
+
+/*
+ * @function           ServerDisplayModeUpdatedCallBack
+ * @description                ServerDisplayModeUpdatedCallBack is invoked when display mode is updated
+ * @parameter          const char *pszServerName, mc_display_mode_e eDisplayMode, void *pszData
+ * @return             N/A
+ */
+void ServerDisplayModeUpdatedCallBack(const char *pszServerName, mc_display_mode_e eDisplayMode, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] %s Callback Invoked\\n", __LINE__, API_NAMESPACE, "ServerPlaylistCommandReceivedCallback");
+#endif
+       g_CallBackHit = true;
+
+       if (eDisplayMode != g_server_eDisplayModeArray[g_nModeIdx])
+       {
+               FPRINTF("[%d:%s] wrong display mode [%d] expected display mode is[%d]\\n", __LINE__, __FUNCTION__, eDisplayMode, g_server_eDisplayModeArray[g_nModeIdx]);
+       }
+       QuitGmainLoop();
+}
+
+/*
+ * @function           ServerDisplayRotationUpdatedCallBack
+ * @description                ServerDisplayRotationUpdatedCallBack is invoked when display mode is updated
+ * @parameter          const char *pszServerName, mc_display_rotation_e eDisplayRotation, void *pszData
+ * @return             N/A
+ */
+void ServerDisplayRotationUpdatedCallBack(const char *pszServerName, mc_display_rotation_e eDisplayRotation, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] ServerDisplayRotationUpdatedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+       if (eDisplayRotation != MC_DISPLAY_ROTATION_270)
+       {
+               FPRINTF("[%d:%s] wrong display rotation [%d] expected display rotation is [%d]\\n", __LINE__, __FUNCTION__, eDisplayRotation, MC_DISPLAY_ROTATION_270);
+       }
+       QuitGmainLoop();
+}
+
+/**
+ * @function           DisplayModeCmdReceivedCallBack
+ * @description                Callback Function
+ * @parameter          const char *pszClientName, const char *pszReqID, mc_display_mode_e eDisplayMode, void *pszData
+ * @return             NA
+ */
+void DisplayModeCmdReceivedCallBack(const char *pszClientName, const char *pszReqID, mc_display_mode_e eDisplayMode, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] DisplayModeCmdReceivedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+
+       if (eDisplayMode != g_server_eDisplayModeArray[g_nModeIdx]){
+               FPRINTF("[%d:%s] wrong display mode [%d] expected display mode is [%d]\\n", __LINE__, __FUNCTION__, eDisplayMode, g_server_eDisplayModeArray[g_nModeIdx]);
+       }
+       QuitGmainLoop();
+}
+
+/**
+ * @function           DisplayRotationCmdReceivedCallBack
+ * @description                Callback Function
+ * @parameter          const char *pszClientName, const char *pszReqID, mc_display_mode_e eDisplayMode, void *pszData
+ * @return             NA
+ */
+void DisplayRotationCmdReceivedCallBack(const char *pszClientName, const char *pszReqID, mc_display_rotation_e eDisplayRotation, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] DisplayRotationCmdReceivedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+
+       if (eDisplayRotation != MC_DISPLAY_ROTATION_270) {
+               FPRINTF("[%d:%s] wrong display rotation [%d] expected display rotation is [%d]\\n", __LINE__, __FUNCTION__, eDisplayRotation, MC_DISPLAY_ROTATION_270);
+       }
+       QuitGmainLoop();
+}
+
+/**
+ * @function           ServerAbilitySupportedItemsUpdatedCallBack
+ * @description                Callback Function
+ * @parameter          const char *pszServerName, unsigned int nSupportedItems, void *pszData
+ * @return             NA
+ */
+void ServerAbilitySupportedItemsUpdatedCallBack(const char *pszServerName, unsigned int nSupportedItems, void *pszData)
+{
+#if DEBUG
+       FPRINTF("[Line : %d][%s] ServerAbilitySupportedItemsUpdatedCallBack Callback Invoked\\n", __LINE__, API_NAMESPACE);
+#endif
+
+       g_CallBackHit = true;
+       QuitGmainLoop();
+}
 
 /** @addtogroup itc-media-controller-testcases
 *  @brief              Integration testcases for module media-controller
@@ -1025,11 +1149,11 @@ int ITc_mc_metadata_clone_p(void)
 
        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));
+       CHECK_HANDLE_CLEANUP(hMetadata, "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));
-       CHECK_HANDLE_CLEANUP(hMetadataDst, "mc_metadata_clone",FREE_MEMORY(g_McServerName));
+       CHECK_HANDLE_CLEANUP(hMetadataDst, "mc_metadata_clone", FREE_MEMORY(g_McServerName));
 
        nRet = mc_metadata_destroy(hMetadata);
        PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_destroy", MediaControllerGetError(nRet),mc_metadata_destroy(hMetadataDst);FREE_MEMORY(g_McServerName));
@@ -1951,5 +2075,414 @@ int ITc_mc_playlist_foreach_playlist_p(void)
        return 0;
 }
 
+/**
+ * @testcase                                   ITc_mc_server_update_subtitles_enabled_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                        5.5
+ * @description                                        Updates the modified subtitles display status.
+ * @apicovered                                 mc_server_update_subtitles_enabled
+ * @passcase                                   If Target API is successful
+ * @failcase                                   If Target API Fails
+ * @precondition                               mc_client_create, mc_server_create
+ * @postcondition                              mc_client_destroy, mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Updates the modified subtitles display status.
+int ITc_mc_server_update_subtitles_enabled_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_subtitles_updated_cb(g_hMcClient, ServerAttributeUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_subtitles_updated_cb", MediaControllerGetError(nRet));
+
+       nRet = mc_server_update_subtitles_enabled(g_hMcServer, true);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_subtitles_enabled", MediaControllerGetError(nRet));
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "ServerAttributeUpdatedCallBack", "CallBack Not Invoked");
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_server_update_360_mode_enabled_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                        5.5
+ * @description                                        Updates the modified 360 mode display status.
+ * @apicovered                                 mc_server_update_360_mode_enabled
+ * @passcase                                   If Target API is successful
+ * @failcase                                   If Target API Fails
+ * @precondition                               mc_client_create, mc_server_create
+ * @postcondition                              mc_client_destroy, mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Updates the modified 360 mode display status.
+int ITc_mc_server_update_360_mode_enabled_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_360_mode_updated_cb(g_hMcClient, ServerAttributeUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_360_mode_updated_cb", MediaControllerGetError(nRet));
+
+       nRet = mc_server_update_360_mode_enabled(g_hMcServer, true);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_360_mode_enabled", MediaControllerGetError(nRet));
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "ServerAttributeUpdatedCallBack", "CallBack Not Invoked");
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_server_update_display_mode_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                        5.5
+ * @description                                        Updates the modified display mode.
+ * @apicovered                                 mc_server_update_display_mode
+ * @passcase                                   If Target API is successful
+ * @failcase                                   If Target API Fails
+ * @precondition                               mc_client_create, mc_server_create
+ * @postcondition                              mc_client_destroy, mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Updates the modified display mode.
+int ITc_mc_server_update_display_mode_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_display_mode_updated_cb(g_hMcClient, ServerDisplayModeUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_display_mode_updated_cb", MediaControllerGetError(nRet));
+
+       int nModeSize = sizeof(g_server_eDisplayModeArray)/sizeof(g_server_eDisplayModeArray[0]);
+
+       for(g_nModeIdx = 0; g_nModeIdx < nModeSize; g_nModeIdx++)
+       {
+               g_CallBackHit = false;
+               nRet = mc_server_update_display_mode(g_hMcServer, g_server_eDisplayModeArray[g_nModeIdx]);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_display_mode", MediaControllerGetError(nRet));
+
+               IterateGmainLoop();
+               PRINT_RESULT(true, g_CallBackHit, "ServerDisplayModeUpdatedCallBack", "CallBack Not Invoked");
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_server_update_display_rotation_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                        5.5
+ * @description                                        Updates the modified display rotation.
+ * @apicovered                                 mc_server_update_display_rotation
+ * @passcase                                   If Target API is successful
+ * @failcase                                   If Target API Fails
+ * @precondition                               mc_client_create, mc_server_create
+ * @postcondition                              mc_client_destroy, mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Updates the modified display rotation.
+int ITc_mc_server_update_display_rotation_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_display_rotation_updated_cb(g_hMcClient, ServerDisplayRotationUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_display_rotation_updated_cb", MediaControllerGetError(nRet));
+
+       nRet = mc_server_update_display_rotation(g_hMcServer, MC_DISPLAY_ROTATION_270);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_update_display_rotation", MediaControllerGetError(nRet));
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "ServerDisplayRotationUpdatedCallBack", "CallBack Not Invoked");
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_server_set_unset_subtitles_cmd_received_cb_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                        5.5
+ * @description                                        Set and Unsets the callback for receiving subtitles command from client.
+ * @apicovered                                 mc_server_set_subtitles_cmd_received_cb, mc_server_unset_subtitles_cmd_received_cb
+ * @passcase                                   If Target API is successful
+ * @failcase                                   If Target API Fails
+ * @precondition                               mc_client_create, mc_server_create
+ * @postcondition                              mc_client_destroy, mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Set and Unsets the callback for receiving subtitles command from client.
+int ITc_mc_server_set_unset_subtitles_cmd_received_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       mc_ability_e eAbilitySupport = MC_ABILITY_SUBTITLES;
+       char *pszReqID = NULL;
+       g_CallBackHit = false;
+
+       nRet = mc_server_set_ability_support(g_hMcServer, eAbilitySupport, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_ability_support", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_subtitles_cmd_received_cb(g_hMcServer, ServerEnableCmdReceivedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_subtitles_cmd_received_cb", MediaControllerGetError(nRet));
+
+       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_server_unset_subtitles_cmd_received_cb(g_hMcServer));
+
+       nRet = mc_client_send_subtitles_cmd(g_hMcClient, g_McServerName, true, &pszReqID);
+       PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_send_subtitles_cmd", MediaControllerGetError(nRet), mc_server_unset_subtitles_cmd_received_cb(g_hMcServer));
+       CHECK_HANDLE_CLEANUP(pszReqID, "mc_client_send_subtitles_cmd", mc_server_unset_subtitles_cmd_received_cb(g_hMcServer));
+       FREE_MEMORY(pszReqID);
+
+       IterateGmainLoop();
+       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "ServerEnableCmdReceivedCallBack", "CallBack Not Invoked", mc_server_unset_subtitles_cmd_received_cb(g_hMcServer));
+
+       nRet = mc_server_unset_subtitles_cmd_received_cb(g_hMcServer);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_unset_subtitles_cmd_received_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_server_set_unset_360_mode_cmd_received_cb_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                        5.5
+ * @description                                        Set and Unsets the callback for receiving 360 mode command from client.
+ * @apicovered                                 mc_server_set_360_mode_cmd_received_cb, mc_server_unset_360_mode_cmd_received_cb
+ * @passcase                                   If Target API is successful
+ * @failcase                                   If Target API Fails
+ * @precondition                               mc_client_create, mc_server_create
+ * @postcondition                              mc_client_destroy, mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Set and Unsets the callback for receiving 360 mode command from client.
+int ITc_mc_server_set_unset_360_mode_cmd_received_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       mc_ability_e eAbilitySupport = MC_ABILITY_360_MODE;
+       char *pszReqID = NULL;
+       g_CallBackHit = false;
+
+       nRet = mc_server_set_ability_support(g_hMcServer, eAbilitySupport, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_ability_support", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_360_mode_cmd_received_cb(g_hMcServer, ServerEnableCmdReceivedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_360_mode_cmd_received_cb", MediaControllerGetError(nRet));
+
+       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_server_unset_360_mode_cmd_received_cb(g_hMcServer));
+
+       nRet = mc_client_send_360_mode_cmd(g_hMcClient, g_McServerName, true, &pszReqID);
+       PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_send_360_mode_cmd", MediaControllerGetError(nRet), mc_server_unset_360_mode_cmd_received_cb(g_hMcServer));
+       CHECK_HANDLE_CLEANUP(pszReqID, "mc_client_send_360_mode_cmd", mc_server_unset_subtitles_cmd_received_cb(g_hMcServer));
+       FREE_MEMORY(pszReqID);
+
+       IterateGmainLoop();
+       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "mc_client_send_360_mode_cmd", "CallBack Not Invoked", mc_server_unset_360_mode_cmd_received_cb(g_hMcServer));
+
+       nRet = mc_server_unset_360_mode_cmd_received_cb(g_hMcServer);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_unset_subtitles_cmd_received_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_server_set_unset_display_mode_cmd_received_cb_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Set and Unsets the callback for receiving display mode command from client.
+ * @scenario                                   Call mc_server_set_display_mode_cmd_received_cb, mc_server_unset_display_mode_cmd_received_cb
+ * @apicovered                                 mc_server_set_display_mode_cmd_received_cb, mc_server_unset_display_mode_cmd_received_cb
+ * @passcase                                   If mc_server_set_display_mode_cmd_received_cb, mc_server_unset_display_mode_cmd_received_cb returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_client_create, mc_server_create
+ * @postcondition                              mc_client_destroy, mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Set and Unsets the callback for receiving display mode command from client.
+int ITc_mc_server_set_unset_display_mode_cmd_received_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       unsigned int uSetDisplayAbility = MC_DISPLAY_MODE_LETTER_BOX | MC_DISPLAY_MODE_ORIGIN_SIZE | MC_DISPLAY_MODE_FULL_SCREEN | MC_DISPLAY_MODE_CROPPED_FULL;
+       char *pszReqID = NULL;
+       g_CallBackHit = false;
+
+       nRet = mc_server_set_display_mode_ability(g_hMcServer, uSetDisplayAbility, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_mode_ability", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_display_mode_cmd_received_cb(g_hMcServer, DisplayModeCmdReceivedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_mode_cmd_received_cb", MediaControllerGetError(nRet));
+
+       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_server_unset_display_mode_cmd_received_cb(g_hMcServer));
+
+       int nModeSize = sizeof(g_server_eDisplayModeArray)/sizeof(g_server_eDisplayModeArray[0]);
+
+       for(g_nModeIdx = 0; g_nModeIdx < nModeSize; g_nModeIdx++)
+       {
+               g_CallBackHit = false;
+               nRet = mc_client_send_display_mode_cmd(g_hMcClient, g_McServerName, g_server_eDisplayModeArray[g_nModeIdx], &pszReqID);
+               PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_send_display_mode_cmd", MediaControllerGetError(nRet), mc_server_unset_display_mode_cmd_received_cb(g_hMcServer));
+               CHECK_HANDLE_CLEANUP(pszReqID, "mc_client_send_display_mode_cmd", mc_server_unset_subtitles_cmd_received_cb(g_hMcServer));
+               FREE_MEMORY(pszReqID);
+
+               IterateGmainLoop();
+               PRINT_RESULT_CLEANUP(true, g_CallBackHit, "DisplayModeCmdReceivedCallBack", "CallBack Not Invoked", mc_server_unset_display_mode_cmd_received_cb(g_hMcServer));
+       }
+       nRet = mc_server_unset_display_mode_cmd_received_cb(g_hMcServer);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_unset_display_mode_cmd_received_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Set and Unsets the callback for receiving display rotation command from client.
+ * @scenario                                   Call mc_server_set_display_rotation_cmd_received_cb, mc_server_unset_display_rotation_cmd_received_cb
+ * @apicovered                                 mc_server_set_display_rotation_cmd_received_cb, mc_server_unset_display_rotation_cmd_received_cb
+ * @passcase                                   If mc_server_set_display_rotation_cmd_received_cb, mc_server_unset_display_rotation_cmd_received_cb returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_client_create, mc_server_create
+ * @postcondition                              mc_client_destroy, mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Set and Unsets the callback for receiving display rotation command from client.
+int ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       unsigned int uSetSupportedRotations = MC_DISPLAY_ROTATION_NONE | MC_DISPLAY_ROTATION_90 | MC_DISPLAY_ROTATION_180 | MC_DISPLAY_ROTATION_270;
+       char *pszReqID = NULL;
+       g_CallBackHit = false;
+       mc_display_rotation_e eSetDisplayRotation = MC_DISPLAY_ROTATION_270; // MC_DISPLAY_ROTATION_NONE, MC_DISPLAY_ROTATION_90 and MC_DISPLAY_ROTATION_180 are not supported
+
+       nRet = mc_server_set_display_rotation_ability(g_hMcServer, uSetSupportedRotations, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_rotation_ability", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_display_rotation_cmd_received_cb(g_hMcServer, DisplayRotationCmdReceivedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_rotation_cmd_received_cb", MediaControllerGetError(nRet));
+
+       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_server_unset_display_rotation_cmd_received_cb(g_hMcServer));
+
+       nRet = mc_client_send_display_rotation_cmd(g_hMcClient, g_McServerName, eSetDisplayRotation, &pszReqID);
+       PRINT_RESULT_CLEANUP(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_send_display_rotation_cmd", MediaControllerGetError(nRet), mc_server_unset_display_rotation_cmd_received_cb(g_hMcServer));
+       CHECK_HANDLE_CLEANUP(pszReqID, "mc_client_send_display_rotation_cmd", mc_server_unset_subtitles_cmd_received_cb(g_hMcServer));
+       FREE_MEMORY(pszReqID);
+
+       IterateGmainLoop();
+       PRINT_RESULT_CLEANUP(true, g_CallBackHit, "DisplayRotationCmdReceivedCallBack", "CallBack Not Invoked", mc_server_unset_display_rotation_cmd_received_cb(g_hMcServer));
+
+       nRet = mc_server_unset_display_rotation_cmd_received_cb(g_hMcServer);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_unset_display_rotation_cmd_received_cb", MediaControllerGetError(nRet));
+
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_server_set_display_mode_ability_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sets the display mode ability of the media controller.
+ * @scenario                                   Call mc_server_set_display_mode_ability
+ * @apicovered                                 mc_server_set_display_mode_ability
+ * @passcase                                   If mc_server_set_display_mode_ability returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_client_create, mc_server_create
+ * @postcondition                              mc_client_destroy, mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sets the display mode ability of the media controller.
+int ITc_mc_server_set_display_mode_ability_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       unsigned int uDisplayMode = MC_DISPLAY_MODE_LETTER_BOX | MC_DISPLAY_MODE_ORIGIN_SIZE | MC_DISPLAY_MODE_FULL_SCREEN | MC_DISPLAY_MODE_CROPPED_FULL;
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_display_mode_ability_updated_cb(g_hMcClient, ServerAbilitySupportedItemsUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_display_mode_ability_updated_cb", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_display_mode_ability(g_hMcServer, uDisplayMode, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_mode_ability", MediaControllerGetError(nRet));
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "ServerAbilitySupportedItemsUpdatedCallBack", "CallBack Not Invoked");
+       return 0;
+}
+
+/**
+ * @testcase                                   ITc_mc_server_set_display_rotation_ability_p
+ * @author                                     SRID(j.abhishek)
+ * @reviewer                                   SRID(shobhit.v)
+ * @type                                       auto
+ * @since_tizen                                5.5
+ * @description                                        Sets the display rotation ability of the media controller.
+ * @scenario                                   Call mc_server_set_display_rotation_ability
+ * @apicovered                                 mc_server_set_display_rotation_ability
+ * @passcase                                   If mc_server_set_display_rotation_ability returns MEDIA_CONTROLLER_ERROR_NONE.
+ * @failcase                                   If Precondition API or Target API Fails
+ * @precondition                               mc_client_create, mc_server_create
+ * @postcondition                              mc_client_destroy, mc_server_destroy
+ * */
+ //& type: auto
+//& purpose: Sets the display rotation ability of the media controller.
+int ITc_mc_server_set_display_rotation_ability_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       unsigned int uDisplayRotation = MC_DISPLAY_ROTATION_NONE | MC_DISPLAY_ROTATION_90 | MC_DISPLAY_ROTATION_180 | MC_DISPLAY_ROTATION_270;
+       g_CallBackHit = false;
+
+       nRet = mc_client_set_display_rotation_ability_updated_cb(g_hMcClient, ServerAbilitySupportedItemsUpdatedCallBack, NULL);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_client_set_display_rotation_ability_updated_cb", MediaControllerGetError(nRet));
+
+       nRet = mc_server_set_display_rotation_ability(g_hMcServer, uDisplayRotation, MC_ABILITY_SUPPORTED_YES);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_display_rotation_ability", MediaControllerGetError(nRet));
+
+       IterateGmainLoop();
+       PRINT_RESULT(true, g_CallBackHit, "ServerAbilitySupportedItemsUpdatedCallBack", "CallBack Not Invoked");
+
+       return 0;
+}
+
 /** @} */
 /** @} */
index a58f01d2f57f9bee63d12d6b53564c3a783f1578..1f446855832017a1ade48f9505aedc9e61237f58 100755 (executable)
@@ -98,6 +98,32 @@ extern int ITc_mc_metadata_encode_decode_episode_p(void);
 extern int ITc_mc_metadata_encode_decode_resolution_p(void);
 extern int ITc_mc_client_set_unset_ability_support_updated_cb_p(void);
 extern int ITc_mc_client_get_server_ability_support_p(void);
+extern int ITc_mc_client_set_unset_display_mode_ability_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_subtitles_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_360_mode_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_display_mode_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_display_rotation_updated_cb_p(void);
+extern int ITc_mc_client_get_server_subtitles_enabled_p(void);
+extern int ITc_mc_client_get_server_360_mode_enabled_p(void);
+extern int ITc_mc_client_get_server_display_mode_p(void);
+extern int ITc_mc_client_get_server_display_rotation_p(void);
+extern int ITc_mc_client_get_server_display_mode_ability_p(void);
+extern int ITc_mc_client_get_server_display_rotation_ability_p(void);
+extern int ITc_mc_client_send_subtitles_cmd_p(void);
+extern int ITc_mc_client_send_360_mode_cmd_p(void);
+extern int ITc_mc_client_send_display_mode_cmd_p(void);
+extern int ITc_mc_client_send_display_rotation_cmd_p(void);
+extern int ITc_mc_server_update_subtitles_enabled_p(void);
+extern int ITc_mc_server_update_360_mode_enabled_p(void);
+extern int ITc_mc_server_update_display_mode_p(void);
+extern int ITc_mc_server_update_display_rotation_p(void);
+extern int ITc_mc_server_set_unset_subtitles_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_unset_360_mode_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_unset_display_mode_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_display_mode_ability_p(void);
+extern int ITc_mc_server_set_display_rotation_ability_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},
@@ -174,6 +200,33 @@ testcase tc_array[] = {
        {"ITc_mc_metadata_encode_decode_resolution_p",ITc_mc_metadata_encode_decode_resolution_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITc_mc_client_set_unset_ability_support_updated_cb_p",ITc_mc_client_set_unset_ability_support_updated_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_server_ability_support_p",ITc_mc_client_get_server_ability_support_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_mode_ability_updated_cb_p", ITc_mc_client_set_unset_display_mode_ability_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p", ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_subtitles_updated_cb_p", ITc_mc_client_set_unset_subtitles_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_360_mode_updated_cb_p", ITc_mc_client_set_unset_360_mode_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_mode_updated_cb_p", ITc_mc_client_set_unset_display_mode_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_rotation_updated_cb_p", ITc_mc_client_set_unset_display_rotation_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_subtitles_enabled_p", ITc_mc_client_get_server_subtitles_enabled_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_360_mode_enabled_p", ITc_mc_client_get_server_360_mode_enabled_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_mode_p", ITc_mc_client_get_server_display_mode_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_rotation_p", ITc_mc_client_get_server_display_rotation_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_mode_ability_p", ITc_mc_client_get_server_display_mode_ability_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_rotation_ability_p", ITc_mc_client_get_server_display_rotation_ability_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_subtitles_cmd_p", ITc_mc_client_send_subtitles_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_360_mode_cmd_p", ITc_mc_client_send_360_mode_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_display_mode_cmd_p", ITc_mc_client_send_display_mode_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_display_rotation_cmd_p", ITc_mc_client_send_display_rotation_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_server_update_subtitles_enabled_p", ITc_mc_server_update_subtitles_enabled_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_update_360_mode_enabled_p", ITc_mc_server_update_360_mode_enabled_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_update_display_mode_p", ITc_mc_server_update_display_mode_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_update_display_rotation_p", ITc_mc_server_update_display_rotation_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_subtitles_cmd_received_cb_p", ITc_mc_server_set_unset_subtitles_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_360_mode_cmd_received_cb_p", ITc_mc_server_set_unset_360_mode_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_display_mode_cmd_received_cb_p", ITc_mc_server_set_unset_display_mode_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p", ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_display_mode_ability_p", ITc_mc_server_set_display_mode_ability_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_display_rotation_ability_p", ITc_mc_server_set_display_rotation_ability_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+
        {NULL, NULL}
 };
 
index a58f01d2f57f9bee63d12d6b53564c3a783f1578..af561aa818550af6aabe78a4c9cbd1ec39d185c1 100644 (file)
@@ -98,6 +98,32 @@ extern int ITc_mc_metadata_encode_decode_episode_p(void);
 extern int ITc_mc_metadata_encode_decode_resolution_p(void);
 extern int ITc_mc_client_set_unset_ability_support_updated_cb_p(void);
 extern int ITc_mc_client_get_server_ability_support_p(void);
+extern int ITc_mc_client_set_unset_display_mode_ability_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_subtitles_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_360_mode_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_display_mode_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_display_rotation_updated_cb_p(void);
+extern int ITc_mc_client_get_server_subtitles_enabled_p(void);
+extern int ITc_mc_client_get_server_360_mode_enabled_p(void);
+extern int ITc_mc_client_get_server_display_mode_p(void);
+extern int ITc_mc_client_get_server_display_rotation_p(void);
+extern int ITc_mc_client_get_server_display_mode_ability_p(void);
+extern int ITc_mc_client_get_server_display_rotation_ability_p(void);
+extern int ITc_mc_client_send_subtitles_cmd_p(void);
+extern int ITc_mc_client_send_360_mode_cmd_p(void);
+extern int ITc_mc_client_send_display_mode_cmd_p(void);
+extern int ITc_mc_client_send_display_rotation_cmd_p(void);
+extern int ITc_mc_server_update_subtitles_enabled_p(void);
+extern int ITc_mc_server_update_360_mode_enabled_p(void);
+extern int ITc_mc_server_update_display_mode_p(void);
+extern int ITc_mc_server_update_display_rotation_p(void);
+extern int ITc_mc_server_set_unset_subtitles_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_unset_360_mode_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_unset_display_mode_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_display_mode_ability_p(void);
+extern int ITc_mc_server_set_display_rotation_ability_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},
@@ -174,6 +200,32 @@ testcase tc_array[] = {
        {"ITc_mc_metadata_encode_decode_resolution_p",ITc_mc_metadata_encode_decode_resolution_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITc_mc_client_set_unset_ability_support_updated_cb_p",ITc_mc_client_set_unset_ability_support_updated_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_server_ability_support_p",ITc_mc_client_get_server_ability_support_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_mode_ability_updated_cb_p", ITc_mc_client_set_unset_display_mode_ability_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p", ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_subtitles_updated_cb_p", ITc_mc_client_set_unset_subtitles_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_360_mode_updated_cb_p", ITc_mc_client_set_unset_360_mode_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_mode_updated_cb_p", ITc_mc_client_set_unset_display_mode_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_rotation_updated_cb_p", ITc_mc_client_set_unset_display_rotation_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_subtitles_enabled_p", ITc_mc_client_get_server_subtitles_enabled_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_360_mode_enabled_p", ITc_mc_client_get_server_360_mode_enabled_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_mode_p", ITc_mc_client_get_server_display_mode_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_rotation_p", ITc_mc_client_get_server_display_rotation_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_mode_ability_p", ITc_mc_client_get_server_display_mode_ability_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_rotation_ability_p", ITc_mc_client_get_server_display_rotation_ability_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_subtitles_cmd_p", ITc_mc_client_send_subtitles_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_360_mode_cmd_p", ITc_mc_client_send_360_mode_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_display_mode_cmd_p", ITc_mc_client_send_display_mode_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_display_rotation_cmd_p", ITc_mc_client_send_display_rotation_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_server_update_subtitles_enabled_p", ITc_mc_server_update_subtitles_enabled_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_update_360_mode_enabled_p", ITc_mc_server_update_360_mode_enabled_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_update_display_mode_p", ITc_mc_server_update_display_mode_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_update_display_rotation_p", ITc_mc_server_update_display_rotation_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_subtitles_cmd_received_cb_p", ITc_mc_server_set_unset_subtitles_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_360_mode_cmd_received_cb_p", ITc_mc_server_set_unset_360_mode_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_display_mode_cmd_received_cb_p", ITc_mc_server_set_unset_display_mode_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p", ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_display_mode_ability_p", ITc_mc_server_set_display_mode_ability_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_display_rotation_ability_p", ITc_mc_server_set_display_rotation_ability_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
        {NULL, NULL}
 };
 
index a58f01d2f57f9bee63d12d6b53564c3a783f1578..af561aa818550af6aabe78a4c9cbd1ec39d185c1 100755 (executable)
@@ -98,6 +98,32 @@ extern int ITc_mc_metadata_encode_decode_episode_p(void);
 extern int ITc_mc_metadata_encode_decode_resolution_p(void);
 extern int ITc_mc_client_set_unset_ability_support_updated_cb_p(void);
 extern int ITc_mc_client_get_server_ability_support_p(void);
+extern int ITc_mc_client_set_unset_display_mode_ability_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_subtitles_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_360_mode_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_display_mode_updated_cb_p(void);
+extern int ITc_mc_client_set_unset_display_rotation_updated_cb_p(void);
+extern int ITc_mc_client_get_server_subtitles_enabled_p(void);
+extern int ITc_mc_client_get_server_360_mode_enabled_p(void);
+extern int ITc_mc_client_get_server_display_mode_p(void);
+extern int ITc_mc_client_get_server_display_rotation_p(void);
+extern int ITc_mc_client_get_server_display_mode_ability_p(void);
+extern int ITc_mc_client_get_server_display_rotation_ability_p(void);
+extern int ITc_mc_client_send_subtitles_cmd_p(void);
+extern int ITc_mc_client_send_360_mode_cmd_p(void);
+extern int ITc_mc_client_send_display_mode_cmd_p(void);
+extern int ITc_mc_client_send_display_rotation_cmd_p(void);
+extern int ITc_mc_server_update_subtitles_enabled_p(void);
+extern int ITc_mc_server_update_360_mode_enabled_p(void);
+extern int ITc_mc_server_update_display_mode_p(void);
+extern int ITc_mc_server_update_display_rotation_p(void);
+extern int ITc_mc_server_set_unset_subtitles_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_unset_360_mode_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_unset_display_mode_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p(void);
+extern int ITc_mc_server_set_display_mode_ability_p(void);
+extern int ITc_mc_server_set_display_rotation_ability_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},
@@ -174,6 +200,32 @@ testcase tc_array[] = {
        {"ITc_mc_metadata_encode_decode_resolution_p",ITc_mc_metadata_encode_decode_resolution_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITc_mc_client_set_unset_ability_support_updated_cb_p",ITc_mc_client_set_unset_ability_support_updated_cb_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_client_get_server_ability_support_p",ITc_mc_client_get_server_ability_support_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_mode_ability_updated_cb_p", ITc_mc_client_set_unset_display_mode_ability_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p", ITc_mc_client_set_unset_display_rotation_ability_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_subtitles_updated_cb_p", ITc_mc_client_set_unset_subtitles_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_360_mode_updated_cb_p", ITc_mc_client_set_unset_360_mode_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_mode_updated_cb_p", ITc_mc_client_set_unset_display_mode_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_set_unset_display_rotation_updated_cb_p", ITc_mc_client_set_unset_display_rotation_updated_cb_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_subtitles_enabled_p", ITc_mc_client_get_server_subtitles_enabled_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_360_mode_enabled_p", ITc_mc_client_get_server_360_mode_enabled_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_mode_p", ITc_mc_client_get_server_display_mode_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_rotation_p", ITc_mc_client_get_server_display_rotation_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_mode_ability_p", ITc_mc_client_get_server_display_mode_ability_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_get_server_display_rotation_ability_p", ITc_mc_client_get_server_display_rotation_ability_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_subtitles_cmd_p", ITc_mc_client_send_subtitles_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_360_mode_cmd_p", ITc_mc_client_send_360_mode_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_display_mode_cmd_p", ITc_mc_client_send_display_mode_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_client_send_display_rotation_cmd_p", ITc_mc_client_send_display_rotation_cmd_p, ITs_media_controller_client_startup, ITs_media_controller_client_cleanup},
+       {"ITc_mc_server_update_subtitles_enabled_p", ITc_mc_server_update_subtitles_enabled_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_update_360_mode_enabled_p", ITc_mc_server_update_360_mode_enabled_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_update_display_mode_p", ITc_mc_server_update_display_mode_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_update_display_rotation_p", ITc_mc_server_update_display_rotation_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_subtitles_cmd_received_cb_p", ITc_mc_server_set_unset_subtitles_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_360_mode_cmd_received_cb_p", ITc_mc_server_set_unset_360_mode_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_display_mode_cmd_received_cb_p", ITc_mc_server_set_unset_display_mode_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p", ITc_mc_server_set_unset_display_rotation_cmd_received_cb_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_display_mode_ability_p", ITc_mc_server_set_display_mode_ability_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
+       {"ITc_mc_server_set_display_rotation_ability_p", ITc_mc_server_set_display_rotation_ability_p, ITs_media_controller_server_startup, ITs_media_controller_server_cleanup},
        {NULL, NULL}
 };