diff options
Diffstat (limited to 'interface/interface.py')
-rw-r--r-- | interface/interface.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/interface/interface.py b/interface/interface.py index f9c868e..5be5196 100644 --- a/interface/interface.py +++ b/interface/interface.py @@ -529,13 +529,17 @@ class Interface: def _render_callback(self, t, values): if not self.rendering: return - with self.w_lock: + with self.w_lock, CURSES_LOCK: + syx = self.input.win.getyx() + self.channel_bank.set_values(values) self.channel_bank.title = "LIVE: %7.2fs" % t for d, cv in zip(self.renderer._data, self.chaser_views): cv.selected = d.steps[-1].index if d.steps else None + self.input.win.move(*syx) + def base_run(self): if not self.chaser_views: return "No chasers loaded" @@ -573,8 +577,10 @@ class Interface: return "No such chaser loaded" n = n[0] if n >= len(self.chaser_views) or n < 0: - return "Index out of range" - self.renderer.advance((n, p)) + return "Chaser index out of range" + if p is not None and (p < 1 or p > len(self.chaser_views[n].chaser.steps)): + return "Step index out of range" + self.renderer.advance((n, (p-1) if p is not None else p)) def __init__(self, path, output): ## Have to do most of the actual initialization in the main method, as curses isn't |