X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=app%2FMediaPlayer.qml;h=fd4db58fe980820be2f62fd5015f50c7dae86058;hb=0aefba20fe07dbb79d7b3683ab38c0b0b313a655;hp=089fcd01e4c9ecb73590233df4ddeffdc6e24502;hpb=3bb70f35d407595417ee86b24041b2d8bfca4d83;p=apps%2Fmediaplayer.git diff --git a/app/MediaPlayer.qml b/app/MediaPlayer.qml index 089fcd0..fd4db58 100644 --- a/app/MediaPlayer.qml +++ b/app/MediaPlayer.qml @@ -14,9 +14,11 @@ * 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 { @@ -40,10 +42,17 @@ ApplicationWindow { property string status: "stopped" function time2str(value) { - return Qt.formatTime(new Date(value), 'mm:ss') + return Qt.formatTime(new Date(value), (value > 3600000) ? 'hh:mm:ss' : 'mm:ss') } } + Component.onCompleted : { + // Let the mediaplayer backend know we're ready for metadata events + mediaplayer.start() + + VehicleSignals.connect() + } + Connections { target: mediaplayer @@ -59,10 +68,14 @@ ApplicationWindow { } if (track) { + if ('image' in track) + return 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 @@ -75,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 @@ -88,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 @@ -99,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 @@ -251,7 +294,7 @@ ApplicationWindow { Item { Layout.fillWidth: true Layout.fillHeight: true - Layout.preferredHeight: 407 + Layout.preferredHeight: 480 ListView { anchors.fill: parent