From 7f63c09141fc894383c664f10cc5fc5d80405eff Mon Sep 17 00:00:00 2001 From: Dpeta <69427753+Dpeta@users.noreply.github.com> Date: Fri, 17 Feb 2023 20:21:29 +0100 Subject: [PATCH] Check if audio device is output --- menus.py | 9 ++++++--- pesterchum.py | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/menus.py b/menus.py index 5a4e9bc..07b32be 100644 --- a/menus.py +++ b/menus.py @@ -1568,9 +1568,12 @@ class PesterOptions(QtWidgets.QDialog): current_audio_device = self.config.audioDevice() active_index = None try: - for i, output in enumerate(QtMultimedia.QMediaDevices.audioOutputs()): - self.audioDeviceBox.addItem(f"{output.description()}", output.id()) - if output.id() == current_audio_device: + for i, device in enumerate(QtMultimedia.QMediaDevices.audioOutputs()): + self.audioDeviceBox.addItem(f"{device.description()}", device.id()) + if ( + device.id() == current_audio_device + and device.Mode == QtMultimedia.QAudioDevice.Mode.Output + ): active_index = i if active_index is not None: self.audioDeviceBox.setCurrentIndex(active_index) diff --git a/pesterchum.py b/pesterchum.py index 9dc911f..1bb1cd6 100755 --- a/pesterchum.py +++ b/pesterchum.py @@ -2473,10 +2473,13 @@ class PesterWindow(MovingWindow): if "QtMultimedia" not in globals(): PchumLog.warning("Not using QtMultimedia, can't set audio device.") return - for output in QtMultimedia.QMediaDevices.audioOutputs(): - if device_id == output.id(): + for device in QtMultimedia.QMediaDevices.audioOutputs(): + if ( + device_id == device.id() + and device.Mode == QtMultimedia.QAudioDevice.Mode.Output + ): for sound in self.sounds: - sound.setAudioDevice(output) + sound.setAudioDevice(device) def canSetVolume(self): """Returns the state of volume setting capabilities."""