ocarina/ocarina/callbacks.py

74 lines
1.6 KiB
Python
Raw Normal View History

# Bryan Schumaker (4 / 20 / 2011)
import gtk
import gobject
import libsaria
import queue
from ocarina import body
from ocarina import settings
from ocarina.body import footer
from libsaria import callbacks
import window
2011-04-24 18:59:52 -04:00
import playlist
import library
def on_play():
footer.on_play()
callbacks.on_play = on_play
def on_pause():
footer.on_pause()
callbacks.on_pause = on_pause
def on_load(file, attrs):
footer.on_load(attrs)
queue.refresh()
body.cur_page_goto()
window.set_icon(attrs["art"])
2011-04-30 12:55:48 -04:00
callbacks.on_load = on_load
def on_like(like):
footer.on_like(like)
callbacks.on_like = on_like
# A bit of a hack to force setting album art in the main thread
# Basically, I create a new signal and trigger it when new album
# art arrives
gobject.signal_new("get_art", gobject.GObject, gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_INT, gobject.TYPE_STRING))
def on_get_art_helper(obj, id, path):
if id == libsaria.sources.get_cur_id():
#footer.set_art(path)
#window.set_icon(path)
pass
on_get_art_obj = gobject.GObject()
on_get_art_obj.connect("get_art", on_get_art_helper)
def on_get_art(path, id):
on_get_art_obj.emit("get_art", id, path)
callbacks.on_get_art = on_get_art
2011-04-24 18:59:52 -04:00
def on_load_playlist():
2011-04-24 18:59:52 -04:00
playlist.refresh()
callbacks.on_load_playlist = on_load_playlist
def library_updated():
library.refresh()
settings.library.refresh()
callbacks.on_library_updated = library_updated
def on_queue_changed():
queue.refresh()
callbacks.on_queue_changed = on_queue_changed
def on_refilter():
queue.refilter()
playlist.refilter()
library.refilter()
callbacks.on_refilter = on_refilter