Warning, /plasma/kpipewire/tests/main.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2022 Aleix Pol Gonzalez <aleixpol@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 import QtQuick 2.1 0008 import QtQuick.Layouts 1.1 0009 import QtQuick.Controls 2.1 0010 import org.kde.kirigami 2.15 as Kirigami 0011 0012 import org.kde.pipewire 0.1 as PipeWire 0013 import org.kde.pipewire.record 0.1 as PWRec 0014 0015 Kirigami.ApplicationWindow 0016 { 0017 id: root 0018 width: 500 0019 height: 500 0020 visible: true 0021 property QtObject app 0022 0023 function addStream(nodeid, displayText, fd) { 0024 if (fd == null) 0025 fd = 0; 0026 rep.model.append({nodeId: nodeid, uuid: "", display: displayText, fd: fd}) 0027 } 0028 function removeStream(nodeid) { 0029 for(var i=0; i<rep.model.count; ++i) { 0030 if (rep.model.get(i).nodeId === nodeid) { 0031 rep.model.remove(i) 0032 break; 0033 } 0034 } 0035 } 0036 0037 signal record(int nodeId, bool capture) 0038 0039 ColumnLayout { 0040 id: pipes 0041 anchors.fill: parent 0042 0043 Button { 0044 text: "Add Virtual Monitor" 0045 onClicked: app.createVirtualMonitor() 0046 } 0047 0048 Repeater { 0049 id: rep 0050 model: ListModel {} 0051 0052 delegate: Item { 0053 Layout.fillWidth: true 0054 Layout.fillHeight: true 0055 PipeWire.PipeWireSourceItem { 0056 id: sourceItem 0057 nodeId: model.nodeId 0058 fd: model.fd 0059 visible: record.state !== PWRec.PipeWireRecord.Recording 0060 anchors.fill: parent 0061 0062 } 0063 Button { 0064 id: butt 0065 icon.name: "media-record" 0066 text: model.display + " " + model.nodeId 0067 enabled: checked === (record.state !== PWRec.PipeWireRecord.Idle) 0068 checkable: true 0069 0070 PWRec.PipeWireRecord { 0071 id: record 0072 nodeId: model.nodeId 0073 fd: model.fd 0074 output: "~/clementine.mp4" 0075 active: butt.checked 0076 } 0077 } 0078 } 0079 } 0080 } 0081 }