Mercurial > pidgin.yaz
diff pidgin/gtkmedia.c @ 26143:f6a98b2b8d92
Add the accepted signal and make the accept button go away immediately.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Tue, 27 Jan 2009 22:18:01 +0000 |
parents | c334a9e17426 |
children | 685c8f5f85c7 |
line wrap: on
line diff
--- a/pidgin/gtkmedia.c Tue Jan 27 09:40:24 2009 +0000 +++ b/pidgin/gtkmedia.c Tue Jan 27 22:18:01 2009 +0000 @@ -357,6 +357,14 @@ g_signal_emit(gtkmedia, pidgin_media_signals[ERROR], 0, error); } +static void +pidgin_media_accepted_cb(PurpleMedia *media, const gchar *session_id, + const gchar *participant, PidginMedia *gtkmedia) +{ + pidgin_media_set_state(gtkmedia, PIDGIN_MEDIA_ACCEPTED); + pidgin_media_emit_message(gtkmedia, _("Call in progress.")); +} + static gboolean plug_delete_event_cb(GtkWidget *widget, gpointer data) { @@ -582,9 +590,6 @@ GstElement *audiosendbin = NULL, *audiorecvbin = NULL; GstElement *videosendbin = NULL, *videorecvbin = NULL; - pidgin_media_emit_message(gtkmedia, _("Call in progress.")); - pidgin_media_set_state(gtkmedia, PIDGIN_MEDIA_ACCEPTED); - purple_media_get_elements(media, &audiosendbin, &audiorecvbin, &videosendbin, &videorecvbin); @@ -625,6 +630,8 @@ g_signal_connect(G_OBJECT(media->priv->media), "error", G_CALLBACK(pidgin_media_error_cb), media); + g_signal_connect(G_OBJECT(media->priv->media), "accepted", + G_CALLBACK(pidgin_media_accepted_cb), media); g_signal_connect(G_OBJECT(media->priv->media), "state-changed", G_CALLBACK(pidgin_media_state_changed_cb), media); break;