Mercurial > geeqie.yaz
comparison src/cache-loader.c @ 1288:10073464e6aa
use metadata_read_* functions where possible
switch exiv2 to utf8 charset
support for exiv2 formatting that depends on other tags:
http://dev.robotbattle.com/bugs/view.php?id=0000516
author | nadvornik |
---|---|
date | Sat, 07 Feb 2009 19:01:21 +0000 |
parents | 8b89e3ff286b |
children | c9949c19a6d0 |
comparison
equal
deleted
inserted
replaced
1287:5fdf258f9c24 | 1288:10073464e6aa |
---|---|
14 #include "cache-loader.h" | 14 #include "cache-loader.h" |
15 #include "cache.h" | 15 #include "cache.h" |
16 | 16 |
17 #include "filedata.h" | 17 #include "filedata.h" |
18 #include "exif.h" | 18 #include "exif.h" |
19 #include "metadata.h" | |
19 #include "md5-util.h" | 20 #include "md5-util.h" |
20 #include "ui_fileops.h" | 21 #include "ui_fileops.h" |
21 | 22 |
22 | 23 |
23 static gboolean cache_loader_process(CacheLoader *cl); | 24 static gboolean cache_loader_process(CacheLoader *cl); |
123 } | 124 } |
124 else if (cl->todo_mask & CACHE_LOADER_DATE && | 125 else if (cl->todo_mask & CACHE_LOADER_DATE && |
125 !cl->cd->have_date) | 126 !cl->cd->have_date) |
126 { | 127 { |
127 time_t date = -1; | 128 time_t date = -1; |
128 ExifData *exif; | 129 gchar *text; |
129 | 130 |
130 exif = exif_read_fd(cl->fd); | 131 text = metadata_read_string(cl->fd, "formatted.DateTime", METADATA_FORMATTED); |
131 if (exif) | 132 if (text) |
132 { | 133 { |
133 gchar *text; | 134 struct tm t; |
134 | 135 |
135 text = exif_get_data_as_text(exif, "formatted.DateTime"); | 136 memset(&t, 0, sizeof(t)); |
136 if (text) | 137 |
137 { | 138 if (sscanf(text, "%d:%d:%d %d:%d:%d", &t.tm_year, &t.tm_mon, &t.tm_mday, |
138 struct tm t; | 139 &t.tm_hour, &t.tm_min, &t.tm_sec) == 6) |
139 | 140 { |
140 memset(&t, 0, sizeof(t)); | 141 t.tm_year -= 1900; |
141 | 142 t.tm_mon -= 1; |
142 if (sscanf(text, "%d:%d:%d %d:%d:%d", &t.tm_year, &t.tm_mon, &t.tm_mday, | 143 t.tm_isdst = -1; |
143 &t.tm_hour, &t.tm_min, &t.tm_sec) == 6) | 144 date = mktime(&t); |
144 { | 145 } |
145 t.tm_year -= 1900; | 146 g_free(text); |
146 t.tm_mon -= 1; | |
147 t.tm_isdst = -1; | |
148 date = mktime(&t); | |
149 } | |
150 g_free(text); | |
151 } | |
152 exif_free_fd(cl->fd, exif); | |
153 } | 147 } |
154 | 148 |
155 cl->cd->date = date; | 149 cl->cd->date = date; |
156 cl->cd->have_date = TRUE; | 150 cl->cd->have_date = TRUE; |
157 | 151 |