mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2025-08-26 18:09:21 +00:00
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
|
import platform
|
||
|
import accessible_output2
|
||
|
from base import Output, OutputError
|
||
|
|
||
|
class Auto(Output):
|
||
|
|
||
|
def __init__(self):
|
||
|
if platform.system() == "Darwin":
|
||
|
import voiceover
|
||
|
self.outputs = [voiceover.VoiceOver()]
|
||
|
elif platform.system() == "Linux":
|
||
|
import speechDispatcher
|
||
|
self.outputs = [speechDispatcher.SpeechDispatcher()]
|
||
|
elif platform.system() == "Windows":
|
||
|
output_classes = accessible_output2.get_output_classes()
|
||
|
self.outputs = []
|
||
|
for output in output_classes:
|
||
|
try:
|
||
|
self.outputs.append(output())
|
||
|
except OutputError:
|
||
|
pass
|
||
|
|
||
|
def get_first_available_output(self):
|
||
|
for output in self.outputs:
|
||
|
if output.is_active():
|
||
|
return output
|
||
|
return None
|
||
|
|
||
|
def speak(self, *args, **kwargs):
|
||
|
output = self.get_first_available_output()
|
||
|
if output:
|
||
|
output.speak(*args, **kwargs)
|
||
|
|
||
|
def braille(self, *args, **kwargs):
|
||
|
output = self.get_first_available_output()
|
||
|
if output:
|
||
|
output.braille(*args, **kwargs)
|
||
|
|
||
|
def output(self, *args, **kwargs):
|
||
|
output = self.get_first_available_output()
|
||
|
if output:
|
||
|
output.speak(*args, **kwargs)
|