From: Priya Kohli Date: Wed, 10 Apr 2019 07:00:08 +0000 (+0530) Subject: [ITC][media-controller][ACR-1355][Add new APIs to support Content Season, Episode... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=00135069c8c6ae0a1c47951eedeb3df6a0bee13c;p=test%2Ftct%2Fnative%2Fapi.git [ITC][media-controller][ACR-1355][Add new APIs to support Content Season, Episode, Resolution] Change-Id: Ic99dc5d070d0017da42d8099c34a409c86ef784a Signed-off-by: Priya Kohli --- diff --git a/src/itc/media-controller/ITs-media-controller-common.c b/src/itc/media-controller/ITs-media-controller-common.c index b9c7f3461..5596849bf 100755 --- a/src/itc/media-controller/ITs-media-controller-common.c +++ b/src/itc/media-controller/ITs-media-controller-common.c @@ -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); diff --git a/src/itc/media-controller/ITs-media-controller-common.h b/src/itc/media-controller/ITs-media-controller-common.h index 2bc74f520..a456aa671 100755 --- a/src/itc/media-controller/ITs-media-controller-common.h +++ b/src/itc/media-controller/ITs-media-controller-common.h @@ -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); diff --git a/src/itc/media-controller/ITs-media-controller-server.c b/src/itc/media-controller/ITs-media-controller-server.c index b68af5950..96f11cbd1 100755 --- a/src/itc/media-controller/ITs-media-controller-server.c +++ b/src/itc/media-controller/ITs-media-controller-server.c @@ -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; +} /** @} */ /** @} */ diff --git a/src/itc/media-controller/tct-media-controller-native_mobile.h b/src/itc/media-controller/tct-media-controller-native_mobile.h index 4d3def17e..b65d894e9 100755 --- a/src/itc/media-controller/tct-media-controller-native_mobile.h +++ b/src/itc/media-controller/tct-media-controller-native_mobile.h @@ -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} }; diff --git a/src/itc/media-controller/tct-media-controller-native_tizeniot.h b/src/itc/media-controller/tct-media-controller-native_tizeniot.h index 4d3def17e..b65d894e9 100644 --- a/src/itc/media-controller/tct-media-controller-native_tizeniot.h +++ b/src/itc/media-controller/tct-media-controller-native_tizeniot.h @@ -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} }; diff --git a/src/itc/media-controller/tct-media-controller-native_wearable.h b/src/itc/media-controller/tct-media-controller-native_wearable.h index 4d3def17e..b65d894e9 100755 --- a/src/itc/media-controller/tct-media-controller-native_wearable.h +++ b/src/itc/media-controller/tct-media-controller-native_wearable.h @@ -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} };