[Telepathy-commits] [mingle/master] Add a preview frame
Sjoerd Simons
sjoerd at luon.net
Tue Dec 2 07:54:17 PST 2008
---
mingle-client.py | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/mingle-client.py b/mingle-client.py
index c811126..62b6a7b 100644
--- a/mingle-client.py
+++ b/mingle-client.py
@@ -89,12 +89,35 @@ class UI(gtk.Window):
self.label = gtk.Label("Waiting for other participants...")
self.label.set_size_request(self.WIDTH, self.HEIGHT)
+
+ self.preview_frame = gtk.Frame("Local Preview")
+ self.preview_frame.set_size_request(self.WIDTH, self.HEIGHT)
+
+ self.hbox.add(self.preview_frame)
self.hbox.add(self.label)
self.conference = conference
self.set_title(jid.userhost())
self.show_all()
+ def add_video_preview (self, session):
+ gtk.gdk.threads_enter()
+
+ pad = session.source.tee.get_pad("src%d")
+
+ vsink = VideoSink(self.conference)
+ session.source.add(vsink.sink)
+
+ vsink.sink.set_property("sync", False)
+
+ pad.link(vsink.sink.get_pad("sink"))
+ vsink.sink.set_state(gst.STATE_PLAYING)
+
+ self.preview_frame.add(vsink)
+ vsink.show_all()
+
+ gtk.gdk.threads_leave()
+
def add_output(self, name):
gtk.gdk.threads_enter()
if self.label:
@@ -338,6 +361,12 @@ class Muc:
self.conference.get_session("video", farsight.MEDIA_TYPE_VIDEO)
self.conference.get_session("audio", farsight.MEDIA_TYPE_AUDIO)
+
+ session = self.conference.get_session("video",
+ farsight.MEDIA_TYPE_VIDEO)
+ self.ui.add_video_preview(session)
+
+
for (jid, stanza) in self.mingle_presences.iteritems():
deferreds.append (self.add_participant(jid, stanza))
--
1.5.6.5
More information about the Telepathy-commits
mailing list