Author: post
Date: 2011-02-19 14:51:39 +0100 (Sat, 19 Feb 2011)
New Revision: 3818
Modified:
trunk/librawstudio/rs-filetypes.c
trunk/librawstudio/rs-filetypes.h
trunk/librawstudio/rs-metadata.c
trunk/plugins/load-gdk/load-gdk.c
trunk/plugins/meta-ciff/ciff-meta.c
trunk/plugins/meta-mrw/mrw-meta.c
trunk/plugins/meta-raf/raf-meta.c
trunk/plugins/meta-tiff/tiff-meta.c
trunk/plugins/meta-x3f/x3f-meta.c
Log:
Fixed the damned return value from meta-loaders!
Modified: trunk/librawstudio/rs-filetypes.c
===================================================================
--- trunk/librawstudio/rs-filetypes.c 2011-02-19 12:09:40 UTC (rev 3817)
+++ trunk/librawstudio/rs-filetypes.c 2011-02-19 13:51:39 UTC (rev 3818)
@@ -234,7 +234,7 @@
* @param rawfile An open RAWFILE
* @param offset An offset in the open RAWFILE
*/
-void
+gboolean
rs_filetype_meta_load(const gchar *service, RSMetadata *meta, RAWFILE
*rawfile, guint offset)
{
gint priority = 0;
@@ -244,6 +244,9 @@
g_assert(service != NULL);
g_assert(RS_IS_METADATA(meta));
- if((loader = filetype_search(meta_loaders, service, &priority,
RS_LOADER_FLAGS_ALL)))
- loader(service, rawfile, offset, meta);
+ while ((loader = filetype_search(meta_loaders, service, &priority,
RS_LOADER_FLAGS_ALL)))
+ if (loader(service, rawfile, offset, meta))
+ return TRUE;
+
+ return FALSE;
}
Modified: trunk/librawstudio/rs-filetypes.h
===================================================================
--- trunk/librawstudio/rs-filetypes.h 2011-02-19 12:09:40 UTC (rev 3817)
+++ trunk/librawstudio/rs-filetypes.h 2011-02-19 13:51:39 UTC (rev 3818)
@@ -29,7 +29,7 @@
} RSLoaderFlags;
typedef RSFilterResponse *(*RSFileLoaderFunc)(const gchar *filename);
-typedef void (*RSFileMetaLoaderFunc)(const gchar *service, RAWFILE *rawfile,
guint offset, RSMetadata *meta);
+typedef gboolean (*RSFileMetaLoaderFunc)(const gchar *service, RAWFILE
*rawfile, guint offset, RSMetadata *meta);
/**
* Initialize the RSFiletype subsystem, this MUST be called before any other
@@ -77,6 +77,6 @@
* @param rawfile An open RAWFILE
* @param offset An offset in the open RAWFILE
*/
-extern void rs_filetype_meta_load(const gchar *service, RSMetadata *meta,
RAWFILE *rawfile, guint offset);
+extern gboolean rs_filetype_meta_load(const gchar *service, RSMetadata *meta,
RAWFILE *rawfile, guint offset);
#endif /* RS_FILETYPES_H */
Modified: trunk/librawstudio/rs-metadata.c
===================================================================
--- trunk/librawstudio/rs-metadata.c 2011-02-19 12:09:40 UTC (rev 3817)
+++ trunk/librawstudio/rs-metadata.c 2011-02-19 13:51:39 UTC (rev 3818)
@@ -496,10 +496,7 @@
rawfile = raw_open_file(filename);
if (rawfile)
{
- /* FIXME: Fix the damned return value from meta-loaders! */
- ret = TRUE;
- rs_filetype_meta_load(filename, metadata, rawfile, 0);
-
+ ret = rs_filetype_meta_load(filename, metadata, rawfile, 0);
raw_close_file(rawfile);
}
return ret;
Modified: trunk/plugins/load-gdk/load-gdk.c
===================================================================
--- trunk/plugins/load-gdk/load-gdk.c 2011-02-19 12:09:40 UTC (rev 3817)
+++ trunk/plugins/load-gdk/load-gdk.c 2011-02-19 13:51:39 UTC (rev 3818)
@@ -75,10 +75,12 @@
return response;
}
-static void
+/* We don't load actual metadata, but we will keep this as a low priority
fallback */
+static gboolean
rs_gdk_load_meta(const gchar *service, RAWFILE *rawfile, guint offset,
RSMetadata *meta)
{
meta->thumbnail = gdk_pixbuf_new_from_file_at_size(service, 128, 128,
NULL);
+ return TRUE;
}
G_MODULE_EXPORT void
Modified: trunk/plugins/meta-ciff/ciff-meta.c
===================================================================
--- trunk/plugins/meta-ciff/ciff-meta.c 2011-02-19 12:09:40 UTC (rev 3817)
+++ trunk/plugins/meta-ciff/ciff-meta.c 2011-02-19 13:51:39 UTC (rev 3818)
@@ -214,7 +214,7 @@
return(TRUE);
}
-static void
+static gboolean
ciff_load_meta(const gchar *service, RAWFILE *rawfile, guint offset,
RSMetadata *meta)
{
guint root=0;
@@ -224,7 +224,7 @@
raw_init_file_tiff(rawfile, offset);
if (!raw_strcmp(rawfile, 6, "HEAPCCDR", 8))
- return;
+ return FALSE;
raw_get_uint(rawfile, 2, &root);
raw_crw_walker(rawfile, root, raw_get_filesize(rawfile)-root, meta);
@@ -266,7 +266,9 @@
break;
}
meta->thumbnail = pixbuf;
+ return TRUE;
}
+ return FALSE;
}
G_MODULE_EXPORT void
Modified: trunk/plugins/meta-mrw/mrw-meta.c
===================================================================
--- trunk/plugins/meta-mrw/mrw-meta.c 2011-02-19 12:09:40 UTC (rev 3817)
+++ trunk/plugins/meta-mrw/mrw-meta.c 2011-02-19 13:51:39 UTC (rev 3818)
@@ -64,7 +64,7 @@
return;
}
-static void
+static gboolean
mrw_load_meta(const gchar *service, RAWFILE *rawfile, guint offset, RSMetadata
*meta)
{
GdkPixbuf *pixbuf=NULL, *pixbuf2=NULL;
@@ -101,7 +101,7 @@
gdk_pixbuf_loader_close(pl, NULL);
g_free(thumbbuffer);
- if (pixbuf==NULL) return;
+ if (pixbuf==NULL) return TRUE;
ratio = ((gdouble) gdk_pixbuf_get_width(pixbuf))/((gdouble)
gdk_pixbuf_get_height(pixbuf));
if (ratio>1.0)
pixbuf2 = gdk_pixbuf_scale_simple(pixbuf, 128, (gint)
(128.0/ratio), GDK_INTERP_BILINEAR);
@@ -125,8 +125,7 @@
}
meta->thumbnail = pixbuf;
}
-
- return;
+ return TRUE;
}
G_MODULE_EXPORT void
Modified: trunk/plugins/meta-raf/raf-meta.c
===================================================================
--- trunk/plugins/meta-raf/raf-meta.c 2011-02-19 12:09:40 UTC (rev 3817)
+++ trunk/plugins/meta-raf/raf-meta.c 2011-02-19 13:51:39 UTC (rev 3818)
@@ -21,10 +21,10 @@
#include <gtk/gtk.h>
#include <math.h>
-void rs_raf_load_meta(const gchar *service, RAWFILE *rawfile, guint offset,
RSMetadata *meta);
+gboolean rs_raf_load_meta(const gchar *service, RAWFILE *rawfile, guint
offset, RSMetadata *meta);
GdkPixbuf *rs_raf_load_thumb(RAWFILE *rawfile);
-void
+gboolean
rs_raf_load_meta(const gchar *service, RAWFILE *rawfile, guint offset,
RSMetadata *meta)
{
guint directory;
@@ -69,7 +69,9 @@
}
meta->thumbnail = rs_raf_load_thumb(rawfile);
rs_filetype_meta_load(".tiff", meta, rawfile,
meta->preview_start+12);
+ return TRUE;
}
+ return FALSE;
}
GdkPixbuf *
Modified: trunk/plugins/meta-tiff/tiff-meta.c
===================================================================
--- trunk/plugins/meta-tiff/tiff-meta.c 2011-02-19 12:09:40 UTC (rev 3817)
+++ trunk/plugins/meta-tiff/tiff-meta.c 2011-02-19 13:51:39 UTC (rev 3818)
@@ -1651,7 +1651,7 @@
/**
* Generic TIFF reader
*/
-static void
+static gboolean
tiff_load_meta(const gchar *service, RAWFILE *rawfile, guint offset,
RSMetadata *meta)
{
guint next = 0;
@@ -1694,16 +1694,18 @@
} while (next>0);
rs_metadata_normalize_wb(meta);
+ return !!meta->make;
}
/**
* .TIF reader
*/
-static void
+static gboolean
tif_load_meta(const gchar *service, RAWFILE *rawfile, guint offset, RSMetadata
*meta)
{
- tiff_load_meta(service, rawfile, offset, meta);
+ if (!tiff_load_meta(service, rawfile, offset, meta))
+ return FALSE;
/* Phase One and Samsung doesn't set this */
if ((meta->make == MAKE_PHASEONE) || (meta->make == MAKE_SAMSUNG))
@@ -1713,6 +1715,8 @@
if (!thumbnail_reader(service, rawfile, meta->thumbnail_start,
meta->thumbnail_length, meta))
if (!thumbnail_reader(service, rawfile, meta->preview_start,
meta->preview_length, meta))
thumbnail_store(raw_thumbnail_reader(service, meta),
meta);
+
+ return TRUE;
}
static gboolean
@@ -1851,7 +1855,7 @@
return pixbuf;
}
-static void
+static gboolean
sony_load_meta(const gchar *service, RAWFILE *rawfile, guint offset,
RSMetadata *meta)
{
SonyMeta sony;
@@ -1861,8 +1865,9 @@
meta->make = MAKE_SONY;
memcpy(&sony, meta, sizeof(RSMetadata));
- tif_load_meta(service, rawfile, offset, RS_METADATA(&sony));
+ gboolean ret = tif_load_meta(service, rawfile, offset,
RS_METADATA(&sony));
memcpy(meta, &sony, sizeof(RSMetadata));
+ return ret;
}
G_MODULE_EXPORT void
Modified: trunk/plugins/meta-x3f/x3f-meta.c
===================================================================
--- trunk/plugins/meta-x3f/x3f-meta.c 2011-02-19 12:09:40 UTC (rev 3817)
+++ trunk/plugins/meta-x3f/x3f-meta.c 2011-02-19 13:51:39 UTC (rev 3818)
@@ -108,7 +108,7 @@
guint value_offset; /* offset from start of CHARACTER data */
} __attribute__ ((packed)) X3F_PROPERTY_ENTRY;
-static void
+static gboolean
x3f_load_meta(const gchar *service, RAWFILE *rawfile, guint offset, RSMetadata
*meta)
{
gint i;
@@ -123,8 +123,7 @@
/* Check if this is infact a Sigma-file */
if (!raw_strcmp(rawfile, G_STRUCT_OFFSET(X3F_FILE, identifier), "FOVb",
4))
{
- raw_close_file(rawfile);
- return;
+ return FALSE;
}
raw_set_byteorder(rawfile, 0x4949); /* x3f is always little endian */
@@ -291,6 +290,7 @@
g_object_unref(pixbuf);
meta->thumbnail = pixbuf2;
}
+ return TRUE;
}
G_MODULE_EXPORT void
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit