class Player(): def __init__(self): self.playing = False self.rate = 1.0 self.position = 0.0 self.volume = 1.0 self.currentSong = None self.playingStateChangedCallback = None self.playbackVolumeChangedCallback = None def play(self): previousState = self.playing self.playing = True if previousState != self.playing: self.playingStateChangedCallback() def pause(self): previousState = self.playing self.playing = False if previousState != self.playing: self.playingStateChangedCallback() def isPlaying(self): return self.playing def setPlaybackRate(self, rate): self.rate = rate def getPlaybackRate(self): return self.rate def setPlaybackPosition(self, position): self.position = position def getPlaybackPosition(self): return self.position def setPlaybackVolume(self, volume): changed = self.volume != volume self.volume = volume if changed: self.playbackVolumeChangedCallback() def getPlaybackVolume(self): return self.volume def setCurrentSong(self, path): self.currentSong = path def setPlayingStateChangedCallback(self, callback): self.playingStateChangedCallback = callback def simulatePlayingStateChanged(self): self.playingStateChangedCallback() def setPlaybackVolumeChangedCallback(self, callback): self.playbackVolumeChangedCallback = callback def simulatePlaybackVolumeChanged(self): self.playbackVolumeChangedCallback()