Mercurial > pidgin.yaz
comparison pidgin/gtkmedia.c @ 25728:c48f5c9600c3
Fixed a ton of memory leaks.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Mon, 18 Aug 2008 06:25:38 +0000 |
parents | eb289e9086bf |
children | ba609f368dc8 |
comparison
equal
deleted
inserted
replaced
25727:f10e0ac24595 | 25728:c48f5c9600c3 |
---|---|
192 | 192 |
193 static gboolean | 193 static gboolean |
194 level_message_cb(GstBus *bus, GstMessage *message, PidginMedia *gtkmedia) | 194 level_message_cb(GstBus *bus, GstMessage *message, PidginMedia *gtkmedia) |
195 { | 195 { |
196 const GstStructure *s; | 196 const GstStructure *s; |
197 const gchar *name; | 197 gchar *name; |
198 | 198 |
199 gdouble rms_db; | 199 gdouble rms_db; |
200 gdouble percent; | 200 gdouble percent; |
201 const GValue *list; | 201 const GValue *list; |
202 const GValue *value; | 202 const GValue *value; |
205 | 205 |
206 if (message->type != GST_MESSAGE_ELEMENT) | 206 if (message->type != GST_MESSAGE_ELEMENT) |
207 return TRUE; | 207 return TRUE; |
208 | 208 |
209 s = gst_message_get_structure(message); | 209 s = gst_message_get_structure(message); |
210 name = gst_structure_get_name(s); | 210 |
211 | 211 if (strcmp(gst_structure_get_name(s), "level")) |
212 if (strcmp(name, "level")) | |
213 return TRUE; | 212 return TRUE; |
214 | 213 |
215 list = gst_structure_get_value(s, "rms"); | 214 list = gst_structure_get_value(s, "rms"); |
216 | 215 |
217 /* Only bother with the first channel. */ | 216 /* Only bother with the first channel. */ |
221 percent = pow(10, rms_db / 20) * 5; | 220 percent = pow(10, rms_db / 20) * 5; |
222 | 221 |
223 if(percent > 1.0) | 222 if(percent > 1.0) |
224 percent = 1.0; | 223 percent = 1.0; |
225 | 224 |
226 if (!strcmp(gst_element_get_name(src), "sendlevel")) | 225 name = gst_element_get_name(src); |
226 if (!strcmp(name, "sendlevel")) | |
227 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(gtkmedia->priv->send_progress), percent); | 227 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(gtkmedia->priv->send_progress), percent); |
228 else | 228 else |
229 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(gtkmedia->priv->recv_progress), percent); | 229 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(gtkmedia->priv->recv_progress), percent); |
230 | 230 |
231 g_free(name); | |
231 return TRUE; | 232 return TRUE; |
232 } | 233 } |
233 | 234 |
234 | 235 |
235 static void | 236 static void |
463 static void | 464 static void |
464 pidgin_media_got_request_cb(PurpleMedia *media, PidginMedia *gtkmedia) | 465 pidgin_media_got_request_cb(PurpleMedia *media, PidginMedia *gtkmedia) |
465 { | 466 { |
466 PurpleMediaSessionType type = purple_media_get_overall_type(media); | 467 PurpleMediaSessionType type = purple_media_get_overall_type(media); |
467 gchar *message; | 468 gchar *message; |
469 gchar *name = purple_media_get_screenname(media); | |
468 | 470 |
469 if (type & PURPLE_MEDIA_AUDIO && type & PURPLE_MEDIA_VIDEO) { | 471 if (type & PURPLE_MEDIA_AUDIO && type & PURPLE_MEDIA_VIDEO) { |
470 message = g_strdup_printf(_("%s wishes to start an audio/video session with you."), | 472 message = g_strdup_printf(_("%s wishes to start an audio/video session with you."), |
471 purple_media_get_screenname(media)); | 473 name); |
472 } else if (type & PURPLE_MEDIA_AUDIO) { | 474 } else if (type & PURPLE_MEDIA_AUDIO) { |
473 message = g_strdup_printf(_("%s wishes to start an audio session with you."), | 475 message = g_strdup_printf(_("%s wishes to start an audio session with you."), |
474 purple_media_get_screenname(media)); | 476 name); |
475 } else if (type & PURPLE_MEDIA_VIDEO) { | 477 } else if (type & PURPLE_MEDIA_VIDEO) { |
476 message = g_strdup_printf(_("%s wishes to start a video session with you."), | 478 message = g_strdup_printf(_("%s wishes to start a video session with you."), |
477 purple_media_get_screenname(media)); | 479 name); |
478 } else { | 480 } else { |
481 g_free(name); | |
479 return; | 482 return; |
480 } | 483 } |
481 | 484 |
485 g_free(name); | |
482 pidgin_media_emit_message(gtkmedia, message); | 486 pidgin_media_emit_message(gtkmedia, message); |
483 g_free(message); | 487 g_free(message); |
484 } | 488 } |
485 | 489 |
486 static void | 490 static void |