Added combo-boxes to allow audio device selection.

This commit is contained in:
2017-02-13 22:19:42 +01:00
parent 22af8b9633
commit c8d089957d
7 changed files with 699 additions and 134 deletions
+102 -56
View File
@@ -8,6 +8,8 @@ MyStackViewPage {
width: 1200
headerText: "Audio Settings"
property bool componentCompleted: false
MyDialogOkPopup {
id: audioMessageDialog
@@ -77,17 +79,43 @@ MyStackViewPage {
}
content: ColumnLayout {
spacing: 92
spacing: 68
RowLayout {
MyText {
text: "Playback Device: "
Layout.preferredWidth: 210
}
MyComboBox {
id: audioPlaybackNameCombo
Layout.maximumWidth: 900
Layout.minimumWidth: 900
Layout.preferredWidth: 900
onCurrentIndexChanged: {
if (componentCompleted) {
AudioTabController.setPlaybackDeviceIndex(currentIndex)
}
}
}
}
ColumnLayout {
spacing: 18
RowLayout {
MyText {
text: "Mirror Device: "
Layout.preferredWidth: 210
}
MyText {
id: audioMirrorNameText
text: "<None>"
MyComboBox {
id: audioMirrorNameCombo
Layout.maximumWidth: 900
Layout.minimumWidth: 900
Layout.preferredWidth: 900
onCurrentIndexChanged: {
if (componentCompleted) {
AudioTabController.setMirrorDeviceIndex(currentIndex - 1)
}
}
}
}
RowLayout {
@@ -159,10 +187,18 @@ MyStackViewPage {
RowLayout {
MyText {
text: "Microphone: "
Layout.preferredWidth: 210
}
MyText {
id: audioMicNameText
text: "<None>"
MyComboBox {
id: audioMicNameCombo
Layout.maximumWidth: 900
Layout.minimumWidth: 900
Layout.preferredWidth: 900
onCurrentIndexChanged: {
if (componentCompleted) {
AudioTabController.setMicDeviceIndex(currentIndex)
}
}
}
}
RowLayout {
@@ -338,64 +374,80 @@ MyStackViewPage {
}
Component.onCompleted: {
reloadPttProfiles()
if (AudioTabController.mirrorPresent) {
audioMirrorVolumeMinusButton.enabled = true
audioMirrorVolumeSlider.enabled = true
audioMirrorVolumePlusButton.enabled = true
audioMirrorMuteToggle.enabled = true
audioMirrorNameText.text = AudioTabController.mirrorDevName
audioMirrorVolumeSlider.value = AudioTabController.mirrorVolume
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
} else {
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
audioMirrorNameText.text = "<None>"
}
if (AudioTabController.micPresent) {
audioMicVolumeMinusButton.enabled = true
audioMicVolumeSlider.enabled = true
audioMicVolumePlusButton.enabled = true
audioMicMuteToggle.enabled = true
audioMicNameText.text = AudioTabController.micDevName
audioMicVolumeSlider.value = AudioTabController.micVolume
audioMicMuteToggle.checked = AudioTabController.micMuted
} 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
audioMicNameText.text = "<None>"
} 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
}
reloadPttProfiles()
audioPttEnabledToggle.checked = AudioTabController.pttEnabled
audioPttLeftControllerToggle.checked = AudioTabController.pttLeftControllerEnabled
audioPttRightControllerToggle.checked = AudioTabController.pttRightControllerEnabled
audioPttShowNotificationToggle.checked = AudioTabController.pttShowNotification
componentCompleted = true
}
Connections {
target: AudioTabController
onMirrorPresentChanged: {
if (value) {
audioMirrorVolumeMinusButton.enabled = true
audioMirrorVolumeSlider.enabled = true
audioMirrorVolumePlusButton.enabled = true
audioMirrorMuteToggle.enabled = true
} else {
onPlaybackDeviceIndexChanged: {
audioPlaybackNameCombo.currentIndex = index
}
onMirrorDeviceIndexChanged: {
if (index < 0) {
audioMirrorNameCombo.currentIndex = 0
audioMirrorVolumeMinusButton.enabled = false
audioMirrorVolumeSlider.enabled = false
audioMirrorVolumePlusButton.enabled = false
audioMirrorMuteToggle.enabled = false
audioMirrorNameText.text = "<None>"
}
}
onMirrorDevNameChanged: {
if (AudioTabController.mirrorPresent) {
audioMirrorNameText.text = AudioTabController.mirrorDevName
} else {
audioMirrorNameText.text = "<None>"
audioMirrorVolumeMinusButton.enabled = true
audioMirrorVolumeSlider.enabled = true
audioMirrorVolumePlusButton.enabled = true
audioMirrorMuteToggle.enabled = true
audioMirrorNameCombo.currentIndex = index + 1
}
}
onMirrorVolumeChanged: {
@@ -404,25 +456,19 @@ MyStackViewPage {
onMirrorMutedChanged: {
audioMirrorMuteToggle.checked = AudioTabController.mirrorMuted
}
onMicPresentChanged: {
if (value) {
audioMicVolumeMinusButton.enabled = true
audioMicVolumeSlider.enabled = true
audioMicVolumePlusButton.enabled = true
audioMicMuteToggle.enabled = true
} else {
onMicDeviceIndexChanged: {
if (index < 0) {
audioMicNameCombo.currentIndex = 0
audioMicVolumeMinusButton.enabled = false
audioMicVolumeSlider.enabled = false
audioMicVolumePlusButton.enabled = false
audioMicMuteToggle.enabled = false
audioMicNameText.text = "<None>"
}
}
onMicDevNameChanged: {
if (AudioTabController.micPresent) {
audioMicNameText.text = AudioTabController.micDevName
} else {
audioMicNameText.text = "<None>"
audioMicVolumeMinusButton.enabled = true
audioMicVolumeSlider.enabled = true
audioMicVolumePlusButton.enabled = true
audioMicMuteToggle.enabled = true
audioMicNameCombo.currentIndex = index
}
}
onMicVolumeChanged: {