[mediacontroller] Declare MediaControllerContentType enum. 42/205942/4
authorMichal Michalski <m.michalski2@partner.samsung.com>
Fri, 10 May 2019 10:09:45 +0000 (12:09 +0200)
committerMichal Michalski <m.michalski2@partner.samsung.com>
Thu, 16 May 2019 11:50:07 +0000 (13:50 +0200)
Extracted into separate commit from adding ContentType WebAPI
because it is needed by Search API implementation as well.

[Verification] Code compiles. Both ContentType API implementation and Search API
implementation compile as well with this commit as a parent.

Signed-off-by: Michal Michalski <m.michalski2@partner.samsung.com>
Change-Id: I1f140bb8dd608887b90a1d7b5a202c493e5fd3e4

src/mediacontroller/mediacontroller_api.js
src/mediacontroller/mediacontroller_utils.cc
src/mediacontroller/mediacontroller_utils.h

index a7a9511..6350a90 100755 (executable)
@@ -250,6 +250,14 @@ var MediaControllerContentAgeRating = {
   NINETEEN: "19"
 };
 
+var MediaControllerContentType = {
+  IMAGE: "IMAGE",
+  MUSIC: "MUSIC",
+  VIDEO: "VIDEO",
+  OTHER: "OTHER",
+  UNDECIDED: "UNDECIDED"
+};
+
 function MediaControllerManager() {}
 
 MediaControllerManager.prototype.getClient = function() {
index be6cb29..8776699 100644 (file)
@@ -89,6 +89,14 @@ const common::PlatformEnum<mc_content_age_rating_e> MediaControllerContentAgeRat
      {"18", MC_CONTENT_RATING_18_PLUS}, {"19", MC_CONTENT_RATING_19_PLUS}
 };
 
+const common::PlatformEnum<mc_content_type_e> MediaControllerContentTypeEnum {
+    {"IMAGE", MC_CONTENT_TYPE_IMAGE},
+    {"MUSIC", MC_CONTENT_TYPE_MUSIC},
+    {"VIDEO", MC_CONTENT_TYPE_VIDEO},
+    {"OTHER", MC_CONTENT_TYPE_OTHER},
+    {"UNDECIDED", MC_CONTENT_TYPE_UNDECIDED}
+};
+
 
 PlatformResult ConvertPlaybackState(mc_playback_h playback_h, std::string* state) {
   ScopeLogger();
@@ -134,6 +142,24 @@ PlatformResult ConvertContentAgeRating(mc_playback_h playback_h, std::string* ra
   return PlatformResult(ErrorCode::NO_ERROR);
 }
 
+PlatformResult ConvertContentType(mc_playback_h playback_h, std::string* contentType) {
+  ScopeLogger();
+  mc_content_type_e content_type_e = MC_CONTENT_TYPE_UNDECIDED;
+  int ret = mc_client_get_playback_content_type(playback_h, &content_type_e);
+  if (ret != MEDIA_CONTROLLER_ERROR_NONE) {
+    return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Error getting content type",
+      ("mc_client_get_playback_content_type() error: %d, message: %s", ret, get_error_message(ret)));
+  }
+
+  PlatformResult result = MediaControllerContentTypeEnum.getName(content_type_e, contentType);
+  if (!result) {
+    LoggerE("MediaControllerContentTypeEnum.getName() failed, error: %s", result.message().c_str());
+    return result;
+  }
+
+  return PlatformResult(ErrorCode::NO_ERROR);
+}
+
 PlatformResult ConvertPlaybackPosition(mc_playback_h playback_h, double* position) {
   ScopeLogger();
 
index 7766dc8..0f26b44 100644 (file)
@@ -31,13 +31,13 @@ namespace mediacontroller {
 
 typedef std::function<void(picojson::value*)> JsonCallback;
 
-
 namespace types {
 
 common::PlatformResult ConvertPlaybackState(mc_playback_h playback_h, std::string* state);
 common::PlatformResult ConvertContentAgeRating(mc_playback_h playback_h, std::string* state);
 common::PlatformResult ConvertPlaybackPosition(mc_playback_h playback_h, double* position);
 common::PlatformResult ConvertMetadata(mc_metadata_h metadata_h, picojson::object* metadata);
+common::PlatformResult ConvertContentType(mc_playback_h playback_h, std::string* contentType);
 
 extern const common::PlatformEnum<mc_server_state_e> MediaControllerServerStateEnum;
 extern const common::PlatformEnum<mc_playback_states_e> MediaControllerPlaybackStateEnum;
@@ -45,6 +45,7 @@ extern const common::PlatformEnum<mc_playback_action_e> MediaControllerPlaybackA
 extern const common::PlatformEnum<mc_meta_e> MediaControllerMetadataAttributeEnum;
 extern const common::PlatformEnum<mc_repeat_mode_e> MediaControllerRepeatModeEnum;
 extern const common::PlatformEnum<mc_content_age_rating_e> MediaControllerContentAgeRatingEnum;
+extern const common::PlatformEnum<mc_content_type_e> MediaControllerContentTypeEnum;
 
 } // namespace types