nvda-voicemeeter/src/nvda_voicemeeter/nvda.py

31 lines
843 B
Python
Raw Normal View History

2023-08-22 02:04:00 +01:00
from .cdll import libc
from .errors import NVDAVMCAPIError
2023-08-22 02:04:00 +01:00
class CBindings:
bind_test_if_running = libc.nvdaController_testIfRunning
bind_speak_text = libc.nvdaController_speakText
bind_cancel_speech = libc.nvdaController_cancelSpeech
bind_braille_message = libc.nvdaController_brailleMessage
2023-08-29 10:47:09 +01:00
def call(self, fn, *args, ok=(0,)):
2023-08-22 02:04:00 +01:00
retval = fn(*args)
2023-08-29 10:47:09 +01:00
if retval not in ok:
raise NVDAVMCAPIError(fn.__name__, retval)
2023-08-22 02:04:00 +01:00
return retval
class Nvda(CBindings):
@property
def is_running(self):
2023-08-29 10:47:09 +01:00
return self.call(self.bind_test_if_running) == 0
2023-08-22 02:04:00 +01:00
def speak(self, text):
self.call(self.bind_speak_text, text)
def cancel_speech(self):
self.call(self.bind_cancel_speech)
def braille_message(self, text):
self.call(self.bind_braille_message, text)