  
    
main.htmlMain Page     
classes.htmlData Structures     
files.htmlFiles     
dirs.htmlDirectories   
  
    
files.htmlFile List     
globals.htmlGlobals   
dir_20715630405f3b63e7ab7a5c713843d9.htmllibexif exif-entry.c
exif-entry_8c.htmlGo to the documentation of this file. 00001 /* exif-entry.c 00002  * 00003  * Copyright © 2001 Lutz Müller <lutz@users.sourceforge.net> 00004  * 00005  * This library is free software; you can redistribute it and/or 00006  * modify it under the terms of the GNU Lesser General Public 00007  * License as published by the Free Software Foundation; either 00008  * version 2 of the License, or (at your option) any later version. 00009  * 00010  * This library is distributed in the hope that it will be useful, 00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 00013  * Lesser General Public License for more details. 00014  * 00015  * You should have received a copy of the GNU Lesser General Public 00016  * License along with this library; if not, write to the 00017  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00018  * Boston, MA 02111-1307, USA. 00019  */ 00020 
00021 #include <config.h> 00022 
00023 #include < exif-entry_8h.htmllibexif/exif-entry.h > 00024 #include < exif-ifd_8h.htmllibexif/exif-ifd.h > 00025 #include < exif-utils_8h.htmllibexif/exif-utils.h > 00026 #include < i18n_8h.htmllibexif/i18n.h > 00027 
00028 #include <ctype.h> 00029 #include <stdlib.h> 00030 #include <stdio.h> 00031 #include <string.h> 00032 #include <time.h> 00033 #include <math.h> 00034 
struct__ExifEntryPrivate.html00035  struct struct__ExifEntryPrivate.html_ExifEntryPrivate 00036 {
struct__ExifEntryPrivate.html#afc965fe45249d62d9e38eaf0d8851a700037          unsigned int struct__ExifEntryPrivate.html#afc965fe45249d62d9e38eaf0d8851a7ref_count ;
00038 
struct__ExifEntryPrivate.html#a6b075cdb648cd0b45dad0be15c04a3600039          struct__ExifMem.htmlExifMem  * struct__ExifEntryPrivate.html#a6b075cdb648cd0b45dad0be15c04a36mem ;
00040 };
00041 
00042 /* This function is hidden in exif-data.c */ 00043 struct__ExifLog.htmlExifLog  * exif-data_8c.html#0e15b20cd01fc7f94e3e04b6601baf2fexif_data_get_log  ( struct__ExifData.htmlExifData  *);
00044 
00045 static void exif-entry_8c.html#06096be263e05bfcbc811dc74697a84400046  exif-entry_8c.html#06096be263e05bfcbc811dc74697a844exif_entry_log  ( struct__ExifEntry.htmlExifEntry  *e, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2ExifLogCode  exif-log_8c.html#84ec5624b4f8d60e5baac4d2a88c3d4acode , const char * exif-format_8c.html#822b1c4c8023ab88c62ef13a295cc9f4format , ...)
00047 {
00048         va_list args;
00049         struct__ExifLog.htmlExifLog  *l = NULL;
00050 
00051         if (e && e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent  && e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent )
00052                 l = exif-data_8c.html#0e15b20cd01fc7f94e3e04b6601baf2fexif_data_get_log  (e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent );
00053         va_start (args, format);
00054         exif-log_8c.html#1bf21046f51df753035a243cd91c9d18exif_logv  (l, code, "ExifEntry", format, args);
00055         va_end (args);
00056 }
00057 
00058 static void *
exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaa00059  exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  ( struct__ExifEntry.htmlExifEntry  *e, unsigned int i)
00060 {
00061         void *d;
00062         struct__ExifLog.htmlExifLog  *l = NULL;
00063 
00064         if (!e || !e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv  || !i) return NULL;
00065 
00066         d = exif-mem_8c.html#28065115ce31c8c9c7701df5b3f4ada5exif_mem_alloc  (e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv -> struct__ExifEntryPrivate.html#a6b075cdb648cd0b45dad0be15c04a36mem , i);
00067         if (d) return d;
00068 
00069         if (e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent  && e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent )
00070                 l = exif-data_8c.html#0e15b20cd01fc7f94e3e04b6601baf2fexif_data_get_log  (e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent );
00071         exif-log_8h.html#8e63681e2472538492dbd994318d55c1EXIF_LOG_NO_MEMORY  (l, "ExifEntry", i);
00072         return NULL;
00073 }
00074 
00075 static void *
exif-entry_8c.html#2cd5c6c22a104db22acb9ee803e1cb5e00076  exif-entry_8c.html#2cd5c6c22a104db22acb9ee803e1cb5eexif_entry_realloc  ( struct__ExifEntry.htmlExifEntry  *e, void *d_orig, unsigned int i)
00077 {
00078         void *d;
00079         struct__ExifLog.htmlExifLog  *l = NULL;
00080 
00081         if (!e || !e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv ) return NULL;
00082 
00083         if (!i) { exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv -> struct__ExifEntryPrivate.html#a6b075cdb648cd0b45dad0be15c04a36mem , d_orig); return NULL; }
00084 
00085         d = exif-mem_8c.html#e29eb09328c6a3b7e24fb69e0078942cexif_mem_realloc  (e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv -> struct__ExifEntryPrivate.html#a6b075cdb648cd0b45dad0be15c04a36mem , d_orig, i);
00086         if (d) return d;
00087 
00088         if (e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent  && e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent )
00089                 l = exif-data_8c.html#0e15b20cd01fc7f94e3e04b6601baf2fexif_data_get_log  (e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent );
00090         exif-log_8h.html#8e63681e2472538492dbd994318d55c1EXIF_LOG_NO_MEMORY  (l, "ExifEntry", i);
00091         return NULL;
00092 }
00093 
00094 struct__ExifEntry.htmlExifEntry  *
exif-entry_8h.html#83b606ff4b853c61b667f80b88e6738d00095  exif-entry_8c.html#83b606ff4b853c61b667f80b88e6738dexif_entry_new  (void)
00096 {
00097         struct__ExifMem.htmlExifMem  *mem = exif-mem_8c.html#44af1bc2ce5eecf37e731c5fe5dc98e0exif_mem_new_default  ();
00098         struct__ExifEntry.htmlExifEntry  *e = exif-entry_8c.html#f08048e0833b4398d6da5daf4f7cf068exif_entry_new_mem  (mem);
00099 
00100         exif-mem_8c.html#fd6959367336c1459125c43e3f16fec8exif_mem_unref  (mem);
00101 
00102         return e;
00103 }
00104 
00105 struct__ExifEntry.htmlExifEntry  *
exif-entry_8h.html#dccfeecf1da495598857d45e1b9352ff00106  exif-entry_8c.html#f08048e0833b4398d6da5daf4f7cf068exif_entry_new_mem  ( struct__ExifMem.htmlExifMem  *mem)
00107 {
00108         struct__ExifEntry.htmlExifEntry  *e = NULL;
00109 
00110         e = exif-mem_8c.html#28065115ce31c8c9c7701df5b3f4ada5exif_mem_alloc  (mem, sizeof ( struct__ExifEntry.htmlExifEntry ));
00111         if (!e) return NULL;
00112         e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv  = exif-mem_8c.html#28065115ce31c8c9c7701df5b3f4ada5exif_mem_alloc  (mem, sizeof ( struct__ExifEntryPrivate.htmlExifEntryPrivate ));
00113         if (!e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv ) { exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (mem, e); return NULL; }
00114         e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv -> struct__ExifEntryPrivate.html#afc965fe45249d62d9e38eaf0d8851a7ref_count  = 1;
00115 
00116         e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv -> struct__ExifEntryPrivate.html#a6b075cdb648cd0b45dad0be15c04a36mem  = mem;
00117         exif-mem_8c.html#5e444d744fdb19c0c8d4438d9aad2b0bexif_mem_ref  (mem);
00118 
00119         return e;
00120 }
00121 
00122 void exif-entry_8h.html#6aa728a5595d38edcdf6779ecf3f012600123  exif-entry_8c.html#6be1e72113992609cada34d41a90ad6eexif_entry_ref  ( struct__ExifEntry.htmlExifEntry  *e)
00124 {
00125         if (!e) return;
00126 
00127         e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv -> struct__ExifEntryPrivate.html#afc965fe45249d62d9e38eaf0d8851a7ref_count ++;
00128 }
00129 
00130 void exif-entry_8h.html#a746cbbb186a33051a48b55c8a25305c00131  exif-entry_8c.html#40616487cbcb314d606c831bad5ed1a7exif_entry_unref  ( struct__ExifEntry.htmlExifEntry  *e)
00132 {
00133         if (!e) return;
00134 
00135         e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv -> struct__ExifEntryPrivate.html#afc965fe45249d62d9e38eaf0d8851a7ref_count --;
00136         if (!e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv -> struct__ExifEntryPrivate.html#afc965fe45249d62d9e38eaf0d8851a7ref_count )
00137                 exif-entry_8c.html#d244261f743691a1e24c97cadb170f48exif_entry_free  (e);
00138 }
00139 
00140 void exif-entry_8h.html#2f0de1e888aceb792ad8ea22dd7b6b7e00141  exif-entry_8c.html#d244261f743691a1e24c97cadb170f48exif_entry_free  ( struct__ExifEntry.htmlExifEntry  *e)
00142 {
00143         if (!e) return;
00144 
00145         if (e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv ) {
00146                 struct__ExifMem.htmlExifMem  *mem = e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv -> struct__ExifEntryPrivate.html#a6b075cdb648cd0b45dad0be15c04a36mem ;
00147                 if (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata )
00148                         exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (mem, e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata );
00149                 exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (mem, e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv );
00150                 exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (mem, e);
00151                 exif-mem_8c.html#fd6959367336c1459125c43e3f16fec8exif_mem_unref  (mem);
00152         }
00153 }
00154 
00155 void exif-entry_8h.html#241ee7cc3ed51179e08e8b326a4644d200156  exif-entry_8c.html#8ed150debddcd76f55e476658101fb5cexif_entry_fix  ( struct__ExifEntry.htmlExifEntry  *e)
00157 {
00158         unsigned int i;
00159         exif-byte-order_8h.html#de4a9c512c9cd4723485181c5679f1d5ExifByteOrder  o;
00160         structExifRational.htmlExifRational  r;
00161         structExifSRational.htmlExifSRational  sr;
00162 
00163         if (!e || !e-> struct__ExifEntry.html#a9e6538a05fd7f63608b8b118fd623b3priv ) return;
00164 
00165         switch (e-> struct__ExifEntry.html#8597b70e3caaad35ee423d3fd8af57b7tag ) {
00166         
00167         /* These tags all need to be of format SHORT. */ 00168         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3cbaab1e42b06167e0a8cac756ed1462fEXIF_TAG_YCBCR_SUB_SAMPLING :
00169         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3678826b8e475de1aaeab9bc49fb81360EXIF_TAG_SUBJECT_AREA :
00170         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a31943d38588a1e2b950121603d0f0b99aEXIF_TAG_COLOR_SPACE :
00171         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36cb74c1f48bd3c8a126b60ba58c17054EXIF_TAG_PLANAR_CONFIGURATION :
00172         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a33a1ada499f287afbbdaf78e44b264760EXIF_TAG_SENSING_METHOD :
00173         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a39fcdefcdca22d77e9ab6d1abc5ebcc73EXIF_TAG_ORIENTATION :
00174         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36c1a344d0294535cb18148a5752510d1EXIF_TAG_YCBCR_POSITIONING :
00175         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a307b80d38b2a566c8eb4b98bf95369ab8EXIF_TAG_PHOTOMETRIC_INTERPRETATION :
00176         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a363b46ea52a17e258c91e5f0e38d72706EXIF_TAG_CUSTOM_RENDERED :
00177         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a32d4533cec7197c23daa683ec1d721364EXIF_TAG_EXPOSURE_MODE :
00178         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a38361060787edc552172b0b1c906ec3a3EXIF_TAG_WHITE_BALANCE :
00179         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3f82437f005930fb68825dabe3d8c7306EXIF_TAG_SCENE_CAPTURE_TYPE :
00180         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c311da54d06658ccb33647f50110c2adEXIF_TAG_GAIN_CONTROL :
00181         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3b6a2b20ffb597a901b977e7be77e1f34EXIF_TAG_SATURATION :
00182         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3637f4523ce00616379ba570c7aae1f84EXIF_TAG_CONTRAST :
00183         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c4a2f1505a505c24bbe3d8fda8d39679EXIF_TAG_SHARPNESS :
00184                 switch (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) {
00185                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1b6f3a3c87b514af859dc91a1a1760f51EXIF_FORMAT_LONG :
00186                         if (!e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent  || !e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent ) break;
00187                         o = exif-data_8c.html#6632980f1757aaca6021f389f3c37eb0exif_data_get_byte_order  (e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent );
00188                         for (i = 0; i < e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ; i++)
00189                                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (
00190                                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + i *
00191                                         exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (
00192                                         exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ), o,
00193                                         ( exif-utils_8h.html#23497f35004fb9e65a70b29fd1622a9cExifShort ) exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (
00194                                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + i *
00195                                         exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (
00196                                         exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1b6f3a3c87b514af859dc91a1a1760f51EXIF_FORMAT_LONG ), o));
00197                         e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = EXIF_FORMAT_SHORT;
00198                         e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  *
00199                                 exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat );
00200                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#2cd5c6c22a104db22acb9ee803e1cb5eexif_entry_realloc  (e, e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
00201                         exif-entry_8c.html#06096be263e05bfcbc811dc74697a844exif_entry_log  (e, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG ,
00202                                 i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Tag '%s' was of format '%s' (which is " 00203                                 "against specification) and has been " 00204                                 "changed to format '%s'."),
00205                                 exif-tag_8c.html#89a0b669700f3021f3beddea6fcd8573exif_tag_get_name  (e-> struct__ExifEntry.html#8597b70e3caaad35ee423d3fd8af57b7tag ), 
00206                                 exif-format_8c.html#4f5c75106bce78a857bf1ad61cae2f16exif_format_get_name  (EXIF_FORMAT_LONG),
00207                                 exif-format_8c.html#4f5c75106bce78a857bf1ad61cae2f16exif_format_get_name  (EXIF_FORMAT_SHORT));
00208                         break;
00209                 case EXIF_FORMAT_SHORT:
00210                 default:
00211                         break;
00212                 }
00213                 break;
00214 
00215         /* All these tags need to be of format 'Rational'. */ 00216         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a371c773e5cda591ffbc518ad05c383c4eEXIF_TAG_FNUMBER :
00217         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a38e19da054577d1da2886c22630413e22EXIF_TAG_APERTURE_VALUE :
00218         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a35ebb4a414149babd3ac2ac065b6cace0EXIF_TAG_EXPOSURE_TIME :
00219         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36ea48506d31093bded0a0b8792c6ed88EXIF_TAG_FOCAL_LENGTH :
00220                 switch (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) {
00221                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1e9eddc5849e3352d58633256ac10caf1EXIF_FORMAT_SRATIONAL :
00222                         if (!e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent  || !e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent ) break;
00223                         o = exif-data_8c.html#6632980f1757aaca6021f389f3c37eb0exif_data_get_byte_order  (e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent );
00224                         for (i = 0; i < e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ; i++) {
00225                                 sr = exif-utils_8c.html#4fa17bc36688c952bba26aa81ca4fa63exif_get_srational  (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + i * 
00226                                         exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (
00227                                                 exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1e9eddc5849e3352d58633256ac10caf1EXIF_FORMAT_SRATIONAL ), o);
00228                                 r. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  = ( exif-utils_8h.html#1601686195534cc6337c596fb8af54faExifLong ) sr. structExifSRational.html#3b40097e1e985bcbbc26557e7387d51dnumerator ;
00229                                 r. structExifRational.html#9ed7ed672889fd57c6862005e07db87cdenominator  = ( exif-utils_8h.html#1601686195534cc6337c596fb8af54faExifLong ) sr. structExifSRational.html#650f320ac105d445be79a1f0da3c3bb0denominator ;
00230                                 exif-utils_8c.html#851d763acf065580a0872f56b5aed472exif_set_rational  (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + i *
00231                                         exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (
00232                                                 exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL ), o, r);
00233                         }
00234                         e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL ;
00235                         exif-entry_8c.html#06096be263e05bfcbc811dc74697a844exif_entry_log  (e, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG ,
00236                                 i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Tag '%s' was of format '%s' (which is " 00237                                 "against specification) and has been " 00238                                 "changed to format '%s'."),
00239                                 exif-tag_8c.html#89a0b669700f3021f3beddea6fcd8573exif_tag_get_name  (e-> struct__ExifEntry.html#8597b70e3caaad35ee423d3fd8af57b7tag ),
00240                                 exif-format_8c.html#4f5c75106bce78a857bf1ad61cae2f16exif_format_get_name  ( exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1e9eddc5849e3352d58633256ac10caf1EXIF_FORMAT_SRATIONAL ),
00241                                 exif-format_8c.html#4f5c75106bce78a857bf1ad61cae2f16exif_format_get_name  ( exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL ));
00242                         break;
00243                 default:
00244                         break;
00245                 }
00246                 break;
00247 
00248         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3e7c929a3ba170a660c017b0f04c8d2cbEXIF_TAG_USER_COMMENT :
00249 
00250                 /* Format needs to be UNDEFINED. */ 00251                 if (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  != exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED ) {
00252                         exif-entry_8c.html#06096be263e05bfcbc811dc74697a844exif_entry_log  (e, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG ,
00253                                 i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Tag 'UserComment' had invalid format '%s'. " 00254                                 "Format has been set to 'undefined'."),
00255                                 exif-format_8c.html#4f5c75106bce78a857bf1ad61cae2f16exif_format_get_name  (e->format));
00256                         e->format = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED ;
00257                 }
00258 
00259                 /* Some packages like Canon ZoomBrowser EX 4.5 store 00260                    only one zero byte followed by 7 bytes of rubbish */ 00261                 if ((e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  >= 8) && (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata [0] == 0)) {
00262                         memcpy(e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "\0\0\0\0\0\0\0\0", 8);
00263                 }
00264 
00265                 /* There need to be at least 8 bytes. */ 00266                 if (e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  < 8) {
00267                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#2cd5c6c22a104db22acb9ee803e1cb5eexif_entry_realloc  (e, e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , 8 + e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
00268                         if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) {
00269                                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = 0;
00270                                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 0;
00271                                 return;
00272                         }
00273 
00274                         /* Assume ASCII */ 00275                         memmove (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + 8, e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
00276                         memcpy (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "ASCII\0\0\0", 8);
00277                         e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  += 8;
00278                         e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  += 8;
00279                         exif-entry_8c.html#06096be263e05bfcbc811dc74697a844exif_entry_log  (e, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG ,
00280                                 i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Tag 'UserComment' has been expanded to at " 00281                                 "least 8 bytes in order to follow the " 00282                                 "specification."));
00283                         break;
00284                 }
00285 
00286                 /* 00287                  * If the first 8 bytes are empty and real data starts 00288                  * afterwards, let's assume ASCII and claim the 8 first 00289                  * bytes for the format specifyer. 00290                  */ 00291                 for (i = 0; (i < e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize ) && !e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata [i]; i++);
00292                 if (!i) for ( ; (i < e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize ) && (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata [i] == ' '); i++);
00293                 if ((i >= 8) && (i < e-> exif-format_8c.html#c1953082f2467dad4bbec15ebbc57a21size )) {
00294                         exif-entry_8c.html#06096be263e05bfcbc811dc74697a844exif_entry_log  (e, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG ,
00295                                 "Tag 'UserComment' is not empty but does not start with " 00296                                 "format identifyer. This has been fixed.");
00297                         memcpy (e->data, "ASCII\0\0\0", 8);
00298                         break;
00299                 }
00300 
00301                 /* 00302                  * First 8 bytes need to follow the specification. If they don't, 00303                  * assume ASCII. 00304                  */ 00305                 if (memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "ASCII\0\0\0"     , 8) &&
00306                     memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "UNICODE\0"       , 8) &&
00307                     memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "JIS\0\0\0\0\0"   , 8) &&
00308                     memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "\0\0\0\0\0\0\0\0", 8)) {
00309                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#2cd5c6c22a104db22acb9ee803e1cb5eexif_entry_realloc  (e, e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , 8 + e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
00310                         if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) {
00311                                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = 0;
00312                                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 0;
00313                                 break;
00314                         }
00315 
00316                         /* Assume ASCII */ 00317                         memmove (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + 8, e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
00318                         memcpy (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "ASCII\0\0\0", 8);
00319                         e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  += 8;
00320                         e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  += 8;
00321                         exif-entry_8c.html#06096be263e05bfcbc811dc74697a844exif_entry_log  (e, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG ,
00322                                 i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Tag 'UserComment' did not start with " 00323                                 "format identifier. This has been fixed."));
00324                         break;
00325                 }
00326 
00327                 break;
00328         default:
00329                 break;
00330         }
00331 }
00332 
00333 void exif-entry_8h.html#d140870ed6dc33f0b64d30d240a1a8d900334  exif-entry_8c.html#5ca4836f19f4ce4f31797383289c4e36exif_entry_dump  ( struct__ExifEntry.htmlExifEntry  *e, unsigned int indent)
00335 {
00336         char buf[1024];
00337         char mnote-canon-entry_8c.html#085f2f5ed7bf991a182ba0cb960f1c7bvalue [1024];
00338         unsigned int i;
00339 
00340         for (i = 0; i < 2 * indent; i++)
00341                 buf[i] = ' ';
00342         buf[i] = '\0';
00343 
00344         if (!e)
00345                 return;
00346 
00347         printf ("%sTag: 0x%x ('%s')\n", buf, e-> struct__ExifEntry.html#8597b70e3caaad35ee423d3fd8af57b7tag ,
00348                 exif-tag_8c.html#89a0b669700f3021f3beddea6fcd8573exif_tag_get_name  (e-> struct__ExifEntry.html#8597b70e3caaad35ee423d3fd8af57b7tag ));
00349         printf ("%s  Format: %i ('%s')\n", buf, e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ,
00350                 exif-format_8c.html#4f5c75106bce78a857bf1ad61cae2f16exif_format_get_name  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ));
00351         printf ("%s  Components: %i\n", buf, (int) e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components );
00352         printf ("%s  Size: %i\n", buf, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
00353         printf ("%s  Value: %s\n", buf, exif-entry_8c.html#cc379259f966d0b0e024dba3f0d7c42bexif_entry_get_value  (e, value, sizeof(value)));
00354 }
00355 
exif-entry_8c.html#8d9e93c2defcbe821864fe6b8d257c6b00356  #define CF(entry,target,v,maxlen)                                       \ 00357 {                                                                       \ 00358         if (entry->format != target) {                                  \ 00359                 exif_entry_log (entry, EXIF_LOG_CODE_CORRUPT_DATA,      \ 00360                         _("The tag '%s' contains data of an invalid "   \ 00361                         "format ('%s', expected '%s')."),               \ 00362                         exif_tag_get_name (entry->tag),                 \ 00363                         exif_format_get_name (entry->format),           \ 00364                         exif_format_get_name (target));                 \ 00365                 break;                                                  \ 00366         }                                                               \ 00367 } 00368 exif-entry_8c.html#1e7c19adc6a8f2c83b03fe947da0053500369  #define CC(entry,target,v,maxlen)                                       \ 00370 {                                                                       \ 00371         if (entry->components != target) {                              \ 00372                 exif_entry_log (entry, EXIF_LOG_CODE_CORRUPT_DATA,      \ 00373                         _("The tag '%s' contains an invalid number of " \ 00374                           "components (%i, expected %i)."),             \ 00375                         exif_tag_get_name (entry->tag),         \ 00376                         (int) entry->components, (int) target);         \ 00377                 break;                                                  \ 00378         }                                                               \ 00379 } 00380 00381 static struct {
exif-entry_8c.html#00b5e67d036a56d6bde55b838adcd30400382          exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3ExifTag  mnote-canon-tag_8c.html#d88e1213ca240fe301a9559678bddd9btag ;
exif-entry_8c.html#f42d0a8f962acfca0e0e18fcde5df63500383          const char * exif-entry_8c.html#f42d0a8f962acfca0e0e18fcde5df635strings [10];
00384 } exif-entry_8c.html#5b6b3ce3455034c432c5bf858d9a6983list [] = {
00385   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36cb74c1f48bd3c8a126b60ba58c17054EXIF_TAG_PLANAR_CONFIGURATION ,
00386     { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("chunky format"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("planar format"), NULL}},
00387   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a33a1ada499f287afbbdaf78e44b264760EXIF_TAG_SENSING_METHOD ,
00388     { "", i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Not defined"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("One-chip color area sensor"),
00389       i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Two-chip color area sensor"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Three-chip color area sensor"),
00390       i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Color sequential area sensor"), "", i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Trilinear sensor"),
00391       i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Color sequential linear sensor"), NULL}},
00392   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a39fcdefcdca22d77e9ab6d1abc5ebcc73EXIF_TAG_ORIENTATION ,
00393     { "", i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("top - left"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("top - right"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("bottom - right"),
00394       i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("bottom - left"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("left - top"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("right - top"),
00395       i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("right - bottom"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("left - bottom"), NULL}},
00396   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36c1a344d0294535cb18148a5752510d1EXIF_TAG_YCBCR_POSITIONING ,
00397     { "", i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("centered"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("co-sited"), NULL}},
00398   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a307b80d38b2a566c8eb4b98bf95369ab8EXIF_TAG_PHOTOMETRIC_INTERPRETATION , {"", i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("RGB"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("YCbCr"), NULL}},
00399   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a363b46ea52a17e258c91e5f0e38d72706EXIF_TAG_CUSTOM_RENDERED ,
00400     { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Normal process"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Custom process"), NULL}},
00401   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a32d4533cec7197c23daa683ec1d721364EXIF_TAG_EXPOSURE_MODE ,
00402     { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Auto exposure"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Manual exposure"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Auto bracket"), NULL}},
00403   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a38361060787edc552172b0b1c906ec3a3EXIF_TAG_WHITE_BALANCE ,
00404     { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Auto white balance"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Manual white balance"), NULL}},
00405   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3f82437f005930fb68825dabe3d8c7306EXIF_TAG_SCENE_CAPTURE_TYPE ,
00406     { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Standard"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Landscape"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Portrait"),
00407       i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Night scene"), NULL}},
00408   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c311da54d06658ccb33647f50110c2adEXIF_TAG_GAIN_CONTROL ,
00409     { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Normal"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Low gain up"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("High gain up"),
00410       i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Low gain down"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("High gain down"), NULL}},
00411   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3b6a2b20ffb597a901b977e7be77e1f34EXIF_TAG_SATURATION ,
00412     { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Normal"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Low saturation"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("High saturation"), NULL}},
00413   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3637f4523ce00616379ba570c7aae1f84EXIF_TAG_CONTRAST  , { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Normal"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Soft"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Hard"), NULL}},
00414   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c4a2f1505a505c24bbe3d8fda8d39679EXIF_TAG_SHARPNESS , { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Normal"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Soft"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Hard"), NULL}},
00415   { 0, {NULL}}
00416 };
00417 
00418 static struct {
exif-entry_8c.html#00b5e67d036a56d6bde55b838adcd30400419    exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3ExifTag  mnote-canon-tag_8c.html#d88e1213ca240fe301a9559678bddd9btag ;
00420   struct {
exif-entry_8c.html#de656d9dbc961315338502c279442a7a00421      int exif-entry_8c.html#de656d9dbc961315338502c279442a7aindex ;
exif-entry_8c.html#cca46b64a71344abcf991005e7538e8600422      const char * exif-entry_8c.html#cca46b64a71344abcf991005e7538e86values [4];
00423   } exif-entry_8c.html#1a2e3f9570a7b119e5ffc2124239ec0aelem [25];
00424 } exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [] = {
00425   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a320f8cd020fee78bde972176f7305a9a6EXIF_TAG_METERING_MODE ,
00426     { {  0, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Unknown"), NULL}},
00427       {  1, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Average"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("avg"), NULL}},
00428       {  2, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Center-Weighted Average"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Center-Weight"), NULL}},
00429       {  3, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Spot"), NULL}},
00430       {  4, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Multi Spot"), NULL}},
00431       {  5, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Pattern"), NULL}},
00432       {  6, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Partial"), NULL}},
00433       {255, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Other"), NULL}},
00434       {  0, {NULL}}}},
00435   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3381904a6b5970c5dd4b70909a836f108EXIF_TAG_COMPRESSION ,
00436     { {1, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Uncompressed"), NULL}},
00437       {5, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("LZW compression"), NULL}},
00438       {6, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("JPEG compression"), NULL}},
00439       {0, {NULL}}}},
00440   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a30ddc0ecc7ad7c3637de2c390868c7754EXIF_TAG_LIGHT_SOURCE ,
00441     { {  0, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Unknown"), NULL}},
00442       {  1, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Daylight"), NULL}},
00443       {  2, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Fluorescent"), NULL}},
00444       {  3, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Tungsten incandescent light"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Tungsten"), NULL}},
00445       {  4, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash"), NULL}},
00446       {  9, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Fine weather"), NULL}},
00447       { 10, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Cloudy weather"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("cloudy"), NULL}},
00448       { 11, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Shade"), NULL}},
00449       { 12, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Daylight fluorescent"), NULL}},
00450       { 13, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Day white fluorescent"), NULL}},
00451       { 14, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Cool white fluorescent"), NULL}},
00452       { 15, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("White fluorescent"), NULL}},
00453       { 17, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Standard light A"), NULL}},
00454       { 18, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Standard light B"), NULL}},
00455       { 19, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Standard light C"), NULL}},
00456       { 20, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("D55"), NULL}},
00457       { 21, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("D65"), NULL}},
00458       { 22, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("D75"), NULL}},
00459       { 24, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("ISO studio tungsten"),NULL}},
00460       {255, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Other"), NULL}},
00461       {  0, {NULL}}}},
00462   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3be91845879d065a7d260b1d4c251d932EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT ,
00463     { {2, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Inch"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("in"), NULL}},
00464       {3, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Centimeter"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("cm"), NULL}},
00465       {0, {NULL}}}},
00466   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a33f51094c8ac486f59f47b6ecac38f6f4EXIF_TAG_RESOLUTION_UNIT ,
00467     { {2, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Inch"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("in"), NULL}},
00468       {3, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Centimeter"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("cm"), NULL}}, 
00469       {0, {NULL}}}},
00470   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a39c6e3ce4a53dfa51b85f3d04ee9c058dEXIF_TAG_EXPOSURE_PROGRAM ,
00471     { {0, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Not defined"), NULL}},
00472       {1, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Manual"), NULL}},
00473       {2, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Normal program"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Normal"), NULL}},
00474       {3, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Aperture priority"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Aperture"), NULL}},
00475       {4, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Shutter priority"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Shutter"), NULL}},
00476       {5, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Creative program (biased toward depth of field)"),
00477            i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Creative"), NULL}},
00478       {6, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Creative program (biased toward fast shutter speed)"),
00479            i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Action"), NULL}},
00480       {7, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Portrait mode (for closeup photos with the background out " 00481               "of focus)"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Portrait"), NULL}},
00482       {8, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Landscape mode (for landscape photos with the background " 00483               "in focus)"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Landscape"), NULL}},
00484       {0, {NULL}}}},
00485   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a33a9bef96aa2c67acce8b6295a4ccda7fEXIF_TAG_FLASH ,
00486     { {0x0000, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash did not fire."), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("no flash"), NULL}},
00487       {0x0001, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired."), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("flash"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Yes"), NULL}},
00488       {0x0005, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Strobe return light not detected."), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("W/o strobe"),
00489                 NULL}},
00490       {0x0007, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Strobe return light detected."), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("W. strobe"), NULL}},
00491       {0x0009, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, compulsatory flash mode"), NULL}},
00492       {0x000d, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, compulsatory flash mode, return light " 00493                    "not detected."), NULL}},
00494       {0x000f, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, compulsatory flash mode, return light " 00495                    "detected."), NULL}},
00496       {0x0010, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash did not fire, compulsatory flash mode."), NULL}},
00497       {0x0018, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash did not fire, auto mode."), NULL}},
00498       {0x0019, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, auto mode."), NULL}},
00499       {0x001d, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, auto mode, return light not detected."),
00500                 NULL}},
00501       {0x001f, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, auto mode, return light detected."), NULL}},
00502       {0x0020, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("No flash function."),NULL}},
00503       {0x0041, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, red-eye reduction mode."), NULL}},
00504       {0x0045, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, red-eye reduction mode, return light " 00505                    "not detected."), NULL}},
00506       {0x0047, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, red-eye reduction mode, return light " 00507                    "detected."), NULL}},
00508       {0x0049, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, compulsory flash mode, red-eye reduction " 00509                    "mode."), NULL}},
00510       {0x004d, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, compulsory flash mode, red-eye reduction " 00511                   "mode, return light not detected"), NULL}},
00512       {0x004f, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, compulsory flash mode, red-eye reduction, " 00513                    "return light detected"), NULL}},
00514       {0x0058, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash did not fire, auto mode, red-eye reduction mode"), NULL}},
00515       {0x0059, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, auto mode, red-eye reduction mode"), NULL}},
00516       {0x005d, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, auto mode, return light not detected, " 00517                    "red-eye reduction mode."), NULL}},
00518       {0x005f, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash fired, auto mode, return light detected, " 00519                    "red-eye reduction mode."), NULL}},
00520       {0x0000, {NULL}}}},
00521   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a391aab31505330f302c7c8ac283d68892EXIF_TAG_SUBJECT_DISTANCE_RANGE , 
00522     { {0, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Unknown"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("?"), NULL}},
00523       {1, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Macro"), NULL}},
00524       {2, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Close view"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("close"), NULL}},
00525       {3, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Distant view"), i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("distant"), NULL}},
00526       {0, {NULL}}}},
00527   { exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a31943d38588a1e2b950121603d0f0b99aEXIF_TAG_COLOR_SPACE ,
00528     { {1, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("sRGB"), NULL}},
00529       {2, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Adobe RGB"), NULL}},
00530       {0xffff, { i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Uncalibrated"), NULL}}}},
00531   {0, }
00532 };
00533 
00534 const char *
exif-entry_8h.html#01240594ba79c71d8ff90e1422dda6db00535  exif-entry_8c.html#cc379259f966d0b0e024dba3f0d7c42bexif_entry_get_value  ( struct__ExifEntry.htmlExifEntry  *e, char *val, unsigned int maxlen)
00536 {
00537         unsigned int i, j, k, l, ts;
00538         const unsigned char *t;
00539         exif-utils_8h.html#a6ac75487648733b5d068968a3dd61f1ExifByte  v_byte;
00540         exif-utils_8h.html#23497f35004fb9e65a70b29fd1622a9cExifShort  v_short, v_short2, v_short3, v_short4;
00541         exif-utils_8h.html#1601686195534cc6337c596fb8af54faExifLong  v_long;
00542         exif-utils_8h.html#afe779ceacc4b89cb135bce740185f17ExifSLong  v_slong;
00543         structExifRational.htmlExifRational  v_rat;
00544         structExifSRational.htmlExifSRational  v_srat;
00545         char b[64];
00546         const char *c;
00547         exif-byte-order_8h.html#de4a9c512c9cd4723485181c5679f1d5ExifByteOrder  o;
00548         double d;
00549         struct__ExifEntry.htmlExifEntry  *entry;
00550         static struct {
00551                 char *label;
00552                 char major, minor;
00553         } versions[] = {
00554                 {"0110", 1,  1},
00555                 {"0120", 1,  2},
00556                 {"0200", 2,  0},
00557                 {"0210", 2,  1},
00558                 {"0220", 2,  2},
00559                 {"0221", 2, 21},
00560                 {NULL  , 0,  0}
00561         };
00562 
00563         /* FIXME: This belongs to somewhere else. */ 00564         /* libexif should use the default system locale. 00565          * If an application specifically requires UTF-8, then we 00566          * must give the application a way to tell libexif that. 00567          * 00568          * bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); 00569          */ 00570         i18n_8h.html#49158295fb1f28fd518de4ac881d5d3cbindtextdomain  (GETTEXT_PACKAGE, LOCALEDIR);
00571 
00572         /* We need the byte order */ 00573         if (!e || !e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent  || !e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent )
00574                 return val;
00575         o = exif-data_8c.html#6632980f1757aaca6021f389f3c37eb0exif_data_get_byte_order  (e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent );
00576 
00577         memset (val, 0, maxlen);
00578         memset (b, 0, sizeof (b));
00579         maxlen--;
00580 
00581         /* Sanity check */ 00582         if (e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  != e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  * exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat )) {
00583                 snprintf (val, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Invalid size of entry (%i, " 00584                         "expected %li x %i)."), e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize , e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ,
00585                                 exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ));
00586                 return val;
00587         }
00588 
00589         switch (e-> struct__ExifEntry.html#8597b70e3caaad35ee423d3fd8af57b7tag ) {
00590         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3e7c929a3ba170a660c017b0f04c8d2cbEXIF_TAG_USER_COMMENT :
00591 
00592                 /* 00593                  * The specification says UNDEFINED, but some 00594                  * manufacturers don't care and use ASCII. If this is the 00595                  * case here, only refuse to read it if there is no chance 00596                  * of finding readable data. 00597                  */ 00598                 if ((e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  != exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII ) || 
00599                     (e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  <= 8) ||
00600                     ( memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "ASCII\0\0\0"  , 8) &&
00601                       memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "UNICODE\0"    , 8) &&
00602                       memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "JIS\0\0\0\0\0", 8) &&
00603                       memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "\0\0\0\0\0\0\0\0", 8)))
00604                         mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED , val, maxlen);
00605 
00606                 /* 00607                  * Note that, according to the specification (V2.1, p 40), 00608                  * the user comment field does not have to be 00609                  * NULL terminated. 00610                  */ 00611                 if ((e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  >= 8) && !memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "ASCII\0\0\0", 8)) {
00612                         strncpy (val, (char *) e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + 8, exif-loader_8c.html#9b073a1e97ac8f23636b9d2d443525a5MIN  (e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  - 8, maxlen));
00613                         break;
00614                 }
00615                 if ((e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  >= 8) && !memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "UNICODE\0", 8)) {
00616                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Unsupported UNICODE string"), maxlen);
00617                         break;
00618                 }
00619                 if ((e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  >= 8) && !memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "JIS\0\0\0\0\0", 8)) {
00620                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Unsupported JIS string"), maxlen);
00621                         break;
00622                 }
00623 
00624                 /* Check if there is really some information in the tag. */ 00625                 for (i = 0; (i < e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize ) &&
00626                             (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata [i] || (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata [i] == ' ')); i++);
00627                 if (i == e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize ) break;
00628 
00629                 /* 00630                  * If we reach this point, the tag does not 00631                  * comply with the standard and seems to contain data. 00632                  * Print as much as possible. 00633                  */ 00634                 exif-entry_8c.html#06096be263e05bfcbc811dc74697a844exif_entry_log  (e, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG ,
00635                         i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Tag UserComment does not comply " 00636                         "with standard but contains data."));
00637                 for (; (i < e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize )  && (strlen (val) < maxlen - 1); i++) {
00638                         exif-entry_8c.html#06096be263e05bfcbc811dc74697a844exif_entry_log  (e, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG ,
00639                                 i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Byte at position %i: 0x%02x"), i, e->data[i]);
00640                         val[strlen (val)] =
00641                                 isprint (e->data[i]) ? e->data[i] : '.';
00642                 }
00643                 break;
00644 
00645         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a32798cb4925168fcaa81c9719fac89072EXIF_TAG_EXIF_VERSION :
00646                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED , val, maxlen);
00647                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 4, val, maxlen);
00648                 strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Unknown Exif Version"), maxlen);
00649                 for (i = 0; versions[i].label; i++) {
00650                         if (!memcmp (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , versions[i].label, 4)) {
00651                                 snprintf (val, maxlen,
00652                                         i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Exif Version %d.%d"),
00653                                         versions[i].major,
00654                                         versions[i].minor);
00655                                 break;
00656                         }
00657                 }
00658                 break;
00659         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a315d977a5515ebcb7c730b1d47dc6424cEXIF_TAG_FLASH_PIX_VERSION :
00660                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED , val, maxlen);
00661                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 4, val, maxlen);
00662                 if (!memcmp (e->data, "0100", 4))
00663                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("FlashPix Version 1.0"), maxlen);
00664                 else if (!memcmp (e->data, "0101", 4))
00665                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("FlashPix Version 1.01"), maxlen);
00666                 else 00667                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Unknown FlashPix Version"), maxlen);
00668                 break;
00669         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3865279d2613267256fdaa7f0b282527bEXIF_TAG_COPYRIGHT :
00670                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII , val, maxlen);
00671 
00672                 /* 00673                  * First part: Photographer. 00674                  * Some cameras store a string like "   " here. Ignore it. 00675                  */ 00676                 if (e->size && e->data &&
00677                     (strspn ((char *)e->data, " ") != strlen ((char *) e->data)))
00678                         strncpy (val, (char *) e->data, exif-loader_8c.html#9b073a1e97ac8f23636b9d2d443525a5MIN  (maxlen, e->size));
00679                 else 00680                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("[None]"), maxlen);
00681                 strncat (val, " ", maxlen - strlen (val));
00682                 strncat (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("(Photographer)"), maxlen - strlen (val));
00683 
00684                 /* Second part: Editor. */ 00685                 strncat (val, " - ", maxlen - strlen (val));
00686                 if (e->size && e->data) {
00687                     t = e->data + strlen ((char *) e->data) + 1;
00688                     ts = e->data + e->size - t;
00689                     if ((ts > 0) && (strspn ((char *)t, " ") != ts))
00690                         strncat (val, (char *)t, exif-loader_8c.html#9b073a1e97ac8f23636b9d2d443525a5MIN  (maxlen - strlen (val), ts));
00691                 } else {
00692                         strncat (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("[None]"), maxlen - strlen (val));
00693                 }
00694                 strncat (val, " ", maxlen - strlen (val));
00695                 strncat (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("(Editor)"), maxlen - strlen (val));
00696 
00697                 break;
00698         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a371c773e5cda591ffbc518ad05c383c4eEXIF_TAG_FNUMBER :
00699                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , val, maxlen);
00700                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00701                 v_rat = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (e->data, o);
00702                 if (!v_rat.denominator) return val;
00703                 snprintf (val, maxlen, "f/%.01f", (float) v_rat.numerator /
00704                                                     (float) v_rat.denominator);
00705                 break;
00706         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a38e19da054577d1da2886c22630413e22EXIF_TAG_APERTURE_VALUE :
00707                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , val, maxlen);
00708                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00709                 v_rat = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (e->data, o);
00710                 if (!v_rat.denominator) return val;
00711                 snprintf (val, maxlen, "f/%.01f",
00712                           pow (2 , ((float) v_rat.numerator /
00713                                     (float) v_rat.denominator) / 2.));
00714                 break;
00715         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36ea48506d31093bded0a0b8792c6ed88EXIF_TAG_FOCAL_LENGTH :
00716                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , val, maxlen);
00717                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00718                 v_rat = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (e->data, o);
00719                 if (!v_rat.denominator) return val;
00720 
00721                 /* 00722                  * For calculation of the 35mm equivalent, 00723                  * Minolta cameras need a multiplier that depends on the 00724                  * camera model. 00725                  */ 00726                 d = 0.;
00727                 entry = exif-content_8c.html#f566b17fae4d83816ab22d6ffe029caaexif_content_get_entry  (
00728                         e->parent->parent->ifd[ exif-ifd_8h.html#012eb589be30809b32b28959abda81e6fb0a630569c79615438114bf16038ea6EXIF_IFD_0 ], exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a30287c974434f7b994450f4613df5759bEXIF_TAG_MAKE );
00729                 if (entry && entry->data &&
00730                     !strncmp ((char *)entry->data, "Minolta", 7)) {
00731                         entry = exif-content_8c.html#f566b17fae4d83816ab22d6ffe029caaexif_content_get_entry  (
00732                                         e->parent->parent->ifd[ exif-ifd_8h.html#012eb589be30809b32b28959abda81e6fb0a630569c79615438114bf16038ea6EXIF_IFD_0 ],
00733                                         exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3edcb593378a23c6200d4880bde68c08bEXIF_TAG_MODEL );
00734                         if (entry && entry->data) {
00735                                 if (!strncmp ((char *)entry->data, "DiMAGE 7", 8))
00736                                         d = 3.9;
00737                                 else if (!strncmp ((char *)entry->data, "DiMAGE 5", 8))
00738                                         d = 4.9;
00739                         }
00740                 }
00741                 if (d)
00742                         snprintf (b, sizeof (b), i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ (" (35 equivalent: %d mm)"),
00743                                   (int) (d * (double) v_rat.numerator /
00744                                              (double) v_rat.denominator));
00745 
00746                 snprintf (val, maxlen, "%.1f mm",
00747                         (float) v_rat.numerator / (float) v_rat.denominator);
00748                 if (maxlen > strlen (val) + strlen (b))
00749                         strncat (val, b, maxlen - strlen (val) - 1);
00750                 break;
00751         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c69b6c85658fc6694df3da5a89a4b521EXIF_TAG_SUBJECT_DISTANCE :
00752                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , val, maxlen);
00753                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00754                 v_rat = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (e->data, o);
00755                 if (!v_rat.denominator) return val;
00756                 snprintf (val, maxlen, "%.1f m", (float) v_rat.numerator /
00757                                                    (float) v_rat.denominator);
00758                 break;
00759         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a35ebb4a414149babd3ac2ac065b6cace0EXIF_TAG_EXPOSURE_TIME :
00760                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , val, maxlen);
00761                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00762                 v_rat = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (e->data, o);
00763                 if (!v_rat.denominator) return val;
00764                 d = (double) v_rat.numerator / (double) v_rat.denominator;
00765                 if (d < 1)
00766                         snprintf (val, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("1/%d"),
00767                                   (int) (1. / d));
00768                 else 00769                         snprintf (val, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("%d"), (int) d);
00770                 if (maxlen > strlen (val) + strlen ( i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ (" sec.")))
00771                         strncat (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ (" sec."), maxlen - strlen (val) - 1);
00772                 break;
00773         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a34202165d27ccee81965b43340a94c13bEXIF_TAG_SHUTTER_SPEED_VALUE :
00774                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1e9eddc5849e3352d58633256ac10caf1EXIF_FORMAT_SRATIONAL , val, maxlen);
00775                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00776                 v_srat = exif-utils_8c.html#4fa17bc36688c952bba26aa81ca4fa63exif_get_srational  (e->data, o);
00777                 if (!v_srat.denominator) return val;
00778                 snprintf (val, maxlen, "%.0f/%.0f", (float) v_srat.numerator,
00779                           (float) v_srat.denominator);
00780                 if (maxlen > strlen (val) + strlen ( i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ (" sec.")))
00781                         strncat (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ (" sec."), maxlen - strlen (val) - 1);
00782                 snprintf (b, sizeof (b), " (APEX: %i)",
00783                         (int) pow (sqrt(2), (float) v_srat.numerator /
00784                                             (float) v_srat.denominator));
00785                 if (maxlen > strlen (val) + strlen (b))
00786                         strncat (val, b, maxlen - strlen (val) - 1);
00787                 break;
00788         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a31348559b16c2707f32d7664afa7520c3EXIF_TAG_BRIGHTNESS_VALUE :
00789                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1e9eddc5849e3352d58633256ac10caf1EXIF_FORMAT_SRATIONAL , val, maxlen);
00790                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00791                 v_srat = exif-utils_8c.html#4fa17bc36688c952bba26aa81ca4fa63exif_get_srational  (e->data, o);
00792                 snprintf (val, maxlen, "%i/%i", (int) v_srat.numerator,
00793                                                   (int) v_srat.denominator);
00794                 /* FIXME: How do I calculate the APEX value? */ 00795                 break;
00796         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a35fb5c4ac045bb366bc44223904e099b4EXIF_TAG_FILE_SOURCE :
00797                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED , val, maxlen);
00798                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00799                 switch (e->data[0]) {
00800                 case 0x03: strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("DSC"), maxlen); break;
00801                 default: snprintf (val, maxlen, "0x%02x", e->data[0]); break;
00802                 }
00803                 break;
00804         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a33aa94d0c73d8c4141a7bf2a07648c1a7EXIF_TAG_COMPONENTS_CONFIGURATION :
00805                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED , val, maxlen);
00806                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 4, val, maxlen);
00807                 for (i = 0; i < 4; i++) {
00808                         switch (e->data[i]) {
00809                         case 0: c = i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("-"); break;
00810                         case 1: c = i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Y"); break;
00811                         case 2: c = i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Cb"); break;
00812                         case 3: c = i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Cr"); break;
00813                         case 4: c = i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("R"); break;
00814                         case 5: c = i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("G"); break;
00815                         case 6: c = i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("B"); break;
00816                         default: c = i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("reserved"); break;
00817                         }
00818                         strncat (val, c, maxlen - strlen (val));
00819                         if (i < 3) strncat (val, " ", maxlen - strlen (val));
00820                 }
00821                 break;
00822         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3ef33ec6dac001e5fcd79292c9448d8ecEXIF_TAG_EXPOSURE_BIAS_VALUE :
00823                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1e9eddc5849e3352d58633256ac10caf1EXIF_FORMAT_SRATIONAL , val, maxlen);
00824                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00825                 v_srat = exif-utils_8c.html#4fa17bc36688c952bba26aa81ca4fa63exif_get_srational  (e->data, o);
00826                 if (!v_srat.denominator) return val;
00827                 snprintf (val, maxlen, "%s%.01f",
00828                           v_srat.denominator * v_srat.numerator > 0 ? "+" : "",
00829                           (double) v_srat.numerator /
00830                           (double) v_srat.denominator);
00831                 break;
00832         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3cbaab1e42b06167e0a8cac756ed1462fEXIF_TAG_YCBCR_SUB_SAMPLING :
00833                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT , val, maxlen);
00834                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 2, val, maxlen);
00835                 v_short  = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data, o);
00836                 v_short2 = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (
00837                         e->data + exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e->format),
00838                         o);
00839                 if ((v_short == 2) && (v_short2 == 1))
00840                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("YCbCr4:2:2"), maxlen);
00841                 else if ((v_short == 2) && (v_short2 == 2))
00842                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("YCbCr4:2:0"), maxlen);
00843                 else 00844                         snprintf (val, maxlen, "%i, %i", v_short, v_short2);
00845                 break;
00846         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a364166bee6e2b6784ae437f2d94b74b2fEXIF_TAG_MAKER_NOTE :
00847                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED , val, maxlen);
00848                 snprintf (val, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("%i bytes unknown data"),
00849                           (int) e->components);
00850                 break;
00851         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3678826b8e475de1aaeab9bc49fb81360EXIF_TAG_SUBJECT_AREA :
00852                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT , val, maxlen);
00853                 switch (e->components) {
00854                 case 2:
00855                         v_short  = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data, o);
00856                         v_short2 = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data + 2, o);
00857                         snprintf (val, maxlen, "(x,y) = (%i,%i)",
00858                                   v_short, v_short2);
00859                         break;
00860                 case 3:
00861                         v_short  = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data, o);
00862                         v_short2 = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data + 2, o);
00863                         v_short3 = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data + 4, o);
00864                         snprintf (val, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Within distance %i of " 00865                                 "(x,y) = (%i,%i)"), v_short3, v_short,
00866                                 v_short2);
00867                         break;
00868                 case 4:
00869                         v_short  = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data, o);
00870                         v_short2 = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data + 2, o);
00871                         v_short3 = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data + 4, o);
00872                         v_short4 = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data + 6, o);
00873                         snprintf (val, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Within rectangle " 00874                                 "(width %i, height %i) around " 00875                                 "(x,y) = (%i,%i)"), v_short3, v_short4,
00876                                 v_short, v_short2);
00877                         break;
00878                 default:
00879                         snprintf (val, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Unexpected number " 00880                                 "of components (%li, expected 2, 3, or 4)."),
00881                                 e->components); 
00882                 }
00883                 break;
00884 
00885         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a320f8cd020fee78bde972176f7305a9a6EXIF_TAG_METERING_MODE :
00886         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3381904a6b5970c5dd4b70909a836f108EXIF_TAG_COMPRESSION :
00887         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3be91845879d065a7d260b1d4c251d932EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT :
00888         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a33f51094c8ac486f59f47b6ecac38f6f4EXIF_TAG_RESOLUTION_UNIT :
00889         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a39c6e3ce4a53dfa51b85f3d04ee9c058dEXIF_TAG_EXPOSURE_PROGRAM :
00890         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a33a9bef96aa2c67acce8b6295a4ccda7fEXIF_TAG_FLASH :
00891         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a391aab31505330f302c7c8ac283d68892EXIF_TAG_SUBJECT_DISTANCE_RANGE :
00892         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a31943d38588a1e2b950121603d0f0b99aEXIF_TAG_COLOR_SPACE :
00893                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT , val, maxlen);
00894                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00895                 v_short = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data, o);
00896 
00897                 /* Search the tag */ 00898                 for (i = 0; exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [i].tag && ( exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [i].tag != e->tag); i++);
00899                 if (! exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [i]. mnote-canon-tag_8c.html#d88e1213ca240fe301a9559678bddd9btag ) {
00900                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Internal error."), maxlen - 1);
00901                         break;
00902                 }
00903 
00904                 /* Find the value */ 00905                 for (j = 0; exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [i].elem[j].values &&
00906                             ( exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [i].elem[j].index < v_short); j++);
00907                 if ( exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [i]. exif-entry_8c.html#1a2e3f9570a7b119e5ffc2124239ec0aelem [j]. exif-entry_8c.html#de656d9dbc961315338502c279442a7aindex  != v_short) {
00908                         snprintf (val, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Internal error (unknown " 00909                                   "value %i)."), v_short);
00910                         break;
00911                 }
00912 
00913                 /* Find a short enough value */ 00914                 memset (val, 0, maxlen);
00915                 for (k = 0; exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [i].elem[j].values &&
00916                             exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [i].elem[j].values[k]; k++) {
00917                   l = strlen ( i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ( exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [i]. exif-entry_8c.html#1a2e3f9570a7b119e5ffc2124239ec0aelem [j]. exif-entry_8c.html#cca46b64a71344abcf991005e7538e86values [k]));
00918                   if ((maxlen > l) && (strlen (val) < l))
00919                     strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ( exif-entry_8c.html#cdebc915363783d32cdd02ffe7898277list2 [i]. exif-entry_8c.html#1a2e3f9570a7b119e5ffc2124239ec0aelem [j]. exif-entry_8c.html#cca46b64a71344abcf991005e7538e86values [k]), maxlen - 1);
00920                 }
00921                 if (!strlen (val)) snprintf (val, maxlen, "%i", v_short);
00922 
00923                 break;
00924         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36cb74c1f48bd3c8a126b60ba58c17054EXIF_TAG_PLANAR_CONFIGURATION :
00925         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a33a1ada499f287afbbdaf78e44b264760EXIF_TAG_SENSING_METHOD :
00926         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a39fcdefcdca22d77e9ab6d1abc5ebcc73EXIF_TAG_ORIENTATION :
00927         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36c1a344d0294535cb18148a5752510d1EXIF_TAG_YCBCR_POSITIONING :
00928         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a307b80d38b2a566c8eb4b98bf95369ab8EXIF_TAG_PHOTOMETRIC_INTERPRETATION :
00929         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a363b46ea52a17e258c91e5f0e38d72706EXIF_TAG_CUSTOM_RENDERED :
00930         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a32d4533cec7197c23daa683ec1d721364EXIF_TAG_EXPOSURE_MODE :
00931         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a38361060787edc552172b0b1c906ec3a3EXIF_TAG_WHITE_BALANCE :
00932         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3f82437f005930fb68825dabe3d8c7306EXIF_TAG_SCENE_CAPTURE_TYPE :
00933         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c311da54d06658ccb33647f50110c2adEXIF_TAG_GAIN_CONTROL :
00934         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3b6a2b20ffb597a901b977e7be77e1f34EXIF_TAG_SATURATION :
00935         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3637f4523ce00616379ba570c7aae1f84EXIF_TAG_CONTRAST :
00936         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c4a2f1505a505c24bbe3d8fda8d39679EXIF_TAG_SHARPNESS :
00937                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (e, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT , val, maxlen);
00938                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (e, 1, val, maxlen);
00939                 v_short = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data, o);
00940 
00941                 /* Search the tag */ 00942                 for (i = 0; exif-entry_8c.html#5b6b3ce3455034c432c5bf858d9a6983list [i].tag && ( exif-entry_8c.html#5b6b3ce3455034c432c5bf858d9a6983list [i].tag != e->tag); i++);
00943                 if (! exif-entry_8c.html#5b6b3ce3455034c432c5bf858d9a6983list [i].tag) {
00944                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Internal error."), maxlen - 1);
00945                         break;
00946                 }
00947 
00948                 /* Find the value */ 00949                 for (j = 0; exif-entry_8c.html#5b6b3ce3455034c432c5bf858d9a6983list [i].strings[j] && (j < v_short); j++);
00950                 if (! exif-entry_8c.html#5b6b3ce3455034c432c5bf858d9a6983list [i]. exif-entry_8c.html#f42d0a8f962acfca0e0e18fcde5df635strings [j])
00951                         snprintf (val, maxlen, "%i", v_short);
00952                 else 00953                         strncpy (val, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ( exif-entry_8c.html#5b6b3ce3455034c432c5bf858d9a6983list [i]. exif-entry_8c.html#f42d0a8f962acfca0e0e18fcde5df635strings [j]), maxlen - 1);
00954                 break;  
00955         default:
00956                 if (!e->components) break;
00957                 switch (e->format) {
00958                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED :
00959                         break;
00960                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd10fe99fc897d3c96ff849052179d880f1EXIF_FORMAT_BYTE :
00961                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd10bbab1df6335f476eb0cf73eb1a5985aEXIF_FORMAT_SBYTE :
00962                         v_byte = e->data[0];
00963                         snprintf (val, maxlen, "0x%02x", v_byte);
00964                         maxlen -= strlen (val);
00965                         for (i = 1; i < e->components; i++) {
00966                                 v_byte = e->data[i];
00967                                 snprintf (b, sizeof (b), ", 0x%02x", v_byte);
00968                                 strncat (val, b, maxlen);
00969                                 maxlen -= strlen (b);
00970                                 if ((signed)maxlen <= 0) break;
00971                         }
00972                         break;
00973                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT :
00974                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd174d803878ec7ffd34158ef9cc5be8714EXIF_FORMAT_SSHORT :
00975                         v_short = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data, o);
00976                         snprintf (val, maxlen, "%i", v_short);
00977                         maxlen -= strlen (val);
00978                         for (i = 1; i < e->components; i++) {
00979                                 v_short = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (e->data +
00980                                         exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e->format) *
00981                                         i, o);
00982                                 snprintf (b, sizeof (b), ", %i", v_short);
00983                                 strncat (val, b, maxlen);
00984                                 maxlen -= strlen (b);
00985                                 if ((signed)maxlen <= 0) break;
00986                         }
00987                         break;
00988                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1b6f3a3c87b514af859dc91a1a1760f51EXIF_FORMAT_LONG :
00989                         v_long = exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (e->data, o);
00990                         snprintf (val, maxlen, "%li", (long int) v_long);
00991                         maxlen -= strlen (val);
00992                         for (i = 1; i < e->components; i++) {
00993                                 v_long = exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (e->data +
00994                                         exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e->format) *
00995                                         i, o);
00996                                 snprintf (b, sizeof (b), ", %li",
00997                                         (long int) v_long);
00998                                 strncat (val, b, maxlen);
00999                                 maxlen -= strlen (b);
01000                                 if ((signed)maxlen <= 0) break;
01001                         }
01002                         break;
01003                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd13666b762166f1082f02d092c3fb387fbEXIF_FORMAT_SLONG :
01004                         v_slong = exif-utils_8c.html#00576f53c7355353ec295ddad3661ad2exif_get_slong  (e->data, o);
01005                         snprintf (val, maxlen, "%li", (long int) v_slong);
01006                         maxlen -= strlen (val);
01007                         for (i = 1; i < e->components; i++) {
01008                                 v_long = exif-utils_8c.html#00576f53c7355353ec295ddad3661ad2exif_get_slong  (e->data +
01009                                         exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e->format) *
01010                                         i, o);
01011                                 snprintf (b, sizeof (b), ", %li",
01012                                                 (long int) v_long);
01013                                 strncat (val, b, maxlen);
01014                                 maxlen -= strlen (b);
01015                                 if ((signed)maxlen <= 0) break;
01016                         }
01017                         break;
01018                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII :
01019                         strncpy (val, (char *) e->data, exif-loader_8c.html#9b073a1e97ac8f23636b9d2d443525a5MIN  (maxlen, e->size));
01020                         break;
01021                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL :
01022                         v_rat = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (e->data, o);
01023                         if (v_rat.denominator) {
01024                                 snprintf (val, maxlen, "%2.2f", (double)v_rat.numerator / v_rat.denominator);
01025                         } else {
01026                                 snprintf (val, maxlen, "%i/%i", v_rat.numerator,  v_rat.denominator);
01027                         }
01028                         maxlen -= strlen (val);
01029                         for (i = 1; i < e->components; i++) {
01030                                 v_rat = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (
01031                                         e->data + 8 * i, o);
01032                                 snprintf (b, sizeof (b), ", %2.2f",
01033                                            (double)v_rat.numerator / v_rat.denominator);
01034                                 strncat (val, b, maxlen);
01035                                 maxlen -= strlen (b);
01036                                 if ((signed)maxlen <= 0) break;
01037                         }
01038                         break;
01039                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1e9eddc5849e3352d58633256ac10caf1EXIF_FORMAT_SRATIONAL :
01040                         v_srat = exif-utils_8c.html#4fa17bc36688c952bba26aa81ca4fa63exif_get_srational  (e->data, o);
01041                         if (v_srat.denominator) {
01042                                 snprintf (val, maxlen, "%2.2f", (double)v_srat.numerator / v_srat.denominator);
01043                         } else {
01044                                 snprintf (val, maxlen, "%i/%i", v_srat.numerator,  v_srat.denominator);
01045                         }
01046                         maxlen -= strlen (val);
01047                         for (i = 1; i < e->components; i++) {
01048                                 v_srat = exif-utils_8c.html#4fa17bc36688c952bba26aa81ca4fa63exif_get_srational  (
01049                                         e->data + 8 * i, o);
01050                                 snprintf (b, sizeof (b), ", %2.2f",
01051                                           (double)v_srat.numerator / v_srat.denominator);
01052                                 strncat (val, b, maxlen);
01053                                 maxlen -= strlen (b);
01054                                 if ((signed) maxlen <= 0) break;
01055                         }
01056                         break;
01057                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd179f5509a60cefa8689cc4ae055f23318EXIF_FORMAT_DOUBLE :
01058                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd11c437fce10fbe2d83f4451967fef5a6eEXIF_FORMAT_FLOAT :
01059                 default:
01060                         /* What to do here? */ 01061                         break;
01062                 }
01063         }
01064 
01065         return val;
01066 }
01067 
01068 void exif-entry_8h.html#25099f9df0dcbbb3fb2be6a64c960af401069  exif-entry_8c.html#91b9042b58d33de969dfa4cd1fb4e19bexif_entry_initialize  ( struct__ExifEntry.htmlExifEntry  *e, exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3ExifTag  tag)
01070 {
01071         time_t t;
01072         struct tm *tm;
01073         structExifRational.htmlExifRational  r;
01074         exif-byte-order_8h.html#de4a9c512c9cd4723485181c5679f1d5ExifByteOrder  o;
01075 
01076         /* We need the byte order */ 01077         if (!e || !e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent  || e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  || !e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent )
01078                 return;
01079         o = exif-data_8c.html#6632980f1757aaca6021f389f3c37eb0exif_data_get_byte_order  (e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent -> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent );
01080 
01081         e-> struct__ExifEntry.html#8597b70e3caaad35ee423d3fd8af57b7tag  = tag;
01082         switch (tag) {
01083 
01084         /* LONG, 1 component, no default */ 01085         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a32110aa9390519d39e015a1a4a23d8b1cEXIF_TAG_PIXEL_X_DIMENSION :
01086         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3eb08d18bf28a58ba38a85a7015086f48EXIF_TAG_PIXEL_Y_DIMENSION :
01087         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a310dc58ac7717874466ef87ed8fcc3f65EXIF_TAG_EXIF_IFD_POINTER :
01088         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a321c372e1d34e135e6b999a8f21e95f47EXIF_TAG_GPS_INFO_IFD_POINTER :
01089         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a362d2ded22799c055e7c31dbc5217c2f4EXIF_TAG_INTEROPERABILITY_IFD_POINTER :
01090         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3afd0c558bee1193299ed6a201e69e69bEXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH :
01091         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3cb686c4d1f1b2dd828cb1bca6396f65dEXIF_TAG_JPEG_INTERCHANGE_FORMAT :
01092                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 1;
01093                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1b6f3a3c87b514af859dc91a1a1760f51EXIF_FORMAT_LONG ;
01094                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01095                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01096                 break;
01097 
01098         /* SHORT, 1 component, no default */ 01099         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a34ba7329fcc9fc6b51f5352c42e6d6b86EXIF_TAG_SUBJECT_LOCATION :
01100         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a33a1ada499f287afbbdaf78e44b264760EXIF_TAG_SENSING_METHOD :
01101         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a307b80d38b2a566c8eb4b98bf95369ab8EXIF_TAG_PHOTOMETRIC_INTERPRETATION :
01102         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3381904a6b5970c5dd4b70909a836f108EXIF_TAG_COMPRESSION :
01103         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a32d4533cec7197c23daa683ec1d721364EXIF_TAG_EXPOSURE_MODE :
01104         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a38361060787edc552172b0b1c906ec3a3EXIF_TAG_WHITE_BALANCE :
01105         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3cb9050f4fbed5e43b65f5c02d80b0811EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM :
01106         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c311da54d06658ccb33647f50110c2adEXIF_TAG_GAIN_CONTROL :
01107         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a391aab31505330f302c7c8ac283d68892EXIF_TAG_SUBJECT_DISTANCE_RANGE :
01108 
01109         /* SHORT, 1 component, default 0 */ 01110         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3fca9368bb74d912cb1ece3ed68d39b2dEXIF_TAG_IMAGE_WIDTH :
01111         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a32bf61320e10304757429443fe3b4fcbeEXIF_TAG_IMAGE_LENGTH :
01112         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a39c6e3ce4a53dfa51b85f3d04ee9c058dEXIF_TAG_EXPOSURE_PROGRAM :
01113         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a30ddc0ecc7ad7c3637de2c390868c7754EXIF_TAG_LIGHT_SOURCE :
01114         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a320f8cd020fee78bde972176f7305a9a6EXIF_TAG_METERING_MODE :
01115         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a363b46ea52a17e258c91e5f0e38d72706EXIF_TAG_CUSTOM_RENDERED :
01116         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3f82437f005930fb68825dabe3d8c7306EXIF_TAG_SCENE_CAPTURE_TYPE :
01117         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3637f4523ce00616379ba570c7aae1f84EXIF_TAG_CONTRAST :
01118         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3b6a2b20ffb597a901b977e7be77e1f34EXIF_TAG_SATURATION :
01119         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c4a2f1505a505c24bbe3d8fda8d39679EXIF_TAG_SHARPNESS :
01120                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 1;
01121                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ;
01122                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01123                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01124                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , o, 0);
01125                 break;
01126 
01127         /* SHORT, 1 component, default 1 */ 01128     case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a39fcdefcdca22d77e9ab6d1abc5ebcc73EXIF_TAG_ORIENTATION :
01129     case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36cb74c1f48bd3c8a126b60ba58c17054EXIF_TAG_PLANAR_CONFIGURATION :
01130     case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36c1a344d0294535cb18148a5752510d1EXIF_TAG_YCBCR_POSITIONING :
01131                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 1;
01132                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ;
01133                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01134                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01135                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , o, 1);
01136                 break;
01137 
01138         /* SHORT, 1 component, default 2 */ 01139     case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a33f51094c8ac486f59f47b6ecac38f6f4EXIF_TAG_RESOLUTION_UNIT :
01140         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3be91845879d065a7d260b1d4c251d932EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT :
01141                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 1;
01142                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ;
01143                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01144                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01145                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , o, 2);
01146                 break;
01147 
01148         /* SHORT, 1 component, default 3 */ 01149     case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3d36b1adbdfc442fb05fd41341b85bd33EXIF_TAG_SAMPLES_PER_PIXEL :
01150                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 1;
01151                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ;
01152                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01153                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01154                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , o, 3);
01155                 break;
01156 
01157         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3792a85191a9f0fcd232b089675223172EXIF_TAG_BITS_PER_SAMPLE :
01158                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 3;
01159                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ;
01160                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01161                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01162                 if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) break;
01163                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , o, 8);
01164                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (
01165                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ),
01166                         o, 8);
01167                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (
01168                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + 2 * exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ),
01169                         o, 8);
01170                 break;
01171         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3cbaab1e42b06167e0a8cac756ed1462fEXIF_TAG_YCBCR_SUB_SAMPLING :
01172                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 2;
01173                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ;
01174                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01175                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01176                 if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) break;
01177                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , o, 2);
01178                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (
01179                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ),
01180                         o, 1);
01181                 break;
01182 
01183         /* SRATIONAL, 1 component, no default */ 01184         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3ef33ec6dac001e5fcd79292c9448d8ecEXIF_TAG_EXPOSURE_BIAS_VALUE :
01185         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a31348559b16c2707f32d7664afa7520c3EXIF_TAG_BRIGHTNESS_VALUE :
01186         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a34202165d27ccee81965b43340a94c13bEXIF_TAG_SHUTTER_SPEED_VALUE :
01187                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 1;
01188                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1e9eddc5849e3352d58633256ac10caf1EXIF_FORMAT_SRATIONAL ;
01189                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01190                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01191                 break;
01192 
01193         /* RATIONAL, 1 component, no default */ 01194         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a35ebb4a414149babd3ac2ac065b6cace0EXIF_TAG_EXPOSURE_TIME :
01195         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3cb7093f7c273903164a7edbcbb9efd8eEXIF_TAG_FOCAL_PLANE_X_RESOLUTION :
01196         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a349f5f94c2bb2ef027297467022cea2eeEXIF_TAG_FOCAL_PLANE_Y_RESOLUTION :
01197         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a304c38dd58fe21d3e9bfb20058b71297dEXIF_TAG_EXPOSURE_INDEX :
01198         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3285fff156cd042a2b70a4a510686034dEXIF_TAG_FLASH_ENERGY :
01199         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a371c773e5cda591ffbc518ad05c383c4eEXIF_TAG_FNUMBER :
01200         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36ea48506d31093bded0a0b8792c6ed88EXIF_TAG_FOCAL_LENGTH :
01201         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c69b6c85658fc6694df3da5a89a4b521EXIF_TAG_SUBJECT_DISTANCE :
01202         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a369c22e482301179d903b1d7bf998d946EXIF_TAG_MAX_APERTURE_VALUE :
01203         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a38e19da054577d1da2886c22630413e22EXIF_TAG_APERTURE_VALUE :
01204         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a37184d27b6a587074ab319d2d640ebbafEXIF_TAG_COMPRESSED_BITS_PER_PIXEL :
01205         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36370bfeaaa94d4ba6faedc75d40c1e50EXIF_TAG_PRIMARY_CHROMATICITIES :
01206         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3f6d96da60a05247170ac68c86bd3512cEXIF_TAG_DIGITAL_ZOOM_RATIO :
01207                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 1;
01208                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL ;
01209                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01210                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01211                 break;
01212 
01213         /* RATIONAL, 1 component, default 72/1 */ 01214         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a36e404a73f68d68412f7c9415f92f1793EXIF_TAG_X_RESOLUTION :
01215         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3c9923affc375649625f5e63f2db49ff7EXIF_TAG_Y_RESOLUTION :
01216                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 1;
01217                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL ;
01218                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01219                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01220                 r. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  = 72;
01221                 r. structExifRational.html#9ed7ed672889fd57c6862005e07db87cdenominator  = 1;
01222                 exif-utils_8c.html#851d763acf065580a0872f56b5aed472exif_set_rational  (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , o, r);
01223                 break;
01224 
01225         /* RATIONAL, 2 components, no default */ 01226         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a366ec5f9bdd5525f5fe1029a816f6b43fEXIF_TAG_WHITE_POINT :
01227                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 2;
01228                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL ;
01229                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01230                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01231                 break;
01232 
01233         /* RATIONAL, 6 components */ 01234         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a382c55e24dd75318602c153c442456946EXIF_TAG_REFERENCE_BLACK_WHITE :
01235                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 6;
01236                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL ;
01237                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01238                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01239                 if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) break;
01240                 r. structExifRational.html#9ed7ed672889fd57c6862005e07db87cdenominator  = 1;
01241                 r. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  = 0;
01242                 exif-utils_8c.html#851d763acf065580a0872f56b5aed472exif_set_rational  (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , o, r);
01243                 r. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  = 255;
01244                 exif-utils_8c.html#851d763acf065580a0872f56b5aed472exif_set_rational  (
01245                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ), o, r);
01246                 r. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  = 0;
01247                 exif-utils_8c.html#851d763acf065580a0872f56b5aed472exif_set_rational  (
01248                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + 2 * exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ), o, r);
01249                 r. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  = 255;
01250                 exif-utils_8c.html#851d763acf065580a0872f56b5aed472exif_set_rational  (
01251                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + 3 * exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ), o, r);
01252                 r. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  = 0;
01253                 exif-utils_8c.html#851d763acf065580a0872f56b5aed472exif_set_rational  (
01254                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + 4 * exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ), o, r);
01255                 r. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  = 255;
01256                 exif-utils_8c.html#851d763acf065580a0872f56b5aed472exif_set_rational  (
01257                         e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  + 5 * exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ), o, r);
01258                 break;
01259 
01260         /* ASCII, 20 components */ 01261         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3481c64b23812931983e28f42174d4a0bEXIF_TAG_DATE_TIME :
01262         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a32b0a559e99eceb958b513864352a3626EXIF_TAG_DATE_TIME_ORIGINAL :
01263         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a39d4f54a424897db2b8491f74378daea3EXIF_TAG_DATE_TIME_DIGITIZED :
01264                 t = time (NULL);
01265                 tm = localtime (&t);
01266                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 20;
01267                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII ;
01268                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01269                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01270                 if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) break;
01271                 snprintf ((char *) e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize ,
01272                           "%04i:%02i:%02i %02i:%02i:%02i",
01273                           tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
01274                           tm->tm_hour, tm->tm_min, tm->tm_sec);
01275                 break;
01276 
01277         /* ASCII, no default */ 01278         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a372db6b7d95c0921ce6519e2e6ff937a6EXIF_TAG_SUB_SEC_TIME :
01279         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3a0124f47016e477ae19553cb4f86f3a2EXIF_TAG_SUB_SEC_TIME_ORIGINAL :
01280         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a37ec8c8157bce86129947d04fa25a95abEXIF_TAG_SUB_SEC_TIME_DIGITIZED :
01281                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 0;
01282                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII ;
01283                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = 0;
01284                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = NULL;
01285                 break;
01286         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a388891fe3ad65861592e0bdcb63b50c48EXIF_TAG_IMAGE_DESCRIPTION :
01287         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a30287c974434f7b994450f4613df5759bEXIF_TAG_MAKE :
01288         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3edcb593378a23c6200d4880bde68c08bEXIF_TAG_MODEL :
01289         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a39478179fb833a417e2a7dad0c09962f6EXIF_TAG_SOFTWARE :
01290         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a35eafe0e427cfb34a8efdba139cde938dEXIF_TAG_ARTIST :
01291                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = strlen ( i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("[None]")) + 1;
01292                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII ;
01293                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01294                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01295                 if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) break;
01296                 strncpy ((char *)e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("[None]"), e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01297                 break;
01298         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3865279d2613267256fdaa7f0b282527bEXIF_TAG_COPYRIGHT :
01299                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = (strlen ( i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("[None]")) + 1) * 2;
01300                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII ;
01301                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01302                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01303                 if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) break;
01304                 strcpy (((char *)e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) + 0, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("[None]"));
01305                 strcpy (((char *)e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) + strlen ( i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("[None]")) + 1, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("[None]"));
01306                 break;
01307 
01308         /* UNDEFINED, no components, no default */ 01309         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a364166bee6e2b6784ae437f2d94b74b2fEXIF_TAG_MAKER_NOTE :
01310         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3e7c929a3ba170a660c017b0f04c8d2cbEXIF_TAG_USER_COMMENT :
01311                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 0;
01312                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED ;
01313                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = 0;
01314                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = NULL;
01315                 break;
01316 
01317         /* UNDEFINED, 1 component, default 1 */ 01318         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a34266a9f4c43fc90bc5e1b9b525e7716dEXIF_TAG_SCENE_TYPE :
01319                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 1;
01320                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED ;
01321                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01322                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01323                 if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) break;
01324                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata [0] = 0x01;
01325                 break;
01326 
01327         /* UNDEFINED, 1 component, default 3 */ 01328         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a35fb5c4ac045bb366bc44223904e099b4EXIF_TAG_FILE_SOURCE :
01329                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 1;
01330                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED ;
01331                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01332                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01333                 if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) break;
01334                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata [0] = 0x03;
01335                 break;
01336 
01337         /* UNDEFINED, 4 components, default 0 1 0 0 */ 01338         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a315d977a5515ebcb7c730b1d47dc6424cEXIF_TAG_FLASH_PIX_VERSION :
01339                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 4;
01340                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED ;
01341                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01342                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01343                 if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) break;
01344                 memcpy (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "0100", 4);
01345                 break;
01346 
01347         /* UNDEFINED, 4 components, default 0 2 1 0 */ 01348         case exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a32798cb4925168fcaa81c9719fac89072EXIF_TAG_EXIF_VERSION :
01349                 e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components  = 4;
01350                 e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat  = exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED ;
01351                 e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize  = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (e-> struct__ExifEntry.html#630d2f54097574b308aaba7c693cf2fcformat ) * e-> struct__ExifEntry.html#5d0dc86b91a1ec39ea32ae6b693baf13components ;
01352                 e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata  = exif-entry_8c.html#653a3ba8fef2b05d2009d3cfdc9adbaaexif_entry_alloc  (e, e-> struct__ExifEntry.html#67d1d36d044abfa9f4d94053c6a5b80dsize );
01353                 if (!e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata ) break;
01354                 memcpy (e-> struct__ExifEntry.html#0123f00041fe6c5a347d5b230119d5dadata , "0210", 4);
01355                 break;
01356 
01357         default:
01358                 break;
01359         }
01360 }
Generated on Sun Apr 23 01:22:39 2006 for EXIF library (libexif) Internals by 
http://www.doxygen.org/index.htmldoxygen  1.4.6 