Now playing tab

I have replaced the "test" tab with a "now playing" tab that will tell
the artist, album, and title of the current song.
This commit is contained in:
Bryan Schumaker 2010-10-23 12:16:50 -04:00
parent 50f7e1203d
commit 816d97e3ea
1 changed files with 31 additions and 4 deletions

View File

@ -1,6 +1,7 @@
# Bryan Schumaker (8/22/2010)
import ocarina
import pango
gtk = ocarina.gtk
libsaria = ocarina.libsaria
button = None
@ -53,6 +54,7 @@ class InfoBar(Bar):
self.title = gtk.Label("Ocarina 4.1")
self.title.show()
self.title.set_ellipsize(pango.ELLIPSIZE_END)
self.pack(self.title, True, True)
self.pack(label.TimeLabel())
@ -60,13 +62,11 @@ class InfoBar(Bar):
self.pack(button.PauseButton())
self.pack(button.StopButton())
self.pack(button.NextButton())
#self.pack(button.VolumeButton())
self.pack(button.UpButton(up_button))
libsaria.event.invite("POSTLOAD", self.change_title)
def change_title(self, filepath):
#id = libsaria.collection.lib_get_cur_id()
id = libsaria.collection.lib_find_id(filepath)
title = lib_get_attr(id, "title")
artist = libsaria.collection.lib_get_attr(id, "artist")
@ -86,7 +86,6 @@ class InfoTab(gtk.Notebook):
hbox.pack_start(button.PauseButton())
hbox.pack_start(button.StopButton())
hbox.pack_start(button.NextButton())
#hbox.pack_start(button.VolumeButton())
hbox.pack_start(button.DownButton(down_button))
self.set_action_widget(hbox, gtk.PACK_END)
@ -103,6 +102,34 @@ class InfoTab(gtk.Notebook):
self.cur_page = page_num
class NowPlaying(gtk.Table):
def __init__(self):
gtk.Table.__init__(self, 3, 2, False)
self.artist = gtk.Label("")
self.album = gtk.Label("")
self.title = gtk.Label("")
self.attach(gtk.Label("Artist"), 0, 1, 0, 1, gtk.SHRINK, 5, 5)
self.attach(gtk.Label("Album"), 0, 1, 1, 2, gtk.SHRINK, 5, 5)
self.attach(gtk.Label("Title"), 0, 1, 2, 3, gtk.SHRINK, 5, 5)
self.attach(self.artist, 1, 2, 0, 1, gtk.SHRINK|gtk.EXPAND|gtk.FILL, 5, 5)
self.attach(self.album, 1, 2, 1, 2, gtk.SHRINK|gtk.EXPAND|gtk.FILL, 5, 5)
self.attach(self.title, 1, 2, 2, 3, gtk.SHRINK|gtk.EXPAND|gtk.FILL, 5, 5)
self.artist.set_ellipsize(pango.ELLIPSIZE_END)
self.album.set_ellipsize(pango.ELLIPSIZE_END)
self.title.set_ellipsize(pango.ELLIPSIZE_END)
self.show_all()
libsaria.event.invite("POSTLOAD", self.change_labels)
def change_labels(self, filepath):
id = libsaria.collection.lib_find_id(filepath)
if id:
self.title.set_text(lib_get_attr(id, "title"))
self.artist.set_text(lib_get_attr(id, "artist"))
self.album.set_text(lib_get_attr(id, "album"))
class TwoWayPane(InfoBar):
def __init__(self):
InfoBar.__init__(self, self.up_button)
@ -134,7 +161,7 @@ def init():
info = TwoWayPane()
filter = FilterBar()
add_info_page("Test", gtk.Label("test label!"))
add_info_page("Now Playing", NowPlaying())
def get_info():
global info