[ITC][media-controller][ACR-1355][Add new APIs to support Content Season, Episode... 46/203146/4
authorPriya Kohli <priya.kohli@samsung.com>
Wed, 10 Apr 2019 07:00:08 +0000 (12:30 +0530)
committershobhit verma <shobhit.v@samsung.com>
Tue, 28 May 2019 06:08:08 +0000 (06:08 +0000)
Change-Id: Ic99dc5d070d0017da42d8099c34a409c86ef784a
Signed-off-by: Priya Kohli <priya.kohli@samsung.com>
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 b9c7f346156c750186b6de27d8812fc2521ef971..5596849bf628f317c2bd965a73bf31445f5da1f4 100755 (executable)
@@ -168,38 +168,67 @@ bool SetServerPlayBackInfo(void)
 bool SetServerMetaData(void)
 {
        int nRet = -1;
+       char *pszEncodedMeta = NULL;
+       mc_meta_e eMcMetaType[] = {     MC_META_MEDIA_TITLE,
+                                                               MC_META_MEDIA_ARTIST,
+                                                               MC_META_MEDIA_ALBUM,
+                                                               MC_META_MEDIA_AUTHOR,
+                                                               MC_META_MEDIA_GENRE,
+                                                               MC_META_MEDIA_DURATION,
+                                                               MC_META_MEDIA_DATE,
+                                                               MC_META_MEDIA_COPYRIGHT,
+                                                               MC_META_MEDIA_DESCRIPTION,
+                                                               MC_META_MEDIA_TRACK_NUM,
+                                                               MC_META_MEDIA_PICTURE
+       };
+
+       static char *eMcTestMetadata[] = {"media_title",
+                                                               "media_artist",
+                                                               "media_album",
+                                                               "media_author",
+                                                               "media_genre",
+                                                               "200",
+                                                               "media_date",
+                                                               "media_copyright",
+                                                               "media_description",
+                                                               "media_track_num 3/10",
+                                                               "media_picture_path",
+       };
+
+       int nEnumCounter = 0;
+       int nEnumSize = sizeof(eMcMetaType) / sizeof(eMcMetaType[0]);
+       int nSeasonNum = 15;
+       int nEpisodeNum = 15;
+       mc_meta_e eSeasonAtribute = 11;
+       mc_meta_e eEpisodeAtribute = 12;
+       char * pszSeasonTitle = "media_season";
+       char * pszEpisodeTitle = "media_episode";
+
+       for (nEnumCounter = 0; nEnumCounter < nEnumSize; nEnumCounter++)
+       {
+               nRet = mc_server_set_metadata(g_hMcServer, eMcMetaType[nEnumCounter], eMcTestMetadata[nEnumCounter]);
+               PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
+       }
 
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_TITLE, "media_title");
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
-
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_ARTIST, "media_artist");
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
-
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_ALBUM, "media_album");
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
-
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_AUTHOR, "media_author");
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
-
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_GENRE, "media_genre");
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
-
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_DURATION, "2000");
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
-
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_DATE, "media_date");
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
-
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_COPYRIGHT, "media_copyright");
-       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
-
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_DESCRIPTION, "media_description");
+       nRet = mc_metadata_encode_season(nSeasonNum, pszSeasonTitle, &pszEncodedMeta);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_encode_season", MediaControllerGetError(nRet));
+       CHECK_HANDLE(pszEncodedMeta, "mc_metadata_encode_season");
+       nRet = mc_server_set_metadata(g_hMcServer, eSeasonAtribute, pszEncodedMeta);
+       FREE_MEMORY(pszEncodedMeta);
        PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
 
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_TRACK_NUM, "media_track_num 3/10");
+       nRet = mc_metadata_encode_episode(nEpisodeNum, pszEpisodeTitle, &pszEncodedMeta);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_encode_episode", MediaControllerGetError(nRet));
+       CHECK_HANDLE(pszEncodedMeta, "mc_metadata_encode_episode");
+       nRet = mc_server_set_metadata(g_hMcServer, eEpisodeAtribute, pszEncodedMeta);
+       FREE_MEMORY(pszEncodedMeta);
        PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
 
