drop QtRecorder driver; rename existing

This commit is contained in:
Damien Elmes 2020-12-21 14:52:27 +10:00
parent 4c6e87ac87
commit 019a65efc1
3 changed files with 8 additions and 46 deletions

View file

@ -223,7 +223,6 @@ class Preferences(QDialog):
self.form.interrupt_audio.setChecked(self.mw.pm.interrupt_audio()) self.form.interrupt_audio.setChecked(self.mw.pm.interrupt_audio())
self._recording_drivers = [ self._recording_drivers = [
RecordingDriver.QtAudioInput, RecordingDriver.QtAudioInput,
RecordingDriver.QtRecorder,
RecordingDriver.PyAudio, RecordingDriver.PyAudio,
] ]
# fixme: i18n # fixme: i18n

View file

@ -33,9 +33,8 @@ from aqt.utils import TR, locale_dir, showWarning, tr
class RecordingDriver(Enum): class RecordingDriver(Enum):
QtRecorder = "qtrecorder" PyAudio = "PyAudio"
PyAudio = "pyaudio" QtAudioInput = "Qt"
QtAudioInput = "qtaudioinput"
metaConf = dict( metaConf = dict(
@ -641,7 +640,11 @@ create table if not exists profiles
def recording_driver(self) -> RecordingDriver: def recording_driver(self) -> RecordingDriver:
if driver := self.profile.get("recordingDriver"): if driver := self.profile.get("recordingDriver"):
return RecordingDriver(driver) try:
return RecordingDriver(driver)
except ValueError:
# revert to default
pass
return RecordingDriver.QtAudioInput return RecordingDriver.QtAudioInput
def set_recording_driver(self, driver: RecordingDriver): def set_recording_driver(self, driver: RecordingDriver):

View file

@ -521,44 +521,6 @@ class Recorder(ABC):
pass pass
# Qt recording
##########################################################################
class QtRecorder(Recorder):
def __init__(self, output_path: str, parent: QWidget):
super().__init__(output_path)
from PyQt5.QtMultimedia import QAudioRecorder
self._recorder = QAudioRecorder(parent)
audio = self._recorder.audioSettings()
audio.setSampleRate(44100)
audio.setChannelCount(1)
self._recorder.setEncodingSettings(
audio,
self._recorder.videoSettings(),
"audio/x-wav",
)
self._recorder.setOutputLocation(QUrl.fromLocalFile(self.output_path))
self._recorder.setMuted(True)
def start(self, on_done: Callable[[], None]) -> None:
self._recorder.record()
super().start(on_done)
def stop(self, on_done: Callable[[str], None]):
self._recorder.stop()
super().stop(on_done)
def on_timer(self):
duration = self._recorder.duration()
if duration >= 300:
# disable mute after recording starts to avoid clicks/pops
if self._recorder.isMuted():
self._recorder.setMuted(False)
# QAudioInput recording # QAudioInput recording
########################################################################## ##########################################################################
@ -770,9 +732,7 @@ class RecordDialog(QDialog):
def _start_recording(self): def _start_recording(self):
driver = self.mw.pm.recording_driver() driver = self.mw.pm.recording_driver()
if driver is RecordingDriver.QtRecorder: if driver is RecordingDriver.PyAudio:
self._recorder = QtRecorder(namedtmp("rec.wav"), self._parent)
elif driver is RecordingDriver.PyAudio:
self._recorder = PyAudioRecorder(self.mw, namedtmp("rec.wav")) self._recorder = PyAudioRecorder(self.mw, namedtmp("rec.wav"))
elif driver is RecordingDriver.QtAudioInput: elif driver is RecordingDriver.QtAudioInput:
self._recorder = QtAudioInputRecorder( self._recorder = QtAudioInputRecorder(