| # SPDX-License-Identifier: GPL-2.0-or-later |
| # Copyright (C) 2022, Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> |
| |
| import selectors |
| import sys |
| |
| |
| class NullRenderer: |
| def __init__(self, state): |
| self.state = state |
| |
| self.cm = state.cm |
| self.contexts = state.contexts |
| |
| self.running = False |
| |
| def setup(self): |
| pass |
| |
| def run(self): |
| print('Capturing...') |
| |
| self.running = True |
| |
| sel = selectors.DefaultSelector() |
| sel.register(self.cm.event_fd, selectors.EVENT_READ, self.readcam) |
| sel.register(sys.stdin, selectors.EVENT_READ, self.readkey) |
| |
| print('Press enter to exit') |
| |
| while self.running: |
| events = sel.select() |
| for key, mask in events: |
| callback = key.data |
| callback(key.fileobj) |
| |
| print('Exiting...') |
| |
| def readcam(self, fd): |
| self.running = self.state.event_handler() |
| |
| def readkey(self, fileobj): |
| sys.stdin.readline() |
| self.running = False |
| |
| def request_handler(self, ctx, req): |
| self.state.request_processed(ctx, req) |