From c8dd57e4b48b7d83da2df5078f69286368f8343a Mon Sep 17 00:00:00 2001 From: Chrys Date: Wed, 21 Jun 2017 14:22:22 +0200 Subject: [PATCH] make fenrir quitable with eventloop, remove delay in evdevDriver --- src/fenrir/commands/commands/quit_fenrir.py | 2 +- src/fenrir/core/eventManager.py | 5 ++++- src/fenrir/core/fenrirManager.py | 2 +- src/fenrir/core/generalData.py | 1 - src/fenrir/inputDriver/evdevDriver.py | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/fenrir/commands/commands/quit_fenrir.py b/src/fenrir/commands/commands/quit_fenrir.py index 2ac67484..2ddae36f 100644 --- a/src/fenrir/commands/commands/quit_fenrir.py +++ b/src/fenrir/commands/commands/quit_fenrir.py @@ -17,7 +17,7 @@ class command(): return _('exits Fenrir') def run(self): - self.env['general']['running'] = False + self.env['eventManager'].stopMainEventLoop() def setCallback(self, callback): pass diff --git a/src/fenrir/core/eventManager.py b/src/fenrir/core/eventManager.py index e7bb728e..b6b0e006 100644 --- a/src/fenrir/core/eventManager.py +++ b/src/fenrir/core/eventManager.py @@ -42,6 +42,7 @@ class eventManager(): self.cleanEventQueue() def timerProcess(self): time.sleep(0.005) + #self.env['runtime']['settingsManager'].getSettingAsFloat('screen', 'screenUpdateDelay') return time.time() def terminateAllProcesses(self): for proc in self._eventProcesses: @@ -118,7 +119,7 @@ class eventManager(): except Exception as e: print(e) - def simpleEventWorkerThread(self, event, function): + def simpleEventWorkerThread(self, event, function, runOnce = False): if not isinstance(event, fenrirEventType): return if not callable(function): @@ -130,6 +131,8 @@ class eventManager(): except Exception as e: print(e) self.putToEventQueue(event, Data) + if runOnce: + break ''' def p(): time.sleep(0.02) diff --git a/src/fenrir/core/fenrirManager.py b/src/fenrir/core/fenrirManager.py index d8bfff1a..e22d252e 100644 --- a/src/fenrir/core/fenrirManager.py +++ b/src/fenrir/core/fenrirManager.py @@ -109,7 +109,7 @@ class fenrirManager(): self.environment['runtime']['commandManager'].executeCommand( self.environment['commandInfo']['currCommand'], 'commands') def shutdownRequest(self): - self.environment['general']['running'] = False + self.environment['eventManager'].stopMainEventLoop() def captureSignal(self, siginit, frame): self.shutdownRequest() diff --git a/src/fenrir/core/generalData.py b/src/fenrir/core/generalData.py index 6e4d666b..324099ba 100644 --- a/src/fenrir/core/generalData.py +++ b/src/fenrir/core/generalData.py @@ -7,7 +7,6 @@ from core import debug generalData = { -'running': True, 'args': None, 'tutorialMode': False, 'currUser':'', diff --git a/src/fenrir/inputDriver/evdevDriver.py b/src/fenrir/inputDriver/evdevDriver.py index f63cf3ff..1d91b85a 100644 --- a/src/fenrir/inputDriver/evdevDriver.py +++ b/src/fenrir/inputDriver/evdevDriver.py @@ -42,7 +42,7 @@ class driver(): time.sleep(0.008) # dont flood CPU return None event = None - r, w, x = select(self.iDevices, [], [], self.env['runtime']['settingsManager'].getSettingAsFloat('screen', 'screenUpdateDelay')) + r, w, x = select(self.iDevices, [], [], 0) if r != []: for fd in r: try: