From 569c9889624ec3f4efc632540e4dd3b646441322 Mon Sep 17 00:00:00 2001 From: Bart De Vries Date: Mon, 12 Apr 2021 10:59:56 +0200 Subject: [PATCH] Enabled MPRIS2 (WIP) Simple play controls are working, but there seems to be quite a bit missing still. Proper signals are not triggered for the first track on startup. --- src/main.cpp | 2 ++ src/mpris2/mediaplayer2player.cpp | 4 ++-- src/qml/main.qml | 14 ++++++++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 1a87112f..ea788424 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,6 +31,7 @@ #include "queuemodel.h" #include "datamanager.h" #include "audiomanager.h" +#include "mpris2/mpris2.h" #ifdef Q_OS_ANDROID Q_DECL_EXPORT @@ -73,6 +74,7 @@ int main(int argc, char *argv[]) return &AudioManager::instance(); });*/ qmlRegisterType("org.kde.alligator", 1, 0, "AudioManager"); + qmlRegisterType("org.kde.alligator", 1, 0, "Mpris2"); qRegisterMetaType("const Entry*"); // "hack" to make qml understand Entry* diff --git a/src/mpris2/mediaplayer2player.cpp b/src/mpris2/mediaplayer2player.cpp index daf259a8..e5e1f6b8 100644 --- a/src/mpris2/mediaplayer2player.cpp +++ b/src/mpris2/mediaplayer2player.cpp @@ -272,8 +272,8 @@ void MediaPlayer2Player::OpenUri(const QString &uri) void MediaPlayer2Player::playerSourceChanged() { - // TODO: do we need to implement this?? - //setCurrentTrack(m_audioPlayer->playListPosition()); + // TODO: refactor this; too complicated for this player + setCurrentTrack(DataManager::instance().getQueue().indexOf(m_audioPlayer->entry()->id())); } void MediaPlayer2Player::playControlEnabledChanged() diff --git a/src/qml/main.qml b/src/qml/main.qml index 5a7327a8..d5507840 100644 --- a/src/qml/main.qml +++ b/src/qml/main.qml @@ -82,8 +82,18 @@ Kirigami.ApplicationWindow { AudioManager { id: audio playerOpen: false - //onPositionChanged: console.log("position changed to", position) - //onSeekableChanged: console.log("seekable changed to", seekable) + } + + Mpris2 { + id: mpris2Interface + + playerName: 'alligator' + audioPlayer: audio + + onRaisePlayer: + { + // TODO: implement + } } footer: Loader {