def start(registry, cacheValues): """Starts Orca.""" debug.println(debug.LEVEL_INFO, 'ORCA: Starting', True) if not _initialized: init(registry) # Do not hang on startup if we can help it. # if settings.timeoutCallback and (settings.timeoutTime > 0): signal.signal(signal.SIGALRM, settings.timeoutCallback) signal.alarm(settings.timeoutTime) if settings.timeoutCallback and (settings.timeoutTime > 0): signal.alarm(0) if cacheValues: pyatspi.setCacheLevel(pyatspi.CACHE_PROPERTIES) # Event handlers for input devices being plugged in/unplugged. # Used to re-create the Xmodmap when a new keyboard is plugged in. # Necessary, because plugging in a new keyboard resets the Xmodmap # and stomps our changes display = Gdk.Display.get_default() devmanager = display.get_device_manager() devmanager.connect("device-added", deviceChangeHandler) devmanager.connect("device-removed", deviceChangeHandler) Gdk.notify_startup_complete() msg = 'ORCA: Startup complete notification made' debug.println(debug.LEVEL_INFO, msg, True) debug.println(debug.LEVEL_INFO, 'ORCA: Starting registry', True) registry.start(gil=False)
def start(registry, cacheValues): """Starts Orca. """ debug.println(debug.LEVEL_INFO, 'ORCA: Starting', True) if not _initialized: init(registry) # Do not hang on startup if we can help it. # if settings.timeoutCallback and (settings.timeoutTime > 0): signal.signal(signal.SIGALRM, settings.timeoutCallback) signal.alarm(settings.timeoutTime) if settings.timeoutCallback and (settings.timeoutTime > 0): signal.alarm(0) if cacheValues: pyatspi.setCacheLevel(pyatspi.CACHE_PROPERTIES) try: Gdk.notify_startup_complete() except: msg = 'ERROR: Exception calling Gdk.notification_startup_complete()' debug.println(debug.LEVEL_INFO, msg, True) else: msg = 'ORCA: Startup complete notification made' debug.println(debug.LEVEL_INFO, msg, True) debug.println(debug.LEVEL_INFO, 'ORCA: Starting registry', True) registry.start(gil=False)
def main(port=4118, parentpid=None): import os os.environ['NO_GAIL'] = '1' os.environ['NO_AT_BRIDGE'] = '1' import twisted gtkVersion = None try: from gi.repository import Gtk gtkVersion = Gtk._version except: pass if not gtkVersion or gtkVersion == '2.0': # As per Ubuntu 11.10, twisted glib2reactor # works with gtk2, which fails with gtk3 from twisted.internet import glib2reactor glib2reactor.install() elif gtkVersion >= '3.0': try: # Exist in Ubuntu 12.04, but not on # Ubuntu 11.10 / Fedora 16 from twisted.internet import gtk3reactor gtk3reactor.install() except: pass from twisted.internet import reactor from twisted.web import server, xmlrpc from xmlrpc_daemon import XMLRPCLdtpd import twisted.internet import socket import pyatspi import traceback _ldtp_debug = os.environ.get('LDTP_DEBUG', None) _ldtp_debug_file = os.environ.get('LDTP_DEBUG_FILE', None) try: pyatspi.setCacheLevel(pyatspi.CACHE_PROPERTIES) r = XMLRPCLdtpd() xmlrpc.addIntrospection(r) if parentpid: reactor.callWhenRunning(SignalParent(parentpid).send_later) reactor.listenTCP(port, server.Site(r)) reactor.run() except twisted.internet.error.CannotListenError: if _ldtp_debug: print(traceback.format_exc()) except socket.error: if _ldtp_debug: print(traceback.format_exc()) if _ldtp_debug_file: with open(_ldtp_debug_file, "a") as fp: fp.write(traceback.format_exc())
def start(registry, cacheValues): """Starts Orca. """ debug.println(debug.LEVEL_FINEST, 'INFO: Starting Orca') if not _initialized: init(registry) # Do not hang on startup if we can help it. # if settings.timeoutCallback and (settings.timeoutTime > 0): signal.signal(signal.SIGALRM, settings.timeoutCallback) signal.alarm(settings.timeoutTime) if settings.timeoutCallback and (settings.timeoutTime > 0): signal.alarm(0) if cacheValues: pyatspi.setCacheLevel(pyatspi.CACHE_PROPERTIES) debug.println(debug.LEVEL_FINEST, 'INFO: Orca starting registry') registry.start(gil=False)