diff --git a/src/fenrir-package/screen/linux.py b/src/fenrir-package/screen/linux.py index 7a55596a..6a33a94e 100644 --- a/src/fenrir-package/screen/linux.py +++ b/src/fenrir-package/screen/linux.py @@ -7,52 +7,52 @@ import time #import fenrir.utils.debug class screenManager(): def __init__(self, device='/dev/vcsa'): - self.vcsaDevice = device + self.vcsaDevicePath = device - def analyzeScreen(self, runtime): + def analyzeScreen(self, environment): # read screen currTTY = open('/sys/devices/virtual/tty/tty0/active','r') runtime['newTTY'] = currTTY.read()[3:-1] currTTY.close() try: - vcsa = open(self.vcsaDevice + runtime['newTTY'] ,'rb',0) - runtime['newContentBytes'] = vcsa.read() + vcsa = open(self.vcsaDevicePath + environment['screenData']['newTTY'] ,'rb',0) + environment['screenData']['newContentBytes'] = vcsa.read() vcsa.close() except: return runtime # get metadata like cursor or screensize - runtime['lines'] = int( runtime['newContentBytes'][0]) - runtime['columns'] = int( runtime['newContentBytes'][1]) - runtime['newCursor']['x'] = int( runtime['newContentBytes'][2]) - runtime['newCursor']['y'] = int( runtime['newContentBytes'][3]) + environment['screenData']['lines'] = int( environment['screenData']['newContentBytes'][0]) + environment['screenData']['columns'] = int( environment['screenData']['newContentBytes'][1]) + environment['screenData']['newCursor']['x'] = int( environment['screenData']['newContentBytes'][2]) + environment['screenData']['newCursor']['y'] = int( environment['screenData']['newContentBytes'][3]) # analyze content - runtime['newContentText'] = str(runtime['newContentBytes'][4:][::2].decode('cp1252').encode('utf-8'))[2:] - runtime['newContentAttrib'] = runtime['newContentBytes'][5:][::2] - runtime['newContentText'] = '\n'.join(textwrap.wrap(runtime['newContentText'], runtime['columns']))[:-2] + environment['screenData']['newContentText'] = str(environment['screenData']['newContentBytes'][4:][::2].decode('cp1252').encode('utf-8'))[2:] + environment['screenData']['newContentAttrib'] = environment['screenData']['newContentBytes'][5:][::2] + environment['screenData']['newContentText'] = '\n'.join(textwrap.wrap(environment['screenData']['newContentText'], environment['screenData']['columns']))[:-2] - if runtime['newTTY'] != runtime['oldTTY']: - runtime['oldContentBytes'] = b'' - runtime['oldContentAttrib'] = b'' - runtime['oldContentText'] = '' - runtime['oldCursor']['x'] = 0 - runtime['oldCursor']['y'] = 0 + if environment['screenData']['newTTY'] != environment['screenData']['oldTTY']: + environment['screenData']['oldContentBytes'] = b'' + environment['screenData']['oldContentAttrib'] = b'' + environment['screenData']['oldContentText'] = '' + environment['screenData']['oldCursor']['x'] = 0 + environment['screenData']['oldCursor']['y'] = 0 # changes on the screen - if runtime['oldContentBytes'] != runtime['newContentBytes']: - if ((len(runtime['delta']) < 4) or runtime['oldTTY'] != runtime['newTTY']): - runtime['speechDriver'].cancel() - diff = difflib.ndiff(runtime['oldContentText'], runtime['newContentText']) - runtime['delta'] = ''.join(x[2:] for x in diff if x.startswith('+ ')) - runtime['speechDriver'].speak(runtime['delta']) + if environment['screenData']['oldContentBytes'] != environment['screenData']['newContentBytes']: + if ((len(environment['screenData']['delta']) < 4) or environment['screenData']['oldTTY'] != environment['screenData']['newTTY']): + environment['runtime']['speechDriver'].cancel() + diff = difflib.ndiff(runtime['oldContentText'], environment['screenData']['newContentText']) + environment['screenData']['delta'] = ''.join(x[2:] for x in diff if x.startswith('+ ')) + environment['runtime']['speechDriver'].speak(environment['screenData']['delta']) # set new "old" values - runtime['oldContentBytes'] = runtime['newContentBytes'] - runtime['oldContentText'] = runtime['newContentText'] - runtime['oldContentTextAttrib'] = runtime['newContentAttrib'] - runtime['oldCursor']['x'] = runtime['newCursor']['x'] - runtime['oldCursor']['y'] = runtime['newCursor']['y'] - runtime['oldTTY'] = runtime['newTTY'] - return runtime + environment['screenData']['oldContentBytes'] = environment['screenData']['newContentBytes'] + environment['screenData']['oldContentText'] = environment['screenData']['newContentText'] + environment['screenData']['oldContentTextAttrib'] = environment['screenData']['newContentAttrib'] + environment['screenData']['oldCursor']['x'] = environment['screenData']['newCursor']['x'] + environment['screenData']['oldCursor']['y'] = environment['screenData']['newCursor']['y'] + environment['screenData']['oldTTY'] = environment['screenData']['newTTY'] + return environment