[Rawstudio-commit] r2998 - branches/rawstudio-ng-color/plugins/meta-tiff

Anders Kvist anders at kvistmail.dk
Sat Jan 16 01:20:47 CET 2010


Author: akv
Date: 2010-01-16 01:20:47 +0100 (Sat, 16 Jan 2010)
New Revision: 2998

Modified:
   branches/rawstudio-ng-color/plugins/meta-tiff/tiff-meta.c
Log:
Moved generating of lens identifier to generate_lens_identifier().

Modified: branches/rawstudio-ng-color/plugins/meta-tiff/tiff-meta.c
===================================================================
--- branches/rawstudio-ng-color/plugins/meta-tiff/tiff-meta.c	2010-01-16 00:18:58 UTC (rev 2997)
+++ branches/rawstudio-ng-color/plugins/meta-tiff/tiff-meta.c	2010-01-16 00:20:47 UTC (rev 2998)
@@ -68,6 +68,7 @@
 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);
+static void generate_lens_identifier(RSMetadata *meta);
 
 typedef enum tiff_field_type
 {
@@ -217,7 +218,7 @@
 
 				/* Lens ID */
 				raw_get_short(rawfile, ifd.value_offset+44, &temp);
-				gfloat lens_id = (gfloat) temp;
+				meta->lens_id = (gfloat) temp;
 
 				/* Focalunits */
 				raw_get_short(rawfile, ifd.value_offset+50, &focalunits);
@@ -237,21 +238,6 @@
 				/* Min Aperture */
 				raw_get_short(rawfile, ifd.value_offset+54, &temp);
 				meta->lens_min_aperture = (gfloat) exp(CanonEv(temp)*log(2)/2);
-
-				/* Build identifier string */
-				GString *identifier = g_string_new("");
-				if (lens_id > 0)
-					g_string_append_printf(identifier, "ID:%.1f ",lens_id);
-				if (meta->lens_max_focal > 0)
-					g_string_append_printf(identifier, "maxF:%.0f ",meta->lens_max_focal);
-				if (meta->lens_min_focal > 0)
-					g_string_append_printf(identifier, "minF:%.0f ",meta->lens_min_focal);
-				if (meta->lens_max_aperture > 0)
-					g_string_append_printf(identifier, "maxF:%.1f ",meta->lens_max_aperture);
-				if (meta->lens_min_aperture > 0)
-					g_string_append_printf(identifier, "minF:%.0f ",meta->lens_min_aperture);
-				meta->lens_identifier = g_strdup(identifier->str);
-				g_string_free(identifier, TRUE);
 			}
 			break;
 		case 0x0004: /* CanonShotInfo */
@@ -1126,6 +1112,9 @@
 		}
 	}
 
+	/* Generate lens identifier */
+	generate_lens_identifier(meta);
+
 	return TRUE;
 }
 
@@ -1560,3 +1549,32 @@
 
 	rs_filetype_register_meta_loader(".tiff", "Generic TIFF meta loader", tiff_load_meta, 10);
 }
+
+void generate_lens_identifier(RSMetadata *meta)
+{
+	/* Build identifier string */
+	GString *identifier = g_string_new("");
+	if (meta->lens_id > 0)
+		g_string_append_printf(identifier, "ID:%.1f ",meta->lens_id);
+	if (meta->lens_max_focal > 0)
+		g_string_append_printf(identifier, "maxF:%.0f ",meta->lens_max_focal);
+	if (meta->lens_min_focal > 0)
+		g_string_append_printf(identifier, "minF:%.0f ",meta->lens_min_focal);
+	if (meta->lens_max_aperture > 0)
+		g_string_append_printf(identifier, "maxF:%.1f ",meta->lens_max_aperture);
+	if (meta->lens_min_aperture > 0)
+		g_string_append_printf(identifier, "minF:%.0f ",meta->lens_min_aperture);
+	if (strlen(identifier->str) > 0)
+		meta->lens_identifier = g_strdup(identifier->str);
+	else
+	{
+		/* Most likely a hacked compact */
+		if (meta->make_ascii > 0)
+			g_string_append_printf(identifier, "make:%s ",meta->make_ascii);
+		if (meta->model_ascii > 0)
+			g_string_append_printf(identifier, "model:%s ",meta->model_ascii);
+		if (strlen(identifier->str) > 0)
+			meta->lens_identifier = g_strdup(identifier->str);
+	}
+	g_string_free(identifier, TRUE);
+}




More information about the Rawstudio-commit mailing list