When audio devices connected or disconnected from the system, the default audio device swapped around. This was because of QML setting index 0 on ComboBox.model changes. onCurrentIndexChanged was calling setPlaybackDeviceIndex() / mirrorDevice/ micDevice etc... in the audio tab controller and actively setting the audio device index to 0 momentarily. Changing onCurrentIndexChanged to onActivated allows the ComboBox to only actively command the audio tab controller in direct response to user interaction.
739 lines
27 KiB
QML
739 lines
27 KiB
QML
import QtQuick 2.7
|
|
import QtQuick.Controls 2.0
|
|
import QtQuick.Layouts 1.3
|
|
import matzman666.advsettings 1.0
|
|
|
|
|
|
MyStackViewPage {
|
|
width: 1200
|
|
headerText: "Audio Settings"
|
|
|
|
property bool componentCompleted: false
|
|
|
|
|
|
MyDialogOkPopup {
|
|
id: audioMessageDialog
|
|
function showMessage(title, text) {
|
|
dialogTitle = title
|
|
dialogText = text
|
|
open()
|
|
}
|
|
}
|
|
|
|
MyDialogOkCancelPopup {
|
|
id: pttDeleteProfileDialog
|
|
property int profileIndex: -1
|
|
dialogTitle: "Delete Profile"
|
|
dialogText: "Do you really want to delete this ptt profile?"
|
|
onClosed: {
|
|
if (okClicked) {
|
|
AudioTabController.deletePttProfile(profileIndex)
|
|
}
|
|
}
|
|
}
|
|
|
|
MyDialogOkCancelPopup {
|
|
id: audioDeleteProfileDialog
|
|
property int profileIndex: -1
|
|
dialogTitle: "Delete Profile"
|
|
dialogText: "Do you really want to delete this audio profile?"
|
|
onClosed: {
|
|
if (okClicked) {
|
|
AudioTabController.deleteAudioProfile(profileIndex)
|
|
pttProfileComboBox.currentIndex = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
PttControllerConfigDialog {
|
|
id: pttControllerConfigDialog
|
|
pttControllerConfigClass: AudioTabController
|
|
}
|
|
|
|
MyDialogOkCancelPopup {
|
|
id: pttNewProfileDialog
|
|
dialogTitle: "Create New PTT Profile"
|
|
dialogWidth: 600
|
|
dialogHeight: 220
|
|
dialogContentItem: ColumnLayout {
|
|
RowLayout {
|
|
Layout.topMargin: 16
|
|
Layout.leftMargin: 16
|
|
Layout.rightMargin: 16
|
|
MyText {
|
|
text: "Name: "
|
|
}
|
|
MyTextField {
|
|
id: pttNewProfileName
|
|
keyBoardUID: 590
|
|
color: "#cccccc"
|
|
text: ""
|
|
Layout.fillWidth: true
|
|
font.pointSize: 20
|
|
function onInputEvent(input) {
|
|
pttNewProfileName.text = input
|
|
}
|
|
}
|
|
}
|
|
}
|
|
onClosed: {
|
|
if (okClicked) {
|
|
if (pttNewProfileName.text != "") {
|
|
AudioTabController.addPttProfile(pttNewProfileName.text)
|
|
|
|
} else {
|
|
audioMessageDialog.showMessage("Create New Profile", "ERROR: No name given.")
|
|
}
|
|
}
|
|
}
|
|
function openPopup() {
|
|
pttNewProfileName.text = ""
|
|
open()
|
|
}
|
|
}
|
|
|
|
|
|
MyDialogOkCancelPopup {
|
|
id: audioNewProfileDialog
|
|
dialogTitle: "Create New Audio Profile"
|
|
dialogWidth: 600
|
|
dialogHeight: 300
|
|
dialogContentItem: ColumnLayout {
|
|
RowLayout {
|
|
Layout.topMargin: 16
|
|
Layout.leftMargin: 16
|
|
Layout.rightMargin: 16
|
|
MyText {
|
|
text: "Name: "
|
|
}
|
|
MyTextField {
|
|
id: audioNewProfileName
|
|
keyBoardUID: 590
|
|
color: "#cccccc"
|
|
text: ""
|
|
Layout.fillWidth: true
|
|
font.pointSize: 20
|
|
function onInputEvent(input) {
|
|
audioNewProfileName.text = input
|
|
}
|
|
}
|
|
}
|
|
RowLayout {
|
|
Layout.topMargin: 16
|
|
Layout.leftMargin: 16
|
|
Layout.rightMargin: 16
|
|
MyToggleButton {
|
|
id: audioDefaultProfileToggle
|
|
Layout.preferredWidth: 250
|
|
text: "Make Default"
|
|
onCheckedChanged: {
|
|
AudioTabController.setAudioProfileDefault(checked, false)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
onClosed: {
|
|
if (okClicked) {
|
|
if (audioNewProfileName.text != "") {
|
|
AudioTabController.addAudioProfile(audioNewProfileName.text)
|
|
} else {
|
|
audioMessageDialog.showMessage("Create New Profile", "ERROR: No name given.")
|
|
}
|
|
}
|
|
}
|
|
function openPopup() {
|
|
audioNewProfileName.text = ""
|
|
open()
|
|
}
|
|
}
|
|
|
|
content: ColumnLayout {
|
|
spacing: 24
|
|
|
|
RowLayout {
|
|
MyText {
|
|
text: "Playback Device: "
|
|
Layout.preferredWidth: 260
|
|
}
|
|
MyComboBox {
|
|
id: audioPlaybackNameCombo
|
|
Layout.maximumWidth: 850
|
|
Layout.minimumWidth: 850
|
|
Layout.preferredWidth: 850
|
|
onActivated: {
|
|
if (componentCompleted) {
|
|
AudioTabController.setPlaybackDeviceIndex(currentIndex)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ColumnLayout {
|
|
spacing: 18
|
|
RowLayout {
|
|
MyText {
|
|
text: "Mirror Device: "
|
|
Layout.preferredWidth: 260
|
|
}
|
|
MyComboBox {
|
|
id: audioMirrorNameCombo
|
|
Layout.maximumWidth: 850
|
|
Layout.minimumWidth: 850
|
|
Layout.preferredWidth: 850
|
|
onActivated: {
|
|
if (componentCompleted) {
|
|
AudioTabController.setMirrorDeviceIndex(currentIndex - 1)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
RowLayout {
|
|
MyText {
|
|
text: "Mirror Volume:"
|
|
Layout.preferredWidth: 260
|
|
}
|
|
|
|
MyPushButton2 {
|
|
id: audioMirrorVolumeMinusButton
|
|
text: "-"
|
|
Layout.preferredWidth: 40
|
|
onClicked: {
|
|
audioMirrorVolumeSlider.value -= 0.1
|
|
}
|
|
}
|
|
|
|
MySlider {
|
|
id: audioMirrorVolumeSlider
|
|
from: 0.0
|
|
to: 1.0
|
|
stepSize: 0.01
|
|
value: 1.0
|
|
Layout.fillWidth: true
|
|
onPositionChanged: {
|
|
var val = this.position * 100
|
|
audioMirrorVolumeText.text = Math.round(val) + "%"
|
|
}
|
|
onValueChanged: {
|
|
AudioTabController.setMirrorVolume(this.value.toFixed(2), false)
|
|
}
|
|
}
|
|
|
|
MyPushButton2 {
|
|
id: audioMirrorVolumePlusButton
|
|
text: "+"
|
|
Layout.preferredWidth: 40
|
|
onClicked: {
|
|
audioMirrorVolumeSlider.value += 0.1
|
|
}
|
|
}
|
|
|
|
MyText {
|
|
id: audioMirrorVolumeText
|
|
text: "100%"
|
|
Layout.preferredWidth: 85
|
|
horizontalAlignment: Text.AlignRight
|
|
}
|
|
|
|
MyPushButton2 {
|
|
id: audioMirrorMuteToggle
|
|
Layout.leftMargin: 12
|
|
checkable: true
|
|
contentItem: Image {
|
|
source: parent.checked ? "speaker_off.svg" : "speaker_on.svg"
|
|
sourceSize.width: 32
|
|
sourceSize.height: 32
|
|
anchors.fill: parent
|
|
}
|
|
onCheckedChanged: {
|
|
AudioTabController.setMirrorMuted(checked, false)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ColumnLayout {
|
|
spacing: 18
|
|
RowLayout {
|
|
MyText {
|
|
text: "Microphone: "
|
|
Layout.preferredWidth: 260
|
|
}
|
|
MyComboBox {
|
|
id: audioMicNameCombo
|
|
Layout.maximumWidth: 850
|
|
Layout.minimumWidth: 850
|
|
Layout.preferredWidth: 850
|
|
onActivated: {
|
|
if (componentCompleted) {
|
|
AudioTabController.setMicDeviceIndex(currentIndex)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
RowLayout {
|
|
MyText {
|
|
text: "Microphone Volume:"
|
|
Layout.preferredWidth: 260
|
|
}
|
|
|
|
MyPushButton2 {
|
|
id: audioMicVolumeMinusButton
|
|
text: "-"
|
|
Layout.preferredWidth: 40
|
|
onClicked: {
|
|
audioMicVolumeSlider.value -= 0.1
|
|
}
|
|
}
|
|
|
|
MySlider {
|
|
id: audioMicVolumeSlider
|
|
from: 0.0
|
|
to: 1.0
|
|
stepSize: 0.01
|
|
value: 1.0
|
|
Layout.fillWidth: true
|
|
onPositionChanged: {
|
|
var val = this.position * 100
|
|
audioMicVolumeText.text = Math.round(val) + "%"
|
|
}
|
|
onValueChanged: {
|
|
AudioTabController.setMicVolume(this.value.toFixed(2))
|
|
}
|
|
}
|
|
|
|
MyPushButton2 {
|
|
id: audioMicVolumePlusButton
|
|
text: "+"
|
|
Layout.preferredWidth: 40
|
|
onClicked: {
|
|
audioMicVolumeSlider.value += 0.1
|
|
}
|
|
}
|
|
|
|
MyText {
|
|
id: audioMicVolumeText
|
|
text: "100%"
|
|
Layout.preferredWidth: 85
|
|
horizontalAlignment: Text.AlignRight
|
|
}
|
|
|
|
MyPushButton2 {
|
|
id: audioMicMuteToggle
|
|
Layout.leftMargin: 12
|
|
checkable: true
|
|
contentItem: Image {
|
|
source: parent.checked ? "mic_off.svg" : "mic_on.svg"
|
|
sourceSize.width: 32
|
|
sourceSize.height: 32
|
|
anchors.fill: parent
|
|
}
|
|
onCheckedChanged: {
|
|
AudioTabController.setMicMuted(checked)
|
|
}
|
|
}
|
|
}
|
|
MyToggleButton {
|
|
id: audioMuteProximitySensorToggle
|
|
Layout.preferredWidth: 600
|
|
text: "Proximity Sensor Mutes/Unmutes Microphone"
|
|
onClicked: {
|
|
AudioTabController.setMicProximitySensorCanMute(checked, false)
|
|
}
|
|
}
|
|
RowLayout {
|
|
MyToggleButton {
|
|
id: audioPttEnabledToggle
|
|
Layout.preferredWidth: 260
|
|
text: "Push-to-Talk:"
|
|
onClicked: {
|
|
AudioTabController.pttEnabled = checked
|
|
}
|
|
}
|
|
MyToggleButton {
|
|
id: audioPttLeftControllerToggle
|
|
text: "Left Controller"
|
|
onClicked: {
|
|
AudioTabController.setPttLeftControllerEnabled(checked, false)
|
|
}
|
|
}
|
|
MyPushButton {
|
|
text: "Configure"
|
|
onClicked: {
|
|
pttControllerConfigDialog.openPopup(0)
|
|
}
|
|
}
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
MyToggleButton {
|
|
id: audioPttRightControllerToggle
|
|
text: "Right Controller"
|
|
onClicked: {
|
|
AudioTabController.setPttRightControllerEnabled(checked, false)
|
|
}
|
|
}
|
|
MyPushButton {
|
|
text: "Configure"
|
|
onClicked: {
|
|
pttControllerConfigDialog.openPopup(1)
|
|
}
|
|
}
|
|
}
|
|
RowLayout {
|
|
|
|
MyToggleButton {
|
|
id: audioPttShowNotificationToggle
|
|
Layout.leftMargin: 350
|
|
text: "Show notification in HMD"
|
|
onCheckedChanged: {
|
|
AudioTabController.setPttShowNotification(checked, false)
|
|
}
|
|
}
|
|
MyToggleButton {
|
|
id: audioPttReverseToggle
|
|
Layout.leftMargin: 118
|
|
text: "Push-to-Mute"
|
|
onClicked: {
|
|
AudioTabController.setMicReversePtt(checked, false)
|
|
}
|
|
}
|
|
}
|
|
RowLayout {
|
|
spacing: 10
|
|
|
|
MyText {
|
|
Layout.preferredWidth: 150
|
|
text: "Audio Profile:"
|
|
|
|
}
|
|
|
|
MyComboBox {
|
|
id: audioProfileComboBox
|
|
Layout.preferredWidth: 250
|
|
model: [""]
|
|
onCurrentIndexChanged: {
|
|
if (currentIndex > 0) {
|
|
audioApplyProfileButton.enabled = true
|
|
audioDeleteProfileButton.enabled = true
|
|
} else {
|
|
audioApplyProfileButton.enabled = false
|
|
audioDeleteProfileButton.enabled = false
|
|
}
|
|
}
|
|
}
|
|
|
|
MyPushButton {
|
|
id: audioApplyProfileButton
|
|
enabled: true
|
|
Layout.preferredWidth: 150
|
|
text: "Apply"
|
|
onClicked: {
|
|
if (audioProfileComboBox.currentIndex > 0) {
|
|
AudioTabController.applyAudioProfile(audioProfileComboBox.currentIndex - 1)
|
|
}
|
|
}
|
|
}
|
|
|
|
MyText {
|
|
text: "PTT Profile:"
|
|
Layout.preferredWidth: 150
|
|
}
|
|
|
|
MyComboBox {
|
|
id: pttProfileComboBox
|
|
Layout.preferredWidth: 250
|
|
model: [""]
|
|
onCurrentIndexChanged: {
|
|
if (currentIndex > 0) {
|
|
pttApplyProfileButton.enabled = true
|
|
pttDeleteProfileButton.enabled = true
|
|
} else {
|
|
pttApplyProfileButton.enabled = false
|
|
pttDeleteProfileButton.enabled = false
|
|
}
|
|
}
|
|
}
|
|
|
|
MyPushButton {
|
|
id: pttApplyProfileButton
|
|
enabled: true
|
|
Layout.preferredWidth: 150
|
|
text: "Apply"
|
|
onClicked: {
|
|
if (pttProfileComboBox.currentIndex > 0) {
|
|
AudioTabController.applyPttProfile(pttProfileComboBox.currentIndex - 1)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
RowLayout {
|
|
spacing: 18
|
|
|
|
MyPushButton {
|
|
id: audioDeleteProfileButton
|
|
enabled: true
|
|
Layout.preferredWidth: 200
|
|
text: "Delete Profile"
|
|
onClicked: {
|
|
if (audioProfileComboBox.currentIndex > 0) {
|
|
audioDeleteProfileDialog.profileIndex = audioProfileComboBox.currentIndex - 1
|
|
audioDeleteProfileDialog.open()
|
|
}
|
|
}
|
|
}
|
|
MyPushButton {
|
|
Layout.preferredWidth: 200
|
|
text: "New Profile"
|
|
onClicked: {
|
|
audioNewProfileDialog.openPopup()
|
|
}
|
|
}
|
|
Item {
|
|
Layout.fillWidth: true
|
|
}
|
|
MyPushButton {
|
|
id: pttDeleteProfileButton
|
|
enabled: true
|
|
Layout.preferredWidth: 200
|
|
text: "Delete Profile"
|
|
onClicked: {
|
|
if (pttProfileComboBox.currentIndex > 0) {
|
|
pttDeleteProfileDialog.profileIndex = pttProfileComboBox.currentIndex - 1
|
|
pttDeleteProfileDialog.open()
|
|
}
|
|
}
|
|
}
|
|
MyPushButton {
|
|
Layout.preferredWidth: 200
|
|
text: "New Profile"
|
|
onClicked: {
|
|
pttNewProfileDialog.openPopup()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
var devs1 = []
|
|
var devs2 = ["<None>"]
|
|
var playbackDeviceCount = AudioTabController.getPlaybackDeviceCount()
|
|
for (var i = 0; i < playbackDeviceCount; i++) {
|
|
var name = AudioTabController.getPlaybackDeviceName(i)
|
|
devs1.push(name)
|
|
devs2.push(name)
|
|
}
|
|
audioPlaybackNameCombo.model = devs1
|
|
audioPlaybackNameCombo.currentIndex = AudioTabController.playbackDeviceIndex
|
|
audioMirrorNameCombo.model = devs2
|
|
if (AudioTabController.mirrorDeviceIndex < 0) {
|
|
audioMirrorNameCombo.currentIndex = 0
|
|
audioMirrorVolumeMinusButton.enabled = false
|
|
audioMirrorVolumeSlider.enabled = false
|
|
audioMirrorVolumePlusButton.enabled = false
|
|
audioMirrorMuteToggle.enabled = false
|
|
} else {
|
|
audioMirrorVolumeMinusButton.enabled = true
|
|
audioMirrorVolumeSlider.enabled = true
|
|
audioMirrorVolumePlusButton.enabled = true
|
|
audioMirrorMuteToggle.enabled = true
|
|
audioMirrorVolumeSlider.value = AudioTabController.mirrorVolume
|
|
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
|
|
audioMirrorNameCombo.currentIndex = AudioTabController.mirrorDeviceIndex + 1
|
|
}
|
|
var devs3 = []
|
|
var micDeviceCount = AudioTabController.getRecordingDeviceCount()
|
|
for (var i = 0; i < micDeviceCount; i++) {
|
|
var name = AudioTabController.getRecordingDeviceName(i)
|
|
devs3.push(name)
|
|
}
|
|
audioMicNameCombo.model = devs3
|
|
if (AudioTabController.micDeviceIndex < 0) {
|
|
audioMicNameCombo.currentIndex = 0
|
|
audioMicVolumeMinusButton.enabled = false
|
|
audioMicVolumeSlider.enabled = false
|
|
audioMicVolumePlusButton.enabled = false
|
|
audioMicMuteToggle.enabled = false
|
|
audioMuteProximitySensorToggle.enabled = false
|
|
} else {
|
|
audioMicVolumeMinusButton.enabled = true
|
|
audioMicVolumeSlider.enabled = true
|
|
audioMicVolumePlusButton.enabled = true
|
|
audioMicMuteToggle.enabled = true
|
|
audioMuteProximitySensorToggle.enabled = true
|
|
audioMicVolumeSlider.value = AudioTabController.micVolume
|
|
audioMicMuteToggle.checked = AudioTabController.micMuted
|
|
audioMuteProximitySensorToggle.checked = AudioTabController.micProximitySensorCanMute
|
|
audioMicNameCombo.currentIndex = AudioTabController.micDeviceIndex
|
|
}
|
|
reloadPttProfiles()
|
|
reloadAudioProfiles()
|
|
audioPttEnabledToggle.checked = AudioTabController.pttEnabled
|
|
audioPttLeftControllerToggle.checked = AudioTabController.pttLeftControllerEnabled
|
|
audioPttRightControllerToggle.checked = AudioTabController.pttRightControllerEnabled
|
|
audioPttShowNotificationToggle.checked = AudioTabController.pttShowNotification
|
|
audioPttReverseToggle.checked = AudioTabController.micReversePtt
|
|
audioDefaultProfileToggle.checked = AudioTabController.audioProfileDefault
|
|
componentCompleted = true
|
|
}
|
|
|
|
Connections {
|
|
target: AudioTabController
|
|
onPlaybackDeviceIndexChanged: {
|
|
audioPlaybackNameCombo.currentIndex = index
|
|
}
|
|
onMirrorDeviceIndexChanged: {
|
|
if (index < 0) {
|
|
audioMirrorNameCombo.currentIndex = 0
|
|
audioMirrorVolumeMinusButton.enabled = false
|
|
audioMirrorVolumeSlider.enabled = false
|
|
audioMirrorVolumePlusButton.enabled = false
|
|
audioMirrorMuteToggle.enabled = false
|
|
} else {
|
|
audioMirrorVolumeMinusButton.enabled = true
|
|
audioMirrorVolumeSlider.enabled = true
|
|
audioMirrorVolumePlusButton.enabled = true
|
|
audioMirrorMuteToggle.enabled = true
|
|
audioMirrorNameCombo.currentIndex = index + 1
|
|
}
|
|
}
|
|
onMirrorVolumeChanged: {
|
|
audioMirrorVolumeSlider.value = AudioTabController.mirrorVolume
|
|
}
|
|
onMirrorMutedChanged: {
|
|
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
|
|
}
|
|
onMicDeviceIndexChanged: {
|
|
if (index < 0) {
|
|
audioMicNameCombo.currentIndex = 0
|
|
audioMicVolumeMinusButton.enabled = false
|
|
audioMicVolumeSlider.enabled = false
|
|
audioMicVolumePlusButton.enabled = false
|
|
audioMicMuteToggle.enabled = false
|
|
} else {
|
|
audioMicVolumeMinusButton.enabled = true
|
|
audioMicVolumeSlider.enabled = true
|
|
audioMicVolumePlusButton.enabled = true
|
|
audioMicMuteToggle.enabled = true
|
|
audioMicNameCombo.currentIndex = index
|
|
}
|
|
}
|
|
onMicVolumeChanged: {
|
|
audioMicVolumeSlider.value = AudioTabController.micVolume
|
|
}
|
|
onMicMutedChanged: {
|
|
audioMicMuteToggle.checked = AudioTabController.micMuted
|
|
}
|
|
onMicProximitySensorCanMuteChanged: {
|
|
audioMuteProximitySensorToggle.checked = AudioTabController.micProximitySensorCanMute
|
|
}
|
|
onMicReversePttChanged: {
|
|
audioPttReverseToggle.checked = AudioTabController.micReversePtt
|
|
}
|
|
onPttEnabledChanged: {
|
|
audioPttEnabledToggle.checked = AudioTabController.pttEnabled
|
|
}
|
|
onPttActiveChanged: {
|
|
|
|
}
|
|
onPttShowNotificationChanged: {
|
|
audioPttShowNotificationToggle.checked = AudioTabController.pttShowNotification
|
|
}
|
|
onPttLeftControllerEnabledChanged: {
|
|
audioPttLeftControllerToggle.checked = AudioTabController.pttLeftControllerEnabled
|
|
}
|
|
onPttRightControllerEnabledChanged: {
|
|
audioPttRightControllerToggle.checked = AudioTabController.pttRightControllerEnabled
|
|
}
|
|
onAudioProfileDefaultChanged: {
|
|
audioDefaultProfileToggle.checked = AudioTabController.audioProfileDefault
|
|
}
|
|
onPttProfilesUpdated: {
|
|
reloadPttProfiles()
|
|
}
|
|
onAudioProfilesUpdated: {
|
|
reloadAudioProfiles()
|
|
}
|
|
onAudioProfileAdded:{
|
|
audioProfileComboBox.currentIndex = AudioTabController.getAudioProfileCount()
|
|
}
|
|
onPttProfileAdded:{
|
|
pttProfileComboBox.currentIndex = AudioTabController.getPttProfileCount()
|
|
}
|
|
|
|
|
|
onPlaybackDeviceListChanged: {
|
|
var devs1 = []
|
|
var devs2 = ["<None>"]
|
|
var playbackDeviceCount = AudioTabController.getPlaybackDeviceCount()
|
|
for (var i = 0; i < playbackDeviceCount; i++) {
|
|
var name = AudioTabController.getPlaybackDeviceName(i)
|
|
devs1.push(name)
|
|
devs2.push(name)
|
|
}
|
|
audioPlaybackNameCombo.model = devs1
|
|
audioPlaybackNameCombo.currentIndex = AudioTabController.playbackDeviceIndex
|
|
audioMirrorNameCombo.model = devs2
|
|
if (AudioTabController.mirrorDeviceIndex < 0) {
|
|
audioMirrorNameCombo.currentIndex = 0
|
|
audioMirrorVolumeMinusButton.enabled = false
|
|
audioMirrorVolumeSlider.enabled = false
|
|
audioMirrorVolumePlusButton.enabled = false
|
|
audioMirrorMuteToggle.enabled = false
|
|
} else {
|
|
audioMirrorVolumeMinusButton.enabled = true
|
|
audioMirrorVolumeSlider.enabled = true
|
|
audioMirrorVolumePlusButton.enabled = true
|
|
audioMirrorMuteToggle.enabled = true
|
|
audioMirrorVolumeSlider.value = AudioTabController.mirrorVolume
|
|
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
|
|
audioMirrorNameCombo.currentIndex = AudioTabController.mirrorDeviceIndex + 1
|
|
}
|
|
}
|
|
onRecordingDeviceListChanged: {
|
|
var devs3 = []
|
|
var micDeviceCount = AudioTabController.getRecordingDeviceCount()
|
|
for (var i = 0; i < micDeviceCount; i++) {
|
|
var name = AudioTabController.getRecordingDeviceName(i)
|
|
devs3.push(name)
|
|
}
|
|
audioMicNameCombo.model = devs3
|
|
if (AudioTabController.micDeviceIndex < 0) {
|
|
audioMicNameCombo.currentIndex = 0
|
|
audioMicVolumeMinusButton.enabled = false
|
|
audioMicVolumeSlider.enabled = false
|
|
audioMicVolumePlusButton.enabled = false
|
|
audioMicMuteToggle.enabled = false
|
|
} else {
|
|
audioMicVolumeMinusButton.enabled = true
|
|
audioMicVolumeSlider.enabled = true
|
|
audioMicVolumePlusButton.enabled = true
|
|
audioMicMuteToggle.enabled = true
|
|
audioMicVolumeSlider.value = AudioTabController.micVolume
|
|
audioMicMuteToggle.checked = AudioTabController.micMuted
|
|
audioMicNameCombo.currentIndex = AudioTabController.micDeviceIndex
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function reloadPttProfiles() {
|
|
var profiles = [""]
|
|
var profileCount = AudioTabController.getPttProfileCount()
|
|
for (var i = 0; i < profileCount; i++) {
|
|
profiles.push(AudioTabController.getPttProfileName(i))
|
|
}
|
|
pttProfileComboBox.currentIndex = 0
|
|
pttProfileComboBox.model = profiles
|
|
}
|
|
|
|
function reloadAudioProfiles(){
|
|
var profiles = [""]
|
|
var profileCount = AudioTabController.getAudioProfileCount()
|
|
for (var i = 0; i < profileCount; i++) {
|
|
profiles.push(AudioTabController.getAudioProfileName(i))
|
|
}
|
|
audioProfileComboBox.currentIndex = 0;
|
|
audioProfileComboBox.model = profiles
|
|
}
|
|
}
|