[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