aboutsummaryrefslogtreecommitdiffstats
path: root/solo-tool-project/src/solo_tool/solo_tool.py
diff options
context:
space:
mode:
authorEddy Pedroni <epedroni@pm.me>2026-10-22 22:34:17 +0200
committerEddy Pedroni <epedroni@pm.me>2026-10-22 22:34:17 +0200
commit3e9f9b12fc7104cde2ba141c95ae9eaa99614330 (patch)
tree3ab02074e71692479883df28bb07f5686b2a8c5c /solo-tool-project/src/solo_tool/solo_tool.py
parent9048b18b47d903990be169a238d7835bb11a5047 (diff)
Multitrack support in the library
Diffstat (limited to 'solo-tool-project/src/solo_tool/solo_tool.py')
-rw-r--r--solo-tool-project/src/solo_tool/solo_tool.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/solo-tool-project/src/solo_tool/solo_tool.py b/solo-tool-project/src/solo_tool/solo_tool.py
index c4acaf8..5ac7140 100644
--- a/solo-tool-project/src/solo_tool/solo_tool.py
+++ b/solo-tool-project/src/solo_tool/solo_tool.py
@@ -14,6 +14,29 @@ class SoloTool:
self._volumes = []
self._adHoc = False
+ tracks = [
+ ("vocalTrackEnabled", Player.VOCAL_TRACK),
+ ("guitarTrackEnabled", Player.GUITAR_TRACK),
+ ("bassTrackEnabled", Player.BASS_TRACK),
+ ("pianoTrackEnabled", Player.PIANO_TRACK),
+ ("drumTrackEnabled", Player.DRUM_TRACK),
+ ("otherTrackEnabled", Player.OTHER_TRACK)
+ ]
+ for trackName, trackId in tracks:
+ if not hasattr(type(self), trackName):
+ setattr(type(self), trackName, self._makeTrackProperty(trackId))
+
+ @staticmethod
+ def _makeTrackProperty(trackId: int) -> property:
+ def getter(self) -> bool:
+ return self._player.trackEnabled(trackId)
+
+ def setter(self, new: bool) -> None:
+ if new is not None and new != self._player.trackEnabled(trackId):
+ self._player.setTrackEnabled(trackId, new)
+
+ return property(getter, setter)
+
def __del__(self):
del self._player
@@ -165,3 +188,7 @@ class SoloTool:
def playingAdHoc(self) -> bool:
return self._adHoc
+ @property
+ def tracksSupported(self) -> bool:
+ return self._player.tracksSupported()
+