130
130
self.pwindow = window
133
def get_time_as_str(self, iter, i):
134
value = self.model.get_value(iter, i)
136
for div, sep, mod, pad in ((gst.SECOND*60, '', 0, 0),
137
(gst.SECOND, ':', 60, 2),
138
(gst.MSECOND, '.', 1000, 3)):
142
ret += sep + ('%%0%dd' % pad) % n
133
145
def create_ui(self):
134
146
self.model = model = gtk.ListStore(gobject.TYPE_UINT64,
135
147
gobject.TYPE_UINT64)
136
148
self.view = view = gtk.TreeView(self.model)
150
renderer = gtk.CellRendererText()
151
column = gtk.TreeViewColumn("Audio time", renderer)
138
152
def time_to_text(column, cell, method, iter, i):
139
value = model.get_value(iter, i)
141
for div, sep, mod, pad in ((gst.SECOND*60, '', 0, 0),
142
(gst.SECOND, ':', 60, 2),
143
(gst.MSECOND, '.', 1000, 3)):
147
ret += sep + ('%%0%dd' % pad) % n
148
cell.set_property('text', ret)
150
renderer = gtk.CellRendererText()
151
column = gtk.TreeViewColumn("Audio time", renderer)
153
cell.set_property('text', self.get_time_as_str(iter, i))
152
154
column.set_cell_data_func(renderer, time_to_text, 0)
153
155
column.set_expand(True)
154
156
column.set_clickable(True)
180
183
def remove_selected(*x):
181
184
model, iter = self.view.get_selection().get_selected()
182
185
model.remove(iter)
183
187
remove.connect("clicked", remove_selected)
184
188
hbox.pack_end(remove, False, False, 0)
205
209
v.connect("clicked", lambda *x: self.set_selected_video_now())
206
210
hbox.pack_start(v)
213
print 'Sync times now:'
214
for index, row in enumerate(self.model):
215
print 'A/V %d: %s -- %s' % (index,
216
self.get_time_as_str(row.iter, 0),
217
self.get_time_as_str(row.iter, 1))
208
220
def set_selected_audio(self, time):
209
221
sel = self.view.get_selection()
210
222
model, iter = sel.get_selected()
212
224
model.set_value(iter, 0, time)
214
227
def set_selected_video(self, time):
215
228
sel = self.view.get_selection()
216
229
model, iter = sel.get_selected()
218
231
model.set_value(iter, 1, time)
220
234
def set_selected_audio_now(self):
221
# pause and preroll first
222
if self.pwindow.player.is_playing():
223
self.pwindow.play_toggled()
224
self.pwindow.player.get_state(timeout=gst.MSECOND * 200)
226
235
time, dur = self.pwindow.player.query_position()
227
236
self.set_selected_audio(time)