diff --git a/libsaria/audio/__init__.py b/libsaria/audio/__init__.py index 6b6f2182..e5aa5df2 100644 --- a/libsaria/audio/__init__.py +++ b/libsaria/audio/__init__.py @@ -1,8 +1,10 @@ # Bryan Schumake (8/7/2010) +import gst import datetime import threading import pipeline +from libsaria import callbacks timedelta = datetime.timedelta audio_lock = threading.Lock() @@ -24,15 +26,15 @@ def get_state(): def is_playing(): return get_state() == gst.STATE_PLAYING -#def do_notify_playing(): -# if get_state() == gst.STATE_PLAYING: -# callback.play() +def do_notify_playing(): + if get_state() == gst.STATE_PLAYING: + callbacks.play() def play(): lock_audio() pipeline.play() unlock_audio() - #do_notify_playing() + do_notify_playing() #def do_notify_paused(): # if get_state() == gst.STATE_PAUSED: diff --git a/libsaria/callbacks.py b/libsaria/callbacks.py new file mode 100644 index 00000000..3397bae8 --- /dev/null +++ b/libsaria/callbacks.py @@ -0,0 +1,8 @@ +# Bryan Schumaker (4 / 30 / 2011) + +def null_cb(*args): + pass + +on_play = null_cb +def play(): + on_play() diff --git a/libsaria/controls.py b/libsaria/controls.py index cb7b4350..13befa18 100644 --- a/libsaria/controls.py +++ b/libsaria/controls.py @@ -62,7 +62,7 @@ def next(): return call("NEXT", pick_next) def play(): - return call("PLAY", audio.play) + audio.play() def pause(): return call("PAUSE", audio.pause) diff --git a/libsaria/threads.py b/libsaria/threads.py index e1ff1f1e..fd50d5ad 100644 --- a/libsaria/threads.py +++ b/libsaria/threads.py @@ -15,7 +15,9 @@ class BG_Thread(Thread): self.func = func self.args = args def run(self): + print "running func %s with args %s" % (self.func, self.args) self.func(*self.args) + print "exiting func %s" % self.func def background(func, *args): diff --git a/ocarina/__init__.py b/ocarina/__init__.py index a8283e35..f7024e13 100644 --- a/ocarina/__init__.py +++ b/ocarina/__init__.py @@ -6,11 +6,11 @@ __start__ = now() import gtk import gobject -import libsaria - -__vers__ = "Ocarina %s" % libsaria.__vstr__ gobject.threads_init() +import libsaria +__vers__ = "Ocarina %s" % libsaria.__vstr__ + def uptime(): return now() - __start__ @@ -18,6 +18,8 @@ def quit(window, event): gtk.main_quit() libsaria.shutdown() print "Ocarina ran for:", uptime() + import threading + print "active threads?", threading.active_count() import window import playlist diff --git a/ocarina/callbacks.py b/ocarina/callbacks.py index 2ec46010..cb97349c 100644 --- a/ocarina/callbacks.py +++ b/ocarina/callbacks.py @@ -4,6 +4,7 @@ import libsaria import queue from ocarina import body from ocarina.body import footer +from libsaria import callbacks import playlist import library @@ -11,7 +12,7 @@ invite = libsaria.event.invite def on_play(*args): footer.on_play() -invite("POSTPLAY", on_play) +callbacks.on_play = on_play def on_pause(*args): footer.on_pause()