Mercurial > pidgin
comparison pidgin/gtkmedia.c @ 23784:741a702033e0
Show a message when the remote end terminates a session.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Sat, 15 Mar 2008 07:37:03 +0000 |
parents | 1ec6a26cfefc |
children | 92e71f6e10d4 |
comparison
equal
deleted
inserted
replaced
23783:c96b34b58b85 | 23784:741a702033e0 |
---|---|
72 PROP_SEND_LEVEL, | 72 PROP_SEND_LEVEL, |
73 PROP_RECV_LEVEL | 73 PROP_RECV_LEVEL |
74 }; | 74 }; |
75 | 75 |
76 GType | 76 GType |
77 pidgin_media_get_type() | 77 pidgin_media_get_type(void) |
78 { | 78 { |
79 static GType type = 0; | 79 static GType type = 0; |
80 | 80 |
81 if (type == 0) { | 81 if (type == 0) { |
82 static const GTypeInfo info = { | 82 static const GTypeInfo info = { |
170 static void | 170 static void |
171 pidgin_media_emit_message(PidginMedia *gtkmedia, const char *msg) | 171 pidgin_media_emit_message(PidginMedia *gtkmedia, const char *msg) |
172 { | 172 { |
173 g_signal_emit(gtkmedia, pidgin_media_signals[MESSAGE], 0, msg); | 173 g_signal_emit(gtkmedia, pidgin_media_signals[MESSAGE], 0, msg); |
174 } | 174 } |
175 | 175 |
176 static gboolean | 176 static gboolean |
177 level_message_cb(GstBus *bus, GstMessage *message, PidginMedia *gtkmedia) | 177 level_message_cb(GstBus *bus, GstMessage *message, PidginMedia *gtkmedia) |
178 { | 178 { |
179 const GstStructure *s; | 179 const GstStructure *s; |
180 const gchar *name; | 180 const gchar *name; |
182 int channels; | 182 int channels; |
183 gdouble rms_db, peak_db, decay_db; | 183 gdouble rms_db, peak_db, decay_db; |
184 gdouble rms; | 184 gdouble rms; |
185 const GValue *list; | 185 const GValue *list; |
186 const GValue *value; | 186 const GValue *value; |
187 | 187 |
188 GstElement *src = GST_MESSAGE_SRC(message); | 188 GstElement *src = GST_ELEMENT(message); |
189 | 189 |
190 if (message->type != GST_MESSAGE_ELEMENT) | 190 if (message->type != GST_MESSAGE_ELEMENT) |
191 return TRUE; | 191 return TRUE; |
192 | 192 |
193 s = gst_message_get_structure(message); | 193 s = gst_message_get_structure(message); |
234 pidgin_media_emit_message(gtkmedia, _("You have ended the call.")); | 234 pidgin_media_emit_message(gtkmedia, _("You have ended the call.")); |
235 gtk_widget_destroy(GTK_WIDGET(gtkmedia)); | 235 gtk_widget_destroy(GTK_WIDGET(gtkmedia)); |
236 } | 236 } |
237 | 237 |
238 static void | 238 static void |
239 pidgin_media_got_hangup_cb(PurpleMedia *media, PidginMedia *gtkmedia) | |
240 { | |
241 pidgin_media_emit_message(gtkmedia, _("The call has been terminated.")); | |
242 gtk_widget_destroy(GTK_WIDGET(gtkmedia)); | |
243 } | |
244 | |
245 static void | |
239 pidgin_media_reject_cb(PurpleMedia *media, PidginMedia *gtkmedia) | 246 pidgin_media_reject_cb(PurpleMedia *media, PidginMedia *gtkmedia) |
240 { | 247 { |
241 pidgin_media_emit_message(gtkmedia, _("You have rejected the call.")); | 248 pidgin_media_emit_message(gtkmedia, _("You have rejected the call.")); |
242 gtk_widget_destroy(GTK_WIDGET(gtkmedia)); | 249 gtk_widget_destroy(GTK_WIDGET(gtkmedia)); |
243 } | 250 } |
245 static void | 252 static void |
246 pidgin_media_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) | 253 pidgin_media_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) |
247 { | 254 { |
248 PidginMedia *media; | 255 PidginMedia *media; |
249 g_return_if_fail(PIDGIN_IS_MEDIA(object)); | 256 g_return_if_fail(PIDGIN_IS_MEDIA(object)); |
250 | 257 |
251 media = PIDGIN_MEDIA(object); | 258 media = PIDGIN_MEDIA(object); |
252 switch (prop_id) { | 259 switch (prop_id) { |
253 case PROP_MEDIA: | 260 case PROP_MEDIA: |
254 if (media->priv->media) | 261 if (media->priv->media) |
255 g_object_unref(media->priv->media); | 262 g_object_unref(media->priv->media); |
268 G_CALLBACK(pidgin_media_ready_cb), media); | 275 G_CALLBACK(pidgin_media_ready_cb), media); |
269 g_signal_connect(G_OBJECT(media->priv->media), "hangup", | 276 g_signal_connect(G_OBJECT(media->priv->media), "hangup", |
270 G_CALLBACK(pidgin_media_hangup_cb), media); | 277 G_CALLBACK(pidgin_media_hangup_cb), media); |
271 g_signal_connect(G_OBJECT(media->priv->media), "reject", | 278 g_signal_connect(G_OBJECT(media->priv->media), "reject", |
272 G_CALLBACK(pidgin_media_reject_cb), media); | 279 G_CALLBACK(pidgin_media_reject_cb), media); |
280 g_signal_connect(G_OBJECT(media->priv->media), "got-hangup", | |
281 G_CALLBACK(pidgin_media_got_hangup_cb), media); | |
273 break; | 282 break; |
274 case PROP_SEND_LEVEL: | 283 case PROP_SEND_LEVEL: |
275 if (media->priv->send_level) | 284 if (media->priv->send_level) |
276 gst_object_unref(media->priv->send_level); | 285 gst_object_unref(media->priv->send_level); |
277 media->priv->send_level = g_value_get_object(value); | 286 media->priv->send_level = g_value_get_object(value); |