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') }} +