projects
/
jamaendo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added 'helldon' to transparently port the thing to the desktop :P
[jamaendo]
/
jamaui
/
player.py
diff --git
a/jamaui/player.py
b/jamaui/player.py
index
65cc549
..
7908dea
100644
(file)
--- a/
jamaui/player.py
+++ b/
jamaui/player.py
@@
-122,7
+122,6
@@
class GStreamer(_Player):
def play(self):
if self.player:
def play(self):
if self.player:
- log.debug("playing")
self.player.set_state(gst.STATE_PLAYING)
def pause(self):
self.player.set_state(gst.STATE_PLAYING)
def pause(self):
@@
-159,7
+158,7
@@
class GStreamer(_Player):
self.filesrc = self.player
self.filesrc_property = 'uri'
self.volume_control = self.player
self.filesrc = self.player
self.filesrc_property = 'uri'
self.volume_control = self.player
- self.volume_multiplier = 1.
+ self.volume_multiplier = 10.
self.volume_property = 'volume'
def _on_decoder_pad_added(self, decoder, src_pad, sink_pad):
self.volume_property = 'volume'
def _on_decoder_pad_added(self, decoder, src_pad, sink_pad):
@@
-183,17
+182,18
@@
class GStreamer(_Player):
# Sets the right property depending on the platform of self.filesrc
if self.player is not None:
self.filesrc.set_property(self.filesrc_property, uri)
# Sets the right property depending on the platform of self.filesrc
if self.player is not None:
self.filesrc.set_property(self.filesrc_property, uri)
+ log.info("%s", uri)
def _on_message(self, bus, message):
t = message.type
if t == gst.MESSAGE_EOS:
def _on_message(self, bus, message):
t = message.type
if t == gst.MESSAGE_EOS:
- log.info("End of stream")
+ log.debug("Gstreamer: End of stream")
self.eos_callback()
self.eos_callback()
- elif t == gst.MESSAGE_STATE_CHANGED:
- if (message.src == self.player and
- message.structure['new-state'] == gst.STATE_PLAYING):
- log.info("State changed to playing")
+ #elif t == gst.MESSAGE_STATE_CHANGED:
+ # if (message.src == self.player and
+ # message.structure['new-state'] == gst.STATE_PLAYING):
+ # log.debug("gstreamer: state -> playing")
elif t == gst.MESSAGE_ERROR:
err, debug = message.parse_error()
log.critical( 'Error: %s %s', err, debug )
elif t == gst.MESSAGE_ERROR:
err, debug = message.parse_error()
log.critical( 'Error: %s %s', err, debug )
@@
-289,6
+289,9
@@
PlayerBackend = GStreamer
class Playlist(object):
def __init__(self, items = []):
class Playlist(object):
def __init__(self, items = []):
+ self.radio_mode = False
+ self.radio_id = None
+ self.radio_name = None
if items is None:
items = []
for item in items:
if items is None:
items = []
for item in items:
@@
-327,6
+330,11
@@
class Playlist(object):
return self.items[self._current]
return None
return self.items[self._current]
return None
+ def jump_to(self, item_id):
+ for c, i in enumerate(self.items):
+ if i.ID == item_id:
+ self._current = c
+
def current_index(self):
return self._current
def current_index(self):
return self._current
@@
-334,7
+342,7
@@
class Playlist(object):
return len(self.items)
def __repr__(self):
return len(self.items)
def __repr__(self):
- return "Playlist(%s)"%(", ".join([str(item.ID) for item in self.items]))
+ return "Playlist(%d of %s)"%(self._current, ", ".join([str(item.ID) for item in self.items]))
class Player(object):
def __init__(self):
class Player(object):
def __init__(self):
@@
-377,8
+385,15
@@
class Player(object):
self.backend.stop(reset=False)
entry = self.playlist.next()
self.backend.play_url('mp3', entry.mp3_url())
self.backend.stop(reset=False)
entry = self.playlist.next()
self.backend.play_url('mp3', entry.mp3_url())
- log.debug("playing %s", entry)
+ log.debug("playing %s:%s", entry.ID, entry.name)
postoffice.notify('next', entry)
postoffice.notify('next', entry)
+ elif self.playlist.radio_mode:
+ log.debug("Refilling radio %s", self.playlist)
+ self.playlist.add(jamaendo.get_radio_tracks(self.playlist.radio_id))
+ if self.playlist.has_next():
+ self.next()
+ else:
+ self.stop()
else:
self.stop()
else:
self.stop()
@@
-391,7
+406,6
@@
class Player(object):
postoffice.notify('prev', entry)
def _on_eos(self):
postoffice.notify('prev', entry)
def _on_eos(self):
- log.debug("EOS!")
self.next()
the_player = Player() # the player instance
self.next()
the_player = Player() # the player instance