X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=app%2FMixer.qml;h=b14ae68ce819139e2b0c246f34c0737619fe991b;hb=18abf43ba645b46b0d6c5245e8282e2d6db40332;hp=0588b770521f8929a5d82dd1aea2c47bf53f86d8;hpb=3c8498d95c3f89def2eb49b668fa70cd12faace7;p=apps%2Fmixer.git diff --git a/app/Mixer.qml b/app/Mixer.qml index 0588b77..b14ae68 100644 --- a/app/Mixer.qml +++ b/app/Mixer.qml @@ -20,92 +20,50 @@ import QtQuick.Controls 2.0 import AGL.Demo.Controls 1.0 import Mixer 1.0 -ApplicationWindow { - // ----- Signals - - // ----- Properties - property Component volumeSlider - - // ----- Setup - id: root - - // ----- Childs - Mixer { - // ----- Signals - signal sliderVolumeChanged(string role, int value) - - // ----- Properties - - // ----- Setup - id: mixer - - onSliderVolumeChanged: { - console.log("======role: " + role + ", volume: " + value); - mixer.setVolume(role, value); - } - - Component.onCompleted: { - var vs = Qt.createComponent("VolumeSlider.qml"); - if (vs.status !== Component.Ready) { - console.log("Failed to load the VolumeSlider.qml component: " + vs.errorString()); - } - root.volumeSlider = vs - mixer.open(bindingAddress); - } +import QtQuick.Window 2.13 - onRolesChanged: { - // Remove existing sliders - for(var i = sliders.children.length; i > 0 ; --i) { - console.log("destroying: " + i); - sliders.children[i-1].destroy(); - } - - // Add slider for each role - for(var j = 0; j < mixer.roles.length; ++j) { - addSlider(mixer.roles[j]); - } - } - - onVolumeChanged: { - console.log("onVolumeChanged(\"" + name + "\", " + value + ")"); - for(var i = 0; i < sliders.children.length ; i++) { - var sld = sliders.children[i]; - console.log(i + " - Slider found:" + sld + "[\"" + sld.role + "\"] = " + sld.value); - if (sld.role === name) { - sld.value = value; - } - } - } - - // ----- Functions - function addSlider(name) { - var sld = root.volumeSlider.createObject(sliders) - sld.role = name - sld.onSliderValueChanged.connect(mixer.sliderVolumeChanged) - mixer.getVolume(name); // Update volume - } - - function deleteChilds(item) { - for(var i = item.children.length; i > 0 ; i--) { - deleteChilds(item.children[i-1]); - } - item.destroy(); - } - } - - Label { - id: title - font.pixelSize: 48 - text: "Mixer" - anchors.horizontalCenter: parent.horizontalCenter - } - - ColumnLayout { - id: sliders - anchors.margins: 80 - anchors.top: title.bottom - anchors.left: parent.left - anchors.right: parent.right - } +ApplicationWindow { + // ----- Signals + + // ----- Properties + property Component volumeSlider + + // ----- Setup + id: root + width: Window.width * roles.scale + height: Window.height * roles.scale + + // ----- Childs + Label { + id: title + font.pixelSize: 48 + text: "Mixer" + anchors.horizontalCenter: parent.horizontalCenter + } + + Mixer { + signal sliderVolumeChanged(string role, int value) + + id: mixer + + Component.onCompleted: { + mixer.open(bindingAddress); + } + } + + ListView { + id: roles + model: mixer.roles + //scale: scale_factor + scale: 1 + + anchors.margins: 80 + anchors.top: title.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + spacing: 10 + + delegate: VolumeSlider {} + } } -