[tracker] tracker-extract: Cleaned up EXIF code



commit 669041567a5543313b034de01345970057d60ce1
Author: Martyn Russell <martyn lanedo com>
Date:   Mon Jan 18 11:22:39 2010 +0000

    tracker-extract: Cleaned up EXIF code

 src/tracker-extract/tracker-exif.c         |   92 ++++++++++++++--------------
 src/tracker-extract/tracker-exif.h         |   46 ++++++++++----
 src/tracker-extract/tracker-extract-jpeg.c |    2 +-
 3 files changed, 81 insertions(+), 59 deletions(-)
---
diff --git a/src/tracker-extract/tracker-exif.c b/src/tracker-extract/tracker-exif.c
index bd337ba..bb4e096 100644
--- a/src/tracker-extract/tracker-exif.c
+++ b/src/tracker-extract/tracker-exif.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008, Nokia
+ * Copyright (C) 2009, Nokia
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -26,12 +26,11 @@
 #include <ctype.h>
 #include <glib.h>
 
-#include "tracker-main.h"
-#include "tracker-exif.h"
-
 #include <libtracker-common/tracker-type-utils.h>
 #include <libtracker-common/tracker-utils.h>
 
+#include "tracker-main.h"
+#include "tracker-exif.h"
 
 #ifdef HAVE_LIBEXIF
 
@@ -40,6 +39,7 @@
 #define EXIF_DATE_FORMAT "%Y:%m:%d %H:%M:%S"
 
 #ifndef HAVE_STRCASESTR
+
 static gchar *
 strcasestr (const gchar *haystack,
             const gchar *needle)
@@ -65,10 +65,12 @@ strcasestr (const gchar *haystack,
 
 	return NULL;
 }
+
 #endif /* HAVE_STRCASESTR */
 
 static gchar *
-get_date (ExifData *exif, ExifTag tag)
+get_date (ExifData *exif, 
+          ExifTag   tag)
 {
 	ExifEntry *entry = exif_data_get_entry (exif, tag);
 
@@ -85,7 +87,8 @@ get_date (ExifData *exif, ExifTag tag)
 }
 
 static gchar *
-get_focal_length(ExifData *exif, ExifTag tag)
+get_focal_length (ExifData *exif, 
+                  ExifTag   tag)
 {
 	ExifEntry *entry = exif_data_get_entry (exif, tag);
 
@@ -105,7 +108,8 @@ get_focal_length(ExifData *exif, ExifTag tag)
 }
 
 static gchar *
-get_flash (ExifData *exif, ExifTag tag)
+get_flash (ExifData *exif, 
+           ExifTag   tag)
 {
 	ExifEntry *entry = exif_data_get_entry (exif, tag);
 
@@ -125,7 +129,8 @@ get_flash (ExifData *exif, ExifTag tag)
 }
 
 static gchar *
-get_fnumber (ExifData *exif, ExifTag tag)
+get_fnumber (ExifData *exif, 
+             ExifTag   tag)
 {
 	ExifEntry *entry = exif_data_get_entry (exif, tag);
 
@@ -154,7 +159,8 @@ get_fnumber (ExifData *exif, ExifTag tag)
 }
 
 static gchar *
-get_exposure_time (ExifData *exif, ExifTag tag)
+get_exposure_time (ExifData *exif, 
+                   ExifTag   tag)
 {
 	ExifEntry *entry = exif_data_get_entry (exif, tag);
 
@@ -189,7 +195,8 @@ get_exposure_time (ExifData *exif, ExifTag tag)
 }
 
 static gchar *
