From d50dc8cec7e4b59ee5e01681f39db198dc37a3d9 Mon Sep 17 00:00:00 2001 From: Ben Connors Date: Wed, 4 Dec 2019 00:30:02 -0500 Subject: Show fixes --- blc2/functions/chaser.py | 5 ++++- interface/chaserview.py | 15 ++++++++++++++- interface/interface.py | 16 +++++++--------- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/blc2/functions/chaser.py b/blc2/functions/chaser.py index 43b9636..79bd32f 100644 --- a/blc2/functions/chaser.py +++ b/blc2/functions/chaser.py @@ -123,7 +123,10 @@ class Chaser(Function): n = data.steps[-1].index if self._advance_mode == RANDOM: while True: - yield random.randint(0, len(self.steps)-1) + i = random.randint(0, len(self.steps)-2) + if i >= n: + i += 1 + yield i elif self._advance_mode == LOOP: while True: n = (n + 1) % len(self.steps) diff --git a/interface/chaserview.py b/interface/chaserview.py index 011d2bd..56a59d5 100755 --- a/interface/chaserview.py +++ b/interface/chaserview.py @@ -22,6 +22,19 @@ def format_time(n): return str(n)[0]+postfixes[idx] +def format_long(n): + if n == INFTY: + return " ∞s" + elif n == 0: + return " 0s" + elif n < 10000: + return "%4d" % n + else: + n = str(n/1000)[:3] + if n[-1] == '.': + n = n[:-1] + return "%4s" % n + class ChaserView: def set_dim(self, height, width): if height < 5 or width < 10: @@ -113,7 +126,7 @@ class ChaserView: ft = "-" fid = "---" - t = "%s%3s%s|%s:%s:%s" % (ft, fid, '*' if (s.type == CHASERSTEP and s.duration_mode == MANUAL) else ' ', format_time(s.fade_in), format_time(s.duration if s.type != CHASERSTEP else s.length), format_time(s.fade_out)) + t = "%s%3s%s|%s:%s:%s" % (ft, fid, '*' if (s.type == CHASERSTEP and s.duration_mode == MANUAL) else ' ', format_long(s.fade_in), format_long(s.duration if s.type != CHASERSTEP else s.length), format_long(s.fade_out)) self.win.addstr(n+2, 1, self.fit((self._numformat % (first+n)) + ": " + s.name, w-len(t), pad=True)+t, attrs) if first > 0: diff --git a/interface/interface.py b/interface/interface.py index 6f68b2f..b8f5989 100644 --- a/interface/interface.py +++ b/interface/interface.py @@ -11,7 +11,7 @@ from blc2.functions.scene import Scene from blc2.functions.chaser import Chaser from blc2.functions.chaserstep import ChaserStep from blc2.functions.join import Join -from blc2.constants import SCENE, CHASER, AUDIO, MANUAL, INHERIT, INFTY, CHASERSTEP, JOIN, ONESHOT, LOOP +from blc2.constants import SCENE, CHASER, AUDIO, MANUAL, INHERIT, INFTY, CHASERSTEP, JOIN, ONESHOT, LOOP, RANDOM from blc2.topology import Fixture @@ -693,8 +693,8 @@ class Interface: self.renderer.advance((n, (p-1) if p is not None else p)) def run_advance_all(self): - for c in self.chaser_views: - self.renderer.advance((c.chaser.id, None)) + for n in range(len(self.chaser_views)): + self.renderer.advance((n, None)) def current_status(self): self.pager.display_many(( @@ -839,6 +839,7 @@ class Interface: ("set fade out $time", lambda t: self.chaser_fade(t, True)), ("set mode oneshot", lambda: self.chaser_mode(ONESHOT)), ("set mode loop", lambda: self.chaser_mode(LOOP)), + ("set mode random", lambda: self.chaser_mode(RANDOM)), ("set length $time", self.chaser_duration), ("unbind", self.chaser_unset), ("bind $num", self.chaser_bind), @@ -877,7 +878,7 @@ class Interface: self.context_scene = Input.parse_context(( ("set $channel_range to $value", self.scene_set), - ("reset $channel_range", self.scene_clear), + ("clear $channel_range", self.scene_clear), ("edit $channel_range", self.scene_edit), ("edit $channel_range force", lambda cr: self.scene_edit(cr, True)), @@ -938,7 +939,7 @@ class Interface: ("advance", lambda: self.run_jump(0, None, True)), ("badvance", lambda: self.run_jump(1, None, True)), - ("everythingadvance", self.run_advance_all()), + ("everythingadvance", self.run_advance_all), ("currentstatus", self.current_status), ), { @@ -960,10 +961,7 @@ class Interface: ("delete", self.chaser_delete), ("delete $num", self.chaser_delete), - ("add", lambda: self.chaser_new(-1, "")), - ("add from $num", lambda s: self.chaser_new(-1, "", s)), - ("add from new scene $quoted_string", lambda s: self.chaser_new_new(-1, "", s, Scene)), - ("add from new audio $quoted_string", lambda s: self.chaser_new_new(-1, "", s, Audio)), + ("add $num", lambda s: self.chaser_new(-1, "", s)), ("rename $quoted_string", self.chaser_rename_self), -- cgit v1.2.3