  
    
main.htmlMain Page     
classes.htmlData Structures     
files.htmlFiles     
dirs.htmlDirectories   
  
    
files.htmlFile List     
globals.htmlGlobals   
dir_3c4fde49625df9344590fff295c7c38d.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#ec27c532c09464e0cc3bb0c5e886b7fa00037          unsigned int struct__ExifEntryPrivate.html#ec27c532c09464e0cc3bb0c5e886b7faref_count ;
00038 
struct__ExifEntryPrivate.html#07abfb11c966dc105bdf801c7dbb27d700039          struct__ExifMem.htmlExifMem  * struct__ExifEntryPrivate.html#07abfb11c966dc105bdf801c7dbb27d7mem ;
00040 };
00041 
00042 /* This function is hidden in exif-data.c */ 00043 struct__ExifLog.htmlExifLog  * exif-data_8c.html#9403ed4fde8ef603e9db173eb122efafexif_data_get_log  ( struct__ExifData.htmlExifData  *);
00044 
00045 static void exif-entry_8c.html#c416e8326bd687f5da299d1b15a731bf00046  exif-entry_8c.html#c416e8326bd687f5da299d1b15a731bfexif_entry_log  ( struct__ExifEntry.htmlExifEntry  *e, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652ExifLogCode  exif-log_8c.html#1af18795ea58910152268a087852f327code , const char * exif-format_8c.html#bd06ced5b3e334726a446807ba75b6c8format , ...)
00047 {
00048         va_list args;
00049         struct__ExifLog.htmlExifLog  *l = NULL;
00050 
00051         if (e && e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent  && e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent )
00052                 l = exif-data_8c.html#9403ed4fde8ef603e9db173eb122efafexif_data_get_log  (e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent );
00053         va_start (args, format);
00054         exif-log_8c.html#99101b5ad01b2d82ce9d43c9e8534627exif_logv  (l, code, "ExifEntry", format, args);
00055         va_end (args);
00056 }
00057 
00058 static void *
exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdf00059  exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_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#b596479b192bc474d77a98600d4201e2priv  || !i) return NULL;
00065 
00066         d = exif-mem_8c.html#e8c09cfbcb95e435c4c4b7ec3bbd79e4exif_mem_alloc  (e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv -> struct__ExifEntryPrivate.html#07abfb11c966dc105bdf801c7dbb27d7mem , i);
00067         if (d) return d;
00068 
00069         if (e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent  && e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent )
00070                 l = exif-data_8c.html#9403ed4fde8ef603e9db173eb122efafexif_data_get_log  (e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent );
00071         exif-log_8h.html#4221b964f5ee550f6166126b263d3b2fEXIF_LOG_NO_MEMORY  (l, "ExifEntry", i);
00072         return NULL;
00073 }
00074 
00075 static void *
exif-entry_8c.html#ae1f97ae8c40280beacf254b450076a500076  exif-entry_8c.html#ae1f97ae8c40280beacf254b450076a5exif_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#b596479b192bc474d77a98600d4201e2priv ) return NULL;
00082 
00083         if (!i) { exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv -> struct__ExifEntryPrivate.html#07abfb11c966dc105bdf801c7dbb27d7mem , d_orig); return NULL; }
00084 
00085         d = exif-mem_8c.html#3dcfe6794d82e79e92da5e2c62484b17exif_mem_realloc  (e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv -> struct__ExifEntryPrivate.html#07abfb11c966dc105bdf801c7dbb27d7mem , d_orig, i);
00086         if (d) return d;
00087 
00088         if (e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent  && e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent )
00089                 l = exif-data_8c.html#9403ed4fde8ef603e9db173eb122efafexif_data_get_log  (e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent );
00090         exif-log_8h.html#4221b964f5ee550f6166126b263d3b2fEXIF_LOG_NO_MEMORY  (l, "ExifEntry", i);
00091         return NULL;
00092 }
00093 
00094 struct__ExifEntry.htmlExifEntry  *
exif-entry_8h.html#81d54ed31654fc76331ca493a2a3563300095  exif-entry_8c.html#81d54ed31654fc76331ca493a2a35633exif_entry_new  (void)
00096 {
00097         struct__ExifMem.htmlExifMem  *mem = exif-mem_8c.html#cd2926c29b470c9d43f84567a84d5acbexif_mem_new_default  ();
00098         struct__ExifEntry.htmlExifEntry  *e = exif-entry_8c.html#67580bc5b16e6f2793f9a5e580569a7bexif_entry_new_mem  (mem);
00099 
00100         exif-mem_8c.html#66744e0987af08c443df247ce55f7d87exif_mem_unref  (mem);
00101 
00102         return e;
00103 }
00104 
00105 struct__ExifEntry.htmlExifEntry  *
exif-entry_8h.html#3f8eb4f2fce7c69d0897cb35261a70f600106  exif-entry_8c.html#67580bc5b16e6f2793f9a5e580569a7bexif_entry_new_mem  ( struct__ExifMem.htmlExifMem  *mem)
00107 {
00108         struct__ExifEntry.htmlExifEntry  *e = NULL;
00109 
00110         e = exif-mem_8c.html#e8c09cfbcb95e435c4c4b7ec3bbd79e4exif_mem_alloc  (mem, sizeof ( struct__ExifEntry.htmlExifEntry ));
00111         if (!e) return NULL;
00112         e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv  = exif-mem_8c.html#e8c09cfbcb95e435c4c4b7ec3bbd79e4exif_mem_alloc  (mem, sizeof ( struct__ExifEntryPrivate.htmlExifEntryPrivate ));
00113         if (!e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv ) { exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (mem, e); return NULL; }
00114         e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv -> struct__ExifEntryPrivate.html#ec27c532c09464e0cc3bb0c5e886b7faref_count  = 1;
00115 
00116         e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv -> struct__ExifEntryPrivate.html#07abfb11c966dc105bdf801c7dbb27d7mem  = mem;
00117         exif-mem_8c.html#f28c61972f529be46907956e0b3e7a60exif_mem_ref  (mem);
00118 
00119         return e;
00120 }
00121 
00122 void exif-entry_8h.html#83995c571cabed5171d6193bbef111bc00123  exif-entry_8c.html#fd537c2d20109a1ee3923584e969d3d7exif_entry_ref  ( struct__ExifEntry.htmlExifEntry  *e)
00124 {
00125         if (!e) return;
00126 
00127         e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv -> struct__ExifEntryPrivate.html#ec27c532c09464e0cc3bb0c5e886b7faref_count ++;
00128 }
00129 
00130 void exif-entry_8h.html#d983a948211cb7de95c8fc52049f1bab00131  exif-entry_8c.html#82d5d923121488d847d341727cdd2ef4exif_entry_unref  ( struct__ExifEntry.htmlExifEntry  *e)
00132 {
00133         if (!e) return;
00134 
00135         e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv -> struct__ExifEntryPrivate.html#ec27c532c09464e0cc3bb0c5e886b7faref_count --;
00136         if (!e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv -> struct__ExifEntryPrivate.html#ec27c532c09464e0cc3bb0c5e886b7faref_count )
00137                 exif-entry_8c.html#2879215e3863186650d3f32eb63bbaf4exif_entry_free  (e);
00138 }
00139 
00140 void exif-entry_8h.html#3ed3eba673475efc0625741cf5bf6d3300141  exif-entry_8c.html#2879215e3863186650d3f32eb63bbaf4exif_entry_free  ( struct__ExifEntry.htmlExifEntry  *e)
00142 {
00143         if (!e) return;
00144 
00145         if (e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv ) {
00146                 struct__ExifMem.htmlExifMem  *mem = e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv -> struct__ExifEntryPrivate.html#07abfb11c966dc105bdf801c7dbb27d7mem ;
00147                 if (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data )
00148                         exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (mem, e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data );
00149                 exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (mem, e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv );
00150                 exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (mem, e);
00151                 exif-mem_8c.html#66744e0987af08c443df247ce55f7d87exif_mem_unref  (mem);
00152         }
00153 }
00154 
00155 void exif-entry_8h.html#34e2cc8e5cbb928a55cd16de9ce71edf00156  exif-entry_8c.html#a19ef4321004b1ce44187c12ff4f78c6exif_entry_fix  ( struct__ExifEntry.htmlExifEntry  *e)
00157 {
00158         unsigned int i;
00159         exif-byte-order_8h.html#f966227d69ff74eea7ecd69ca645155bExifByteOrder  o;
00160         structExifRational.htmlExifRational  r;
00161         structExifSRational.htmlExifSRational  sr;
00162 
00163         if (!e || !e-> struct__ExifEntry.html#b596479b192bc474d77a98600d4201e2priv ) return;
00164 
00165         switch (e-> struct__ExifEntry.html#a03a4dc9fa98c8bbc447c19a4d0536e9tag ) {
00166         
00167         /* These tags all need to be of format SHORT. */ 00168         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41aaf10560caa79ddfa3a5daf92cdc14ffEXIF_TAG_YCBCR_SUB_SAMPLING :
00169         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41e19c766107a00e553162b18102496538EXIF_TAG_SUBJECT_AREA :
00170         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4108321bbbc209a68c6b65150d0df18f6cEXIF_TAG_COLOR_SPACE :
00171         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4139dcf0bb11945d29d459276d59bfb1f5EXIF_TAG_PLANAR_CONFIGURATION :
00172         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41dba4845812cb586c410af134dc73ce4fEXIF_TAG_SENSING_METHOD :
00173         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41165b077a3acdd9296f562c0b67e22f3bEXIF_TAG_ORIENTATION :
00174         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4192b3ebba3ebd86f75b745cc4eeee0cf6EXIF_TAG_YCBCR_POSITIONING :
00175         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f419721d09c972ebe01e307dd2e95abf6aeEXIF_TAG_PHOTOMETRIC_INTERPRETATION :
00176         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41bf224623f1044083e2ba90aa40cf6b56EXIF_TAG_CUSTOM_RENDERED :
00177         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4126691b1f1c67e9eab995e482a6f8d3bfEXIF_TAG_EXPOSURE_MODE :
00178         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41b94dfc023d7e6434f766d1597f012fa5EXIF_TAG_WHITE_BALANCE :
00179         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41b2d6e45957c06b3297ed7a60dbd7aee7EXIF_TAG_SCENE_CAPTURE_TYPE :
00180         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4116e2b69980cb90659f9775858eefe7d9EXIF_TAG_GAIN_CONTROL :
00181         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41be954894dd82d46f01c72cd234a9c964EXIF_TAG_SATURATION :
00182         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41afa5d51eea3adaf7d1702a1187a19cbcEXIF_TAG_CONTRAST :
00183         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41ff80b50fdf3f26aa3166de861b00c20cEXIF_TAG_SHARPNESS :
00184                 switch (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) {
00185                 case exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25611dcd2fcdcaf91f25412bece8485b6EXIF_FORMAT_LONG :
00186                         if (!e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent  || !e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent ) break;
00187                         o = exif-data_8c.html#2d8d50e6a9c19d28fe8192ef7cc52777exif_data_get_byte_order  (e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent );
00188                         for (i = 0; i < e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ; i++)
00189                                 exif-utils_8c.html#d905d16e26b4052a1db34dbebdc37341exif_set_short  (
00190                                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + i *
00191                                         exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (
00192                                         exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT ), o,
00193                                         ( exif-utils_8h.html#398536727127a9bc2206ffbdacaafaadExifShort ) exif-utils_8c.html#4ad94614630897766dd0a5c9bc2a59bfexif_get_long  (
00194                                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + i *
00195                                         exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (
00196                                         exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25611dcd2fcdcaf91f25412bece8485b6EXIF_FORMAT_LONG ), o));
00197                         e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = EXIF_FORMAT_SHORT;
00198                         e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  *
00199                                 exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat );
00200                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#ae1f97ae8c40280beacf254b450076a5exif_entry_realloc  (e, e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
00201                         exif-entry_8c.html#c416e8326bd687f5da299d1b15a731bfexif_entry_log  (e, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_LOG_CODE_DEBUG ,
00202                                 i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Tag '%s' was of format '%s' (which is " 00203                                 "against specification) and has been " 00204                                 "changed to format '%s'."),
00205                                 exif-tag_8c.html#09dab484396dbcd277161df07aa09cf1exif_tag_get_name  (e-> struct__ExifEntry.html#a03a4dc9fa98c8bbc447c19a4d0536e9tag ), 
00206                                 exif-format_8c.html#59375a5939c716b826311c22571680f3exif_format_get_name  (EXIF_FORMAT_LONG),
00207                                 exif-format_8c.html#59375a5939c716b826311c22571680f3exif_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#1a0ded93d47585f6889eb546915d0f41050fe554d8e6c5fa3af0e1da9804ce59EXIF_TAG_FNUMBER :
00217         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f414d2e838dd5ddb8b5fa2f190de41efeadEXIF_TAG_APERTURE_VALUE :
00218         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4130513e52ce7579084e1ea10ee0afcb5eEXIF_TAG_EXPOSURE_TIME :
00219         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41d09af177287802a1913c91ebc6e8ea1cEXIF_TAG_FOCAL_LENGTH :
00220                 switch (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) {
00221                 case exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d23c60fa6310f13ba77c677708ab41c29cEXIF_FORMAT_SRATIONAL :
00222                         if (!e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent  || !e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent ) break;
00223                         o = exif-data_8c.html#2d8d50e6a9c19d28fe8192ef7cc52777exif_data_get_byte_order  (e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent );
00224                         for (i = 0; i < e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ; i++) {
00225                                 sr = exif-utils_8c.html#db97c3499488d5642a82df1cb16dc2cbexif_get_srational  (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + i * 
00226                                         exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (
00227                                                 exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d23c60fa6310f13ba77c677708ab41c29cEXIF_FORMAT_SRATIONAL ), o);
00228                                 r. structExifRational.html#f0b91792fb6f2a858be8ca9ae6795a19numerator  = ( exif-utils_8h.html#34c5d7765ab2e6dec8308c5127a10afaExifLong ) sr. structExifSRational.html#a815271c1e4470a0179a4329789c79benumerator ;
00229                                 r. structExifRational.html#2c32f17876dd1f86a1869450946be56bdenominator  = ( exif-utils_8h.html#34c5d7765ab2e6dec8308c5127a10afaExifLong ) sr. structExifSRational.html#dd1d6a0cb9f022dba76e984c7dbc65d7denominator ;
00230                                 exif-utils_8c.html#400a16b1754150f721e9fca67ad89a52exif_set_rational  (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + i *
00231                                         exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (
00232                                                 exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL ), o, r);
00233                         }
00234                         e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL ;
00235                         exif-entry_8c.html#c416e8326bd687f5da299d1b15a731bfexif_entry_log  (e, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_LOG_CODE_DEBUG ,
00236                                 i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Tag '%s' was of format '%s' (which is " 00237                                 "against specification) and has been " 00238                                 "changed to format '%s'."),
00239                                 exif-tag_8c.html#09dab484396dbcd277161df07aa09cf1exif_tag_get_name  (e-> struct__ExifEntry.html#a03a4dc9fa98c8bbc447c19a4d0536e9tag ),
00240                                 exif-format_8c.html#59375a5939c716b826311c22571680f3exif_format_get_name  ( exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d23c60fa6310f13ba77c677708ab41c29cEXIF_FORMAT_SRATIONAL ),
00241                                 exif-format_8c.html#59375a5939c716b826311c22571680f3exif_format_get_name  ( exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL ));
00242                         break;
00243                 default:
00244                         break;
00245                 }
00246                 break;
00247 
00248         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4141bfb7c8d779037941eb61beccd55588EXIF_TAG_USER_COMMENT :
00249 
00250                 /* Format needs to be UNDEFINED. */ 00251                 if (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  != exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED ) {
00252                         exif-entry_8c.html#c416e8326bd687f5da299d1b15a731bfexif_entry_log  (e, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_LOG_CODE_DEBUG ,
00253                                 i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Tag 'UserComment' had invalid format '%s'. " 00254                                 "Format has been set to 'undefined'."),
00255                                 exif-format_8c.html#59375a5939c716b826311c22571680f3exif_format_get_name  (e->format));
00256                         e->format = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_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#fee38ed13748497cc838b3c746ff8559size  >= 8) && (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data [0] == 0)) {
00262                         memcpy(e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "\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#fee38ed13748497cc838b3c746ff8559size  < 8) {
00267                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#ae1f97ae8c40280beacf254b450076a5exif_entry_realloc  (e, e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , 8 + e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
00268                         if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) {
00269                                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = 0;
00270                                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 0;
00271                                 return;
00272                         }
00273 
00274                         /* Assume ASCII */ 00275                         memmove (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + 8, e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
00276                         memcpy (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "ASCII\0\0\0", 8);
00277                         e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  += 8;
00278                         e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  += 8;
00279                         exif-entry_8c.html#c416e8326bd687f5da299d1b15a731bfexif_entry_log  (e, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_LOG_CODE_DEBUG ,
00280                                 i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("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#fee38ed13748497cc838b3c746ff8559size ) && !e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data [i]; i++);
00292                 if (!i) for ( ; (i < e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size ) && (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data [i] == ' '); i++);
00293                 if ((i >= 8) && (i < e-> exif-format_8c.html#ac71ffe03c84523594a575b2062849c3size )) {
00294                         exif-entry_8c.html#c416e8326bd687f5da299d1b15a731bfexif_entry_log  (e, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_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#7fd255a932578e60a5fbaac47d4362d4data , "ASCII\0\0\0"     , 8) &&
00306                     memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "UNICODE\0"       , 8) &&
00307                     memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "JIS\0\0\0\0\0"   , 8) &&
00308                     memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "\0\0\0\0\0\0\0\0", 8)) {
00309                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#ae1f97ae8c40280beacf254b450076a5exif_entry_realloc  (e, e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , 8 + e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
00310                         if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) {
00311                                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = 0;
00312                                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 0;
00313                                 break;
00314                         }
00315 
00316                         /* Assume ASCII */ 00317                         memmove (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + 8, e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
00318                         memcpy (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "ASCII\0\0\0", 8);
00319                         e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  += 8;
00320                         e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  += 8;
00321                         exif-entry_8c.html#c416e8326bd687f5da299d1b15a731bfexif_entry_log  (e, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_LOG_CODE_DEBUG ,
00322                                 i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("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#6d607d079472d7f5eed040c8f081406a00334  exif-entry_8c.html#ddd6fdf3f0e4bd8777aff249ebe25da5exif_entry_dump  ( struct__ExifEntry.htmlExifEntry  *e, unsigned int indent)
00335 {
00336         char buf[1024];
00337         char mnote-canon-entry_8c.html#c3cc58975ec017f769b62d6e100e4d06value [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#a03a4dc9fa98c8bbc447c19a4d0536e9tag ,
00348                 exif-tag_8c.html#09dab484396dbcd277161df07aa09cf1exif_tag_get_name  (e-> struct__ExifEntry.html#a03a4dc9fa98c8bbc447c19a4d0536e9tag ));
00349         printf ("%s  Format: %i ('%s')\n", buf, e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ,
00350                 exif-format_8c.html#59375a5939c716b826311c22571680f3exif_format_get_name  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ));
00351         printf ("%s  Components: %i\n", buf, (int) e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components );
00352         printf ("%s  Size: %i\n", buf, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
00353         printf ("%s  Value: %s\n", buf, exif-entry_8c.html#fda0f9d242fd7db960778502414c9885exif_entry_get_value  (e, value, sizeof(value)));
00354 }
00355 
exif-entry_8c.html#85d1f7d2c821dc48e24a0032250d8dfa00356  #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#5f858b14ba346cddedf077de96c3211300369  #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#78f90c775fe0ce878f9d729c2a3a12b900382          exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41ExifTag  mnote-canon-tag_8c.html#f81b5c697b6608b9a512a4bf55f025e8tag ;
exif-entry_8c.html#60367cc58e7012df1915b9df1c468e2000383          const char * exif-entry_8c.html#60367cc58e7012df1915b9df1c468e20strings [10];
00384 } exif-entry_8c.html#1113408b04af79004a8f7983101889fflist [] = {
00385   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4139dcf0bb11945d29d459276d59bfb1f5EXIF_TAG_PLANAR_CONFIGURATION ,
00386     { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("chunky format"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("planar format"), NULL}},
00387   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41dba4845812cb586c410af134dc73ce4fEXIF_TAG_SENSING_METHOD ,
00388     { "", i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Not defined"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("One-chip color area sensor"),
00389       i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Two-chip color area sensor"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Three-chip color area sensor"),
00390       i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Color sequential area sensor"), "", i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Trilinear sensor"),
00391       i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Color sequential linear sensor"), NULL}},
00392   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41165b077a3acdd9296f562c0b67e22f3bEXIF_TAG_ORIENTATION ,
00393     { "", i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("top - left"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("top - right"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("bottom - right"),
00394       i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("bottom - left"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("left - top"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("right - top"),
00395       i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("right - bottom"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("left - bottom"), NULL}},
00396   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4192b3ebba3ebd86f75b745cc4eeee0cf6EXIF_TAG_YCBCR_POSITIONING ,
00397     { "", i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("centered"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("co-sited"), NULL}},
00398   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f419721d09c972ebe01e307dd2e95abf6aeEXIF_TAG_PHOTOMETRIC_INTERPRETATION , {"", i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("RGB"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("YCbCr"), NULL}},
00399   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41bf224623f1044083e2ba90aa40cf6b56EXIF_TAG_CUSTOM_RENDERED ,
00400     { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Normal process"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Custom process"), NULL}},
00401   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4126691b1f1c67e9eab995e482a6f8d3bfEXIF_TAG_EXPOSURE_MODE ,
00402     { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Auto exposure"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Manual exposure"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Auto bracket"), NULL}},
00403   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41b94dfc023d7e6434f766d1597f012fa5EXIF_TAG_WHITE_BALANCE ,
00404     { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Auto white balance"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Manual white balance"), NULL}},
00405   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41b2d6e45957c06b3297ed7a60dbd7aee7EXIF_TAG_SCENE_CAPTURE_TYPE ,
00406     { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Standard"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Landscape"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Portrait"),
00407       i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Night scene"), NULL}},
00408   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4116e2b69980cb90659f9775858eefe7d9EXIF_TAG_GAIN_CONTROL ,
00409     { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Normal"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Low gain up"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("High gain up"),
00410       i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Low gain down"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("High gain down"), NULL}},
00411   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41be954894dd82d46f01c72cd234a9c964EXIF_TAG_SATURATION ,
00412     { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Normal"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Low saturation"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("High saturation"), NULL}},
00413   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41afa5d51eea3adaf7d1702a1187a19cbcEXIF_TAG_CONTRAST  , { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Normal"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Soft"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Hard"), NULL}},
00414   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41ff80b50fdf3f26aa3166de861b00c20cEXIF_TAG_SHARPNESS , { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Normal"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Soft"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Hard"), NULL}},
00415   { 0, {NULL}}
00416 };
00417 
00418 static struct {
exif-entry_8c.html#78f90c775fe0ce878f9d729c2a3a12b900419    exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41ExifTag  mnote-canon-tag_8c.html#f81b5c697b6608b9a512a4bf55f025e8tag ;
00420   struct {
exif-entry_8c.html#750b5d744c39a06bfb13e6eb010e35d000421      int exif-entry_8c.html#750b5d744c39a06bfb13e6eb010e35d0index ;
exif-entry_8c.html#3e7e6d695eca93f838b1abb9256efd4500422      const char * exif-entry_8c.html#3e7e6d695eca93f838b1abb9256efd45values [4];
00423   } exif-entry_8c.html#999e61f123728f445ec40f6062a1b338elem [25];
00424 } exif-entry_8c.html#b1ec19db816b50bdeebe296e45e4861blist2 [] = {
00425   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41fd86278674481a86c7063f15f57dcd20EXIF_TAG_METERING_MODE ,
00426     { {  0, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Unknown"), NULL}},
00427       {  1, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Average"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("avg"), NULL}},
00428       {  2, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Center-Weighted Average"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Center-Weight"), NULL}},
00429       {  3, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Spot"), NULL}},
00430       {  4, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Multi Spot"), NULL}},
00431       {  5, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Pattern"), NULL}},
00432       {  6, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Partial"), NULL}},
00433       {255, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Other"), NULL}},
00434       {  0, {NULL}}}},
00435   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f413b52be125bf76138c535b3cc6594a2e7EXIF_TAG_COMPRESSION ,
00436     { {1, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Uncompressed"), NULL}},
00437       {5, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("LZW compression"), NULL}},
00438       {6, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("JPEG compression"), NULL}},
00439       {0, {NULL}}}},
00440   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41a3ec3e9e15372864ebd1dd55385ddbbcEXIF_TAG_LIGHT_SOURCE ,
00441     { {  0, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Unknown"), NULL}},
00442       {  1, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Daylight"), NULL}},
00443       {  2, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Fluorescent"), NULL}},
00444       {  3, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Tungsten incandescent light"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Tungsten"), NULL}},
00445       {  4, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash"), NULL}},
00446       {  9, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Fine weather"), NULL}},
00447       { 10, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Cloudy weather"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("cloudy"), NULL}},
00448       { 11, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Shade"), NULL}},
00449       { 12, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Daylight fluorescent"), NULL}},
00450       { 13, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Day white fluorescent"), NULL}},
00451       { 14, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Cool white fluorescent"), NULL}},
00452       { 15, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("White fluorescent"), NULL}},
00453       { 17, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Standard light A"), NULL}},
00454       { 18, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Standard light B"), NULL}},
00455       { 19, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Standard light C"), NULL}},
00456       { 20, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("D55"), NULL}},
00457       { 21, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("D65"), NULL}},
00458       { 22, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("D75"), NULL}},
00459       { 24, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("ISO studio tungsten"),NULL}},
00460       {255, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Other"), NULL}},
00461       {  0, {NULL}}}},
00462   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f414ca2ac9ad91d69b2be734711df6123e8EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT ,
00463     { {2, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Inch"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("in"), NULL}},
00464       {3, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Centimeter"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("cm"), NULL}},
00465       {0, {NULL}}}},
00466   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f413ac27df03fef89bfd5ab17a454525697EXIF_TAG_RESOLUTION_UNIT ,
00467     { {2, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Inch"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("in"), NULL}},
00468       {3, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Centimeter"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("cm"), NULL}}, 
00469       {0, {NULL}}}},
00470   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4193faf08d85ff92386aa8dbedd6c90dacEXIF_TAG_EXPOSURE_PROGRAM ,
00471     { {0, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Not defined"), NULL}},
00472       {1, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Manual"), NULL}},
00473       {2, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Normal program"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Normal"), NULL}},
00474       {3, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Aperture priority"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Aperture"), NULL}},
00475       {4, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Shutter priority"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Shutter"), NULL}},
00476       {5, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Creative program (biased toward depth of field)"),
00477            i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Creative"), NULL}},
00478       {6, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Creative program (biased toward fast shutter speed)"),
00479            i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Action"), NULL}},
00480       {7, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Portrait mode (for closeup photos with the background out " 00481               "of focus)"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Portrait"), NULL}},
00482       {8, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Landscape mode (for landscape photos with the background " 00483               "in focus)"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Landscape"), NULL}},
00484       {0, {NULL}}}},
00485   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4136f1562ecdb872e08eb19437849ad36dEXIF_TAG_FLASH ,
00486     { {0x0000, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash did not fire."), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("no flash"), NULL}},
00487       {0x0001, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired."), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("flash"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Yes"), NULL}},
00488       {0x0005, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Strobe return light not detected."), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("W/o strobe"),
00489                 NULL}},
00490       {0x0007, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Strobe return light detected."), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("W. strobe"), NULL}},
00491       {0x0009, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, compulsatory flash mode"), NULL}},
00492       {0x000d, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, compulsatory flash mode, return light " 00493                    "not detected."), NULL}},
00494       {0x000f, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, compulsatory flash mode, return light " 00495                    "detected."), NULL}},
00496       {0x0010, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash did not fire, compulsatory flash mode."), NULL}},
00497       {0x0018, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash did not fire, auto mode."), NULL}},
00498       {0x0019, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, auto mode."), NULL}},
00499       {0x001d, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, auto mode, return light not detected."),
00500                 NULL}},
00501       {0x001f, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, auto mode, return light detected."), NULL}},
00502       {0x0020, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("No flash function."),NULL}},
00503       {0x0041, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, red-eye reduction mode."), NULL}},
00504       {0x0045, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, red-eye reduction mode, return light " 00505                    "not detected."), NULL}},
00506       {0x0047, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, red-eye reduction mode, return light " 00507                    "detected."), NULL}},
00508       {0x0049, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, compulsory flash mode, red-eye reduction " 00509                    "mode."), NULL}},
00510       {0x004d, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, compulsory flash mode, red-eye reduction " 00511                   "mode, return light not detected"), NULL}},
00512       {0x004f, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, compulsory flash mode, red-eye reduction, " 00513                    "return light detected"), NULL}},
00514       {0x0058, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash did not fire, auto mode, red-eye reduction mode"), NULL}},
00515       {0x0059, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, auto mode, red-eye reduction mode"), NULL}},
00516       {0x005d, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, auto mode, return light not detected, " 00517                    "red-eye reduction mode."), NULL}},
00518       {0x005f, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Flash fired, auto mode, return light detected, " 00519                    "red-eye reduction mode."), NULL}},
00520       {0x0000, {NULL}}}},
00521   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41bf110b80e11b835b9ccadf2a4bd13c3bEXIF_TAG_SUBJECT_DISTANCE_RANGE , 
00522     { {0, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Unknown"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("?"), NULL}},
00523       {1, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Macro"), NULL}},
00524       {2, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Close view"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("close"), NULL}},
00525       {3, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Distant view"), i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("distant"), NULL}},
00526       {0, {NULL}}}},
00527   { exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4108321bbbc209a68c6b65150d0df18f6cEXIF_TAG_COLOR_SPACE ,
00528     { {1, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("sRGB"), NULL}},
00529       {2, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Adobe RGB"), NULL}},
00530       {0xffff, { i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Uncalibrated"), NULL}}}},
00531   {0, }
00532 };
00533 
00534 const char *
exif-entry_8h.html#24425f48dd75ec56f9ac758aaa6ef9c400535  exif-entry_8c.html#fda0f9d242fd7db960778502414c9885exif_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#79f7cbd63388207dbbed3d20f6538a34ExifByte  v_byte;
00540         exif-utils_8h.html#398536727127a9bc2206ffbdacaafaadExifShort  v_short, v_short2, v_short3, v_short4;
00541         exif-utils_8h.html#34c5d7765ab2e6dec8308c5127a10afaExifLong  v_long;
00542         exif-utils_8h.html#34d3e46cb03b44374e56984e6a983019ExifSLong  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#f966227d69ff74eea7ecd69ca645155bExifByteOrder  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#dd6dfc1077058ff26d79cdb18099d58abindtextdomain  (GETTEXT_PACKAGE, LOCALEDIR);
00571 
00572         /* We need the byte order */ 00573         if (!e || !e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent  || !e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent )
00574                 return val;
00575         o = exif-data_8c.html#2d8d50e6a9c19d28fe8192ef7cc52777exif_data_get_byte_order  (e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent );
00576 
00577         memset (val, 0, maxlen);
00578         memset (b, 0, sizeof (b));
00579         maxlen--;
00580 
00581         /* Sanity check */ 00582         if (e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  != e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  * exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat )) {
00583                 snprintf (val, maxlen, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Invalid size of entry (%i, " 00584                         "expected %li x %i)."), e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size , e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ,
00585                                 exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ));
00586                 return val;
00587         }
00588 
00589         switch (e-> struct__ExifEntry.html#a03a4dc9fa98c8bbc447c19a4d0536e9tag ) {
00590         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4141bfb7c8d779037941eb61beccd55588EXIF_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#6129f19697eff3ab581e0a8455d9fbaeformat  != exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d28cee3caa738d8bb85311678f0cb0e868EXIF_FORMAT_ASCII ) || 
00599                     (e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  <= 8) ||
00600                     ( memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "ASCII\0\0\0"  , 8) &&
00601                       memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "UNICODE\0"    , 8) &&
00602                       memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "JIS\0\0\0\0\0", 8) &&
00603                       memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "\0\0\0\0\0\0\0\0", 8)))
00604                         mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_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#fee38ed13748497cc838b3c746ff8559size  >= 8) && !memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "ASCII\0\0\0", 8)) {
00612                         strncpy (val, (char *) e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + 8, exif-loader_8c.html#3acffbd305ee72dcd4593c0d8af64a4fMIN  (e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  - 8, maxlen));
00613                         break;
00614                 }
00615                 if ((e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  >= 8) && !memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "UNICODE\0", 8)) {
00616                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Unsupported UNICODE string"), maxlen);
00617                         break;
00618                 }
00619                 if ((e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  >= 8) && !memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "JIS\0\0\0\0\0", 8)) {
00620                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("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#fee38ed13748497cc838b3c746ff8559size ) &&
00626                             (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data [i] || (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data [i] == ' ')); i++);
00627                 if (i == e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size ) 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#c416e8326bd687f5da299d1b15a731bfexif_entry_log  (e, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_LOG_CODE_DEBUG ,
00635                         i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Tag UserComment does not comply " 00636                         "with standard but contains data."));
00637                 for (; (i < e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size )  && (strlen (val) < maxlen - 1); i++) {
00638                         exif-entry_8c.html#c416e8326bd687f5da299d1b15a731bfexif_entry_log  (e, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_LOG_CODE_DEBUG ,
00639                                 i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("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#1a0ded93d47585f6889eb546915d0f4120fa29d5e6de43a04512e2670d98f34fEXIF_TAG_EXIF_VERSION :
00646                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED , val, maxlen);
00647                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 4, val, maxlen);
00648                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Unknown Exif Version"), maxlen);
00649                 for (i = 0; versions[i].label; i++) {
00650                         if (!memcmp (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , versions[i].label, 4)) {
00651                                 snprintf (val, maxlen,
00652                                         i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Exif Version %d.%d"),
00653                                         versions[i].major,
00654                                         versions[i].minor);
00655                                 break;
00656                         }
00657                 }
00658                 break;
00659         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f415e9c5283f2e17948fff109bfb57bb8afEXIF_TAG_FLASH_PIX_VERSION :
00660                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED , val, maxlen);
00661                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 4, val, maxlen);
00662                 if (!memcmp (e->data, "0100", 4))
00663                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("FlashPix Version 1.0"), maxlen);
00664                 else if (!memcmp (e->data, "0101", 4))
00665                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("FlashPix Version 1.01"), maxlen);
00666                 else 00667                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Unknown FlashPix Version"), maxlen);
00668                 break;
00669         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41716f2a29bdc2d86d2bdb9cf44593440fEXIF_TAG_COPYRIGHT :
00670                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d28cee3caa738d8bb85311678f0cb0e868EXIF_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#3acffbd305ee72dcd4593c0d8af64a4fMIN  (maxlen, e->size));
00679                 else 00680                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("[None]"), maxlen);
00681                 strncat (val, " ", maxlen - strlen (val));
00682                 strncat (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("(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#3acffbd305ee72dcd4593c0d8af64a4fMIN  (maxlen - strlen (val), ts));
00691                 } else {
00692                         strncat (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("[None]"), maxlen - strlen (val));
00693                 }
00694                 strncat (val, " ", maxlen - strlen (val));
00695                 strncat (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("(Editor)"), maxlen - strlen (val));
00696 
00697                 break;
00698         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41050fe554d8e6c5fa3af0e1da9804ce59EXIF_TAG_FNUMBER :
00699                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL , val, maxlen);
00700                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00701                 v_rat = exif-utils_8c.html#1feb547c289aa57a4d2119338b03706cexif_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#1a0ded93d47585f6889eb546915d0f414d2e838dd5ddb8b5fa2f190de41efeadEXIF_TAG_APERTURE_VALUE :
00707                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL , val, maxlen);
00708                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00709                 v_rat = exif-utils_8c.html#1feb547c289aa57a4d2119338b03706cexif_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#1a0ded93d47585f6889eb546915d0f41d09af177287802a1913c91ebc6e8ea1cEXIF_TAG_FOCAL_LENGTH :
00716                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL , val, maxlen);
00717                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00718                 v_rat = exif-utils_8c.html#1feb547c289aa57a4d2119338b03706cexif_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#c72bb2dacf0da27156c2c4dce08eef5dexif_content_get_entry  (
00728                         e->parent->parent->ifd[ exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf523dba1cc10dacaad97ca9ba61d391e218cEXIF_IFD_0 ], exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f418dfd0c0564458e57a44425977e610bc5EXIF_TAG_MAKE );
00729                 if (entry && entry->data &&
00730                     !strncmp ((char *)entry->data, "Minolta", 7)) {
00731                         entry = exif-content_8c.html#c72bb2dacf0da27156c2c4dce08eef5dexif_content_get_entry  (
00732                                         e->parent->parent->ifd[ exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf523dba1cc10dacaad97ca9ba61d391e218cEXIF_IFD_0 ],
00733                                         exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f413c93df8802f1567b3a78bbc9c3f829fcEXIF_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#32a3cf3d9dd914f5aeeca5423c157934_ (" (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#1a0ded93d47585f6889eb546915d0f41409f4147e951d88cddb850a4da6a4dd1EXIF_TAG_SUBJECT_DISTANCE :
00752                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL , val, maxlen);
00753                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00754                 v_rat = exif-utils_8c.html#1feb547c289aa57a4d2119338b03706cexif_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#1a0ded93d47585f6889eb546915d0f4130513e52ce7579084e1ea10ee0afcb5eEXIF_TAG_EXPOSURE_TIME :
00760                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL , val, maxlen);
00761                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00762                 v_rat = exif-utils_8c.html#1feb547c289aa57a4d2119338b03706cexif_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#32a3cf3d9dd914f5aeeca5423c157934_ ("1/%d"),
00767                                   (int) (1. / d));
00768                 else 00769                         snprintf (val, maxlen, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("%d"), (int) d);
00770                 if (maxlen > strlen (val) + strlen ( i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ (" sec.")))
00771                         strncat (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ (" sec."), maxlen - strlen (val) - 1);
00772                 break;
00773         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f417e2c52e46d3d7fde4c7232d0ca020287EXIF_TAG_SHUTTER_SPEED_VALUE :
00774                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d23c60fa6310f13ba77c677708ab41c29cEXIF_FORMAT_SRATIONAL , val, maxlen);
00775                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00776                 v_srat = exif-utils_8c.html#db97c3499488d5642a82df1cb16dc2cbexif_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#32a3cf3d9dd914f5aeeca5423c157934_ (" sec.")))
00781                         strncat (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ (" 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#1a0ded93d47585f6889eb546915d0f41d150b93b6e19dfd3283abd727edc2f78EXIF_TAG_BRIGHTNESS_VALUE :
00789                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d23c60fa6310f13ba77c677708ab41c29cEXIF_FORMAT_SRATIONAL , val, maxlen);
00790                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00791                 v_srat = exif-utils_8c.html#db97c3499488d5642a82df1cb16dc2cbexif_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#1a0ded93d47585f6889eb546915d0f416ba4e83bf3f79c71df414debbeee73a9EXIF_TAG_FILE_SOURCE :
00797                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED , val, maxlen);
00798                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00799                 switch (e->data[0]) {
00800                 case 0x03: strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("DSC"), maxlen); break;
00801                 default: snprintf (val, maxlen, "0x%02x", e->data[0]); break;
00802                 }
00803                 break;
00804         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41717c329e966cb7c7cda79c3896586f39EXIF_TAG_COMPONENTS_CONFIGURATION :
00805                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED , val, maxlen);
00806                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 4, val, maxlen);
00807                 for (i = 0; i < 4; i++) {
00808                         switch (e->data[i]) {
00809                         case 0: c = i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("-"); break;
00810                         case 1: c = i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Y"); break;
00811                         case 2: c = i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Cb"); break;
00812                         case 3: c = i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Cr"); break;
00813                         case 4: c = i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("R"); break;
00814                         case 5: c = i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("G"); break;
00815                         case 6: c = i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("B"); break;
00816                         default: c = i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("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#1a0ded93d47585f6889eb546915d0f41b7902a58b69a220f355c14422a5e4b35EXIF_TAG_EXPOSURE_BIAS_VALUE :
00823                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d23c60fa6310f13ba77c677708ab41c29cEXIF_FORMAT_SRATIONAL , val, maxlen);
00824                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00825                 v_srat = exif-utils_8c.html#db97c3499488d5642a82df1cb16dc2cbexif_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#1a0ded93d47585f6889eb546915d0f41aaf10560caa79ddfa3a5daf92cdc14ffEXIF_TAG_YCBCR_SUB_SAMPLING :
00833                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT , val, maxlen);
00834                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 2, val, maxlen);
00835                 v_short  = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data, o);
00836                 v_short2 = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (
00837                         e->data + exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e->format),
00838                         o);
00839                 if ((v_short == 2) && (v_short2 == 1))
00840                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("YCbCr4:2:2"), maxlen);
00841                 else if ((v_short == 2) && (v_short2 == 2))
00842                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("YCbCr4:2:0"), maxlen);
00843                 else 00844                         snprintf (val, maxlen, "%i, %i", v_short, v_short2);
00845                 break;
00846         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41cdc77556a9f54139ff8860212e2ca716EXIF_TAG_MAKER_NOTE :
00847                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED , val, maxlen);
00848                 snprintf (val, maxlen, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("%i bytes unknown data"),
00849                           (int) e->components);
00850                 break;
00851         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41e19c766107a00e553162b18102496538EXIF_TAG_SUBJECT_AREA :
00852                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT , val, maxlen);
00853                 switch (e->components) {
00854                 case 2:
00855                         v_short  = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data, o);
00856                         v_short2 = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_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#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data, o);
00862                         v_short2 = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data + 2, o);
00863                         v_short3 = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data + 4, o);
00864                         snprintf (val, maxlen, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("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#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data, o);
00870                         v_short2 = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data + 2, o);
00871                         v_short3 = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data + 4, o);
00872                         v_short4 = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data + 6, o);
00873                         snprintf (val, maxlen, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("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#32a3cf3d9dd914f5aeeca5423c157934_ ("Unexpected number " 00880                                 "of components (%li, expected 2, 3, or 4)."),
00881                                 e->components); 
00882                 }
00883                 break;
00884 
00885         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41fd86278674481a86c7063f15f57dcd20EXIF_TAG_METERING_MODE :
00886         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f413b52be125bf76138c535b3cc6594a2e7EXIF_TAG_COMPRESSION :
00887         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f414ca2ac9ad91d69b2be734711df6123e8EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT :
00888         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f413ac27df03fef89bfd5ab17a454525697EXIF_TAG_RESOLUTION_UNIT :
00889         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4193faf08d85ff92386aa8dbedd6c90dacEXIF_TAG_EXPOSURE_PROGRAM :
00890         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4136f1562ecdb872e08eb19437849ad36dEXIF_TAG_FLASH :
00891         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41bf110b80e11b835b9ccadf2a4bd13c3bEXIF_TAG_SUBJECT_DISTANCE_RANGE :
00892         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4108321bbbc209a68c6b65150d0df18f6cEXIF_TAG_COLOR_SPACE :
00893                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT , val, maxlen);
00894                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00895                 v_short = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data, o);
00896 
00897                 /* Search the tag */ 00898                 for (i = 0; exif-entry_8c.html#b1ec19db816b50bdeebe296e45e4861blist2 [i].tag && ( exif-entry_8c.html#b1ec19db816b50bdeebe296e45e4861blist2 [i].tag != e->tag); i++);
00899                 if (! exif-entry_8c.html#b1ec19db816b50bdeebe296e45e4861blist2 [i]. mnote-canon-tag_8c.html#f81b5c697b6608b9a512a4bf55f025e8tag ) {
00900                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Internal error."), maxlen - 1);
00901                         break;
00902                 }
00903 
00904                 /* Find the value */ 00905                 for (j = 0; exif-entry_8c.html#b1ec19db816b50bdeebe296e45e4861blist2 [i].elem[j].values &&
00906                             ( exif-entry_8c.html#b1ec19db816b50bdeebe296e45e4861blist2 [i].elem[j].index < v_short); j++);
00907                 if ( exif-entry_8c.html#b1ec19db816b50bdeebe296e45e4861blist2 [i]. exif-entry_8c.html#999e61f123728f445ec40f6062a1b338elem [j]. exif-entry_8c.html#750b5d744c39a06bfb13e6eb010e35d0index  != v_short) {
00908                         snprintf (val, maxlen, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("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#b1ec19db816b50bdeebe296e45e4861blist2 [i].elem[j].values &&
00916                             exif-entry_8c.html#b1ec19db816b50bdeebe296e45e4861blist2 [i].elem[j].values[k]; k++) {
00917                   l = strlen ( i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ( exif-entry_8c.html#b1ec19db816b50bdeebe296e45e4861blist2 [i]. exif-entry_8c.html#999e61f123728f445ec40f6062a1b338elem [j]. exif-entry_8c.html#3e7e6d695eca93f838b1abb9256efd45values [k]));
00918                   if ((maxlen > l) && (strlen (val) < l))
00919                     strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ( exif-entry_8c.html#b1ec19db816b50bdeebe296e45e4861blist2 [i]. exif-entry_8c.html#999e61f123728f445ec40f6062a1b338elem [j]. exif-entry_8c.html#3e7e6d695eca93f838b1abb9256efd45values [k]), maxlen - 1);
00920                 }
00921                 if (!strlen (val)) snprintf (val, maxlen, "%i", v_short);
00922 
00923                 break;
00924         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4139dcf0bb11945d29d459276d59bfb1f5EXIF_TAG_PLANAR_CONFIGURATION :
00925         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41dba4845812cb586c410af134dc73ce4fEXIF_TAG_SENSING_METHOD :
00926         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41165b077a3acdd9296f562c0b67e22f3bEXIF_TAG_ORIENTATION :
00927         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4192b3ebba3ebd86f75b745cc4eeee0cf6EXIF_TAG_YCBCR_POSITIONING :
00928         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f419721d09c972ebe01e307dd2e95abf6aeEXIF_TAG_PHOTOMETRIC_INTERPRETATION :
00929         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41bf224623f1044083e2ba90aa40cf6b56EXIF_TAG_CUSTOM_RENDERED :
00930         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4126691b1f1c67e9eab995e482a6f8d3bfEXIF_TAG_EXPOSURE_MODE :
00931         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41b94dfc023d7e6434f766d1597f012fa5EXIF_TAG_WHITE_BALANCE :
00932         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41b2d6e45957c06b3297ed7a60dbd7aee7EXIF_TAG_SCENE_CAPTURE_TYPE :
00933         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4116e2b69980cb90659f9775858eefe7d9EXIF_TAG_GAIN_CONTROL :
00934         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41be954894dd82d46f01c72cd234a9c964EXIF_TAG_SATURATION :
00935         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41afa5d51eea3adaf7d1702a1187a19cbcEXIF_TAG_CONTRAST :
00936         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41ff80b50fdf3f26aa3166de861b00c20cEXIF_TAG_SHARPNESS :
00937                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (e, exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT , val, maxlen);
00938                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (e, 1, val, maxlen);
00939                 v_short = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data, o);
00940 
00941                 /* Search the tag */ 00942                 for (i = 0; exif-entry_8c.html#1113408b04af79004a8f7983101889fflist [i].tag && ( exif-entry_8c.html#1113408b04af79004a8f7983101889fflist [i].tag != e->tag); i++);
00943                 if (! exif-entry_8c.html#1113408b04af79004a8f7983101889fflist [i].tag) {
00944                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Internal error."), maxlen - 1);
00945                         break;
00946                 }
00947 
00948                 /* Find the value */ 00949                 for (j = 0; exif-entry_8c.html#1113408b04af79004a8f7983101889fflist [i].strings[j] && (j < v_short); j++);
00950                 if (! exif-entry_8c.html#1113408b04af79004a8f7983101889fflist [i]. exif-entry_8c.html#60367cc58e7012df1915b9df1c468e20strings [j])
00951                         snprintf (val, maxlen, "%i", v_short);
00952                 else 00953                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ( exif-entry_8c.html#1113408b04af79004a8f7983101889fflist [i]. exif-entry_8c.html#60367cc58e7012df1915b9df1c468e20strings [j]), maxlen - 1);
00954                 break;  
00955         default:
00956                 if (!e->components) break;
00957                 switch (e->format) {
00958                 case exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED :
00959                         break;
00960                 case exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d2fdf39e6e5864897d50e52419fbe48356EXIF_FORMAT_BYTE :
00961                 case exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d29512e4980782a9f3638e83bc47dfe58cEXIF_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#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT :
00974                 case exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d285dbf2985c5d03f406746f0b0cf1cbbeEXIF_FORMAT_SSHORT :
00975                         v_short = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_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#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (e->data +
00980                                         exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_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#761152047d73b4a9fcdc4e2051b817d25611dcd2fcdcaf91f25412bece8485b6EXIF_FORMAT_LONG :
00989                         v_long = exif-utils_8c.html#4ad94614630897766dd0a5c9bc2a59bfexif_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#4ad94614630897766dd0a5c9bc2a59bfexif_get_long  (e->data +
00994                                         exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_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#761152047d73b4a9fcdc4e2051b817d21e5c296e5c3a2e39eeb87d0a26597f87EXIF_FORMAT_SLONG :
01004                         v_slong = exif-utils_8c.html#56b96f076a13da6ed926e1ef29cb2dc3exif_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#56b96f076a13da6ed926e1ef29cb2dc3exif_get_slong  (e->data +
01009                                         exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_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#761152047d73b4a9fcdc4e2051b817d28cee3caa738d8bb85311678f0cb0e868EXIF_FORMAT_ASCII :
01019                         strncpy (val, (char *) e->data, exif-loader_8c.html#3acffbd305ee72dcd4593c0d8af64a4fMIN  (maxlen, e->size));
01020                         break;
01021                 case exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL :
01022                         v_rat = exif-utils_8c.html#1feb547c289aa57a4d2119338b03706cexif_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#1feb547c289aa57a4d2119338b03706cexif_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#761152047d73b4a9fcdc4e2051b817d23c60fa6310f13ba77c677708ab41c29cEXIF_FORMAT_SRATIONAL :
01040                         v_srat = exif-utils_8c.html#db97c3499488d5642a82df1cb16dc2cbexif_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#db97c3499488d5642a82df1cb16dc2cbexif_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#761152047d73b4a9fcdc4e2051b817d2f89818d5f7b2f06f25baff4657565054EXIF_FORMAT_DOUBLE :
01058                 case exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d2b8b22c7e2195872fa934308cf7b2f688EXIF_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#907fef8c87a386df01520a917062e51e01069  exif-entry_8c.html#d7f9e3fd0fde760c332dfbef208589edexif_entry_initialize  ( struct__ExifEntry.htmlExifEntry  *e, exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41ExifTag  tag)
01070 {
01071         time_t t;
01072         struct tm *tm;
01073         structExifRational.htmlExifRational  r;
01074         exif-byte-order_8h.html#f966227d69ff74eea7ecd69ca645155bExifByteOrder  o;
01075 
01076         /* We need the byte order */ 01077         if (!e || !e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent  || e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  || !e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent )
01078                 return;
01079         o = exif-data_8c.html#2d8d50e6a9c19d28fe8192ef7cc52777exif_data_get_byte_order  (e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent -> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent );
01080 
01081         e-> struct__ExifEntry.html#a03a4dc9fa98c8bbc447c19a4d0536e9tag  = tag;
01082         switch (tag) {
01083 
01084         /* LONG, 1 component, no default */ 01085         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4184a90810b4a61a393e5fb7190b985a6cEXIF_TAG_PIXEL_X_DIMENSION :
01086         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41814099c5b00dd6c311fc80b39e67a214EXIF_TAG_PIXEL_Y_DIMENSION :
01087         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f411e8e6e6bbfc4375dd89268a13ad8df54EXIF_TAG_EXIF_IFD_POINTER :
01088         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f414343185115b29fb4425cc3bcf755c856EXIF_TAG_GPS_INFO_IFD_POINTER :
01089         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f415e4a3b1608aeb41767ed69d19108bf86EXIF_TAG_INTEROPERABILITY_IFD_POINTER :
01090         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41798f800ba9d484b0314454230a2af04dEXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH :
01091         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f416ac1833cc0c9832356eae2b908238a11EXIF_TAG_JPEG_INTERCHANGE_FORMAT :
01092                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 1;
01093                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25611dcd2fcdcaf91f25412bece8485b6EXIF_FORMAT_LONG ;
01094                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01095                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01096                 break;
01097 
01098         /* SHORT, 1 component, no default */ 01099         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f410e88a022ef3ad96f62243d0d92937001EXIF_TAG_SUBJECT_LOCATION :
01100         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41dba4845812cb586c410af134dc73ce4fEXIF_TAG_SENSING_METHOD :
01101         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f419721d09c972ebe01e307dd2e95abf6aeEXIF_TAG_PHOTOMETRIC_INTERPRETATION :
01102         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f413b52be125bf76138c535b3cc6594a2e7EXIF_TAG_COMPRESSION :
01103         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4126691b1f1c67e9eab995e482a6f8d3bfEXIF_TAG_EXPOSURE_MODE :
01104         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41b94dfc023d7e6434f766d1597f012fa5EXIF_TAG_WHITE_BALANCE :
01105         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41e317c55609a1bd9246239f36a21e7e46EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM :
01106         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4116e2b69980cb90659f9775858eefe7d9EXIF_TAG_GAIN_CONTROL :
01107         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41bf110b80e11b835b9ccadf2a4bd13c3bEXIF_TAG_SUBJECT_DISTANCE_RANGE :
01108 
01109         /* SHORT, 1 component, default 0 */ 01110         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4140dcdf3d867d4b7d02f6011c8e3e8d9eEXIF_TAG_IMAGE_WIDTH :
01111         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41dee55ce8767f7506d6e399b0f6df4b46EXIF_TAG_IMAGE_LENGTH :
01112         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4193faf08d85ff92386aa8dbedd6c90dacEXIF_TAG_EXPOSURE_PROGRAM :
01113         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41a3ec3e9e15372864ebd1dd55385ddbbcEXIF_TAG_LIGHT_SOURCE :
01114         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41fd86278674481a86c7063f15f57dcd20EXIF_TAG_METERING_MODE :
01115         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41bf224623f1044083e2ba90aa40cf6b56EXIF_TAG_CUSTOM_RENDERED :
01116         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41b2d6e45957c06b3297ed7a60dbd7aee7EXIF_TAG_SCENE_CAPTURE_TYPE :
01117         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41afa5d51eea3adaf7d1702a1187a19cbcEXIF_TAG_CONTRAST :
01118         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41be954894dd82d46f01c72cd234a9c964EXIF_TAG_SATURATION :
01119         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41ff80b50fdf3f26aa3166de861b00c20cEXIF_TAG_SHARPNESS :
01120                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 1;
01121                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT ;
01122                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01123                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01124                 exif-utils_8c.html#d905d16e26b4052a1db34dbebdc37341exif_set_short  (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , o, 0);
01125                 break;
01126 
01127         /* SHORT, 1 component, default 1 */ 01128     case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41165b077a3acdd9296f562c0b67e22f3bEXIF_TAG_ORIENTATION :
01129     case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4139dcf0bb11945d29d459276d59bfb1f5EXIF_TAG_PLANAR_CONFIGURATION :
01130     case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4192b3ebba3ebd86f75b745cc4eeee0cf6EXIF_TAG_YCBCR_POSITIONING :
01131                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 1;
01132                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT ;
01133                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01134                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01135                 exif-utils_8c.html#d905d16e26b4052a1db34dbebdc37341exif_set_short  (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , o, 1);
01136                 break;
01137 
01138         /* SHORT, 1 component, default 2 */ 01139     case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f413ac27df03fef89bfd5ab17a454525697EXIF_TAG_RESOLUTION_UNIT :
01140         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f414ca2ac9ad91d69b2be734711df6123e8EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT :
01141                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 1;
01142                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT ;
01143                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01144                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01145                 exif-utils_8c.html#d905d16e26b4052a1db34dbebdc37341exif_set_short  (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , o, 2);
01146                 break;
01147 
01148         /* SHORT, 1 component, default 3 */ 01149     case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41b72de9ee0db22122bbf8282720168749EXIF_TAG_SAMPLES_PER_PIXEL :
01150                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 1;
01151                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT ;
01152                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01153                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01154                 exif-utils_8c.html#d905d16e26b4052a1db34dbebdc37341exif_set_short  (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , o, 3);
01155                 break;
01156 
01157         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f413eabd2ff623f84ed02d77a68fd89aaffEXIF_TAG_BITS_PER_SAMPLE :
01158                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 3;
01159                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT ;
01160                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01161                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01162                 if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) break;
01163                 exif-utils_8c.html#d905d16e26b4052a1db34dbebdc37341exif_set_short  (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , o, 8);
01164                 exif-utils_8c.html#d905d16e26b4052a1db34dbebdc37341exif_set_short  (
01165                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ),
01166                         o, 8);
01167                 exif-utils_8c.html#d905d16e26b4052a1db34dbebdc37341exif_set_short  (
01168                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + 2 * exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ),
01169                         o, 8);
01170                 break;
01171         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41aaf10560caa79ddfa3a5daf92cdc14ffEXIF_TAG_YCBCR_SUB_SAMPLING :
01172                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 2;
01173                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT ;
01174                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01175                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01176                 if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) break;
01177                 exif-utils_8c.html#d905d16e26b4052a1db34dbebdc37341exif_set_short  (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , o, 2);
01178                 exif-utils_8c.html#d905d16e26b4052a1db34dbebdc37341exif_set_short  (
01179                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ),
01180                         o, 1);
01181                 break;
01182 
01183         /* SRATIONAL, 1 component, no default */ 01184         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41b7902a58b69a220f355c14422a5e4b35EXIF_TAG_EXPOSURE_BIAS_VALUE :
01185         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41d150b93b6e19dfd3283abd727edc2f78EXIF_TAG_BRIGHTNESS_VALUE :
01186         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f417e2c52e46d3d7fde4c7232d0ca020287EXIF_TAG_SHUTTER_SPEED_VALUE :
01187                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 1;
01188                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d23c60fa6310f13ba77c677708ab41c29cEXIF_FORMAT_SRATIONAL ;
01189                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01190                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01191                 break;
01192 
01193         /* RATIONAL, 1 component, no default */ 01194         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4130513e52ce7579084e1ea10ee0afcb5eEXIF_TAG_EXPOSURE_TIME :
01195         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41e39672e093c6be42730b049877e540b0EXIF_TAG_FOCAL_PLANE_X_RESOLUTION :
01196         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41facda092368f4296a05b3dfe69abcb86EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION :
01197         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f419738478da2221ed3937a915a56e8810aEXIF_TAG_EXPOSURE_INDEX :
01198         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f412b1ce874593c113c66921ea73a006e1cEXIF_TAG_FLASH_ENERGY :
01199         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41050fe554d8e6c5fa3af0e1da9804ce59EXIF_TAG_FNUMBER :
01200         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41d09af177287802a1913c91ebc6e8ea1cEXIF_TAG_FOCAL_LENGTH :
01201         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41409f4147e951d88cddb850a4da6a4dd1EXIF_TAG_SUBJECT_DISTANCE :
01202         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41366dd515e28425acf9169cd73874fa13EXIF_TAG_MAX_APERTURE_VALUE :
01203         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f414d2e838dd5ddb8b5fa2f190de41efeadEXIF_TAG_APERTURE_VALUE :
01204         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41ec215f7237d205ecb4857274e9fca0cbEXIF_TAG_COMPRESSED_BITS_PER_PIXEL :
01205         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41f77645702079089558834827113b28afEXIF_TAG_PRIMARY_CHROMATICITIES :
01206         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41673d79cfb30850e1fb13769f7914db2aEXIF_TAG_DIGITAL_ZOOM_RATIO :
01207                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 1;
01208                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL ;
01209                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01210                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01211                 break;
01212 
01213         /* RATIONAL, 1 component, default 72/1 */ 01214         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41e4a6687ac6bf5ea995bf74200b12adf7EXIF_TAG_X_RESOLUTION :
01215         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4168cc9a49b1a99ef688d91aca98bf931aEXIF_TAG_Y_RESOLUTION :
01216                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 1;
01217                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL ;
01218                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01219                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01220                 r. structExifRational.html#f0b91792fb6f2a858be8ca9ae6795a19numerator  = 72;
01221                 r. structExifRational.html#2c32f17876dd1f86a1869450946be56bdenominator  = 1;
01222                 exif-utils_8c.html#400a16b1754150f721e9fca67ad89a52exif_set_rational  (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , o, r);
01223                 break;
01224 
01225         /* RATIONAL, 2 components, no default */ 01226         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41fc68abfbf082fd423b5fb2d3d3f46ee9EXIF_TAG_WHITE_POINT :
01227                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 2;
01228                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL ;
01229                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01230                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01231                 break;
01232 
01233         /* RATIONAL, 6 components */ 01234         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41c2745427bea0638f66ae7e08b2c5f677EXIF_TAG_REFERENCE_BLACK_WHITE :
01235                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 6;
01236                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d22712817194f241cb15f19e5a77d2bf42EXIF_FORMAT_RATIONAL ;
01237                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01238                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01239                 if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) break;
01240                 r. structExifRational.html#2c32f17876dd1f86a1869450946be56bdenominator  = 1;
01241                 r. structExifRational.html#f0b91792fb6f2a858be8ca9ae6795a19numerator  = 0;
01242                 exif-utils_8c.html#400a16b1754150f721e9fca67ad89a52exif_set_rational  (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , o, r);
01243                 r. structExifRational.html#f0b91792fb6f2a858be8ca9ae6795a19numerator  = 255;
01244                 exif-utils_8c.html#400a16b1754150f721e9fca67ad89a52exif_set_rational  (
01245                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ), o, r);
01246                 r. structExifRational.html#f0b91792fb6f2a858be8ca9ae6795a19numerator  = 0;
01247                 exif-utils_8c.html#400a16b1754150f721e9fca67ad89a52exif_set_rational  (
01248                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + 2 * exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ), o, r);
01249                 r. structExifRational.html#f0b91792fb6f2a858be8ca9ae6795a19numerator  = 255;
01250                 exif-utils_8c.html#400a16b1754150f721e9fca67ad89a52exif_set_rational  (
01251                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + 3 * exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ), o, r);
01252                 r. structExifRational.html#f0b91792fb6f2a858be8ca9ae6795a19numerator  = 0;
01253                 exif-utils_8c.html#400a16b1754150f721e9fca67ad89a52exif_set_rational  (
01254                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + 4 * exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ), o, r);
01255                 r. structExifRational.html#f0b91792fb6f2a858be8ca9ae6795a19numerator  = 255;
01256                 exif-utils_8c.html#400a16b1754150f721e9fca67ad89a52exif_set_rational  (
01257                         e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  + 5 * exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ), o, r);
01258                 break;
01259 
01260         /* ASCII, 20 components */ 01261         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4133043569737329982b27b1af41b3a1ffEXIF_TAG_DATE_TIME :
01262         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f410204c8cae8d2a5047a0ba1933d2c1f1aEXIF_TAG_DATE_TIME_ORIGINAL :
01263         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41c4e4485f14c77d49447cf74cf2f1796aEXIF_TAG_DATE_TIME_DIGITIZED :
01264                 t = time (NULL);
01265                 tm = localtime (&t);
01266                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 20;
01267                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d28cee3caa738d8bb85311678f0cb0e868EXIF_FORMAT_ASCII ;
01268                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01269                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01270                 if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) break;
01271                 snprintf ((char *) e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size ,
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#1a0ded93d47585f6889eb546915d0f4112d8470822da564c19f7a30342fd5c0fEXIF_TAG_SUB_SEC_TIME :
01279         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41f047df17da99c72e29d596c9e4a22649EXIF_TAG_SUB_SEC_TIME_ORIGINAL :
01280         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41dba7372edc0d716b5d7c848bdd260a0aEXIF_TAG_SUB_SEC_TIME_DIGITIZED :
01281                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 0;
01282                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d28cee3caa738d8bb85311678f0cb0e868EXIF_FORMAT_ASCII ;
01283                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = 0;
01284                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = NULL;
01285                 break;
01286         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41539ff184f95d6ab6f2cac84b5975447aEXIF_TAG_IMAGE_DESCRIPTION :
01287         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f418dfd0c0564458e57a44425977e610bc5EXIF_TAG_MAKE :
01288         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f413c93df8802f1567b3a78bbc9c3f829fcEXIF_TAG_MODEL :
01289         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f415bd0f53c465a227dda019723a80979daEXIF_TAG_SOFTWARE :
01290         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f416f4bee80e9a46fe03b4b8d08c4b94ab4EXIF_TAG_ARTIST :
01291                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = strlen ( i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("[None]")) + 1;
01292                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d28cee3caa738d8bb85311678f0cb0e868EXIF_FORMAT_ASCII ;
01293                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01294                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01295                 if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) break;
01296                 strncpy ((char *)e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("[None]"), e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01297                 break;
01298         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41716f2a29bdc2d86d2bdb9cf44593440fEXIF_TAG_COPYRIGHT :
01299                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = (strlen ( i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("[None]")) + 1) * 2;
01300                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d28cee3caa738d8bb85311678f0cb0e868EXIF_FORMAT_ASCII ;
01301                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01302                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01303                 if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) break;
01304                 strcpy (((char *)e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) + 0, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("[None]"));
01305                 strcpy (((char *)e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) + strlen ( i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("[None]")) + 1, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("[None]"));
01306                 break;
01307 
01308         /* UNDEFINED, no components, no default */ 01309         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41cdc77556a9f54139ff8860212e2ca716EXIF_TAG_MAKER_NOTE :
01310         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4141bfb7c8d779037941eb61beccd55588EXIF_TAG_USER_COMMENT :
01311                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 0;
01312                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED ;
01313                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = 0;
01314                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = NULL;
01315                 break;
01316 
01317         /* UNDEFINED, 1 component, default 1 */ 01318         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f416bf511d97fe872506f49f061ad1abf6cEXIF_TAG_SCENE_TYPE :
01319                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 1;
01320                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED ;
01321                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01322                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01323                 if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) break;
01324                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data [0] = 0x01;
01325                 break;
01326 
01327         /* UNDEFINED, 1 component, default 3 */ 01328         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f416ba4e83bf3f79c71df414debbeee73a9EXIF_TAG_FILE_SOURCE :
01329                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 1;
01330                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED ;
01331                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01332                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01333                 if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) break;
01334                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data [0] = 0x03;
01335                 break;
01336 
01337         /* UNDEFINED, 4 components, default 0 1 0 0 */ 01338         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f415e9c5283f2e17948fff109bfb57bb8afEXIF_TAG_FLASH_PIX_VERSION :
01339                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 4;
01340                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED ;
01341                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01342                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01343                 if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) break;
01344                 memcpy (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "0100", 4);
01345                 break;
01346 
01347         /* UNDEFINED, 4 components, default 0 2 1 0 */ 01348         case exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f4120fa29d5e6de43a04512e2670d98f34fEXIF_TAG_EXIF_VERSION :
01349                 e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components  = 4;
01350                 e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat  = exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25ce63b2dc5a1db046bcd130bb0eff2bcEXIF_FORMAT_UNDEFINED ;
01351                 e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size  = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (e-> struct__ExifEntry.html#6129f19697eff3ab581e0a8455d9fbaeformat ) * e-> struct__ExifEntry.html#4d1cd87a5c3f43b3d14b087a44582c06components ;
01352                 e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data  = exif-entry_8c.html#98d6b995e251f09b20036c0c9d66efdfexif_entry_alloc  (e, e-> struct__ExifEntry.html#fee38ed13748497cc838b3c746ff8559size );
01353                 if (!e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data ) break;
01354                 memcpy (e-> struct__ExifEntry.html#7fd255a932578e60a5fbaac47d4362d4data , "0210", 4);
01355                 break;
01356 
01357         default:
01358                 break;
01359         }
01360 }
Generated on Sun Apr 23 02:19:18 2006 for EXIF library (libexif) Internals by 
http://www.doxygen.org/index.htmldoxygen  1.4.6 