-get_orientation (ExifData *exif, ExifTag tag)
+get_orientation (ExifData *exif, 
+                 ExifTag   tag)
 {
 	ExifEntry *entry = exif_data_get_entry (exif, tag);
 
@@ -200,26 +207,19 @@ get_orientation (ExifData *exif, ExifTag tag)
 
 		if (g_ascii_strcasecmp (buf, "top - left") == 0)
 			return g_strdup ("nfo:orientation-top");
-		else
-		if (g_ascii_strcasecmp (buf, "top - right") == 0)
+		else if (g_ascii_strcasecmp (buf, "top - right") == 0)
 			return g_strdup ("nfo:orientation-top-mirror");
-		else
-		if (g_ascii_strcasecmp (buf, "bottom - right") == 0)
+		else if (g_ascii_strcasecmp (buf, "bottom - right") == 0)
 			return g_strdup ("nfo:orientation-bottom");
-		else
-		if (g_ascii_strcasecmp (buf, "bottom - left") == 0)
+		else if (g_ascii_strcasecmp (buf, "bottom - left") == 0)
 			return g_strdup ("nfo:orientation-bottom-mirror");
-		else
-		if (g_ascii_strcasecmp (buf, "left - top") == 0)
+		else if (g_ascii_strcasecmp (buf, "left - top") == 0)
 			return g_strdup ("nfo:orientation-left-mirror");
-		else
-		if (g_ascii_strcasecmp (buf, "right - top") == 0)
+		else if (g_ascii_strcasecmp (buf, "right - top") == 0)
 			return g_strdup ("nfo:orientation-right");
-		else
-		if (g_ascii_strcasecmp (buf, "right - bottom") == 0)
+		else if (g_ascii_strcasecmp (buf, "right - bottom") == 0)
 			return g_strdup ("nfo:orientation-right-mirror");
-		else
-		if (g_ascii_strcasecmp (buf, "left - bottom") == 0)
+		else if (g_ascii_strcasecmp (buf, "left - bottom") == 0)
 			return g_strdup ("nfo:orientation-left");
 
 		return g_strdup ("nfo:orientation-top");
@@ -228,9 +228,9 @@ get_orientation (ExifData *exif, ExifTag tag)
 	return NULL;
 }
 
-
 static gchar *
-get_metering_mode (ExifData *exif, ExifTag tag)
+get_metering_mode (ExifData *exif,
+                   ExifTag   tag)
 {
 	ExifEntry *entry = exif_data_get_entry (exif, tag);
 
@@ -241,32 +241,26 @@ get_metering_mode (ExifData *exif, ExifTag tag)
 
 		if (strcasestr (buf, "center"))
 			return g_strdup ("nmm:meteringMode-center-weighted-average");
-		else
-		if (strcasestr (buf, "average"))
+		else if (strcasestr (buf, "average"))
 			return g_strdup ("nmm:meteringMode-average");
-		else
-		if (strcasestr (buf, "spot"))
+		else if (strcasestr (buf, "spot"))
 			return g_strdup ("nmm:meteringMode-spot");
-		else
-		if (strcasestr (buf, "multispot"))
+		else if (strcasestr (buf, "multispot"))
 			return g_strdup ("nmm:meteringMode-multispot");
-		else
-		if (strcasestr (buf, "pattern"))
+		else if (strcasestr (buf, "pattern"))
 			return g_strdup ("nmm:meteringMode-pattern");
-		else
-		if (strcasestr (buf, "partial"))
+		else if (strcasestr (buf, "partial"))
 			return g_strdup ("nmm:meteringMode-partial");
 		else
-
-		return g_strdup ("nmm:meteringMode-other");
+			return g_strdup ("nmm:meteringMode-other");
 	}
 
 	return NULL;
 }
 
-
 static gchar *
-get_white_balance (ExifData *exif, ExifTag tag)
+get_white_balance (ExifData *exif, 
+                   ExifTag   tag)
 {
 	ExifEntry *entry = exif_data_get_entry (exif, tag);
 
@@ -288,7 +282,8 @@ get_white_balance (ExifData *exif, ExifTag tag)
 }
 
 static gchar *
