diff options
-rw-r--r-- | blc2/constants.py | 2 | ||||
-rw-r--r-- | blc2/functions/multichaser.py | 73 | ||||
-rw-r--r-- | blc2/functions/multichasertrack.py | 16 | ||||
-rw-r--r-- | blc2/workspace.py | 7 |
4 files changed, 2 insertions, 96 deletions
diff --git a/blc2/constants.py b/blc2/constants.py index f4e7759..bb207f9 100644 --- a/blc2/constants.py +++ b/blc2/constants.py @@ -66,8 +66,6 @@ SCENE = "Scene" AUDIO = "Audio" CHASER = "Chaser" CHASERSTEP = "ChaserStep" -MULTICHASERTRACK = "MultiChaserTrack" -MULTICHASER = "MultiChaser" FUNCTION = "Function" INTERNAL = "Internal" diff --git a/blc2/functions/multichaser.py b/blc2/functions/multichaser.py deleted file mode 100644 index 558112e..0000000 --- a/blc2/functions/multichaser.py +++ /dev/null @@ -1,73 +0,0 @@ -from ..constants import MULTICHASER, ONESHOT -from .function import Function - -class MultiChaser(Function): - type = MULTICHASER - - def __init__(self, w, id_ = None, name = None): - super().__init__(w=w, id_=id_, name=name) - self._tracks = [] - - self._duration = 0 - self._actual_duration = 0 - self._scope = frozenset() - self._audio_scope = frozenset() - self._advance_mode = ONESHOT - ## Order is of the format: - ## (track 1 step number, track 2 step number, ... ) - self._order = [] - - @property - def audio_scope(self): - return self._audio_scope - - @property - def scope(self): - return self._scope - - @property - def tracks(self): - """Return the multichaser's tracks.""" - return tuple(self._tracks) - - def _recalculate(self, update=True): - self._duration = max(0, *(i.duration for i in self._tracks)) - self._actual_duration = max(0, *(i.actual_duration for i in self._tracks)) - self._scope = frozenset().union(*(i.scope for i in self._tracks)) - self._audio_scope = frozenset().union(*(i.audio_scope for i in self._tracks)) - if update: - self.w.function_changed(self) - - @property - def duration(self): - return self._duration - - @property - def actual_duration(self): - return self._actual_duration - - def register_track(self, track): - """Register a new track. - - Should only be called in the MultiChaserTrack constructor. - """ - self._tracks.append(track) - self.w.register_function_delete_callback(track, self._track_deleted, self) - self.w.register_function_change_callback(track, self._track_changed, self) - self._order = [(*i, 0) for i in self._order] - self._recalculate() - - def _track_changed(self, _): - ## May need to fix up indexes - pass - - def _track_deleted(self, track): - i = self._tracks.index(track) - self._order = - self._tracks.remove(track) - self._recalculate() - - def delete(self): - for track in self._tracks: - track.delete() - super().delete() diff --git a/blc2/functions/multichasertrack.py b/blc2/functions/multichasertrack.py deleted file mode 100644 index b21c0c0..0000000 --- a/blc2/functions/multichasertrack.py +++ /dev/null @@ -1,16 +0,0 @@ -from .chaser import Chaser -from ..constants import MULTICHASERTRACK - -class MultiChaserTrack(Chaser): - type = MULTICHASERTRACK - - def __init__(self, mc, id_ = None, name = None, advance_mode = ONESHOT): - if advance_mode != ONESHOT: - raise ValueError("MultiChaserTrack can only have advance_mode ONESHOT") - self.mc = mc - super().__init__(w=mc.w, id_=id_, name=name, advance_mode=advance_mode) - self.mc.register_track(self) - - def delete(self): - self.mc.delete_track(self) - super().delete() diff --git a/blc2/workspace.py b/blc2/workspace.py index bbaeda2..89bda91 100644 --- a/blc2/workspace.py +++ b/blc2/workspace.py @@ -8,7 +8,7 @@ import json import subprocess as subp import xml.etree.ElementTree as et -from .constants import AUDIO, SCENE, BXW, CHASER, CHASERSTEP, MULTICHASERTRACK, MULTICHASERSTEP +from .constants import AUDIO, SCENE, BXW, CHASER, CHASERSTEP from .functions.function import Function from .exceptions import LoadError from .interfaces import XMLSerializable @@ -217,7 +217,6 @@ class Workspace(XMLSerializable): from .functions.scene import Scene from .functions.audio import Audio from .functions.chaser import Chaser - from .functions.multichaser import MultiChaser if e.tag != BXW+"workspace": raise LoadError("Root tag must be workspace") @@ -249,8 +248,6 @@ class Workspace(XMLSerializable): Scene.deserialize(w, function) elif type_ == CHASER: Chaser.deserialize(w, function) - elif type_ == MULTICHASER: - MultiChaser.deserialize(w, function) else: raise LoadError("Unknown function type \"%s\"" % type_) @@ -275,7 +272,7 @@ class Workspace(XMLSerializable): all_f = list(self.functions.values()) while all_f: f = all_f.pop(0) - if f.type in (CHASERSTEP, MULTICHASERTRACK): + if f.type in (CHASERSTEP): continue elif f.type in (AUDIO, SCENE): f_order.append(f) |