diff options
-rw-r--r-- | app/MediaPlayer.qml | 29 | ||||
-rw-r--r-- | app/app.pro | 2 | ||||
-rw-r--r-- | app/main.cpp | 3 |
3 files changed, 33 insertions, 1 deletions
diff --git a/app/MediaPlayer.qml b/app/MediaPlayer.qml index 177fe36..95bc22b 100644 --- a/app/MediaPlayer.qml +++ b/app/MediaPlayer.qml @@ -49,6 +49,8 @@ ApplicationWindow { Component.onCompleted : { // Let the mediaplayer backend know we're ready for metadata events mediaplayer.start() + + VehicleSignals.connect() } Connections { @@ -86,6 +88,33 @@ ApplicationWindow { } } + Connections { + target: VehicleSignals + + onConnected: { + VehicleSignals.authorize() + } + + onAuthorized: { + VehicleSignals.subscribe("Vehicle.Cabin.Infotainment.Media.Action") + } + + onSignalNotification: { + if (path === "Vehicle.Cabin.Infotainment.Media.Action") { + if (value == "SkipForward") { + mediaplayer.next() + } else if (value == "SkipBackward") { + mediaplayer.previous() + } else if (value == "NextSource") { + if (player.av_connected) + mediaplayer.connect() + else + mediaplayer.disconnect() + } + } + } + } + Timer { id: timer interval: 250 diff --git a/app/app.pro b/app/app.pro index d14bdb6..dee1c5a 100644 --- a/app/app.pro +++ b/app/app.pro @@ -3,7 +3,7 @@ TARGET = mediaplayer QT = qml quickcontrols2 CONFIG += c++11 link_pkgconfig -PKGCONFIG += qtappfw-mediaplayer +PKGCONFIG += qtappfw-mediaplayer qtappfw-vehicle-signals SOURCES = main.cpp diff --git a/app/main.cpp b/app/main.cpp index 771ce3a..2058ff9 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -24,6 +24,7 @@ #include <QQuickWindow> #include <mediaplayer.h> +#include <vehiclesignals.h> #include <unistd.h> @@ -38,6 +39,8 @@ int main(int argc, char *argv[]) QQmlContext *context = engine.rootContext(); context->setContextProperty("AlbumArt", ""); context->setContextProperty("mediaplayer", new Mediaplayer(context)); + VehicleSignalsConfig vsConfig("mediaplayer"); + context->setContextProperty("VehicleSignals", new VehicleSignals(vsConfig)); engine.load(QUrl(QStringLiteral("qrc:/MediaPlayer.qml"))); |