aboutsummaryrefslogtreecommitdiffstats
path: root/solo-tool-project/src/solo_tool/solo_tool.py
diff options
context:
space:
mode:
authorEddy Pedroni <epedroni@pm.me>2025-02-22 11:26:27 +0100
committerEddy Pedroni <epedroni@pm.me>2025-02-22 11:26:27 +0100
commite6f712c656365241434a71983024ac2a6e829cc8 (patch)
tree5bc9ac292834067aa3c1640165d050ff61aed399 /solo-tool-project/src/solo_tool/solo_tool.py
parent336ee67aa4b6c467d3d936124db16ce7dcd5a3b3 (diff)
Removed playlist class, simplified a bunch of stuff
Diffstat (limited to 'solo-tool-project/src/solo_tool/solo_tool.py')
-rw-r--r--solo-tool-project/src/solo_tool/solo_tool.py33
1 files changed, 16 insertions, 17 deletions
diff --git a/solo-tool-project/src/solo_tool/solo_tool.py b/solo-tool-project/src/solo_tool/solo_tool.py
index 743c8d5..a4c7af8 100644
--- a/solo-tool-project/src/solo_tool/solo_tool.py
+++ b/solo-tool-project/src/solo_tool/solo_tool.py
@@ -1,6 +1,5 @@
import os
-from .playlist import Playlist
from .abcontroller import ABController
from .session_manager import loadSession, saveSession
from .notifier import Notifier
@@ -9,13 +8,17 @@ from .player_vlc import Player
class SoloTool:
def __init__(self, playerOverride=None):
self._player = Player() if playerOverride is None else playerOverride
- self._playlist = Playlist(self._playlistCallback)
self._abController = ABController(enabled=False, callback=self._abControllerCallback)
self._notifier = Notifier(self._player)
+ self._songList = []
+ self._song = None
- def _playlistCallback(self, path):
+ def _updateSong(self, index):
+ self._song = index
+ path = self._songList[index]
self._player.setCurrentSong(path)
self._abController.setCurrentSong(path)
+ self._notifier.notify(Notifier.CURRENT_SONG_EVENT, index)
def _abControllerCallback(self, position):
self._player.setPlaybackPosition(position)
@@ -26,23 +29,20 @@ class SoloTool:
@property
def songList(self) -> list[str]:
- return self._playlist.getSongs()
+ return self._songList
def addSong(self, path: str) -> None:
if os.path.isfile(path):
- self._playlist.addSong(path)
+ self._songList.append(path)
@property
def song(self) -> int:
- return self._playlist.getCurrentSongIndex()
+ return self._song
@song.setter
- def song(self, index: int) -> None:
- previous = self._playlist.getCurrentSongIndex()
- self._playlist.setCurrentSong(index)
- new = self._playlist.getCurrentSongIndex()
- if previous != new:
- self._notifier.notify(Notifier.CURRENT_SONG_EVENT, new)
+ def song(self, new: int) -> None:
+ if new >= 0 and new < len(self._songList) and new != self._song:
+ self._updateSong(new)
def storeAbLimits(self, aLimit, bLimit):
self._abController.storeLimits(aLimit, bLimit)
@@ -58,9 +58,8 @@ class SoloTool:
self._abController.setLimits(aLimit, bLimit)
def getStoredAbLimits(self):
- currentSong = self._playlist.getCurrentSong()
- if currentSong is not None:
- return self._abController.getStoredLimits(currentSong)
+ if self._song is not None:
+ return self._abController.getStoredLimits(self.songList[self._song])
else:
return list()
@@ -95,11 +94,11 @@ class SoloTool:
def loadSession(self, path):
with open(path, "r") as f:
- loadSession(f, self._playlist, self._abController)
+ loadSession(f, self._songList, self._abController)
def saveSession(self, path):
with open(path, "w") as f:
- saveSession(f, self._playlist, self._abController)
+ saveSession(f, self._songList, self._abController)
def play(self):
self._player.play()