expose recording driver in preferences (at least for now)

This commit is contained in:
Damien Elmes 2020-12-18 19:48:43 +10:00
parent e7d9056acd
commit 038f0a10ec
3 changed files with 30 additions and 3 deletions

View file

@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>632</width>
<width>640</width>
<height>374</height>
</rect>
</property>
@ -111,6 +111,13 @@
</item>
</widget>
</item>
<item>
<widget class="QComboBox" name="recording_driver">
<property name="currentText">
<string notr="true"/>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
@ -596,6 +603,7 @@
<tabstop>pasteInvert</tabstop>
<tabstop>nightMode</tabstop>
<tabstop>useCurrent</tabstop>
<tabstop>recording_driver</tabstop>
<tabstop>uiScale</tabstop>
<tabstop>showEstimates</tabstop>
<tabstop>showProgress</tabstop>

View file

@ -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))

View file

@ -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
######################################################################