-get_value (ExifData *exif, ExifTag tag)
+get_value (ExifData *exif, 
+           ExifTag   tag)
 {
 	ExifEntry *entry = exif_data_get_entry (exif, tag);
 
@@ -305,16 +300,22 @@ get_value (ExifData *exif, ExifTag tag)
 
 #endif /* HAVE_LIBEXIF */
 
-void
-tracker_read_exif (const unsigned char *buffer,
+gboolean
+tracker_exif_read (const unsigned char *buffer,
                    size_t               len,
                    const gchar         *uri,
                    TrackerExifData     *data)
 {
+	g_return_val_if_fail (buffer != NULL, FALSE);
+	g_return_val_if_fail (len < 1, FALSE);
+	g_return_val_if_fail (uri != NULL, FALSE);
+	
 #ifdef HAVE_LIBEXIF
 	ExifData *exif;
 
-	exif = exif_data_new();
+	exif = exif_data_new ();
+
+	g_return_val_if_fail (exit != NULL, FALSE);
 
 	exif_data_set_option (exif, EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS);
 	exif_data_unset_option (exif, EXIF_DATA_OPTION_FOLLOW_SPECIFICATION);
@@ -367,7 +368,8 @@ tracker_read_exif (const unsigned char *buffer,
 		data->copyright = get_value (exif, EXIF_TAG_COPYRIGHT);
 
 	exif_data_free (exif);
-
 #endif /* HAVE_LIBEXIF */
+
+	return TRUE;
 }
 
diff --git a/src/tracker-extract/tracker-exif.h b/src/tracker-extract/tracker-exif.h
index 09c06f1..65eccca 100644
--- a/src/tracker-extract/tracker-exif.h
+++ b/src/tracker-extract/tracker-exif.h
@@ -1,5 +1,5 @@
-/* Tracker Xmp - Xmp helper functions
- * Copyright (C) 2008, Nokia
+/*
+ * Copyright (C) 2009, Nokia
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public
@@ -19,22 +19,42 @@
  * Author: Philip Van Hoof <philip codeminded be>
  */
 
-#ifndef _TRACKER_EXIF_H_
-#define _TRACKER_EXIF_H_
+#ifndef __TRACKER_EXTRACT_EXIF_H__
+#define __TRACKER_EXTRACT_EXIF_H__
 
 #include <glib.h>
 
+G_BEGIN_DECLS
+
 typedef struct {
-	gchar *y_dimension, *x_dimension, *image_width, *document_name, *time, *time_original,
-		*artist, *user_comment, *description, *make, *model, *orientation,
-		*exposure_time, *fnumber, *flash, *focal_length, *iso_speed_ratings,
-		*metering_mode, *white_balance, *copyright;
+	gchar *y_dimension;
+	gchar *x_dimension;
+	gchar *image_width;
+	gchar *document_name;
+	gchar *time;
+	gchar *time_original;
+	gchar *artist;
+	gchar *user_comment;
+	gchar *description;
+	gchar *make;
+	gchar *model;
+	gchar *orientation;
+	gchar *exposure_time;
+	gchar *fnumber;
+	gchar *flash;
+	gchar *focal_length;
+	gchar *iso_speed_ratings;
+	gchar *metering_mode;
+	gchar *white_balance;
+	gchar *copyright;
 } TrackerExifData;
 
-void tracker_read_exif (const unsigned char *buffer,
-                        size_t               len,
-                        const gchar         *uri,
-                        TrackerExifData     *data);
+gboolean tracker_exif_read (const unsigned char *buffer,
+                            size_t               len,
+                            const gchar         *uri,
+                            TrackerExifData     *data);
+
+G_END_DECLS
 
-#endif /* _TRACKER_EXIF_H_ */
+#endif /* _TRACKER_EXTRACT_EXIF_H_ */
 
diff --git a/src/tracker-extract/tracker-extract-jpeg.c b/src/tracker-extract/tracker-extract-jpeg.c
index f03095b..41a0b76 100644
--- a/src/tracker-extract/tracker-extract-jpeg.c
+++ b/src/tracker-extract/tracker-extract-jpeg.c
@@ -231,7 +231,7 @@ extract_jpeg (const gchar          *uri,
 
 #ifdef HAVE_LIBEXIF
 				if (strncmp (EXIF_NAMESPACE, str, EXIF_NAMESPACE_LENGTH) == 0) {
-					tracker_read_exif ((unsigned char*) marker->data,
+					tracker_exif_read ((unsigned char*) marker->data,
 					                   len,
 					                   uri,
 					                   &ed);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]