-       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_PICTURE, "media_picture_path");
+       nRet = mc_metadata_encode_resolution(META_W, META_H, &pszEncodedMeta);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_encode_resolution", MediaControllerGetError(nRet));
+       CHECK_HANDLE(pszEncodedMeta, "mc_metadata_encode_resolution");
+       nRet = mc_server_set_metadata(g_hMcServer, MC_META_MEDIA_RESOLUTION, pszEncodedMeta);
+       FREE_MEMORY(pszEncodedMeta);
        PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_server_set_metadata", MediaControllerGetError(nRet));
 
        nRet = mc_server_update_metadata(g_hMcServer);
index 2bc74f520a6e6bc826687d2030dc9b1513a41810..a456aa671c0aa9bfeb4cbcb806f352fb4083ad4b 100755 (executable)
@@ -37,6 +37,8 @@
 #define PATHLEN                                        1024
 #define TESTCOMMAND                            "Test"
 #define TIMEOUT_CB                             15000
+#define META_W                                 320
+#define META_H                                 240
 
 #define START_TEST {\
        FPRINTF("[Line : %d][%s] Starting test : %s\\n", __LINE__, API_NAMESPACE, __FUNCTION__);\
@@ -110,7 +112,6 @@ static char *g_request_id = NULL;
 static char *g_mcTestAppName = "org.tizen.media-controller-native-itc";
 //Add callback function declarations here
 void ServerPlayBackActionCallBack(const char* client_name, const char *request_id, mc_playback_action_e action, void *user_data);
-void ServerCustomCommandCallBack(const char* client_name, const char *command, bundle *data, void *user_data);
 void ServerRepeateModeCommandReceivedCallBack(const char* client_name, const char *request_id, mc_repeat_mode_e repeat_mode, void *user_data);
 void ServerShufleModeCommandReceivedCallBack(const char* client_name, const char *request_id, mc_shuffle_mode_e shuffle_mode, void *user_data);
 void ServerPositionCommandReceivedCallBack(const char* client_name, const char *request_id, unsigned long long position, void *user_data);
index b68af5950e6edcb9c1eeebc4040113a647181e30..96f11cbd112817149d8d85e9eebebf02a1eb8808 100755 (executable)
@@ -1754,6 +1754,155 @@ int ITc_mc_server_set_unset_search_cmd_received_cb_p(void)
        return 0;
 }
 
