From: Jan P. <pa...@us...> - 2007-05-13 19:24:25
|
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: |