From d72d16f39d05de43e3351fcf740f3356ece29915 Mon Sep 17 00:00:00 2001 From: Bryan Schumaker Date: Wed, 20 Apr 2011 19:34:55 -0400 Subject: [PATCH] ocarina: Added callback methods I eventually want to remove the event system from libsaria. My first step in doing this is to move usage of the event system in Ocarina to one place. --- ocarina/__init__.py | 1 + ocarina/body/footer/__init__.py | 5 +++++ ocarina/body/footer/tiny.py | 10 +++++++++- ocarina/callbacks.py | 14 ++++++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 ocarina/callbacks.py diff --git a/ocarina/__init__.py b/ocarina/__init__.py index 3d614630..669d3e04 100644 --- a/ocarina/__init__.py +++ b/ocarina/__init__.py @@ -23,6 +23,7 @@ import window import playlist import queue import library +import callbacks libsaria.startup() print "Startup took:", uptime() diff --git a/ocarina/body/footer/__init__.py b/ocarina/body/footer/__init__.py index 380e24e2..c6d09f64 100644 --- a/ocarina/body/footer/__init__.py +++ b/ocarina/body/footer/__init__.py @@ -11,6 +11,11 @@ footer.pack_start(hsep, True, True) footer.pack_start(tiny.tiny, True, True) footer.show() +def on_play(): + tiny.on_play() + +def on_pause(): + tiny.on_pause() #import gtk #import pango diff --git a/ocarina/body/footer/tiny.py b/ocarina/body/footer/tiny.py index 84f1d825..6bbd7ba9 100644 --- a/ocarina/body/footer/tiny.py +++ b/ocarina/body/footer/tiny.py @@ -19,7 +19,15 @@ tiny.pack_start(now_playing, True, True) add_button( "REWIND", button.rewind_button) add_button("FORWARD", button.forward_button) add_button( "PLAY", button.play_button) -add_button( "PAUSE", button.pause_button) +add_button( "PAUSE", button.pause_button, False) add_button( "STOP", button.stop_button) add_button( "NEXT", button.next_button) tiny.show() + +def on_play(): + PLAY.hide() + PAUSE.show() + +def on_pause(): + PLAY.show() + PAUSE.hide() diff --git a/ocarina/callbacks.py b/ocarina/callbacks.py new file mode 100644 index 00000000..5922d4f5 --- /dev/null +++ b/ocarina/callbacks.py @@ -0,0 +1,14 @@ +# Bryan Schumaker (4 / 20 / 2011) + +import libsaria +from ocarina.body import footer + +invite = libsaria.event.invite + +def on_play(*args): + footer.on_play() +invite("POSTPLAY", on_play) + +def on_pause(*args): + footer.on_pause() +invite("POSTPAUSE", on_pause)