Update VIS vehicle signal support
[apps/mediaplayer.git] / app / MediaPlayer.qml
index f6beafd..03c85c4 100644 (file)
  * limitations under the License.
  */
 
-import QtQuick 2.6
-import QtQuick.Layouts 1.1
-import QtQuick.Controls 2.0
+import QtQuick 2.11
+import QtQuick.Layouts 1.11
+import QtQuick.Controls 2.4
+import QtQuick.Window 2.13
+
 import AGL.Demo.Controls 1.0
 
 ApplicationWindow {
@@ -44,6 +46,13 @@ ApplicationWindow {
         }
     }
 
+    Component.onCompleted : {
+        // Let the mediaplayer backend know we're ready for metadata events
+        mediaplayer.start()
+
+        VehicleSignals.connect()
+    }
+
     Connections {
         target: mediaplayer
 
@@ -64,7 +73,9 @@ ApplicationWindow {
                 player.title = track.title
                 player.album = track.album
                 player.artist = track.artist
-                player.duration = track.duration
+
+                if ('duration' in track)
+                     player.duration = track.duration
 
                 if ('index' in track) {
                      playlistview.currentIndex = track.index
@@ -77,6 +88,33 @@ ApplicationWindow {
         }
     }
 
+    Connections {
+        target: VehicleSignals
+
+        onConnected: {
+           VehicleSignals.authorize()
+        }
+
+        onAuthorized: {
+           VehicleSignals.subscribe("Vehicle.Cabin.SteeringWheel.Switches.Next")
+           VehicleSignals.subscribe("Vehicle.Cabin.SteeringWheel.Switches.Previous")
+           VehicleSignals.subscribe("Vehicle.Cabin.SteeringWheel.Switches.Mode")
+       }
+
+        onSignalNotification: {
+            if (path === "Vehicle.Cabin.SteeringWheel.Switches.Next" && value === "true") {
+                mediaplayer.next()
+            } else if (path === "Vehicle.Cabin.SteeringWheel.Switches.Previous" && value === "true") {
+                mediaplayer.previous()
+            } else if (path === "Vehicle.Cabin.SteeringWheel.Switches.Mode" && value === "true") {
+                if (player.av_connected)
+                    mediaplayer.connect()
+                else
+                    mediaplayer.disconnect()
+            }
+        }
+    }
+
     Timer {
         id: timer
         interval: 250
@@ -90,9 +128,10 @@ ApplicationWindow {
     Item {
         id: container
         anchors.centerIn: parent
-        width: 1080
-        height: 1487
-        scale: screenInfo.scale_factor()
+        width: Window.width
+       height: Window.height
+        //scale: screenInfo.scale_factor()
+        scale: 1
 
     ColumnLayout {
         anchors.fill: parent