+ /**
+ * @testcase                           ITc_mc_metadata_encode_decode_season_p
+ * @author                                     SRID(priya.kohli)
+ * @reviewer                           SRID(j.abhishek)
+ * @type                                       auto
+ * @since_tizen                        5.5
+ * @description                                Encodes and decodes the season data for use in metadata.
+ * @scenario                           Encodes and decodes the season data for use in metadata.
+ * @apicovered                         mc_metadata_encode_season, mc_metadata_decode_season
+ * @passcase                           If Target API is successful
+ * @failcase                           If Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+ //& type: auto
+//& purpose: To encodes and decodes the season data for use in metadata.
+int ITc_mc_metadata_encode_decode_season_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       char * pszSeasonMeta = NULL;
+       char * pszStrVal = NULL;
+       int nGetSeasonNum = 0;
+       const char *pszSeasonTitle = "media_season";
+       int nSeasonNum = 15;
+
+       nRet = mc_metadata_encode_season(nSeasonNum, pszSeasonTitle, &pszSeasonMeta);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_encode_season", MediaControllerGetError(nRet));
+       CHECK_HANDLE(pszSeasonMeta, "mc_metadata_encode_season");
+
+       nRet = mc_metadata_decode_season(pszSeasonMeta, &nGetSeasonNum, &pszStrVal);
+       FREE_MEMORY(pszSeasonMeta);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_decode_season", MediaControllerGetError(nRet));
+       CHECK_HANDLE(pszStrVal, "mc_metadata_decode_season");
+       if(nGetSeasonNum != nSeasonNum) {
+               FPRINTF("[%d:%s] wrong nGetSeasonNum value [%d]\n", __LINE__, __FUNCTION__, nGetSeasonNum);
+               FREE_MEMORY(pszStrVal);
+               return 1;
+       }
+
+       if(strncmp(pszSeasonTitle, pszStrVal,strlen(pszStrVal))) {
+               FPRINTF("[%d:%s] wrong pszStrVal value [%s]\n", __LINE__, __FUNCTION__, pszStrVal);
+               FREE_MEMORY(pszStrVal);
+               return 1;
+       }
+
+       FREE_MEMORY(pszStrVal);
+
+       return 0;
+}
+
+ /**
+ * @testcase                           ITc_mc_metadata_encode_decode_episode_p
+ * @author                                     SRID(priya.kohli)
+ * @reviewer                           SRID(j.abhishek)
+ * @type                                       auto
+ * @since_tizen                        5.5
+ * @description                                Encodes and decodes the episode data for use in metadata.
+ * @scenario                           Encodes and decodes the episode data for use in metadata.
+ * @apicovered                         mc_metadata_encode_episode, mc_metadata_decode_episode
+ * @passcase                           If Target API is successful
+ * @failcase                           If Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+ //& type: auto
+//& purpose: To encodes and decodes the episode data for use in metadata.
+int ITc_mc_metadata_encode_decode_episode_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       char * pszEpisodeMeta = NULL;
+       char * pszStrVal = NULL;
+       int nGetEpisodeNum = 0;
+       const char *pszEpisodeTitle = "media_episode";
+       int nEpisodeNum = 15;
+
+       nRet = mc_metadata_encode_episode(nEpisodeNum, pszEpisodeTitle, &pszEpisodeMeta);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_encode_episode", MediaControllerGetError(nRet));
+       CHECK_HANDLE(pszEpisodeMeta, "mc_metadata_encode_episode");
+
+       nRet = mc_metadata_decode_episode(pszEpisodeMeta, &nGetEpisodeNum, &pszStrVal);
+       FREE_MEMORY(pszEpisodeMeta);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_decode_episode", MediaControllerGetError(nRet));
+       CHECK_HANDLE(pszStrVal, "mc_metadata_decode_episode");
+       if(nGetEpisodeNum != nEpisodeNum) {
+               FPRINTF("[%d:%s] wrong nGetEpisodeNum value [%d]\n", __LINE__, __FUNCTION__, nGetEpisodeNum);
+               FREE_MEMORY(pszStrVal);
+               return 1;
+       }
+
+       if(strncmp(pszEpisodeTitle, pszStrVal,strlen(pszStrVal))) {
+               FPRINTF("[%d:%s] wrong pszStrVal value [%s]\n", __LINE__, __FUNCTION__, pszStrVal);
+               FREE_MEMORY(pszStrVal);
+               return 1;
+       }
+
+       FREE_MEMORY(pszStrVal);
+
+       return 0;
+}
+
+ /**
+ * @testcase                           ITc_mc_metadata_encode_decode_resolution_p
+ * @author                                     SRID(priya.kohli)
+ * @reviewer                           SRID(j.abhishek)
+ * @type                                       auto
+ * @since_tizen                        5.5
+ * @description                                Encodes and decodes the resolution data for use in metadata.
+ * @scenario                           Encodes and decodes the resolution data for use in metadata.
+ * @apicovered                         mc_metadata_encode_resolution, mc_metadata_decode_resolution
+ * @passcase                           If Target API is successful
+ * @failcase                           If Target API Fails
+ * @precondition                       NA
+ * @postcondition                      NA
+ * */
+ //& type: auto
+//& purpose: To encodes and decodes the resolution data for use in metadata.
+int ITc_mc_metadata_encode_decode_resolution_p(void)
+{
+       START_TEST;
+
+       int nRet = MEDIA_CONTROLLER_ERROR_NONE;
+       char * pszResolutionMeta = NULL;
+       unsigned int nWidth = 0;
+       unsigned int nHeight = 0;
+
+       nRet = mc_metadata_encode_resolution(META_W, META_H, &pszResolutionMeta);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_encode_resolution", MediaControllerGetError(nRet));
+       CHECK_HANDLE(pszResolutionMeta, "mc_metadata_encode_resolution");
+
+       nRet = mc_metadata_decode_resolution(pszResolutionMeta, &nWidth, &nHeight);
+       FREE_MEMORY(pszResolutionMeta);
+       PRINT_RESULT(MEDIA_CONTROLLER_ERROR_NONE, nRet, "mc_metadata_decode_resolution", MediaControllerGetError(nRet));
+
+       if(nWidth != META_W) {
+               FPRINTF("[%d:%s] wrong nWidth value [%u]\n", __LINE__, __FUNCTION__, nWidth);
+               return 1;
+       }
+
+       if(nHeight != META_H) {
+               FPRINTF("[%d:%s] wrong nHeight value [%u]\n", __LINE__, __FUNCTION__, nHeight);
+               return 1;
+       }
+
+       return 0;
+}
 
 /** @} */
 /** @} */
