[svn] Add periodic timeout.
--- a/immsview Wed Feb 11 10:39:27 2004 -0500
+++ b/immsview Thu Feb 12 09:38:06 2004 -0500
@@ -20,9 +20,12 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-_version_ = "$Id: immsview 1715 2004-02-10 04:29:08Z fabien $"
+_version_ = "$Id: immsview 1720 2004-02-12 14:38:06Z fabien $"
# $Log$
+# Revision 1.31 2004/02/12 14:38:06 fabien
+# Add periodic timeout.
+#
# Revision 1.30 2004/02/10 04:29:08 fabien
# Many cleanup, both architecture (division of interface), encoding
# behavior and also many bugs corrected.
@@ -413,6 +416,7 @@
self.iview = iview
self.xmms = xmms
self.plot = plotter
+ self.current_song = ''
self.create_widgets()
def create_widgets(self):
self.append_item(_('Refresh'), _('Refresh list'),
@@ -427,27 +431,30 @@
None, None, self.do_play)
self.append_item(_('Next'), _('Play next song'),
None, None, self.do_play_next)
- def do_plot(self, dummy):
+ def do_plot(self, dummy = None):
self.plot.plot_rate()
- def do_refresh(self, dummy):
- self.iview.get_model().update()
- def do_get_current(self, dummy):
+ def do_refresh(self, dummy = None):
+ self.iview.get_model().update()
+ self.current_song = ''
+ def do_get_current(self, dummy = None):
song = self.xmms.get_current_file()
- try:
- self.iview.set_current_song(song)
- except Exception, e:
- print >> stderr, e
- def do_play(self, dummy):
+ if song != self.current_song:
+ try:
+ self.iview.set_current_song(song)
+ self.current_song = song
+ except Exception, e:
+ print >> stderr, e
+ def do_play(self, dummy = None):
fn = self.iview.get_file_selected()
if fn:
self.xmms.play_file(fn)
self.sleep(self._SLEEP_TIME)
self.do_get_current(dummy)
- def do_play_prev(self, dummy):
+ def do_play_prev(self, dummy = None):
self.xmms.playlist_prev()
self.sleep(self._SLEEP_TIME)
self.do_get_current(dummy)
- def do_play_next(self, dummy):
+ def do_play_next(self, dummy = None):
self.xmms.playlist_next()
self.sleep(self._SLEEP_TIME)
self.do_get_current(dummy)
@@ -458,7 +465,12 @@
if gtk.main_iteration_do(gtk.FALSE):
break;
+def _timeout_get_current(tb):
+ tb.do_get_current()
+ return gtk.TRUE
+
class Application:
+ REFRESH_RATE = 5000
def __init__(self):
self.xmms = XMMSControl()
self.db = IMMSDb()
@@ -485,7 +497,7 @@
toolbar.show()
root.show()
toolbar.do_refresh(None)
- toolbar.do_get_current(None)
+ gtk.timeout_add(self.REFRESH_RATE, _timeout_get_current, toolbar)
if __name__ == '__main__':
app = Application()