diff --git a/src/components/CallView/shared/LocalAudioControlButton.vue b/src/components/CallView/shared/LocalAudioControlButton.vue
index 97d950d2e0e..9a15e286a17 100644
--- a/src/components/CallView/shared/LocalAudioControlButton.vue
+++ b/src/components/CallView/shared/LocalAudioControlButton.vue
@@ -79,6 +79,23 @@
{{ device.label }}
+
+
+
+ {{ t('spreed', 'Microphone settings') }}
+
+
+ {{ t('spreed', 'Check devices') }}
+
@@ -87,6 +104,7 @@
import { emit } from '@nextcloud/event-bus'
import { t } from '@nextcloud/l10n'
import { useHotKey } from '@nextcloud/vue/composables/useHotKey'
+import { spawnDialog } from '@nextcloud/vue/functions/dialog'
import { onBeforeUnmount, ref, watch } from 'vue'
import NcActionButton from '@nextcloud/vue/components/NcActionButton'
import NcActionCaption from '@nextcloud/vue/components/NcActionCaption'
@@ -95,6 +113,7 @@ import NcActionSeparator from '@nextcloud/vue/components/NcActionSeparator'
import NcButton from '@nextcloud/vue/components/NcButton'
import NcPopover from '@nextcloud/vue/components/NcPopover'
import IconChevronUp from 'vue-material-design-icons/ChevronUp.vue'
+import AdvancedAudioDialog from '../../MediaSettings/AdvancedAudioDialog.vue'
import VolumeIndicator from '../../UIShared/VolumeIndicator.vue'
import { useDevices } from '../../../composables/useDevices.js'
import { PARTICIPANT } from '../../../constants.ts'
@@ -301,6 +320,8 @@ export default {
methods: {
t,
+ emit,
+
toggleAudio() {
if (!this.isAudioAllowed || !this.isAudioAvailable) {
emit('talk:media-settings:show')
@@ -327,6 +348,12 @@ export default {
this.audioOutputId = audioOutputId
this.updatePreferences('audiooutput')
},
+
+ async openAdvancedSettings() {
+ if (await spawnDialog(AdvancedAudioDialog)) {
+ this.resumeAudioAfterChange = true
+ }
+ },
},
}
diff --git a/src/components/CallView/shared/LocalVideoControlButton.vue b/src/components/CallView/shared/LocalVideoControlButton.vue
index f11002aa1ff..c26f57c93a4 100644
--- a/src/components/CallView/shared/LocalVideoControlButton.vue
+++ b/src/components/CallView/shared/LocalVideoControlButton.vue
@@ -41,6 +41,15 @@
@click="handleVideoInputIdChange(device.deviceId)">
{{ device.label }}
+
+
+
+ {{ t('spreed', 'Check devices') }}
+
@@ -53,6 +62,7 @@ import { ref } from 'vue'
import NcActionButton from '@nextcloud/vue/components/NcActionButton'
import NcActionCaption from '@nextcloud/vue/components/NcActionCaption'
import NcActions from '@nextcloud/vue/components/NcActions'
+import NcActionSeparator from '@nextcloud/vue/components/NcActionSeparator'
import NcButton from '@nextcloud/vue/components/NcButton'
import IconChevronUp from 'vue-material-design-icons/ChevronUp.vue'
import IconVideo from 'vue-material-design-icons/Video.vue' // Filled for better indication
@@ -67,6 +77,7 @@ export default {
NcActions,
NcActionButton,
NcActionCaption,
+ NcActionSeparator,
NcButton,
IconChevronUp,
IconVideo,
@@ -221,6 +232,8 @@ export default {
methods: {
t,
+ emit,
+
toggleVideo() {
if (!this.isVideoAllowed || !this.isVideoAvailable) {
emit('talk:media-settings:show')
diff --git a/src/components/MediaSettings/AdvancedAudioDialog.vue b/src/components/MediaSettings/AdvancedAudioDialog.vue
new file mode 100644
index 00000000000..6c42f27573d
--- /dev/null
+++ b/src/components/MediaSettings/AdvancedAudioDialog.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/MediaSettings/MediaSettings.vue b/src/components/MediaSettings/MediaSettings.vue
index 5d7ab49c4ee..5288eec8316 100644
--- a/src/components/MediaSettings/MediaSettings.vue
+++ b/src/components/MediaSettings/MediaSettings.vue
@@ -177,6 +177,15 @@
+
+
+
+
+ {{ t('spreed', 'Microphone settings') }}
+
@@ -229,10 +238,10 @@