diff options
Diffstat (limited to 'solo-tool-project/src')
| -rw-r--r-- | solo-tool-project/src/solo_tool/session_manager.py | 9 | ||||
| -rw-r--r-- | solo-tool-project/src/solo_tool/solo_tool.py | 10 | 
2 files changed, 13 insertions, 6 deletions
| diff --git a/solo-tool-project/src/solo_tool/session_manager.py b/solo-tool-project/src/solo_tool/session_manager.py index 1575060..8624207 100644 --- a/solo-tool-project/src/solo_tool/session_manager.py +++ b/solo-tool-project/src/solo_tool/session_manager.py @@ -30,10 +30,10 @@ class SessionManager():          st = SoloTool(player=player)          for i, entry in enumerate(session):              songPath = entry["path"] -            keyPoints = entry["key_points"] +            keyPoints = entry.get("key_points", []) +            volume = entry.get("vol", 1.0) -            st.addSong(songPath) -            st._keyPoints[i] = keyPoints +            st.addSong(songPath, keyPoints=keyPoints, volume=volume)          return st @@ -43,7 +43,8 @@ class SessionManager():          for i, song in enumerate(soloTool.songs):              entry = {                  "path": song, -                "key_points" : soloTool._keyPoints[i] +                "key_points" : soloTool._keyPoints[i], +                "vol" : soloTool._volumes[i]              }              session.append(entry) 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) | 
