aboutsummaryrefslogtreecommitdiffstats
path: root/playlist.py
blob: 5dad7113109b71d1a4182572394fad2d4aefa0db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class Playlist:
    def __init__(self, callback):
        self._songList = list()
        self._currentSong = None
        self._setSongCallback = callback

    def addSong(self, path):
        self._songList.append(path)

    def setCurrentSong(self, index):
        if index >= 0 and index < len(self._songList):
            self._currentSong = index
            self._setSongCallback(self._songList[index])
    
    def getCurrentSong(self):
        index = self._currentSong
        return self._songList[index] if index is not None else None

    def getCurrentSongIndex(self):
        return self._currentSong

    def getSongs(self):
        return self._songList

    def clear(self):
        self.__init__(self._setSongCallback)

    def nextSong(self):
        if self._currentSong is None:
            nextSong = 0
        else:
            nextSong = self._currentSong + 1
        self.setCurrentSong(nextSong)

    def previousSong(self):
        if self._currentSong is None:
            prevSong = 0
        else:
            prevSong = self._currentSong - 1
        self.setCurrentSong(prevSong)