summaryrefslogtreecommitdiff
path: root/interface/interface.py
diff options
context:
space:
mode:
Diffstat (limited to 'interface/interface.py')
-rw-r--r--interface/interface.py12
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