diff --git a/src/audiowrapper.cpp b/src/audiowrapper.cpp --- a/src/audiowrapper.cpp +++ b/src/audiowrapper.cpp @@ -60,7 +60,6 @@ { auto realVolume = static_cast(d->mPlayer.volume() / 100.0); auto userVolume = static_cast(QAudio::convertVolume(realVolume, QAudio::LinearVolumeScale, QAudio::LogarithmicVolumeScale)); - auto decibelVolume = static_cast(QAudio::convertVolume(realVolume, QAudio::LinearVolumeScale, QAudio::DecibelVolumeScale)); return userVolume * 100.0; } @@ -117,7 +116,6 @@ void AudioWrapper::setVolume(qreal volume) { auto realVolume = static_cast(QAudio::convertVolume(volume / 100.0, QAudio::LogarithmicVolumeScale, QAudio::LinearVolumeScale)); - auto decibelVolume = static_cast(QAudio::convertVolume(realVolume, QAudio::LinearVolumeScale, QAudio::DecibelVolumeScale)); d->mPlayer.setVolume(qRound(realVolume * 100)); } diff --git a/src/localFileConfiguration/localfileconfiguration.cpp b/src/localFileConfiguration/localfileconfiguration.cpp --- a/src/localFileConfiguration/localfileconfiguration.cpp +++ b/src/localFileConfiguration/localfileconfiguration.cpp @@ -101,7 +101,8 @@ } if (mRootPath.isEmpty()) { - for (const auto &musicPath : QStandardPaths::standardLocations(QStandardPaths::MusicLocation)) { + auto systemMusicPaths = QStandardPaths::standardLocations(QStandardPaths::MusicLocation); + for (const auto &musicPath : qAsConst(systemMusicPaths)) { mRootPath.push_back(musicPath); } } diff --git a/src/mediaplaylist.h b/src/mediaplaylist.h --- a/src/mediaplaylist.h +++ b/src/mediaplaylist.h @@ -242,14 +242,14 @@ private Q_SLOTS: - bool rowHasHeader(int row) const; - void loadPlayListLoaded(); void loadPlayListLoadFailed(); private: + bool rowHasHeader(int row) const; + void resetCurrentTrack(); void notifyCurrentTrackChanged(); diff --git a/src/mpris2/mediaplayer2.h b/src/mpris2/mediaplayer2.h --- a/src/mpris2/mediaplayer2.h +++ b/src/mpris2/mediaplayer2.h @@ -31,15 +31,15 @@ Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2") // Docs: http://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html - Q_PROPERTY(bool CanQuit READ CanQuit) - Q_PROPERTY(bool CanRaise READ CanRaise) - Q_PROPERTY(bool HasTrackList READ HasTrackList) + Q_PROPERTY(bool CanQuit READ CanQuit CONSTANT) + Q_PROPERTY(bool CanRaise READ CanRaise CONSTANT) + Q_PROPERTY(bool HasTrackList READ HasTrackList CONSTANT) - Q_PROPERTY(QString Identity READ Identity) - Q_PROPERTY(QString DesktopEntry READ DesktopEntry) + Q_PROPERTY(QString Identity READ Identity CONSTANT) + Q_PROPERTY(QString DesktopEntry READ DesktopEntry CONSTANT) - Q_PROPERTY(QStringList SupportedUriSchemes READ SupportedUriSchemes) - Q_PROPERTY(QStringList SupportedMimeTypes READ SupportedMimeTypes) + Q_PROPERTY(QStringList SupportedUriSchemes READ SupportedUriSchemes CONSTANT) + Q_PROPERTY(QStringList SupportedMimeTypes READ SupportedMimeTypes CONSTANT) public: explicit MediaPlayer2(QObject* parent = nullptr); @@ -56,11 +56,11 @@ QStringList SupportedMimeTypes() const; public Q_SLOTS: - void Quit() const; - void Raise() const; + void Quit(); + void Raise(); Q_SIGNALS: - void raisePlayer() const; + void raisePlayer(); }; diff --git a/src/mpris2/mediaplayer2.cpp b/src/mpris2/mediaplayer2.cpp --- a/src/mpris2/mediaplayer2.cpp +++ b/src/mpris2/mediaplayer2.cpp @@ -49,12 +49,12 @@ return false; } -void MediaPlayer2::Quit() const +void MediaPlayer2::Quit() { QCoreApplication::quit(); } -void MediaPlayer2::Raise() const +void MediaPlayer2::Raise() { emit raisePlayer(); } diff --git a/src/mpris2/mediaplayer2player.h b/src/mpris2/mediaplayer2player.h --- a/src/mpris2/mediaplayer2player.h +++ b/src/mpris2/mediaplayer2player.h @@ -38,21 +38,21 @@ Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.mpris.MediaPlayer2.Player") // Docs: http://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html - Q_PROPERTY(QString PlaybackStatus READ PlaybackStatus) + Q_PROPERTY(QString PlaybackStatus READ PlaybackStatus NOTIFY playbackStatusChanged) Q_PROPERTY(double Rate READ Rate WRITE setRate NOTIFY rateChanged) - Q_PROPERTY(QVariantMap Metadata READ Metadata) + Q_PROPERTY(QVariantMap Metadata READ Metadata NOTIFY playbackStatusChanged) Q_PROPERTY(double Volume READ Volume WRITE setVolume NOTIFY volumeChanged) - Q_PROPERTY(qlonglong Position READ Position WRITE setPropertyPosition) - Q_PROPERTY(double MinimumRate READ MinimumRate) - Q_PROPERTY(double MaximumRate READ MaximumRate) - Q_PROPERTY(bool CanGoNext READ CanGoNext) - Q_PROPERTY(bool CanGoPrevious READ CanGoPrevious) - Q_PROPERTY(bool CanPlay READ CanPlay) - Q_PROPERTY(bool CanPause READ CanPause) - Q_PROPERTY(bool CanControl READ CanControl) - Q_PROPERTY(bool CanSeek READ CanSeek) - Q_PROPERTY(int currentTrack READ currentTrack WRITE setCurrentTrack) - Q_PROPERTY(int mediaPlayerPresent READ mediaPlayerPresent WRITE setMediaPlayerPresent) + Q_PROPERTY(qlonglong Position READ Position WRITE setPropertyPosition NOTIFY playbackStatusChanged) + Q_PROPERTY(double MinimumRate READ MinimumRate CONSTANT) + Q_PROPERTY(double MaximumRate READ MaximumRate CONSTANT) + Q_PROPERTY(bool CanGoNext READ CanGoNext NOTIFY canGoNextChanged) + Q_PROPERTY(bool CanGoPrevious READ CanGoPrevious NOTIFY canGoPreviousChanged) + Q_PROPERTY(bool CanPlay READ CanPlay NOTIFY canPlayChanged) + Q_PROPERTY(bool CanPause READ CanPause NOTIFY canPauseChanged) + Q_PROPERTY(bool CanControl READ CanControl NOTIFY canControlChanged) + Q_PROPERTY(bool CanSeek READ CanSeek NOTIFY canSeekChanged) + Q_PROPERTY(int currentTrack READ currentTrack WRITE setCurrentTrack NOTIFY currentTrackChanged) + Q_PROPERTY(int mediaPlayerPresent READ mediaPlayerPresent WRITE setMediaPlayerPresent NOTIFY mediaPlayerPresentChanged) public: explicit MediaPlayer2Player(MediaPlayList *playListControler, @@ -80,28 +80,37 @@ int mediaPlayerPresent() const; Q_SIGNALS: - void Seeked(qlonglong Position) const; - - void rateChanged(double newRate) const; - void volumeChanged(double newVol) const; - void next() const; - void previous() const; - void playPause() const; - void stop() const; + void Seeked(qlonglong Position); + + void rateChanged(double newRate); + void volumeChanged(double newVol); + void playbackStatusChanged(); + void canGoNextChanged(); + void canGoPreviousChanged(); + void canPlayChanged(); + void canPauseChanged(); + void canControlChanged(); + void canSeekChanged(); + void currentTrackChanged(); + void mediaPlayerPresentChanged(); + void next(); + void previous(); + void playPause(); + void stop(); public Q_SLOTS: void emitSeeked(int pos); - void Next() const; - void Previous() const; - void Pause() const; + void Next(); + void Previous(); + void Pause(); void PlayPause(); - void Stop() const; - void Play() const; - void Seek(qlonglong Offset) const; - void SetPosition(const QDBusObjectPath &trackId, qlonglong pos) const; - void OpenUri(const QString &uri) const; + void Stop(); + void Play(); + void Seek(qlonglong Offset); + void SetPosition(const QDBusObjectPath &trackId, qlonglong pos); + void OpenUri(const QString &uri); private Q_SLOTS: diff --git a/src/mpris2/mediaplayer2player.cpp b/src/mpris2/mediaplayer2player.cpp --- a/src/mpris2/mediaplayer2player.cpp +++ b/src/mpris2/mediaplayer2player.cpp @@ -98,7 +98,7 @@ return m_canGoNext; } -void MediaPlayer2Player::Next() const +void MediaPlayer2Player::Next() { emit next(); @@ -112,7 +112,7 @@ return m_canGoPrevious; } -void MediaPlayer2Player::Previous() const +void MediaPlayer2Player::Previous() { emit previous(); @@ -126,7 +126,7 @@ return !m_canPlay; } -void MediaPlayer2Player::Pause() const +void MediaPlayer2Player::Pause() { if (m_playListControler) { m_manageAudioPlayer->playPause(); @@ -142,7 +142,7 @@ } } -void MediaPlayer2Player::Stop() const +void MediaPlayer2Player::Stop() { emit stop(); } @@ -152,7 +152,7 @@ return m_canPlay; } -void MediaPlayer2Player::Play() const +void MediaPlayer2Player::Play() { if (m_playListControler) { m_manageAudioPlayer->playPause(); @@ -229,7 +229,7 @@ return true; } -void MediaPlayer2Player::Seek(qlonglong Offset) const +void MediaPlayer2Player::Seek(qlonglong Offset) { if (mediaPlayerPresent()) { int offset = (m_position + Offset) / 1000; @@ -242,14 +242,14 @@ emit Seeked(qlonglong(pos) * 1000); } -void MediaPlayer2Player::SetPosition(const QDBusObjectPath &trackId, qlonglong pos) const +void MediaPlayer2Player::SetPosition(const QDBusObjectPath &trackId, qlonglong pos) { if (trackId.path() == m_currentTrackId) { m_manageAudioPlayer->playerSeek(pos / 1000); } } -void MediaPlayer2Player::OpenUri(const QString &uri) const +void MediaPlayer2Player::OpenUri(const QString &uri) { Q_UNUSED(uri); } @@ -273,6 +273,9 @@ signalPropertiesChange(QStringLiteral("CanPause"), CanPause()); signalPropertiesChange(QStringLiteral("CanPlay"), CanPlay()); + + emit canPauseChanged(); + emit canPlayChanged(); } void MediaPlayer2Player::skipBackwardControlEnabledChanged() @@ -284,6 +287,7 @@ m_canGoPrevious = m_manageMediaPlayerControl->skipBackwardControlEnabled(); signalPropertiesChange(QStringLiteral("CanGoPrevious"), CanGoPrevious()); + emit canGoPreviousChanged(); } void MediaPlayer2Player::skipForwardControlEnabledChanged() @@ -295,11 +299,13 @@ m_canGoNext = m_manageMediaPlayerControl->skipForwardControlEnabled(); signalPropertiesChange(QStringLiteral("CanGoNext"), CanGoNext()); + emit canGoNextChanged(); } void MediaPlayer2Player::playerPlaybackStateChanged() { signalPropertiesChange(QStringLiteral("PlaybackStatus"), PlaybackStatus()); + emit playbackStatusChanged(); playerIsSeekableChanged(); } @@ -309,6 +315,7 @@ m_playerIsSeekableChanged = m_manageAudioPlayer->playerIsSeekable(); signalPropertiesChange(QStringLiteral("CanSeek"), CanSeek()); + emit canSeekChanged(); } void MediaPlayer2Player::audioPositionChanged() @@ -342,6 +349,8 @@ { m_currentTrack = m_manageAudioPlayer->playerSource().toString(); m_currentTrackId = QDBusObjectPath(QStringLiteral("/org/kde/elisa/playlist/") + QString::number(newTrackPosition)).path(); + + emit currentTrackChanged(); } QVariantMap MediaPlayer2Player::getMetadataOfCurrentTrack() @@ -369,11 +378,16 @@ { if (m_mediaPlayerPresent != status) { m_mediaPlayerPresent = status; + emit mediaPlayerPresentChanged(); signalPropertiesChange(QStringLiteral("CanGoNext"), CanGoNext()); signalPropertiesChange(QStringLiteral("CanGoPrevious"), CanGoPrevious()); signalPropertiesChange(QStringLiteral("CanPause"), CanPause()); signalPropertiesChange(QStringLiteral("CanPlay"), CanPlay()); + emit canGoNextChanged(); + emit canGoPreviousChanged(); + emit canPauseChanged(); + emit canPlayChanged(); } } diff --git a/src/mpris2/mpris2.h b/src/mpris2/mpris2.h --- a/src/mpris2/mpris2.h +++ b/src/mpris2/mpris2.h @@ -109,7 +109,7 @@ void setAudioPlayer(AudioWrapper* audioPlayer); Q_SIGNALS: - void raisePlayer() const; + void raisePlayer(); void playerNameChanged(); diff --git a/src/musiclistenersmanager.cpp b/src/musiclistenersmanager.cpp --- a/src/musiclistenersmanager.cpp +++ b/src/musiclistenersmanager.cpp @@ -153,7 +153,8 @@ auto initialRootPath = Elisa::ElisaConfiguration::rootPath(); if (initialRootPath.isEmpty()) { - for (const auto &musicPath : QStandardPaths::standardLocations(QStandardPaths::MusicLocation)) { + auto systemMusicPaths = QStandardPaths::standardLocations(QStandardPaths::MusicLocation); + for (const auto &musicPath : qAsConst(systemMusicPaths)) { initialRootPath.push_back(musicPath); }