aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/mpris
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-02-27 18:41:40 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-02-27 18:41:40 +0000
commitf49cf908ccd6726dd1b1763fd13c37770eaad06e (patch)
treedaa53108a7e0248a7a93de0f6ec5a24801f4fd3d /src/plugins/General/mpris
parentd41fabfb56ef922429b51295d6f0f545fd309594 (diff)
downloadqmmp-f49cf908ccd6726dd1b1763fd13c37770eaad06e.tar.gz
qmmp-f49cf908ccd6726dd1b1763fd13c37770eaad06e.tar.bz2
qmmp-f49cf908ccd6726dd1b1763fd13c37770eaad06e.zip
mpris: improved compatibility
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9250 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/mpris')
-rw-r--r--src/plugins/General/mpris/player2object.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/plugins/General/mpris/player2object.cpp b/src/plugins/General/mpris/player2object.cpp
index 84d5725d6..b26a2c9d5 100644
--- a/src/plugins/General/mpris/player2object.cpp
+++ b/src/plugins/General/mpris/player2object.cpp
@@ -74,11 +74,11 @@ bool Player2Object::canGoPrevious() const
bool Player2Object::canPause() const
{
- return (m_core->state() == Qmmp::Paused || m_core->state() == Qmmp::Playing);
+ return !m_pl_manager->currentPlayList()->isEmpty();
}
bool Player2Object::canPlay() const
{
- return m_pl_manager->currentPlayList()->count() != 0;
+ return !m_pl_manager->currentPlayList()->isEmpty();
}
bool Player2Object::canSeek() const
@@ -239,20 +239,24 @@ void Player2Object::OpenUri(const QString &in0)
void Player2Object::Pause()
{
- m_core->pause();
+ if(m_core->state() == Qmmp::Playing)
+ m_core->pause();
}
void Player2Object::Play()
{
- m_player->play();
+ if(m_core->state() == Qmmp::Paused)
+ m_core->pause();
+ else if(m_core->state() != Qmmp::Playing && m_core->state() != Qmmp::Buffering)
+ m_player->play();
}
void Player2Object::PlayPause()
{
- if(m_core->state() == Qmmp::Stopped)
- m_player->play();
- else if(m_core->state() == Qmmp::Paused || m_core->state() == Qmmp::Playing)
+ if(m_core->state() == Qmmp::Playing || m_core->state() == Qmmp::Paused)
m_core->pause();
+ else if(m_core->state() != Qmmp::Playing && m_core->state() != Qmmp::Buffering)
+ m_player->play();
}
void Player2Object::Previous()