Fix detection of missing speech-dispatcher on linux

This commit is contained in:
Kovid Goyal 2021-01-12 07:15:49 +05:30
parent 5f41c8f40f
commit 1d89aa737a
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -41,9 +41,14 @@ class Client:
self.system_default_output_module = None self.system_default_output_module = None
def create_ssip_client(self): def create_ssip_client(self):
from speechd.client import Priority, SpawnError, SSIPClient from speechd.client import Priority, SpawnError, SSIPClient, SSIPCommunicationError
try: try:
self.ssip_client = SSIPClient('calibre') self.ssip_client = SSIPClient('calibre')
except SSIPCommunicationError as err:
ex = err.additional_exception()
if isinstance(ex, SpawnError):
raise TTSSystemUnavailable(_('Could not find speech-dispatcher on your system. Please install it.'), str(err))
raise
except SpawnError as err: except SpawnError as err:
raise TTSSystemUnavailable(_('Could not find speech-dispatcher on your system. Please install it.'), str(err)) raise TTSSystemUnavailable(_('Could not find speech-dispatcher on your system. Please install it.'), str(err))
self.ssip_client.set_priority(Priority.TEXT) self.ssip_client.set_priority(Priority.TEXT)