[cvs-annodex] commit (/annodex): annoamp/trunk/annoamp.py annoamp/trunk/anxplayer.py

jkivlighn nobody at lists.annodex.net
Fri Nov 4 14:43:14 EST 2005


Update of /annodex (new revision 1605)

Modified files:
   annoamp/trunk/annoamp.py
   annoamp/trunk/anxplayer.py

Log Message:
Fixes and more fixes.  This cleans up some of Scott's stuff, but there's more to go.  Playing and seeking should at least work again, but switching between files and a few other things still tweak out.

Modified: annoamp/trunk/annoamp.py
===================================================================
--- annoamp/trunk/annoamp.py	2005-11-04 01:58:45 UTC (rev 1604)
+++ annoamp/trunk/annoamp.py	2005-11-04 03:43:12 UTC (rev 1605)
@@ -35,6 +35,12 @@
 	
 def play(widget):
     global player
+    global playlist_view
+
+    #use the first file if nothing is already selected
+    if player.current == -1:
+        treemodel = playlist_view.get_model()
+        player.switch_source( treemodel.get_value(treemodel.get_iter_first(),0), 0 )
     result = player.play();
     print result
     
@@ -54,13 +60,17 @@
 def seek_clip(treeview, path, column):
     global player
     treemodel = treeview.get_model()
-    if not treemodel.iter_parent(treemodel.get_iter(path)) == None and not path[0] == player.current:
-        player.switch_source(treemodel.get_value(treemodel.get_iter(path), 0), path[0])
+    
+    #get the topmost item
+    parent_iter = treemodel.get_iter(path)
+    while treemodel.iter_parent(parent_iter) != None:
+        parent_iter = treemodel.iter_parent(parent_iter)
+
+    if path[0] != player.current:
+        player.switch_source(treemodel.get_value(parent_iter, 0), path[0])
+
+    if treemodel.get_iter(path) != parent_iter: #seek for all items unless we got the file item
         player.seek(treemodel.get_value(treemodel.get_iter(path), 1))
-    elif not treemodel.iter_parent(treemodel.get_iter(path)) == None:
-        player.seek(treemodel.get_value(treemodel.get_iter(path), 1))
-    else:
-        player.switch_source(treemodel.get_value(treemodel.get_iter(path), 0), path[0])
     
 def slider_seek_play(widget, event):
     global player
@@ -72,7 +82,7 @@
     global player
     if value >= 0 and value <= player.duration:
         update_gui_time(value,player.duration)
-        update_chapter(player.chapter_at(value)[0])
+        update_chapter(player.current,player.chapter_at(value)[0])
     
 def slider_pause(widget, event):
     global player
@@ -177,7 +187,7 @@
 player.duration_callback = update_gui_duration
 player.add_file_callback = add_file_p2
 
-if len(sys.argv) == 2:
-    player.loadFile(sys.argv[1],playlist)
+for i in range(1,len(sys.argv)):
+    player.load_file_info(sys.argv[i])
 
 loop.run()

Modified: annoamp/trunk/anxplayer.py
===================================================================
--- annoamp/trunk/anxplayer.py	2005-11-04 01:58:45 UTC (rev 1604)
+++ annoamp/trunk/anxplayer.py	2005-11-04 03:43:12 UTC (rev 1605)
@@ -22,6 +22,20 @@
 sys.path.extend(["/usr/local/lib/python2.4/site-packages/gst-0.9"])
 import gst
 
+def format_time(time):
+    hour = str(int(time)/3600)
+    minute = int(time)/60%60
+    if minute < 10:
+        minute = "0" + str(minute)
+    else:
+        minute = str(minute)
+    seconds = int(time)%60
+    if seconds < 10:
+        seconds = "0" + str(seconds)
+    else:
+        seconds = str(seconds)
+    return hour + ":" + minute + ":" + seconds
+
 def pipe_error(bin, element, error, debug):
     print "error:" + debug
 
@@ -62,7 +76,7 @@
         
 
         self.pos = -1
-        self.current = 0
+        self.current = -1
         self.current_chapter_callback = None
         self.update_time_callback = None
         self.duration_callback = None
@@ -136,7 +150,7 @@
     def switch_source(self,filename,child):
         self.bin.set_state(gst.STATE_NULL)
         self.filesrc.set_property('location', filename)
-        self.bin.set_state(gst.STATE_PLAYING)
+        self.play()
         self.pos = -1
         self.current = child
         
@@ -160,7 +174,7 @@
                         pass
                     elif type(taglist.get(tag)).__name__ == '__main__.GstCmmlTagClip':
                         if taglist.get(tag).get_property("desc") != None:
-                            info.append([taglist.get(tag).get_property("id") + " - " + taglist.get(tag).get_property("desc"), taglist.get(tag).get_property("start_time")/gst.SECOND])
+                            info.append([format_time(taglist.get(tag).get_property("start_time")/gst.SECOND) + " - " + taglist.get(tag).get_property("desc"), taglist.get(tag).get_property("start_time")/gst.SECOND])
                         else:
                             info.append([taglist.get(tag).get_property("id"), taglist.get(tag).get_property("start_time")/gst.SECOND])
                         self.chapter_info_tmp.append(taglist.get(tag))
@@ -201,13 +215,13 @@
             self.update_time_callback(location, self.duration)
             
             self.pos = chapter[1]
-            #print "pos is: ",self.pos," curr_chapter is ",chapter[0]
+            self.debug("pos is: "+str(self.pos)+" curr_chapter is "+str(chapter[0]))
 
         print str(result)# + ":" + str(self.bin.get_state())
         return result
         
     def next(self):
-        if self.pos == len(self.chapter_info)-1:
+        if self.pos == len(self.chapter_info[self.current])-1:
             print "Error in next()."
             return
 
@@ -217,6 +231,7 @@
         
     def prev(self):
         if self.pos < 1:
+           print "can't go back"
            return
 
         sec = self.chapter_info[self.current][self.pos-1].props.start_time/gst.SECOND
@@ -231,9 +246,9 @@
         for i in range(0,len(self.chapter_info[self.current])):
             chapter_start_at = self.chapter_info[self.current][i].props.start_time/gst.SECOND
             chapter_end_at = self.chapter_info[self.current][i].props.end_time/gst.SECOND
-            if chapter_end_at == -1 and i == len(self.chapter_info)-1:
+            if chapter_end_at == -1 and i == len(self.chapter_info[self.current])-1:
                   chapter_end_at = self.duration
-            if chapter_start_at > location and location < chapter_end_at:
+            if chapter_start_at > location < chapter_end_at:
                 return (i-1,i-1)
             elif location < chapter_start_at:
                 return (-1,i-1)


-- 
jkivlighn



More information about the cvs-annodex mailing list