possible fix of crashing audio device

This commit is contained in:
DJ2LS 2023-11-11 10:53:01 +01:00
parent 722f1ef785
commit e82592bab7
2 changed files with 48 additions and 46 deletions

View file

@ -135,13 +135,13 @@ class RF:
def start_modem(self):
if not TESTMODE and HamlibParam.hamlib_radiocontrol not in ["tci"]:
self.init_audio()
result = self.init_audio()
elif not TESTMODE:
self.init_tci()
result = self.init_tci()
else:
self.init_mkfifo()
result = self.init_mkfifo()
if result not in [False]:
# init codec2 instances
self.init_codec2()
@ -154,6 +154,8 @@ class RF:
# init decoding threads
self.init_data_threads()
atexit.register(self.stream.stop)
else:
return False
def stop_modem(self):
try:
@ -167,7 +169,6 @@ class RF:
self.log.error("[MDM] Error stopping modem", e=err)
def init_audio(self):
try:
self.log.info(f"[MDM] init: get audio devices", input_device=self.audio_input_device,
output_device=self.audio_output_device)
try:
@ -200,15 +201,15 @@ class RF:
blocksize=4800,
)
self.stream.start()
return True
except Exception as audioerr:
self.log.error("[MDM] init: starting pyaudio callback failed", e=audioerr)
except Exception as err:
self.log.warning("[MDM] init: can't open audio device. Stopping modem", e=err)
self.stop_modem()
return False
def init_tci(self):
# placeholder area for processing audio via TCI

View file

@ -42,3 +42,4 @@ class SM:
del self.data_handler
self.modem = False
self.data_handler = False
threading.Event().wait(0.5)