X-Git-Url: http://git.maemo.org/git/?p=jamaendo;a=blobdiff_plain;f=jamaui%2Fplayer.py;h=82746623c29f2f9ad46fb9dd3ab4b0a8744a912e;hp=0b27777a00bb510ce960b45255cfd0a059551156;hb=3d5388f367ce5c0c6a7c73074b79e0c9b65f0fdd;hpb=ba8351e78b0507818a08587c4d9d7e32fb59bd62 diff --git a/jamaui/player.py b/jamaui/player.py index 0b27777..8274662 100644 --- a/jamaui/player.py +++ b/jamaui/player.py @@ -69,6 +69,8 @@ class GStreamer(object): bus = self.player.get_bus() bus.add_signal_watch() bus.connect('message', self._on_message) + + self._set_volume_level( 1 ) return True def get_state(self): @@ -194,12 +196,29 @@ class GStreamer(object): self.eos_callback = cb class Playlist(object): + class Entry(object): + def __init__(self, data): + if isinstance(data, dict): + self.id = data['id'] + self.name = data['name'] + self.numalbum = int(data['numalbum']) + self.url = data['mp3'] + self.type = 'mp3' + elif isinstance(data, basestring): # assume URI + self.id = 0 + self.name = '' + self.numalbum = 0 + self.url = data + self.type = 'mp3' + def __str__(self): + return "{%s}" % (", ".join([str(self.name), str(self.numalbum), str(self.url)])) + def __init__(self, items = []): - self.items = items + self.items = [Playlist.Entry(item) for item in items] self.current = -1 def add(self, item): - self.items.append(item) + self.items.append(Playlist.Entry(item)) def next(self): if self.has_next(): @@ -221,7 +240,9 @@ class Player(Playlist): self.playlist = playlist if self.playlist is not None: if self.playlist.has_next(): - self.gstreamer.setup('mp3', self.playlist.next()) + entry = self.playlist.next() + log.debug("playing %s", entry) + self.gstreamer.setup(entry.type, entry.url) self.gstreamer.play() def pause(self): @@ -235,8 +256,8 @@ class Player(Playlist): def next(self): if self.playlist.has_next(): - self.gstreamer.setup('mp3', self.playlist.next()) - self.gstreamer.play() + self.stop() + self.play() else: self.stop() @@ -244,4 +265,5 @@ class Player(Playlist): pass def _on_eos(self): + log.debug("EOS!") self.next()