index 4d3def17e8234068cec6cc76ebe0de8c6039f55b..b65d894e989e6bc1f2e358936b840324bb7b1124 100755 (executable)
@@ -97,6 +97,9 @@ extern int ITc_mc_search_set_condition_p(void);
 extern int ITc_mc_search_foreach_condition_p(void);
 extern int ITc_mc_server_set_unset_search_cmd_received_cb_p(void);
 extern int ITc_mc_search_get_condition_count_p(void);
+extern int ITc_mc_metadata_encode_decode_season_p(void);
+extern int ITc_mc_metadata_encode_decode_episode_p(void);
+extern int ITc_mc_metadata_encode_decode_resolution_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},
@@ -172,6 +175,9 @@ testcase tc_array[] = {
        {"ITc_mc_search_foreach_condition_p",ITc_mc_search_foreach_condition_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_server_set_unset_search_cmd_received_cb_p",ITc_mc_server_set_unset_search_cmd_received_cb_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITc_mc_search_get_condition_count_p", ITc_mc_search_get_condition_count_p, ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_metadata_encode_decode_season_p",ITc_mc_metadata_encode_decode_season_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
+       {"ITc_mc_metadata_encode_decode_episode_p",ITc_mc_metadata_encode_decode_episode_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
+       {"ITc_mc_metadata_encode_decode_resolution_p",ITc_mc_metadata_encode_decode_resolution_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {NULL, NULL}
 };
 
index 4d3def17e8234068cec6cc76ebe0de8c6039f55b..b65d894e989e6bc1f2e358936b840324bb7b1124 100644 (file)
@@ -97,6 +97,9 @@ extern int ITc_mc_search_set_condition_p(void);
 extern int ITc_mc_search_foreach_condition_p(void);
 extern int ITc_mc_server_set_unset_search_cmd_received_cb_p(void);
 extern int ITc_mc_search_get_condition_count_p(void);
+extern int ITc_mc_metadata_encode_decode_season_p(void);
+extern int ITc_mc_metadata_encode_decode_episode_p(void);
+extern int ITc_mc_metadata_encode_decode_resolution_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},
@@ -172,6 +175,9 @@ testcase tc_array[] = {
        {"ITc_mc_search_foreach_condition_p",ITc_mc_search_foreach_condition_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_server_set_unset_search_cmd_received_cb_p",ITc_mc_server_set_unset_search_cmd_received_cb_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITc_mc_search_get_condition_count_p", ITc_mc_search_get_condition_count_p, ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_metadata_encode_decode_season_p",ITc_mc_metadata_encode_decode_season_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
+       {"ITc_mc_metadata_encode_decode_episode_p",ITc_mc_metadata_encode_decode_episode_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
+       {"ITc_mc_metadata_encode_decode_resolution_p",ITc_mc_metadata_encode_decode_resolution_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {NULL, NULL}
 };
 
index 4d3def17e8234068cec6cc76ebe0de8c6039f55b..b65d894e989e6bc1f2e358936b840324bb7b1124 100755 (executable)
@@ -97,6 +97,9 @@ extern int ITc_mc_search_set_condition_p(void);
 extern int ITc_mc_search_foreach_condition_p(void);
 extern int ITc_mc_server_set_unset_search_cmd_received_cb_p(void);
 extern int ITc_mc_search_get_condition_count_p(void);
+extern int ITc_mc_metadata_encode_decode_season_p(void);
+extern int ITc_mc_metadata_encode_decode_episode_p(void);
+extern int ITc_mc_metadata_encode_decode_resolution_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},
@@ -172,6 +175,9 @@ testcase tc_array[] = {
        {"ITc_mc_search_foreach_condition_p",ITc_mc_search_foreach_condition_p,ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
        {"ITc_mc_server_set_unset_search_cmd_received_cb_p",ITc_mc_server_set_unset_search_cmd_received_cb_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {"ITc_mc_search_get_condition_count_p", ITc_mc_search_get_condition_count_p, ITs_media_controller_client_startup,ITs_media_controller_client_cleanup},
+       {"ITc_mc_metadata_encode_decode_season_p",ITc_mc_metadata_encode_decode_season_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
+       {"ITc_mc_metadata_encode_decode_episode_p",ITc_mc_metadata_encode_decode_episode_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
+       {"ITc_mc_metadata_encode_decode_resolution_p",ITc_mc_metadata_encode_decode_resolution_p,ITs_media_controller_server_startup,ITs_media_controller_server_cleanup},
        {NULL, NULL}
 };