Refactor session

This commit is contained in:
Andrew Kay
2021-06-14 21:08:52 -05:00
parent bdb0866db1
commit f31157cf8b
7 changed files with 355 additions and 197 deletions

View File

@@ -146,6 +146,8 @@ class Controller:
self.session = None
def _update_session(self, duration):
update_count = 0
while duration > 0:
start_time = time.perf_counter()
@@ -157,10 +159,14 @@ class Controller:
for (key, events) in selected:
session = key.fileobj
session.handle_host()
if session.handle_host():
update_count += 1
duration -= (time.perf_counter() - start_time)
if update_count > 0:
self.session.render()
def _handle_poll_response(self, poll_response):
if isinstance(poll_response, KeystrokePollResponse):
self._handle_keystroke_poll_response(poll_response)
@@ -190,6 +196,8 @@ class Controller:
elif self.session:
self.session.handle_key(key, modifiers, scan_code)
self.session.render()
def _poll(self):
self.last_poll_time = time.perf_counter()