Update of /cvsroot/libexif/libexif/libexif
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv31279
Modified Files:
exif-data.c exif-entry.c
Log Message:
1) Added support of a new Pentax makernote type, plus another makernote
type shared by Pentax & Casio
2) exif_entry_get_value now returns value of EXIF_TAG_SCENE_TYPE
Index: exif-entry.c
===================================================================
RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -p -d -r1.99 -r1.100
--- exif-entry.c 11 May 2007 06:20:14 -0000 1.99
+++ exif-entry.c 13 May 2007 19:24:01 -0000 1.100
@@ -975,9 +975,12 @@ exif_entry_get_value (ExifEntry *e, char
}
/* Fall through - EXIF_TAG_GPS_LATITUDE is same as INTEROPERABILITY_VERSION */
default:
- if (!e->components) break;
+ if (!e->size) break;
switch (e->format) {
case EXIF_FORMAT_UNDEFINED:
+ if ((e->tag == EXIF_TAG_SCENE_TYPE) && (e->size == 1)) {
+ snprintf (val, maxlen, "%i", e->data[0]);
+ }
break;
case EXIF_FORMAT_BYTE:
case EXIF_FORMAT_SBYTE:
Index: exif-data.c
===================================================================
RCS file: /cvsroot/libexif/libexif/libexif/exif-data.c,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -p -d -r1.92 -r1.93
--- exif-data.c 11 May 2007 06:20:13 -0000 1.92
+++ exif-data.c 13 May 2007 19:24:01 -0000 1.93
@@ -654,7 +654,9 @@ typedef enum {
EXIF_DATA_TYPE_MAKER_NOTE_NONE = 0,
EXIF_DATA_TYPE_MAKER_NOTE_CANON = 1,
EXIF_DATA_TYPE_MAKER_NOTE_OLYMPUS = 2,
- EXIF_DATA_TYPE_MAKER_NOTE_PENTAX = 3
+ EXIF_DATA_TYPE_MAKER_NOTE_PENTAX = 3,
+ EXIF_DATA_TYPE_MAKER_NOTE_NIKON = 4,
+ EXIF_DATA_TYPE_MAKER_NOTE_CASIO = 5
} ExifDataTypeMakerNote;
static ExifDataTypeMakerNote
@@ -688,10 +690,16 @@ exif_data_get_type_maker_note (ExifData
if (!strncasecmp (
exif_entry_get_value (em, value, sizeof(value)),
"Nikon", 5))
- return EXIF_DATA_TYPE_MAKER_NOTE_OLYMPUS;
+ return EXIF_DATA_TYPE_MAKER_NOTE_NIKON;
else
return EXIF_DATA_TYPE_MAKER_NOTE_PENTAX;
}
+ if ((e->size >= 8) && !memcmp (e->data, "AOC", 4)) {
+ return EXIF_DATA_TYPE_MAKER_NOTE_PENTAX;
+ }
+ if ((e->size >= 8) && !memcmp (e->data, "QVC", 4)) {
+ return EXIF_DATA_TYPE_MAKER_NOTE_CASIO;
+ }
return EXIF_DATA_TYPE_MAKER_NOTE_NONE;
}
@@ -849,9 +857,11 @@ exif_data_load_data (ExifData *data, con
*/
switch (exif_data_get_type_maker_note (data)) {
case EXIF_DATA_TYPE_MAKER_NOTE_OLYMPUS:
+ case EXIF_DATA_TYPE_MAKER_NOTE_NIKON:
data->priv->md = exif_mnote_data_olympus_new (data->priv->mem);
break;
case EXIF_DATA_TYPE_MAKER_NOTE_PENTAX:
+ case EXIF_DATA_TYPE_MAKER_NOTE_CASIO:
data->priv->md = exif_mnote_data_pentax_new (data->priv->mem);
break;
case EXIF_DATA_TYPE_MAKER_NOTE_CANON:
|