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();
}
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);
}
}
shuffle_mode_ = shuffle_mode;
+ is_shuffle_mode_set_ = true;
return PlatformResult(ErrorCode::NO_ERROR);
}
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);
}
}
repeat_mode_ = repeat_mode;
+ is_repeat_mode_set_ = true;
return PlatformResult(ErrorCode::NO_ERROR);
}
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_;