mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-05-29 15:40:11 +02:00
Add input level + gate indicator.
This commit is contained in:
parent
97fdd372af
commit
799590a0fc
1 changed files with 93 additions and 10 deletions
|
@ -15,6 +15,7 @@
|
||||||
import QtQuick 2.10
|
import QtQuick 2.10
|
||||||
import QtQuick.Controls 2.2
|
import QtQuick.Controls 2.2
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
import QtGraphicalEffects 1.0
|
||||||
|
|
||||||
import stylesUit 1.0
|
import stylesUit 1.0
|
||||||
import controlsUit 1.0 as HifiControlsUit
|
import controlsUit 1.0 as HifiControlsUit
|
||||||
|
@ -598,17 +599,17 @@ Rectangle {
|
||||||
anchors.top: noiseReductionSwitches.bottom;
|
anchors.top: noiseReductionSwitches.bottom;
|
||||||
anchors.topMargin: 16;
|
anchors.topMargin: 16;
|
||||||
width: parent.width - margins.paddings*2;
|
width: parent.width - margins.paddings*2;
|
||||||
height: avatarGainSliderTextMetrics.height;
|
height: avatarGainSliderTextMetrics.height + 10;
|
||||||
visible: AudioScriptingInterface.noiseReduction === true && AudioScriptingInterface.noiseReductionAutomatic !== true;
|
visible: AudioScriptingInterface.noiseReduction === true && AudioScriptingInterface.noiseReductionAutomatic !== true;
|
||||||
|
|
||||||
HifiControlsUit.Slider {
|
HifiControlsUit.Slider {
|
||||||
id: noiseReductionThresholdSlider
|
id: noiseReductionThresholdSlider
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
height: parent.height
|
height: noiseReductionThresholdSliderTextMetrics.height
|
||||||
width: 200
|
width: 200
|
||||||
minimumValue: 0.0
|
minimumValue: 0.0
|
||||||
maximumValue: 1.0
|
maximumValue: 1.0
|
||||||
stepSize: 0.1
|
stepSize: 0.05
|
||||||
value: AudioScriptingInterface.getNoiseReductionThreshold()
|
value: AudioScriptingInterface.getNoiseReductionThreshold()
|
||||||
onValueChanged: {
|
onValueChanged: {
|
||||||
updateNoiseReductionThresholdFromQML(value);
|
updateNoiseReductionThresholdFromQML(value);
|
||||||
|
@ -653,6 +654,88 @@ Rectangle {
|
||||||
horizontalAlignment: Text.AlignLeft;
|
horizontalAlignment: Text.AlignLeft;
|
||||||
verticalAlignment: Text.AlignTop;
|
verticalAlignment: Text.AlignTop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: noisePeak
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: 5;
|
||||||
|
anchors.top: noiseReductionThresholdSlider.bottom;
|
||||||
|
|
||||||
|
width: noiseReductionThresholdSlider.width - 10;
|
||||||
|
height: 8;
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: status;
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter;
|
||||||
|
verticalCenter: parent.verticalCenter;
|
||||||
|
}
|
||||||
|
|
||||||
|
visible: AudioScriptingInterface.muted;
|
||||||
|
color: "#E2334D";
|
||||||
|
|
||||||
|
text: "MUTED";
|
||||||
|
font.pointSize: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: noiseBar;
|
||||||
|
|
||||||
|
property bool gated: false;
|
||||||
|
property var level: AudioScriptingInterface.inputLevel;
|
||||||
|
|
||||||
|
width: parent.width;
|
||||||
|
height: parent.height;
|
||||||
|
|
||||||
|
anchors { fill: parent }
|
||||||
|
|
||||||
|
visible: !status.visible;
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
AudioScriptingInterface.noiseGateOpened.connect(function() { noiseBar.gated = false; });
|
||||||
|
AudioScriptingInterface.noiseGateClosed.connect(function() { noiseBar.gated = true; });
|
||||||
|
AudioScriptingInterface.inputLevelChanged.connect(function() { noiseBar.level = AudioScriptingInterface.inputLevel; });
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle { // base
|
||||||
|
radius: 4;
|
||||||
|
anchors { fill: parent }
|
||||||
|
color: colors.gutter;
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle { // noiseMask
|
||||||
|
id: noiseMask;
|
||||||
|
width: parent.width * noiseBar.level;
|
||||||
|
radius: 5;
|
||||||
|
anchors {
|
||||||
|
bottom: parent.bottom;
|
||||||
|
bottomMargin: 0;
|
||||||
|
top: parent.top;
|
||||||
|
topMargin: 0;
|
||||||
|
left: parent.left;
|
||||||
|
leftMargin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LinearGradient {
|
||||||
|
anchors { fill: noiseMask }
|
||||||
|
source: noiseMask
|
||||||
|
start: Qt.point(0, 0);
|
||||||
|
end: Qt.point(noiseBar.width, 0);
|
||||||
|
gradient: Gradient {
|
||||||
|
GradientStop {
|
||||||
|
position: 0;
|
||||||
|
color: noiseBar.gated ? "#E2334D" : "#39A38F";
|
||||||
|
}
|
||||||
|
GradientStop {
|
||||||
|
position: 1;
|
||||||
|
color: noiseBar.gated ? "#E2334D" : "#39A38F";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Separator {
|
Separator {
|
||||||
|
@ -738,13 +821,13 @@ Rectangle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AudioControls.InputPeak {
|
AudioControls.InputPeak {
|
||||||
id: inputLevel
|
id: inputLevel
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
peak: model.peak;
|
peak: model.peak;
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
visible: ((bar.currentIndex === 1 && isVR) ||
|
visible: ((bar.currentIndex === 1 && isVR) ||
|
||||||
(bar.currentIndex === 0 && !isVR)) &&
|
(bar.currentIndex === 0 && !isVR)) &&
|
||||||
AudioScriptingInterface.devices.input.peakValuesAvailable;
|
AudioScriptingInterface.devices.input.peakValuesAvailable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue