From 9d63a30597854d7ac67120118197257ebb365370 Mon Sep 17 00:00:00 2001 From: chrys Date: Sat, 3 Sep 2016 02:22:56 +0200 Subject: [PATCH] continue rework of input handling --- TODO | 2 +- config/settings/settings.conf | 2 ++ src/fenrir-package/core/inputManager.py | 11 +++++++++++ src/fenrir-package/fenrir.py | 1 + src/fenrir-package/input/evdev.py | 13 ++----------- src/fenrir-package/speech/espeak.py | 6 +----- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/TODO b/TODO index b11e0239..779616b0 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,7 @@ ToDos in Priority order: - Known Bugs - gstreamer sounddriver doesnt work + gstreamer sounddriver doesnt work (i think it needs a Glib - try to consume shortcuts grab keyboard exclusive [x] diff --git a/config/settings/settings.conf b/config/settings/settings.conf index 7f187578..2cb8a902 100644 --- a/config/settings/settings.conf +++ b/config/settings/settings.conf @@ -22,6 +22,8 @@ enabled=True # Select speech driver, options are speechd (default) or espeak: driver=speechd +#driver=espeak + # The rate selects how fast fenrir will speak. Options range from 0, slowest, to 1.0, fastest. rate=0.45 diff --git a/src/fenrir-package/core/inputManager.py b/src/fenrir-package/core/inputManager.py index e044624f..4960a4ca 100644 --- a/src/fenrir-package/core/inputManager.py +++ b/src/fenrir-package/core/inputManager.py @@ -11,7 +11,18 @@ class inputManager(): def shutdown(self, environment): return environment def proceedInputEvent(self, environment): + timeout = True + if not environment['input']['keyForeward']: + self.ignoreKeyRelease = 0 environment, timeout = environment['runtime']['inputDriver'].getInput(environment) + environment['input']['currShortcutString'] = self.getShortcutString(environment) + if not timeout: + environment['input']['lastInputTime'] = time.time() + environment['input']['consumeKey'] = environment['input']['currShortcut'] != {} and environment['input']['consumeKey'] + if (environment['input']['keyForeward'] and environment['input']['currShortcut'] == {}): + self.ignoreKeyRelease += 1 + if self.ignoreKeyRelease >= 2: # a hack... has to bee done more clean + environment['input']['keyForeward'] = environment['input']['keyForeward'] and not environment['input']['currShortcut'] == {} return environment, timeout def grabDevices(self, environment): environment['runtime']['inputDriver'].grabDevices(environment) diff --git a/src/fenrir-package/fenrir.py b/src/fenrir-package/fenrir.py index 4ed09d5f..1216bfea 100755 --- a/src/fenrir-package/fenrir.py +++ b/src/fenrir-package/fenrir.py @@ -24,6 +24,7 @@ class fenrir(): try: self.handleProcess() except Exception as e: + print(e) self.environment['runtime']['debug'].writeDebugOut(self.environment,str(e),debug.debugLevel.ERROR) self.shutdown() diff --git a/src/fenrir-package/input/evdev.py b/src/fenrir-package/input/evdev.py index 3598e334..62393403 100644 --- a/src/fenrir-package/input/evdev.py +++ b/src/fenrir-package/input/evdev.py @@ -18,9 +18,7 @@ class input(): def shutdown(self, environment): return environment def getInput(self, environment): - timeout = True - if not environment['input']['keyForeward']: - self.ignoreKeyRelease = 0 + try: r, w, x = select(self.iDevices, [], [], environment['runtime']['settingsManager'].getSettingAsFloat(environment, 'screen', 'screenUpdateDelay')) if r != []: @@ -49,14 +47,7 @@ class input(): environment['runtime']['debug'].writeDebugOut(environment,str(e),debug.debugLevel.ERROR) self.releaseDevices() time.sleep(0.01) - environment['input']['currShortcutString'] = self.getShortcutString(environment) - if not timeout: - environment['input']['lastInputTime'] = time.time() - environment['input']['consumeKey'] = environment['input']['currShortcut'] != {} and environment['input']['consumeKey'] - if (environment['input']['keyForeward'] and environment['input']['currShortcut'] == {}): - self.ignoreKeyRelease += 1 - if self.ignoreKeyRelease >= 2: # a hack... has to bee done more clean - environment['input']['keyForeward'] = environment['input']['keyForeward'] and not environment['input']['currShortcut'] == {} + return environment, timeout diff --git a/src/fenrir-package/speech/espeak.py b/src/fenrir-package/speech/espeak.py index 15a9063b..941e5f21 100644 --- a/src/fenrir-package/speech/espeak.py +++ b/src/fenrir-package/speech/espeak.py @@ -4,8 +4,6 @@ class speech(): def __init__(self ): - pass - def initialize(self, environment): self._es = None self._isInitialized = False try: @@ -14,6 +12,7 @@ class speech(): self._isInitialized = True except: self._initialized = False + def initialize(self, environment): return environment def shutdown(self, environment): return environment @@ -68,6 +67,3 @@ class speech(): if not self._isInitialized: return False return self._es.set_parameter(self._es.Parameter().Volume, int(volume * 200)) - - def shutdown(self): - pass