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