summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blc2/constants.py2
-rw-r--r--blc2/functions/multichaser.py73
-rw-r--r--blc2/functions/multichasertrack.py16
-rw-r--r--blc2/workspace.py7
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)