From 219b527adbc7996f4ae2e73732114d2daa17c9c5 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Tue, 7 Jun 2022 15:51:47 -0400 Subject: Add VIS vehicle signal support Use the new VehicleSignals API from libqtappfw to replace the previous signal-composer usage. Bug-AGL: SPEC-4409 Change-Id: Id5aaa6e9789f75a0aaecd4cfc560bbc4bae3f4c5 Signed-off-by: Scott Murray (cherry picked from commit 61e3d69532099d7215410c5b38e29ba3525dec46) --- app/MediaPlayer.qml | 29 +++++++++++++++++++++++++++++ app/app.pro | 2 +- app/main.cpp | 3 +++ 3 files changed, 33 insertions(+), 1 deletion(-) (limited to 'app') 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 #include +#include #include @@ -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"))); -- cgit 1.2.3-korg