Revision: 1605
http://geeqie.svn.sourceforge.net/geeqie/?rev=1605&view=rev
Author: nadvornik
Date: 2009-04-04 19:10:49 +0000 (Sat, 04 Apr 2009)
Log Message:
-----------
added metadata_read_GPS_coord
Modified Paths:
--------------
trunk/src/metadata.c
trunk/src/metadata.h
Modified: trunk/src/metadata.c
===================================================================
--- trunk/src/metadata.c 2009-04-04 16:42:54 UTC (rev 1604)
+++ trunk/src/metadata.c 2009-04-04 19:10:49 UTC (rev 1605)
@@ -515,7 +515,44 @@
g_free(string);
return ret;
}
+
+gdouble metadata_read_GPS_coord(FileData *fd, const gchar *key, gdouble
fallback)
+{
+ gdouble coord;
+ gchar *endptr;
+ gdouble deg, min, sec;
+ gboolean ok = FALSE;
+ gchar *string = metadata_read_string(fd, key, METADATA_PLAIN);
+ if (!string) return fallback;
+ deg = g_ascii_strtod(string, &endptr);
+ if (*endptr == ',')
+ {
+ min = g_ascii_strtod(endptr + 1, &endptr);
+ if (*endptr == ',')
+ sec = g_ascii_strtod(endptr + 1, &endptr);
+ else
+ sec = 0.0;
+
+
+ if (*endptr == 'S' || *endptr == 'W' || *endptr == 'N' ||
*endptr == 'E')
+ {
+ coord = deg + min /60.0 + sec / 3600.0;
+ ok = TRUE;
+ if (*endptr == 'S' || *endptr == 'W') coord = -coord;
+ }
+ }
+
+ if (!ok)
+ {
+ coord = fallback;
+ log_printf("unable to parse GPS coordinate '%s'\n", string);
+ }
+
+ g_free(string);
+ return coord;
+}
+
gboolean metadata_append_string(FileData *fd, const gchar *key, const char
*value)
{
gchar *str = metadata_read_string(fd, key, METADATA_PLAIN);
Modified: trunk/src/metadata.h
===================================================================
--- trunk/src/metadata.h 2009-04-04 16:42:54 UTC (rev 1604)
+++ trunk/src/metadata.h 2009-04-04 19:10:49 UTC (rev 1605)
@@ -30,6 +30,7 @@
GList *metadata_read_list(FileData *fd, const gchar *key, MetadataFormat
format);
gchar *metadata_read_string(FileData *fd, const gchar *key, MetadataFormat
format);
guint64 metadata_read_int(FileData *fd, const gchar *key, guint64 fallback);
+gdouble metadata_read_GPS_coord(FileData *fd, const gchar *key, gdouble
fallback);
gboolean metadata_append_string(FileData *fd, const gchar *key, const char
*value);
gboolean metadata_append_list(FileData *fd, const gchar *key, const GList
*values);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn