Use expose instead of after_realize_cb+idle_add
Original commit message from CVS: Use expose instead of after_realize_cb+idle_add
This commit is contained in:
parent
7020315e74
commit
65e693c8a9
@ -88,7 +88,7 @@ class PlayerWidget(gtk.DrawingArea):
|
|||||||
self.parentw = parent
|
self.parentw = parent
|
||||||
gtk.DrawingArea.__init__(self)
|
gtk.DrawingArea.__init__(self)
|
||||||
self.connect('destroy', self.destroy_cb)
|
self.connect('destroy', self.destroy_cb)
|
||||||
self.connect_after('realize', self.after_realize_cb)
|
self.connect('expose-event', self.expose_cb)
|
||||||
self.set_size_request(400, 400)
|
self.set_size_request(400, 400)
|
||||||
self.player = gst.play.Play()
|
self.player = gst.play.Play()
|
||||||
self.player.connect('eos', lambda p: gst.main_quit())
|
self.player.connect('eos', lambda p: gst.main_quit())
|
||||||
@ -97,17 +97,15 @@ class PlayerWidget(gtk.DrawingArea):
|
|||||||
|
|
||||||
# Setup source and sinks
|
# Setup source and sinks
|
||||||
self.player.set_data_src(gst.element_factory_make('filesrc'))
|
self.player.set_data_src(gst.element_factory_make('filesrc'))
|
||||||
self.player.set_audio_sink(gst.element_factory_make('osssink'))
|
audio_sink = gst.element_factory_make('alsasink')
|
||||||
|
audio_sink.set_property('device', 'hw:0')
|
||||||
|
self.player.set_audio_sink(audio_sink)
|
||||||
self.player.set_video_sink(self.imagesink)
|
self.player.set_video_sink(self.imagesink)
|
||||||
|
|
||||||
def destroy_cb(self, da):
|
def destroy_cb(self, da):
|
||||||
self.imagesink.set_xwindow_id(0L)
|
self.imagesink.set_xwindow_id(0L)
|
||||||
|
|
||||||
def after_realize_cb(self, window):
|
def expose_cb(self, window, event):
|
||||||
# Sort of a hack, but it works for now.
|
|
||||||
gtk.idle_add(self.idler)
|
|
||||||
|
|
||||||
def idler(self):
|
|
||||||
self.imagesink.set_xwindow_id(self.window.xid)
|
self.imagesink.set_xwindow_id(self.window.xid)
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user