Author: post
Date: 2009-12-13 12:02:19 +0100 (Sun, 13 Dec 2009)
New Revision: 2791
Modified:
trunk/plugins/meta-tiff/tiff-meta.c
Log:
Thumbnail loader: Add separate store function to save thumbnail.
Modified: trunk/plugins/meta-tiff/tiff-meta.c
===================================================================
--- trunk/plugins/meta-tiff/tiff-meta.c 2009-12-13 10:55:17 UTC (rev 2790)
+++ trunk/plugins/meta-tiff/tiff-meta.c 2009-12-13 11:02:19 UTC (rev 2791)
@@ -66,6 +66,7 @@
static gboolean exif_reader(RAWFILE *rawfile, guint offset, RSMetadata *meta);
static gboolean ifd_reader(RAWFILE *rawfile, guint offset, RSMetadata *meta);
static gboolean thumbnail_reader(const gchar *service, RAWFILE *rawfile, guint
offset, guint length, RSMetadata *meta);
+static gboolean thumbnail_store(GdkPixbuf *pixbuf, RSMetadata *meta);
static GdkPixbuf* raw_thumbnail_reader(const gchar *service, RSMetadata *meta);
typedef enum tiff_field_type
@@ -1350,14 +1351,14 @@
/* Load thumbnail - try thumbnail first - then preview image */
if (!thumbnail_reader(service, rawfile, meta->thumbnail_start,
meta->thumbnail_length, meta))
- thumbnail_reader(service, rawfile, meta->preview_start,
meta->preview_length, meta);
+ if (!thumbnail_reader(service, rawfile, meta->preview_start,
meta->preview_length, meta))
+ thumbnail_store(raw_thumbnail_reader(service, meta),
meta);
}
static gboolean
thumbnail_reader(const gchar *service, RAWFILE *rawfile, guint offset, guint
length, RSMetadata *meta)
{
- gboolean ret = FALSE;
- GdkPixbuf *pixbuf=NULL, *pixbuf2=NULL;
+ GdkPixbuf *pixbuf=NULL;
if ((offset>0) && (length>0) && (length<5000000))
{
@@ -1398,7 +1399,14 @@
{
pixbuf = raw_thumbnail_reader(service, meta);
}
+
+ return thumbnail_store(pixbuf, meta);
+}
+static gboolean
+thumbnail_store(GdkPixbuf *pixbuf, RSMetadata *meta)
+{
+ GdkPixbuf *pixbuf2=NULL;
if (pixbuf)
{
gdouble ratio;
@@ -1437,12 +1445,12 @@
break;
}
meta->thumbnail = pixbuf;
- ret = TRUE;
+ return TRUE;
}
-
- return ret;
+ return FALSE;
}
+
static GdkPixbuf*
raw_thumbnail_reader(const gchar *service, RSMetadata *meta)
{
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit