[svn] OK, reset current after changing song manually... however, I most sleep for almost a second to be sure to catch it. immsview
authorfabien
Mon, 02 Feb 2004 10:42:43 -0500
branchimmsview
changeset 9 412e93decb7c
parent 8 9aa8b1c884e7
child 10 bc1c7546502a
[svn] OK, reset current after changing song manually... however, I most sleep for almost a second to be sure to catch it.
immsview
--- a/immsview	Mon Feb 02 01:54:09 2004 -0500
+++ b/immsview	Mon Feb 02 10:42:43 2004 -0500
@@ -20,9 +20,12 @@
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-_immsview_version = "$Id: immsview 1690 2004-02-02 06:54:09Z fabien $"
+_immsview_version = "$Id: immsview 1691 2004-02-02 15:42:43Z fabien $"
 
 # $Log$
+# Revision 1.10  2004/02/02 15:42:43  fabien
+# OK, reset current after changing song manually... however, I most sleep for almost a second to be sure to catch it.
+#
 # Revision 1.9  2004/02/02 06:54:09  fabien
 # Add cvs log since I don't maintain a changelog currently.
 #
@@ -41,7 +44,7 @@
 # Revision 1.2  2004/02/01 04:40:41  fabien
 # add versioning.
 # Revision 1.1  2004/02/01 03:05:25  fabien
-# Première version de immsview.
+# Premiere version de immsview.
 
 # The aim of immsview is to become a better playlist editor than the
 # normal
@@ -122,10 +125,11 @@
     _dbname = os.environ['HOME'] + '/.imms/imms.db'
     # _dbname = os.environ['HOME'] + '/.imms/imms.backup.db'
     def __init__(self):
-        self.cx = sqlite.connect(IMMSDb._dbname,
-                                 encoding = ('utf-8', 'replace'))
+        self.cx = sqlite.connect(IMMSDb._dbname, autocommit = 1,
+                                 timeout = 2, encoding = ('utf-8', 'replace'))
     def commit(self):
-        self.cx.commit()
+        # self.cx.commit()
+        pass
     def _get_ratings(self, min = 0, max = 250):
         cu = self.cx.cursor()
         cu.execute('''SELECT Rating.uid, Rating.rating 
@@ -162,7 +166,7 @@
         for tune in res:
             try:
                 tmp = {'rating' : int(tune[1]),
-                       'path' : tune[2].decode('utf8', 'replace'),
+                       'path' : tune[2].decode('utf-8', 'replace'),
                        'last' : int(tune[3])}
                 results.append(tmp)
             except UnicodeDecodeError:
@@ -257,34 +261,52 @@
             return None
 
 class IMMSToolbar(gtk.Toolbar):
-	def __init__(self, iview, xmms):
-            gtk.Toolbar.__init__(self)
-            self.iview = iview
-            self.xmms = xmms
-            self.create_widgets()
-	def create_widgets(self):
-		self.append_item(_('Refresh'), _('Refresh list'),
-                                 None, None, self.do_refresh)
-                self.append_item(_('Plot'), _('Show graph of rates'),
-                                 None, None, self.plot)
-                self.append_item(_('Current'), _('Get current song'),
-                                 None, None, self.do_get_current)
-                self.append_item(_('Play'), _('Play selection'),
-                                 None, None, self.do_play)
-	def plot(self, data):
-            os.system('/home/fabien/bin/immsplot &')
-	def do_refresh(self, data):
+    # _IMMSPLOT_COMMAND = 'immsplot &'
+    _IMMSPLOT_COMMAND = '/home/fabien/bin/immsplot &'
+    _SLEEP_TIME = 1
+    def __init__(self, iview, xmms):
+        gtk.Toolbar.__init__(self)
+        self.iview = iview
+        self.xmms = xmms
+        self.create_widgets()
+    def create_widgets(self):
+        self.append_item(_('Refresh'), _('Refresh list'),
+                         None, None, self.do_refresh)
+        self.append_item(_('Plot'), _('Show graph of rates'),
+                         None, None, self.plot)
+        self.append_item(_('Current'), _('Get current song'),
+                         None, None, self.do_get_current)
+        self.append_item(_('Previous'), _('Play previous song'),
+                         None, None, self.do_play_prev)
+        self.append_item(_('Play'), _('Play selection'),
+                         None, None, self.do_play)
+        self.append_item(_('Next'), _('Play next song'),
+                         None, None, self.do_play_next)
+    def plot(self, dummy):
+        os.system(self._IMMSPLOT_COMMAND)
+    def do_refresh(self, dummy):
             self.iview.get_model().refresh()
-        def do_get_current(self, data):
-            song = self.xmms.get_current_file()
-            self.iview.set_current_song(song)
-        def do_play(self, data):
-            fn = self.iview.get_file_selected()
-            if fn:
-                self.xmms.play_file(fn)
+    def do_get_current(self, dummy):
+        song = self.xmms.get_current_file()
+        self.iview.set_current_song(song)
+    def do_play(self, dummy):
+        fn = self.iview.get_file_selected()
+        if fn:
+            self.xmms.play_file(fn)
+        time.sleep(self._SLEEP_TIME)
+        self.do_get_current(dummy)
+    def do_play_prev(self, dummy):
+        self.xmms.playlist_prev()
+        time.sleep(self._SLEEP_TIME)
+        self.do_get_current(dummy)
+    def do_play_next(self, dummy):
+        self.xmms.playlist_next()
+        time.sleep(self._SLEEP_TIME)
+        self.do_get_current(dummy)
+        
 
 root = gtk.Window()
-root.set_name(_("IMMSview"))
+root.set_title(_("IMMSView"))
 root.connect('destroy', gtk.mainquit)
 vbox = gtk.VBox(spacing = 3)
 root.add(vbox)