diff options
Diffstat (limited to 'media-sound/cantata/files/cantata-2.0.1-mpris-true.patch')
-rw-r--r-- | media-sound/cantata/files/cantata-2.0.1-mpris-true.patch | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/media-sound/cantata/files/cantata-2.0.1-mpris-true.patch b/media-sound/cantata/files/cantata-2.0.1-mpris-true.patch new file mode 100644 index 000000000000..c32f745b82f7 --- /dev/null +++ b/media-sound/cantata/files/cantata-2.0.1-mpris-true.patch @@ -0,0 +1,100 @@ +Always return true for MPRIS CanPlay, CanPause, etc. + +diff --git a/dbus/mpris.cpp b/dbus/mpris.cpp +index 4736d19..45a539a 100644 +--- a/dbus/mpris.cpp ++++ b/dbus/mpris.cpp +@@ -65,6 +65,31 @@ Mpris::~Mpris() + QDBusConnection::sessionBus().unregisterService("org.mpris.MediaPlayer2.cantata"); + } + ++void Mpris::Pause() ++{ ++ if (MPDState_Playing==MPDStatus::self()->state()) { ++ StdActions::self()->playPauseTrackAction->trigger(); ++ } ++} ++ ++void Mpris::Play() ++{ ++ MPDStatus * const status = MPDStatus::self(); ++ if (status->playlistLength() && MPDState_Playing!=status->state()) { ++ StdActions::self()->playPauseTrackAction->trigger(); ++ } ++} ++ ++QString Mpris::PlaybackStatus() const ++{ ++ switch(MPDStatus::self()->state()) { ++ case MPDState_Playing: return QLatin1String("Playing"); ++ case MPDState_Paused: return QLatin1String("Paused"); ++ default: ++ case MPDState_Stopped: return QLatin1String("Stopped"); ++ } ++} ++ + qlonglong Mpris::Position() const + { + // Cant use MPDStatus, as we dont poll for track position, but use a timer instead! +diff --git a/dbus/mpris.h b/dbus/mpris.h +index 64a4fbe..a1578b9 100644 +--- a/dbus/mpris.h ++++ b/dbus/mpris.h +@@ -71,37 +71,15 @@ class Mpris : public QObject + // org.mpris.MediaPlayer2.Player + void Next() { StdActions::self()->nextTrackAction->trigger(); } + void Previous() { StdActions::self()->prevTrackAction->trigger(); } +- void Pause() { +- if (MPDState_Playing==MPDStatus::self()->state()) { +- StdActions::self()->playPauseTrackAction->trigger(); +- } +- } +- ++ void Pause(); + void PlayPause() { StdActions::self()->playPauseTrackAction->trigger(); } + void Stop() { StdActions::self()->stopPlaybackAction->trigger(); } + void StopAfterCurrent() { StdActions::self()->stopAfterCurrentTrackAction->trigger(); } +- +- void Play() { +- MPDStatus * const status = MPDStatus::self(); +- +- if (status->playlistLength() && MPDState_Playing!=status->state()) { +- StdActions::self()->playPauseTrackAction->trigger(); +- } +- } +- ++ void Play(); + void Seek(qlonglong pos) { emit setSeekId(-1, pos/1000000); } + void SetPosition(const QDBusObjectPath &, qlonglong pos) {emit setSeekId(-1, pos/1000000); } + void OpenUri(const QString &) { } +- +- QString PlaybackStatus() { +- switch(MPDStatus::self()->state()) { +- case MPDState_Playing: return QLatin1String("Playing"); +- case MPDState_Paused: return QLatin1String("Paused"); +- default: +- case MPDState_Stopped: return QLatin1String("Stopped"); +- } +- } +- ++ QString PlaybackStatus() const; + QString LoopStatus() { return MPDStatus::self()->repeat() ? QLatin1String("Playlist") : QLatin1String("None"); } + void SetLoopStatus(const QString &s) { emit setRepeat(QLatin1String("None")!=s); } + QVariantMap Metadata() const; +@@ -115,11 +93,11 @@ class Mpris : public QObject + double MinimumRate() const { return 1.0; } + double MaximumRate() const { return 1.0; } + bool CanControl() const { return true; } +- bool CanPlay() const { return MPDState_Playing!=MPDStatus::self()->state() && MPDStatus::self()->playlistLength()>0; } +- bool CanPause() const { return MPDState_Playing==MPDStatus::self()->state(); } +- bool CanSeek() const { return -1!=MPDStatus::self()->songId(); } +- bool CanGoNext() const { return MPDState_Stopped!=MPDStatus::self()->state() && MPDStatus::self()->playlistLength()>1; } +- bool CanGoPrevious() const { return MPDState_Stopped!=MPDStatus::self()->state() && MPDStatus::self()->playlistLength()>1; } ++ bool CanPlay() const { return true; } ++ bool CanPause() const { return true; } ++ bool CanSeek() const { return true; } ++ bool CanGoNext() const { return true; } ++ bool CanGoPrevious() const { return true; } + + // org.mpris.MediaPlayer2 + bool CanQuit() const { return true; } |