}
}
+ Component.onCompleted : {
+ // Let the mediaplayer backend know we're ready for metadata events
+ mediaplayer.start()
+
+ VehicleSignals.connect()
+ }
+
Connections {
target: mediaplayer
}
}
+ 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
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
Item {
Layout.fillWidth: true
Layout.fillHeight: true
- Layout.preferredHeight: container.height / 2
+ Layout.preferredHeight: 480
ListView {
anchors.fill: parent