# HG changeset patch # User fabien # Date 1076596686 18000 # Node ID ab72cbd172b838a2162892af88b85620e8bf3145 # Parent 5bef7600193c7436a3eb07676727e3760951ca62 [svn] Add periodic timeout. diff -r 5bef7600193c -r ab72cbd172b8 immsview --- 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()