From a19f9c4f11f8bac0109bf8e6a579fe9965c82367 Mon Sep 17 00:00:00 2001 From: Dawid Juszczak Date: Wed, 16 Oct 2019 11:37:11 +0200 Subject: [PATCH] [mediacontroller][fix] fix small issues 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 --- src/mediacontroller/mediacontroller_api.js | 2 +- src/mediacontroller/mediacontroller_client.cc | 15 ++++++++++---- src/mediacontroller/mediacontroller_server.cc | 28 --------------------------- src/mediacontroller/mediacontroller_utils.cc | 1 + src/mediacontroller/mediacontroller_utils.h | 1 + 5 files changed, 14 insertions(+), 33 deletions(-) diff --git a/src/mediacontroller/mediacontroller_api.js b/src/mediacontroller/mediacontroller_api.js index e0d1df7..147a52d 100755 --- a/src/mediacontroller/mediacontroller_api.js +++ b/src/mediacontroller/mediacontroller_api.js @@ -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; diff --git a/src/mediacontroller/mediacontroller_client.cc b/src/mediacontroller/mediacontroller_client.cc index 6595539..3fb6d3f 100644 --- a/src/mediacontroller/mediacontroller_client.cc +++ b/src/mediacontroller/mediacontroller_client.cc @@ -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] = diff --git a/src/mediacontroller/mediacontroller_server.cc b/src/mediacontroller/mediacontroller_server.cc index a33b071..71e9468 100644 --- a/src/mediacontroller/mediacontroller_server.cc +++ b/src/mediacontroller/mediacontroller_server.cc @@ -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(); @@ -1056,11 +1043,6 @@ void MediaControllerServer::OnPlaybackPositionCommand(const char* client_name, MediaControllerServer* server = static_cast(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(); @@ -1100,11 +1082,6 @@ void MediaControllerServer::OnShuffleModeCommand(const char* client_name, const MediaControllerServer* server = static_cast(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(); @@ -1121,11 +1098,6 @@ void MediaControllerServer::OnRepeatModeCommand(const char* client_name, const c MediaControllerServer* server = static_cast(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(); data_o[kClientName] = picojson::value(client_name); diff --git a/src/mediacontroller/mediacontroller_utils.cc b/src/mediacontroller/mediacontroller_utils.cc index ef52342..7c6404b 100644 --- a/src/mediacontroller/mediacontroller_utils.cc +++ b/src/mediacontroller/mediacontroller_utils.cc @@ -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"; diff --git a/src/mediacontroller/mediacontroller_utils.h b/src/mediacontroller/mediacontroller_utils.h index 8b56e4b..e1f5462 100644 --- a/src/mediacontroller/mediacontroller_utils.h +++ b/src/mediacontroller/mediacontroller_utils.h @@ -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; -- 2.7.4