diff --git a/qt/aqt/forms/preferences.ui b/qt/aqt/forms/preferences.ui
index d5afcb135..eb19da19a 100644
--- a/qt/aqt/forms/preferences.ui
+++ b/qt/aqt/forms/preferences.ui
@@ -6,7 +6,7 @@
0
0
- 632
+ 640
374
@@ -111,6 +111,13 @@
+ -
+
+
+
+
+
+
-
-
@@ -596,6 +603,7 @@
pasteInvert
nightMode
useCurrent
+ recording_driver
uiScale
showEstimates
showProgress
diff --git a/qt/aqt/preferences.py b/qt/aqt/preferences.py
index 63589ef31..4304c61b8 100644
--- a/qt/aqt/preferences.py
+++ b/qt/aqt/preferences.py
@@ -4,6 +4,7 @@
import anki.lang
import aqt
from aqt import AnkiQt
+from aqt.profiles import RecordingDriver
from aqt.qt import *
from aqt.utils import TR, askUser, openHelp, showInfo, showWarning, tr
@@ -220,6 +221,21 @@ class Preferences(QDialog):
self.form.showPlayButtons.setChecked(self.prof.get("showPlayButtons", True))
self.form.nightMode.setChecked(self.mw.pm.night_mode())
self.form.interrupt_audio.setChecked(self.mw.pm.interrupt_audio())
+ self._recording_drivers = [
+ RecordingDriver.QtAudioInput,
+ RecordingDriver.QtRecorder,
+ RecordingDriver.PyAudio,
+ ]
+ # fixme: i18n
+ self.form.recording_driver.addItems(
+ [
+ f"Voice recording driver: {driver.value}"
+ for driver in self._recording_drivers
+ ]
+ )
+ self.form.recording_driver.setCurrentIndex(
+ self._recording_drivers.index(self.mw.pm.recording_driver())
+ )
def updateOptions(self):
restart_required = False
@@ -237,6 +253,9 @@ class Preferences(QDialog):
restart_required = True
self.mw.pm.set_interrupt_audio(self.form.interrupt_audio.isChecked())
+ self.mw.pm.set_recording_driver(
+ self._recording_drivers[self.form.recording_driver.currentIndex()]
+ )
if restart_required:
showInfo(tr(TR.PREFERENCES_CHANGES_WILL_TAKE_EFFECT_WHEN_YOU))
diff --git a/qt/aqt/profiles.py b/qt/aqt/profiles.py
index a6e7b7a89..bbb5547a8 100644
--- a/qt/aqt/profiles.py
+++ b/qt/aqt/profiles.py
@@ -641,11 +641,11 @@ create table if not exists profiles
def recording_driver(self) -> RecordingDriver:
if driver := self.profile.get("recordingDriver"):
- return driver
+ return RecordingDriver(driver)
return RecordingDriver.QtAudioInput
def set_recording_driver(self, driver: RecordingDriver):
- self.profile["recordingDriver"] = driver.value()
+ self.profile["recordingDriver"] = driver.value
######################################################################