aboutsummaryrefslogtreecommitdiffstats
path: root/src/empathy-call-window.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2009-12-02 23:27:03 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-04-01 16:15:38 +0800
commit80facfc7c3f11f3b75ab0c3cebbcc0a9801040d9 (patch)
tree9d46081b5ae35d605f9788bc828a369d4edd0efb /src/empathy-call-window.c
parentecee0a557957c60cd78bf04e0f9f3a5dacc7892e (diff)
downloadgsoc2013-empathy-80facfc7c3f11f3b75ab0c3cebbcc0a9801040d9.tar
gsoc2013-empathy-80facfc7c3f11f3b75ab0c3cebbcc0a9801040d9.tar.gz
gsoc2013-empathy-80facfc7c3f11f3b75ab0c3cebbcc0a9801040d9.tar.bz2
gsoc2013-empathy-80facfc7c3f11f3b75ab0c3cebbcc0a9801040d9.tar.lz
gsoc2013-empathy-80facfc7c3f11f3b75ab0c3cebbcc0a9801040d9.tar.xz
gsoc2013-empathy-80facfc7c3f11f3b75ab0c3cebbcc0a9801040d9.tar.zst
gsoc2013-empathy-80facfc7c3f11f3b75ab0c3cebbcc0a9801040d9.zip
call-window: factor out create_pipeline
Diffstat (limited to 'src/empathy-call-window.c')
-rw-r--r--src/empathy-call-window.c64
1 files changed, 33 insertions, 31 deletions
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c
index 99e1cc8ff..27daa8284 100644
--- a/src/empathy-call-window.c
+++ b/src/empathy-call-window.c
@@ -917,6 +917,26 @@ action_camera_change_cb (GtkRadioAction *action,
}
static void
+create_pipeline (EmpathyCallWindow *self)
+{
+ EmpathyCallWindowPriv *priv = GET_PRIV (self);
+ GstBus *bus;
+
+ g_assert (priv->pipeline == NULL);
+
+ priv->pipeline = gst_pipeline_new (NULL);
+ bus = gst_pipeline_get_bus (GST_PIPELINE (priv->pipeline));
+ priv->bus_message_source_id = gst_bus_add_watch (bus,
+ empathy_call_window_bus_message, self);
+
+ empathy_call_window_setup_remote_frame (bus, self);
+ empathy_call_window_setup_self_frame (bus, self);
+
+ g_object_unref (bus);
+}
+
+
+static void
empathy_call_window_init (EmpathyCallWindow *self)
{
EmpathyCallWindowPriv *priv = GET_PRIV (self);
@@ -925,7 +945,6 @@ empathy_call_window_init (EmpathyCallWindow *self)
GtkWidget *h;
GtkWidget *arrow;
GtkWidget *page;
- GstBus *bus;
gchar *filename;
GKeyFile *keyfile;
GError *error = NULL;
@@ -972,10 +991,18 @@ empathy_call_window_init (EmpathyCallWindow *self)
CONTENT_HBOX_BORDER_WIDTH);
gtk_paned_pack1 (GTK_PANED (priv->pane), priv->content_hbox, TRUE, FALSE);
- priv->pipeline = gst_pipeline_new (NULL);
- bus = gst_pipeline_get_bus (GST_PIPELINE (priv->pipeline));
- priv->bus_message_source_id = gst_bus_add_watch (bus,
- empathy_call_window_bus_message, self);
+ priv->remote_user_output_frame = gtk_frame_new (NULL);
+ gtk_widget_set_size_request (priv->remote_user_output_frame,
+ EMPATHY_VIDEO_WIDGET_DEFAULT_WIDTH, EMPATHY_VIDEO_WIDGET_DEFAULT_HEIGHT);
+ gtk_box_pack_start (GTK_BOX (priv->content_hbox),
+ priv->remote_user_output_frame, TRUE, TRUE,
+ CONTENT_HBOX_CHILDREN_PACKING_PADDING);
+
+ priv->self_user_output_frame = gtk_frame_new (NULL);
+ gtk_widget_set_size_request (priv->self_user_output_frame,
+ SELF_VIDEO_SECTION_WIDTH, SELF_VIDEO_SECTION_HEIGTH);
+
+ create_pipeline (self);
priv->fsnotifier = fs_element_added_notifier_new ();
fs_element_added_notifier_add (priv->fsnotifier, GST_BIN (priv->pipeline));
@@ -995,30 +1022,14 @@ empathy_call_window_init (EmpathyCallWindow *self)
}
g_free (filename);
-
- priv->remote_user_output_frame = gtk_frame_new (NULL);
- gtk_widget_set_size_request (priv->remote_user_output_frame,
- EMPATHY_VIDEO_WIDGET_DEFAULT_WIDTH, EMPATHY_VIDEO_WIDGET_DEFAULT_HEIGHT);
- gtk_box_pack_start (GTK_BOX (priv->content_hbox),
- priv->remote_user_output_frame, TRUE, TRUE,
- CONTENT_HBOX_CHILDREN_PACKING_PADDING);
- empathy_call_window_setup_remote_frame (bus, self);
-
- priv->self_user_output_frame = gtk_frame_new (NULL);
- gtk_widget_set_size_request (priv->self_user_output_frame,
- SELF_VIDEO_SECTION_WIDTH, SELF_VIDEO_SECTION_HEIGTH);
-
priv->vbox = gtk_vbox_new (FALSE, 3);
gtk_box_pack_start (GTK_BOX (priv->content_hbox), priv->vbox,
FALSE, FALSE, CONTENT_HBOX_CHILDREN_PACKING_PADDING);
gtk_box_pack_start (GTK_BOX (priv->vbox), priv->self_user_output_frame,
FALSE, FALSE, 0);
- empathy_call_window_setup_self_frame (bus, self);
empathy_call_window_setup_toolbar (self);
- g_object_unref (bus);
-
priv->sidebar_button = gtk_toggle_button_new_with_mnemonic (_("_Sidebar"));
arrow = gtk_arrow_new (GTK_ARROW_RIGHT, GTK_SHADOW_NONE);
g_signal_connect (G_OBJECT (priv->sidebar_button), "toggled",
@@ -2681,19 +2692,12 @@ empathy_call_window_hangup_cb (gpointer object,
static void
empathy_call_window_restart_call (EmpathyCallWindow *window)
{
- GstBus *bus;
EmpathyCallWindowPriv *priv = GET_PRIV (window);
gtk_widget_destroy (priv->remote_user_output_hbox);
gtk_widget_destroy (priv->self_user_output_hbox);
- priv->pipeline = gst_pipeline_new (NULL);
- bus = gst_pipeline_get_bus (GST_PIPELINE (priv->pipeline));
- priv->bus_message_source_id = gst_bus_add_watch (bus,
- empathy_call_window_bus_message, window);
-
- empathy_call_window_setup_remote_frame (bus, window);
- empathy_call_window_setup_self_frame (bus, window);
+ create_pipeline (window);
g_signal_connect (G_OBJECT (priv->audio_input_adj), "value-changed",
G_CALLBACK (empathy_call_window_mic_volume_changed_cb), window);
@@ -2703,8 +2707,6 @@ empathy_call_window_restart_call (EmpathyCallWindow *window)
* been updated during that time. That's why we manually update it here */
empathy_call_window_mic_volume_changed_cb (priv->audio_input_adj, window);
- g_object_unref (bus);
-
gtk_widget_show_all (priv->content_hbox);
priv->outgoing = TRUE;