Changeset 1640
- Timestamp:
- 2005-11-16 17:06:27 (3 years ago)
- Files:
-
- annoamp/trunk/annoamp.py (modified) (7 diffs)
- annoamp/trunk/annocast.glade (modified) (1 diff)
- annoamp/trunk/anxplayer.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
annoamp/trunk/annoamp.py
r1639 r1640 34 34 import string 35 35 36 class VideoWidget: 37 def __init__(self, drawingwidget, player): 38 self.drawing_widget = drawingwidget 39 self.drawing_widget.connect('destroy', self.destroy_cb) 40 self.drawing_widget.connect_after('realize', self.after_realize_cb) 41 self.drawing_widget.set_size_request(400,400) 42 43 self.player = player 44 self.imagesink = player.playbin.props.video_sink 45 46 def destroy_cb(self, da): 47 self.set_window_id(0L) 48 49 # Sort of a hack, but it works for now. 50 def after_realize_cb(self, window): 51 gobject.idle_add(self.frame_video_sink) 52 53 def frame_video_sink(self): 54 #self.drawing_widget.show() 55 #self.set_window_id(self.drawing_widget.window.xid) 56 pass 57 58 def set_window_id(self, xid): 59 #self.imagesink.set_xwindow_id(xid) 60 pass 61 62 def unframe_video_sink(self): 63 #self.drawing_widget.hide() 64 self.set_window_id(0L) 65 36 66 def destroy(widget, self): 37 67 widget.get_parent_window().destroy() … … 40 70 global loop 41 71 loop.quit() 42 72 73 def call_play(player): 74 videowidget.frame_video_sink() 75 player.play() 76 43 77 def play(widget): 44 78 global player 45 79 global playlist_view 80 global videowidget 46 81 47 82 if len(player.chapter_info) != 0: … … 50 85 treemodel = playlist_view.get_model() 51 86 player.switch_source( treemodel.get_value(treemodel.get_iter_first(),0), 0 ) 52 player.play();87 call_play(player) 53 88 54 89 def pause(widget): … … 80 115 history[old_file][0] = position 81 116 playlist.set_value(treemodel.get_iter(player.current), 1, position) 117 videowidget.unframe_video_sink() 82 118 player.switch_source(treemodel.get_value(parent_iter, 0), path[0]) 83 119 84 120 player.seek(treemodel.get_value(treemodel.get_iter(path), 1)) 85 86 player.play()121 122 call_play(player) 87 123 88 124 def slider_seek_play(widget, event): 89 125 global player 90 126 value = widget.get_value() 91 player.play()127 call_play(player) 92 128 player.seek(value) 93 129 … … 106 142 global playlist 107 143 global xml 108 144 109 145 tree_selection = playlist_view.get_selection() 110 146 if chapter == -1: … … 245 281 def get_history(): 246 282 history = {} 283 file_obj = None 247 284 try: 248 285 file_obj = open(os.path.expanduser('~/.annoamp_history'), "r") … … 324 361 player.file_finish_callback = file_finish 325 362 363 videowidget = VideoWidget(xml.get_widget("drawingarea1"),player) 364 326 365 xml.get_widget("volume_scale").set_value(1*100/4) 327 366 history = get_history() annoamp/trunk/annocast.glade
r1628 r1640 91 91 <property name="expand">False</property> 92 92 <property name="fill">False</property> 93 </packing> 94 </child> 95 96 <child> 97 <widget class="GtkDrawingArea" id="drawingarea1"> 98 </widget> 99 <packing> 100 <property name="padding">0</property> 101 <property name="expand">True</property> 102 <property name="fill">True</property> 93 103 </packing> 94 104 </child> annoamp/trunk/anxplayer.py
r1639 r1640 48 48 self.playbin = gst.element_factory_make ("playbin") 49 49 self.playbin.props.audio_sink = gst.element_factory_make ("alsasink") 50 self.playbin.props.video_sink = gst.element_factory_make (" fakesink")50 self.playbin.props.video_sink = gst.element_factory_make ("ximagesink") 51 51 52 52 self.bin.add (self.playbin) … … 62 62 self.file_finish_callback = None 63 63 self.duration = 0 64 self.timeout_id = -1 64 65 65 66 #Stores the following properties of a clip: … … 91 92 self.current_chapter_callback(self.current, -1) #inform the UI, but leave the self.pos alone 92 93 93 if self.bin.get_state()[1] == gst.STATE_PAUSED: 94 return False 95 else: 96 return True 94 return True 97 95 98 96 def bus_call (self, bus, message): … … 204 202 205 203 print result 206 gobject.timeout_add(200, self.update_time) 204 if self.timeout_id == -1: 205 self.timeout_id = gobject.timeout_add(200, self.update_time) 207 206 208 207 def pause(self): … … 211 210 result = self.bin.set_state(gst.STATE_PAUSED) 212 211 self.bin.get_state() #block until the state is really changed 212 213 if self.timeout_id != -1: 214 gobject.source_remove(self.timeout_id) 215 self.timeout_id = -1 213 216 214 217 def seek(self,location):