diff options
Diffstat (limited to 'show.py')
| -rw-r--r-- | show.py | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -0,0 +1,39 @@ +from __future__ import division, print_function +import time + +class Clock(object): + def __init__(self): + self.last_tick = time.time() + + def tick(self, framerate): + sec_per_frame = 1.0 / framerate + diff = time.time() - self.last_tick + while diff < sec_per_frame: + diff = time.time() - self.last_tick + + if diff > (1.05 * sec_per_frame): + print("WARN: tick is not being called fast enough\n", + "target {}, actual {}".format(sec_per_frame, diff)) + self.last_tick = time.time() + + +class Show(object): + def __init__(self, bridge): + self.bridge = bridge + self.clock = Clock() + self.running = True + self.init() + + def run(self, framerate=40): + while self.running: + self.update() + self.bridge.update() + self.clock.tick(framerate) + + def init(self): + """Override me""" + raise NotImplementedError + + def update(self): + """Override me""" + raise NotImplementedError |
