diff options
Diffstat (limited to 'solo-tool-project/src/solo_tool/solo_tool.py')
| -rw-r--r-- | solo-tool-project/src/solo_tool/solo_tool.py | 27 |
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() + |
