aboutsummaryrefslogtreecommitdiffstats
path: root/solo-tool-project/src/solo_tool/solo_tool.py
diff options
context:
space:
mode:
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()
+