import gobject
# we don't use the local DB...
-from jamaendo.api import LocalDB, Query, Queries, refresh_dump
+import jamaendo
from jamaui.player import Player, Playlist
from util import jsonprint
hbox = gtk.HBox()
self.cover = gtk.Image()
+ self.cover.set_size_request(160, 160)
+ self.cover.set_from_stock(gtk.STOCK_CDROM, gtk.ICON_SIZE_DIALOG)
vbox2 = gtk.VBox()
- self.playlist_pos = gtk.Label("0/0 songs")
- self.track = gtk.Label("Track name")
+ self.playlist_pos = gtk.Label()
+ self.track = gtk.Label()
self.progress = hildon.GtkHScale()
- self.artist = gtk.Label("Artist")
- self.album = gtk.Label("Album")
+ self.artist = gtk.Label()
+ self.album = gtk.Label()
+
+ self.set_labels('track name', 'artist', 'album', 0, 0)
vbox2.pack_start(self.playlist_pos, False)
vbox2.pack_start(self.track, False)
btn.connect('clicked', cb)
btns.add(btn)
+ def set_labels(self, track, artist, album, playlist_pos, playlist_size):
+ self.playlist_pos.set_markup('<span size="small">%s/%s songs</span>'%(playlist_pos, playlist_size))
+ self.track.set_markup('<span size="large">%s</span>'%(track))
+ self.artist.set_markup(artist)
+ self.album.set_markup('<span foreground="#cccccc">%s</span>'%(album))
+
def update_state(self):
item = self.playlist.current()
if item:
- self.track.set_text(item.name)
- self.playlist_pos.set_text("%d/%d songs",
- self.playlist.current_index(),
- len(self.playlist))
- self.artist.set_text("Unknown")
- self.album.set_text("Unknown")
- if item.image:
- pass
- #self.cover = self.get_cover(item.image)
+ if not item.name:
+ item.load()
+ print "current:", item
+ self.set_labels(item.name, item.artist_name, item.album_name,
+ self.playlist.current_index(), len(self.playlist))
+ self.cover.set_from_file(jamaendo.get_album_cover(item.album_id, size=160))
def on_play(self, button):
self.player.play(self.playlist)
def on_search(self, w):
txt = self.entry.get_text()
- for album in Queries.search_albums(query=txt):
- title = "%s - %s" % (album['artist_name'], album['name'])
+ for album in jamaendo.search_albums(query=txt):
+ title = "%s - %s" % (album.artist_name, album.name)
self.idmap[title] = album
self.results.append_text(title)
current_selection = self.results.get_current_text()
album = self.idmap[current_selection]
- selected = [int(album['id'])]
- tracks = Queries.album_tracks(selected)
+ tracks = jamaendo.get_tracks(album.ID)
if tracks:
- jsonprint(tracks)
self.pwnd = PlayerWindow(tracks)
self.pwnd.show_all()
elif os.path.isfile(os.path.join('/usr/share/jaemendo', name)):
return os.path.join('/usr/share/jaemendo', name)
else:
- return name
+ return None
def setup_widgets(self):
- background, mask = gtk.gdk.pixbuf_new_from_file(self.find_resource(self._BG)).render_pixmap_and_mask()
- self.window.realize()
- self.window.window.set_back_pixmap(background, False)
+ bgimg = self.find_resource(self._BG)
+ if bgimg:
+ background, mask = gtk.gdk.pixbuf_new_from_file(bgimg).render_pixmap_and_mask()
+ self.window.realize()
+ self.window.window.set_back_pixmap(background, False)
bbox = gtk.HButtonBox()
alignment = gtk.Alignment(xalign=0.0, yalign=0.8, xscale=1.0)