[mediacontroller][fix] fix small issues 37/215837/3
authorDawid Juszczak <d.juszczak@samsung.com>
Wed, 16 Oct 2019 09:37:11 +0000 (11:37 +0200)
committerDawid Juszczak <d.juszczak@samsung.com>
Thu, 17 Oct 2019 15:24:43 +0000 (15:24 +0000)
issues:
- startup state of server's repeat state was REPEAT_OFF,
  should be REPEAT_ALL
- if client sent request to change attribute to
  currently set value, callback was not invoked. Now
  it is fixed.
- add repeatState to playbackInfo returned by
  playbackInfo getter

[Verification]
tct-mediacontroller-tizen-tests 100% PASS

Change-Id: Iebdbf2ca3af1d395c2ba10753e0ef7efcdc11953
Signed-off-by: Dawid Juszczak <d.juszczak@samsung.com>
src/mediacontroller/mediacontroller_api.js
src/mediacontroller/mediacontroller_client.cc
src/mediacontroller/mediacontroller_server.cc
src/mediacontroller/mediacontroller_utils.cc
src/mediacontroller/mediacontroller_utils.h

index e0d1df7..147a52d 100755 (executable)
@@ -608,7 +608,7 @@ var MediaControllerPlaybackInfo = function(data) {
     var _shuffleMode = false;
     var _repeatMode = false;
     var _contentType = MediaControllerContentType.UNDECIDED;
-    var _repeatState = MediaControllerRepeatState.REPEAT_OFF;
+    var _repeatState = MediaControllerRepeatState.REPEAT_ALL;
     var _ageRating = MediaControllerContentAgeRating.ALL;
     var _metadata = new MediaControllerMetadata();
     var _index = null;
index 6595539..3fb6d3f 100644 (file)
@@ -454,14 +454,20 @@ PlatformResult MediaControllerClient::GetPlaybackInfo(const std::string& server_
                                get_error_message(ret)));
   }
 
-  // repeat mode
-  mc_repeat_mode_e repeat;
-  ret = mc_client_get_server_repeat_mode(handle_, server_name.c_str(), &repeat);
+  // repeat mode and state
+  mc_repeat_mode_e repeat_mode;
+  ret = mc_client_get_server_repeat_mode(handle_, server_name.c_str(), &repeat_mode);
   if (MEDIA_CONTROLLER_ERROR_NONE != ret) {
     return LogAndCreateResult(
         ErrorCode::UNKNOWN_ERR, "Error getting repeat mode",
         ("mc_client_get_server_repeat_mode() error: %d, message: %s", ret, get_error_message(ret)));
   }
+  std::string repeat_state;
+  result = types::MediaControllerRepeatModeEnum.getName(repeat_mode, &repeat_state);
+  if (!result) {
+    LoggerE("MediaControllerRepeatModeEnum.getName() failed, error: %s", result.message().c_str());
+    return PlatformResult(ErrorCode::UNKNOWN_ERR, "Error getting name of repeat state");
+  }
 
   // metadata
   picojson::value metadata = picojson::value(picojson::object());
@@ -483,7 +489,8 @@ PlatformResult MediaControllerClient::GetPlaybackInfo(const std::string& server_
   (*playback_info)[kAgeRating] = picojson::value(rating);
   (*playback_info)[kContentType] = picojson::value(contentType);
   (*playback_info)[kShuffleMode] = picojson::value(shuffle == MC_SHUFFLE_MODE_ON);
-  (*playback_info)[kRepeatMode] = picojson::value(repeat == MC_REPEAT_MODE_ON);
+  (*playback_info)[kRepeatMode] = picojson::value(repeat_mode == MC_REPEAT_MODE_ON);
+  (*playback_info)[kRepeatState] = picojson::value(repeat_state);
   (*playback_info)[kMetadata] = metadata;
   (*playback_info)[kIndex] = picojson::value(std::string(index ? index : ""));
   (*playback_info)[kPlaylistName] =
index a33b071..71e9468 100644 (file)
@@ -1025,19 +1025,6 @@ void MediaControllerServer::OnPlaybackActionCommand(const char* client_name, con
     return;
   }
 
-  mc_playback_states_e state_e;
-  result = types::MediaControllerPlaybackStateEnum.getValue(action_str, &state_e);
-  if (!result) {
-    LoggerE("MediaControllerPlaybackStateEnum.getValue() failed, error: %s",
-            result.message().c_str());
-    return;
-  }
-
-  if (server->playback_state_ == state_e) {
-    LoggerD("The media playback state did not change, skipping");
-    return;
-  }
-
   picojson::value data = picojson::value(picojson::object());
   picojson::object& data_o = data.get<picojson::object>();
 
@@ -1056,11 +1043,6 @@ void MediaControllerServer::OnPlaybackPositionCommand(const char* client_name,
 
   MediaControllerServer* server = static_cast<MediaControllerServer*>(user_data);
 
-  if (server->position_ == position) {
-    LoggerD("The position did not change, skipping");
-    return;
-  }
-
   picojson::value data = picojson::value(picojson::object());
   picojson::object& data_o = data.get<picojson::object>();
 
@@ -1100,11 +1082,6 @@ void MediaControllerServer::OnShuffleModeCommand(const char* client_name, const
 
   MediaControllerServer* server = static_cast<MediaControllerServer*>(user_data);
 
-  if (server->shuffle_mode_ == mode) {
-    LoggerD("The shuffle mode did not change, skipping");
-    return;
-  }
-
   picojson::value data = picojson::value(picojson::object());
   picojson::object& data_o = data.get<picojson::object>();
 
@@ -1121,11 +1098,6 @@ void MediaControllerServer::OnRepeatModeCommand(const char* client_name, const c
 
   MediaControllerServer* server = static_cast<MediaControllerServer*>(user_data);
 
-  if (server->repeat_mode_ == mode) {
-    LoggerD("The repeat mode did not change, skipping");
-    return;
-  }
-
   picojson::value data = picojson::value(picojson::object());
   picojson::object& data_o = data.get<picojson::object>();
   data_o[kClientName] = picojson::value(client_name);
index ef52342..7c6404b 100644 (file)
@@ -70,6 +70,7 @@ const char* kPlaylistName = "playlistName";
 const char* kPosition = "position";
 const char* kRating = "rating";
 const char* kRepeatMode = "repeatMode";
+const char* kRepeatState = "repeatState";
 const char* kReply = "reply";
 const char* kReplyListener = "replyListener";
 const char* kRequest = "request";
index 8b56e4b..e1f5462 100644 (file)
@@ -68,6 +68,7 @@ extern const char* kPlaylistName;
 extern const char* kPosition;
 extern const char* kRating;
 extern const char* kRepeatMode;
+extern const char* kRepeatState;
 extern const char* kReply;
 extern const char* kReplyListener;
 extern const char* kRequest;