Fix layout issues
[apps/mediaplayer.git] / app / MediaPlayer.qml
index cdd9368..fd4db58 100644 (file)
@@ -17,8 +17,7 @@
 import QtQuick 2.11
 import QtQuick.Layouts 1.11
 import QtQuick.Controls 2.4
-
-import QtQuick.Window 2.11
+import QtQuick.Window 2.13
 
 import AGL.Demo.Controls 1.0
 
@@ -47,6 +46,13 @@ ApplicationWindow {
         }
     }
 
+    Component.onCompleted : {
+        // Let the mediaplayer backend know we're ready for metadata events
+        mediaplayer.start()
+
+        VehicleSignals.connect()
+    }
+
     Connections {
         target: mediaplayer
 
@@ -82,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
@@ -95,8 +128,8 @@ ApplicationWindow {
     Item {
         id: container
         anchors.centerIn: parent
-        width: Screen.width
-        height: Screen.height
+        width: Window.width
+       height: Window.height
         //scale: screenInfo.scale_factor()
         scale: 1
 
@@ -107,17 +140,19 @@ ApplicationWindow {
             Layout.fillHeight: true
             Layout.preferredHeight: 1080
             clip: true
+
             Image {
+                anchors.top: parent.top
                 anchors.left: parent.left
                 anchors.right: parent.right
-                anchors.bottom: parent.bottom
-                height: sourceSize.height * width / sourceSize.width
-                fillMode: Image.PreserveAspectCrop
+                anchors.bottom: controls.top
+                fillMode: Image.PreserveAspectFit
                 source: AlbumArt
                 visible: player.av_connected === false
             }
 
             Item {
+                id: controls
                 anchors.left: parent.left
                 anchors.right: parent.right
                 anchors.bottom: parent.bottom
@@ -259,7 +294,7 @@ ApplicationWindow {
         Item {
             Layout.fillWidth: true
             Layout.fillHeight: true
-            Layout.preferredHeight: 407
+            Layout.preferredHeight: 480
 
             ListView {
                 anchors.fill: parent