From 9cf3c4404381ca1e1c637863a0cdb008a7cd622c Mon Sep 17 00:00:00 2001 From: Arkadiusz Pietraszek Date: Mon, 4 Jun 2018 11:55:34 +0200 Subject: [PATCH] [Mediacontroller] Added flags for setting shuffle and repeat modes shuffle_mode_ and repeat_mode_ initial values are not determined. Added flags enables to determine if it was already set. Without it following TCT cases failed regardles of initial value: MediaControllerPlaybackInfoChangeCallback_onrepeatmodechanged MediaControllerPlaybackInfoChangeCallback_onshufflemodechanged when run second time on target device. First run might result in success as well as in block. Verification: TCT pass rate: 100% Change-Id: I71ef1a8ab4f7c86bb6f9adc9b05fc6f192bd0d96 Signed-off-by: Arkadiusz Pietraszek --- src/mediacontroller/mediacontroller_server.cc | 10 +++++++--- src/mediacontroller/mediacontroller_server.h | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/mediacontroller/mediacontroller_server.cc b/src/mediacontroller/mediacontroller_server.cc index dd6449a2..8cf93409 100644 --- a/src/mediacontroller/mediacontroller_server.cc +++ b/src/mediacontroller/mediacontroller_server.cc @@ -35,7 +35,9 @@ MediaControllerServer::MediaControllerServer() playback_state_(MC_PLAYBACK_STATE_STOPPED), position_(0ULL), shuffle_mode_(MC_SHUFFLE_MODE_OFF), - repeat_mode_(MC_REPEAT_MODE_OFF) { + repeat_mode_(MC_REPEAT_MODE_OFF), + is_shuffle_mode_set_(false), + is_repeat_mode_set_(false) { ScopeLogger(); } @@ -135,7 +137,7 @@ PlatformResult MediaControllerServer::SetShuffleMode(bool mode) { ScopeLogger(); mc_shuffle_mode_e shuffle_mode = mode ? MC_SHUFFLE_MODE_ON : MC_SHUFFLE_MODE_OFF; - if (shuffle_mode == shuffle_mode_) { + if ((shuffle_mode == shuffle_mode_) && (is_shuffle_mode_set_)) { LoggerD("No change in shuffle mode requested, skipping"); return PlatformResult(ErrorCode::NO_ERROR); } @@ -148,6 +150,7 @@ PlatformResult MediaControllerServer::SetShuffleMode(bool mode) { } shuffle_mode_ = shuffle_mode; + is_shuffle_mode_set_ = true; return PlatformResult(ErrorCode::NO_ERROR); } @@ -156,7 +159,7 @@ PlatformResult MediaControllerServer::SetRepeatMode(bool mode) { ScopeLogger(); mc_repeat_mode_e repeat_mode = mode ? MC_REPEAT_MODE_ON : MC_REPEAT_MODE_OFF; - if (repeat_mode == repeat_mode_) { + if ((repeat_mode == repeat_mode_) && (is_repeat_mode_set_)) { LoggerD("No change in repeat mode requested, skipping"); return PlatformResult(ErrorCode::NO_ERROR); } @@ -169,6 +172,7 @@ PlatformResult MediaControllerServer::SetRepeatMode(bool mode) { } repeat_mode_ = repeat_mode; + is_repeat_mode_set_ = true; return PlatformResult(ErrorCode::NO_ERROR); } diff --git a/src/mediacontroller/mediacontroller_server.h b/src/mediacontroller/mediacontroller_server.h index 679bb4bf..b3085be3 100644 --- a/src/mediacontroller/mediacontroller_server.h +++ b/src/mediacontroller/mediacontroller_server.h @@ -55,6 +55,8 @@ class MediaControllerServer { unsigned long long position_; mc_shuffle_mode_e shuffle_mode_; mc_repeat_mode_e repeat_mode_; + bool is_shuffle_mode_set_; + bool is_repeat_mode_set_; JsonCallback command_listener_; -- 2.34.1