diff --git a/src/core/mpris2.cpp b/src/core/mpris2.cpp index 2e246eb17..87feb782e 100644 --- a/src/core/mpris2.cpp +++ b/src/core/mpris2.cpp @@ -410,9 +410,13 @@ void Mpris2::AlbumCoverLoaded(const Song &song, const AlbumCoverLoaderResult &re } -double Mpris2::Volume() const { return app_->player()->GetVolume() / 100.0; } +double Mpris2::Volume() const { + return app_->player()->GetVolume() / 100.0; +} -void Mpris2::SetVolume(double value) { app_->player()->SetVolume(static_cast(value * 100)); } +void Mpris2::SetVolume(const double value) { + app_->player()->SetVolume(static_cast(std::max(std::min(lround(value * 100.0), 100L), 0L))); +} qint64 Mpris2::Position() const { return app_->player()->engine()->position_nanosec() / kNsecPerUsec; diff --git a/src/core/mpris2.h b/src/core/mpris2.h index fbc7e98f3..505d51e9b 100644 --- a/src/core/mpris2.h +++ b/src/core/mpris2.h @@ -145,7 +145,7 @@ class Mpris2 : public QObject { void SetShuffle(bool enable); QVariantMap Metadata() const; double Volume() const; - void SetVolume(double value); + void SetVolume(const double value); qint64 Position() const; double MaximumRate() const; double MinimumRate() const;