aboutsummaryrefslogtreecommitdiffstats
path: root/solo_tool.py
diff options
context:
space:
mode:
Diffstat (limited to 'solo_tool.py')
-rw-r--r--solo_tool.py164
1 files changed, 0 insertions, 164 deletions
diff --git a/solo_tool.py b/solo_tool.py
deleted file mode 100644
index 6cb1a77..0000000
--- a/solo_tool.py
+++ /dev/null
@@ -1,164 +0,0 @@
-import os
-
-from playlist import Playlist
-from abcontroller import ABController
-from session_manager import SessionManager
-from notifier import Notifier
-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._sessionManager = SessionManager(self._playlist, self._abController)
- self._notifier = Notifier(self._player)
-
- def _playlistCallback(self, path):
- self._player.setCurrentSong(path)
- self._abController.setCurrentSong(path)
-
- def _abControllerCallback(self, position):
- self._player.setPlaybackPosition(position)
-
- def tick(self):
- position = self._player.getPlaybackPosition()
- self._abController.positionChanged(position)
-
- def addSong(self, path):
- if os.path.isfile(path):
- self._sessionManager.addSong(path)
-
- def setSong(self, index):
- previous = self._playlist.getCurrentSongIndex()
- self._playlist.setCurrentSong(index)
- new = self._playlist.getCurrentSongIndex()
- if previous != new:
- self._notifier.notify(Notifier.CURRENT_SONG_EVENT, new)
-
- def nextSong(self):
- previous = self._playlist.getCurrentSongIndex()
- self._playlist.nextSong()
- new = self._playlist.getCurrentSongIndex()
- if previous != new:
- self._notifier.notify(Notifier.CURRENT_SONG_EVENT, new)
-
- def previousSong(self):
- previous = self._playlist.getCurrentSongIndex()
- self._playlist.previousSong()
- new = self._playlist.getCurrentSongIndex()
- if previous != new:
- self._notifier.notify(Notifier.CURRENT_SONG_EVENT, new)
-
- def getSongs(self):
- return self._playlist.getSongs()
-
- def storeAbLimits(self, aLimit, bLimit):
- self._abController.storeLimits(aLimit, bLimit)
-
- def loadAbLimits(self, index):
- previous = self._abController.getLoadedIndex()
- self._abController.loadLimits(index)
- new = self._abController.getLoadedIndex()
- if previous != new:
- self._notifier.notify(Notifier.CURRENT_AB_EVENT, new)
-
- def setAbLimits(self, aLimit, bLimit):
- self._abController.setLimits(aLimit, bLimit)
-
- def getStoredAbLimits(self):
- currentSong = self._playlist.getCurrentSong()
- if currentSong is not None:
- return self._abController.getStoredLimits(currentSong)
- else:
- return list()
-
- def setAbLimitEnable(self, enable):
- previous = self._abController.isEnabled()
- self._abController.setEnable(enable)
- new = self._abController.isEnabled()
- if previous != new:
- self._notifier.notify(Notifier.AB_LIMIT_ENABLED_EVENT, new)
-
- def isAbLimitEnabled(self):
- return self._abController.isEnabled()
-
- def nextStoredAbLimits(self):
- previous = self._abController.getLoadedIndex()
- self._abController.nextStoredAbLimits()
- new = self._abController.getLoadedIndex()
- if previous != new:
- self._notifier.notify(Notifier.CURRENT_AB_EVENT, new)
-
- def previousStoredAbLimits(self):
- previous = self._abController.getLoadedIndex()
- self._abController.previousStoredAbLimits()
- new = self._abController.getLoadedIndex()
- if previous != new:
- self._notifier.notify(Notifier.CURRENT_AB_EVENT, new)
-
- def jumpToA(self):
- a = self._abController.getCurrentLimits()[0]
- # XXX assumes that player.setPlaybackPosition is thread-safe!
- self._player.setPlaybackPosition(a)
-
- def loadSession(self, path):
- with open(path, "r") as f:
- self._sessionManager.loadSession(f)
-
- def saveSession(self, path):
- with open(path, "w") as f:
- self._sessionManager.saveSession(f)
-
- def play(self):
- self._player.play()
-
- def pause(self):
- self._player.pause()
-
- def stop(self):
- self._player.stop()
-
- def isPlaying(self):
- return self._player.isPlaying()
-
- def setPlaybackRate(self, rate):
- previous = self._player.getPlaybackRate()
- self._player.setPlaybackRate(rate)
- new = self._player.getPlaybackRate()
- if previous != new:
- self._notifier.notify(Notifier.PLAYBACK_RATE_EVENT, new)
-
- def getPlaybackRate(self):
- return self._player.getPlaybackRate()
-
- def setPlaybackPosition(self, position):
- self._player.setPlaybackPosition(position)
-
- def getPlaybackPosition(self):
- return self._player.getPlaybackPosition()
-
- def setPlaybackVolume(self, volume):
- self._player.setPlaybackVolume(volume)
-
- def getPlaybackVolume(self):
- return self._player.getPlaybackVolume()
-
- def registerPlayingStateCallback(self, callback):
- self._notifier.registerCallback(Notifier.PLAYING_STATE_EVENT, callback)
-
- def registerPlaybackVolumeCallback(self, callback):
- self._notifier.registerCallback(Notifier.PLAYBACK_VOLUME_EVENT, callback)
-
- def registerPlaybackRateCallback(self, callback):
- self._notifier.registerCallback(Notifier.PLAYBACK_RATE_EVENT, callback)
-
- def registerCurrentSongCallback(self, callback):
- self._notifier.registerCallback(Notifier.CURRENT_SONG_EVENT, callback)
-
- def registerCurrentAbLimitsCallback(self, callback):
- self._notifier.registerCallback(Notifier.CURRENT_AB_EVENT, callback)
-
- def registerAbLimitEnabledCallback(self, callback):
- self._notifier.registerCallback(Notifier.AB_LIMIT_ENABLED_EVENT, callback)
-