aboutsummaryrefslogtreecommitdiffstats
path: root/solo-tool-project/src/solo_tool/solo_tool.py
diff options
context:
space:
mode:
authorEddy Pedroni <epedroni@pm.me>2025-07-17 23:24:15 +0200
committerEddy Pedroni <epedroni@pm.me>2025-07-17 23:24:15 +0200
commit748f056faf16b08ac41de991b1aeb664f2b86d8e (patch)
tree451b807a1abd54f99057070423eda6f49f8511ab /solo-tool-project/src/solo_tool/solo_tool.py
parent7fb8e255e2e1cc912b029a5715db5b92258293b6 (diff)
Per-song volumeHEADv2.1master
Diffstat (limited to 'solo-tool-project/src/solo_tool/solo_tool.py')
-rw-r--r--solo-tool-project/src/solo_tool/solo_tool.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/solo-tool-project/src/solo_tool/solo_tool.py b/solo-tool-project/src/solo_tool/solo_tool.py
index 63fb7f9..e8474e6 100644
--- a/solo-tool-project/src/solo_tool/solo_tool.py
+++ b/solo-tool-project/src/solo_tool/solo_tool.py
@@ -11,6 +11,7 @@ class SoloTool:
self._song = None
self._keyPoints = []
self._keyPoint = None
+ self._volumes = []
def __del__(self):
del self._player
@@ -30,6 +31,8 @@ class SoloTool:
if previousSong is None or self._keyPoints[previousSong] != self._keyPoints[index]:
self._notifier.notify(Notifier.KEY_POINT_LIST_EVENT, self.keyPoints)
+ self.volume = self._volumes[index]
+
@staticmethod
def _keyPointValid(kp: float) -> bool:
return kp is not None and kp >= 0.0 and kp < 1.0
@@ -38,11 +41,12 @@ class SoloTool:
def songs(self) -> list[str]:
return self._songs.copy()
- def addSong(self, path: str) -> None:
+ def addSong(self, path: str, keyPoints: list[float]=[], volume: float=1.0) -> None:
if path in self._songs:
return
self._songs.append(path)
- self._keyPoints.append([])
+ self._keyPoints.append(keyPoints)
+ self._volumes.append(volume)
self._notifier.notify(Notifier.SONG_LIST_EVENT, self.songs)
if self.song is None:
self.song = 0
@@ -112,6 +116,8 @@ class SoloTool:
@volume.setter
def volume(self, new: float) -> None:
if new is not None and new >= 0.0 and new != self._player.getPlaybackVolume():
+ if self._song is not None:
+ self._volumes[self._song] = new
self._player.setPlaybackVolume(new)
self._notifier.notify(Notifier.PLAYBACK_VOLUME_EVENT, new)