Update of /cvsroot/gtkpod/gtkpod/src
In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv6286/src
Modified Files:
display_coverart.c
Log Message:
- Added "Album Art" title label to display_coverart pane
- Changed set_display_dimensions to make WIDTH=HEIGHT giving aspect ratio
default of 1 rather than 1.2
- Added patch to dispay_coverart.c to correctly cleanup pixbuf memory leakag.
(All credit for this to Christophe ([EMAIL PROTECTED]))
Index: display_coverart.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/display_coverart.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- display_coverart.c 20 Feb 2007 14:11:23 -0000 1.2
+++ display_coverart.c 21 Feb 2007 22:25:55 -0000 1.3
@@ -113,7 +113,7 @@
gdouble height = 4;
gint pixel_offset, rowstride, x, y;
guchar *drawbuf;
-
+
drawbuf = g_malloc ((gint) (width * 16) * (gint) height);
/* drawing buffer length multiplied by 4
@@ -155,7 +155,8 @@
{
GdkPixbuf *image;
GError *error = NULL;
-
+ GdkPixbuf *scaled;
+
image = gdk_pixbuf_new_from_file(HIGHLIGHT_FILE, &error);
if(error != NULL)
{
@@ -163,11 +164,13 @@
g_return_if_fail (image);
}
- image = gdk_pixbuf_scale_simple(image, cover->img_width,
((cover->img_height * 2) + 6), GDK_INTERP_NEAREST);
+ scaled = gdk_pixbuf_scale_simple(image, cover->img_width,
((cover->img_height * 2) + 6), GDK_INTERP_NEAREST);
+ gdk_pixbuf_unref (image);
gnome_canvas_item_set (cover->highlight,
- "pixbuf", image,
+ "pixbuf", scaled,
NULL);
+ gdk_pixbuf_unref (scaled);
gnome_canvas_item_hide (cover->highlight);
}
@@ -218,7 +221,6 @@
Itdb_Track *track;
Cover_Item *cover;
-
for(i = 0; i < IMG_TOTAL; ++i)
{
cover = g_ptr_array_index(cdwidget->cdcovers, i);
@@ -238,17 +240,21 @@
if (imgbuf != NULL)
{
+ GdkPixbuf *scaled;
/* Set the pixbuf into the cd image */
cover->track = track;
- imgbuf = gdk_pixbuf_scale_simple (imgbuf, cover->img_width,
cover->img_height, GDK_INTERP_NEAREST);
+ scaled = gdk_pixbuf_scale_simple (imgbuf, cover->img_width,
cover->img_height, GDK_INTERP_NEAREST);
+ gdk_pixbuf_unref (imgbuf);
gnome_canvas_item_set (cover->cdimage,
- "pixbuf", imgbuf,
+ "pixbuf", scaled,
NULL);
/* flip image vertically to create reflection */
- reflection = gdk_pixbuf_flip (imgbuf, FALSE);
+ reflection = gdk_pixbuf_flip (scaled, FALSE);
gnome_canvas_item_set (cover->cdreflection,
"pixbuf", reflection,
NULL);
+ gdk_pixbuf_unref (scaled);
+ gdk_pixbuf_unref (reflection);
}
if (i == IMG_MAIN)
@@ -645,7 +651,6 @@
{
gint width, i;
Cover_Item *cover;
- GdkPixbuf *pixbuf;
width = gtk_paned_get_position (GTK_PANED(widget));
if (width >= DEFAULT_WIDTH)
@@ -659,14 +664,7 @@
{
cover = g_ptr_array_index(cdwidget->cdcovers, i);
set_cover_dimensions (cover, i);
-
-
- gtk_object_get (GTK_OBJECT(cover->highlight),
-
"pixbuf", &pixbuf,
-
NULL);
-
- g_object_unref(pixbuf);
- set_highlight (cover);
+ set_highlight (cover);
}
set_covers ();
@@ -728,11 +726,9 @@
podpane = gtkpod_xml_get_widget (main_window_xml, "paned0");
g_return_if_fail (podpane);
- WIDTH = HEIGHT / 1.2;
+ WIDTH = HEIGHT;
gtk_paned_set_position (GTK_PANED(podpane), WIDTH);
DEFAULT_WIDTH = WIDTH;
-
- printf("SET DIMENSION WIDTH = %d, HEIGHT = %d\n", WIDTH, HEIGHT);
}
/**
@@ -1092,7 +1088,9 @@
coverart_clear_images ();
cdwidget->first_imgindex = 0;
- cdwidget->displaytracks = NULL;
+
+ g_list_free (cdwidget->displaytracks);
+ cdwidget->displaytracks = NULL;
if (tracks == NULL)
return;
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2