  
    
main.htmlMain Page     
classes.htmlData Structures     
files.htmlFiles     
dirs.htmlDirectories   
  
    
files.htmlFile List     
globals.htmlGlobals   
dir_20715630405f3b63e7ab7a5c713843d9.htmllibexif exif-content.c
exif-content_8c.htmlGo to the documentation of this file. 00001 /* exif-content.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-content_8h.htmllibexif/exif-content.h > 00024 
00025 #include <stdlib.h> 00026 #include <stdio.h> 00027 #include <string.h> 00028 
00029 /* unused constant 00030  * static const unsigned char ExifHeader[] = {0x45, 0x78, 0x69, 0x66, 0x00, 0x00}; 00031  */ 00032 
struct__ExifContentPrivate.html00033  struct struct__ExifContentPrivate.html_ExifContentPrivate 00034 {
struct__ExifContentPrivate.html#8c8be420c469c84a6ecd18f58398d07700035          unsigned int struct__ExifContentPrivate.html#8c8be420c469c84a6ecd18f58398d077ref_count ;
00036 
struct__ExifContentPrivate.html#cc9ab9281cae9f83e24815313fcb94c000037          struct__ExifMem.htmlExifMem  * struct__ExifContentPrivate.html#cc9ab9281cae9f83e24815313fcb94c0mem ;
struct__ExifContentPrivate.html#5e167d931afb3ec6a697be715b25563b00038          struct__ExifLog.htmlExifLog  * struct__ExifContentPrivate.html#5e167d931afb3ec6a697be715b25563blog ;
00039 };
00040 
00041 struct__ExifContent.htmlExifContent  *
exif-content_8h.html#e0a7de1ad6a1a68e78164a380792c12f00042  exif-content_8c.html#e0a7de1ad6a1a68e78164a380792c12fexif_content_new  (void)
00043 {
00044         struct__ExifMem.htmlExifMem  *mem = exif-mem_8c.html#44af1bc2ce5eecf37e731c5fe5dc98e0exif_mem_new_default  ();
00045         struct__ExifContent.htmlExifContent  *content = exif-content_8c.html#2316f2fdab06701f93ba43ac45c17e9dexif_content_new_mem  (mem);
00046 
00047         exif-mem_8c.html#fd6959367336c1459125c43e3f16fec8exif_mem_unref  (mem);
00048 
00049         return content;
00050 }
00051 
00052 struct__ExifContent.htmlExifContent  *
exif-content_8h.html#9a44315f41b5f70952e969bb3c83f07e00053  exif-content_8c.html#2316f2fdab06701f93ba43ac45c17e9dexif_content_new_mem  ( struct__ExifMem.htmlExifMem  *mem)
00054 {
00055         struct__ExifContent.htmlExifContent  *content;
00056 
00057         if (!mem) return NULL;
00058 
00059         content = exif-mem_8c.html#28065115ce31c8c9c7701df5b3f4ada5exif_mem_alloc  (mem, ( exif-utils_8h.html#1601686195534cc6337c596fb8af54faExifLong ) sizeof ( struct__ExifContent.htmlExifContent ));
00060         if (!content)
00061                 return NULL;
00062         content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv  = exif-mem_8c.html#28065115ce31c8c9c7701df5b3f4ada5exif_mem_alloc  (mem,
00063                                 ( exif-utils_8h.html#1601686195534cc6337c596fb8af54faExifLong ) sizeof ( struct__ExifContentPrivate.htmlExifContentPrivate ));
00064         if (!content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv ) {
00065                 exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (mem, content);
00066                 return NULL;
00067         }
00068 
00069         content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#8c8be420c469c84a6ecd18f58398d077ref_count  = 1;
00070 
00071         content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#cc9ab9281cae9f83e24815313fcb94c0mem  = mem;
00072         exif-mem_8c.html#5e444d744fdb19c0c8d4438d9aad2b0bexif_mem_ref  (mem);
00073 
00074         return content;
00075 }
00076 
00077 void exif-content_8h.html#5e1ac8ddcf762f765fd8c1107f2aa39500078  exif-content_8c.html#5e1ac8ddcf762f765fd8c1107f2aa395exif_content_ref  ( struct__ExifContent.htmlExifContent  *content)
00079 {
00080         content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#8c8be420c469c84a6ecd18f58398d077ref_count ++;
00081 }
00082 
00083 void exif-content_8h.html#814bd004542dc1ec8bbb53204e0b6d4a00084  exif-content_8c.html#814bd004542dc1ec8bbb53204e0b6d4aexif_content_unref  ( struct__ExifContent.htmlExifContent  *content)
00085 {
00086         content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#8c8be420c469c84a6ecd18f58398d077ref_count --;
00087         if (!content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#8c8be420c469c84a6ecd18f58398d077ref_count )
00088                 exif-content_8c.html#bdf0f3700deb2c45b605347ed999d5fcexif_content_free  (content);
00089 }
00090 
00091 void exif-content_8h.html#bdf0f3700deb2c45b605347ed999d5fc00092  exif-content_8c.html#bdf0f3700deb2c45b605347ed999d5fcexif_content_free  ( struct__ExifContent.htmlExifContent  *content)
00093 {
00094         struct__ExifMem.htmlExifMem  *mem = (content && content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv ) ? content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#cc9ab9281cae9f83e24815313fcb94c0mem  : NULL;
00095         unsigned int i;
00096 
00097         if (!content) return;
00098 
00099         for (i = 0; i < content-> struct__ExifContent.html#4265fe1501e719991a7d9f425f50a7bbcount ; i++)
00100                 exif-entry_8c.html#40616487cbcb314d606c831bad5ed1a7exif_entry_unref  (content-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries [i]);
00101         exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (mem, content-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries );
00102 
00103         if (content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv ) {
00104                 exif-log_8c.html#a4f16b2e2aa992cd5d1598fbf68d2fb7exif_log_unref  (content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#5e167d931afb3ec6a697be715b25563blog );
00105         }
00106 
00107         exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (mem, content->priv);
00108         exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (mem, content);
00109         exif-mem_8c.html#fd6959367336c1459125c43e3f16fec8exif_mem_unref  (mem);
00110 }
00111 
00112 void exif-content_8h.html#eadac364f4859ebe44d0a249c5a3529b00113  exif-content_8c.html#eadac364f4859ebe44d0a249c5a3529bexif_content_dump  ( struct__ExifContent.htmlExifContent  *content, unsigned int indent)
00114 {
00115         char buf[1024];
00116         unsigned int i;
00117 
00118         for (i = 0; i < 2 * indent; i++)
00119                 buf[i] = ' ';
00120         buf[i] = '\0';
00121 
00122         if (!content)
00123                 return;
00124 
00125         printf ("%sDumping exif content (%i entries)...\n", buf,
00126                 content-> struct__ExifContent.html#4265fe1501e719991a7d9f425f50a7bbcount );
00127         for (i = 0; i < content-> struct__ExifContent.html#4265fe1501e719991a7d9f425f50a7bbcount ; i++)
00128                 exif-entry_8c.html#5ca4836f19f4ce4f31797383289c4e36exif_entry_dump  (content-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries [i], indent + 1);
00129 }
00130 
00131 void exif-content_8h.html#94e1f95cef75c4d73a1c400259ff503f00132  exif-content_8c.html#4c318d157f925ae3b44bd6d43d52dc71exif_content_add_entry  ( struct__ExifContent.htmlExifContent  *c, struct__ExifEntry.htmlExifEntry  *entry)
00133 {
00134         if (!c || !c-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv  || !entry || entry-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent ) return;
00135 
00136         /* One tag can only be added once to an IFD. */ 00137         if ( exif-content_8c.html#f566b17fae4d83816ab22d6ffe029caaexif_content_get_entry  (c, entry-> struct__ExifEntry.html#8597b70e3caaad35ee423d3fd8af57b7tag )) {
00138                 exif-log_8c.html#2252b03f7df6cd3688d6647cd7ba3fccexif_log  (c->priv->log, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG , "ExifContent",
00139                         "An attempt has been made to add " 00140                         "the tag '%s' twice to an IFD. This is against " 00141                         "specification.", exif-tag_8c.html#89a0b669700f3021f3beddea6fcd8573exif_tag_get_name  (entry-> struct__ExifEntry.html#8597b70e3caaad35ee423d3fd8af57b7tag ));
00142                 return;
00143         }
00144 
00145         entry-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent  = c;
00146         c-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries  = exif-mem_8c.html#e29eb09328c6a3b7e24fb69e0078942cexif_mem_realloc  (c->priv->mem,
00147                 c->entries, sizeof ( struct__ExifEntry.htmlExifEntry ) * (c->count + 1));
00148         if (!c->entries) return;
00149         c->entries[c->count] = entry;
00150         exif-entry_8c.html#6be1e72113992609cada34d41a90ad6eexif_entry_ref  (entry);
00151         c->count++;
00152 }
00153 
00154 void exif-content_8h.html#256661fb6b86e86c531503f6ccd0059a00155  exif-content_8c.html#42678d16b6477a00d83aebb787d0b03bexif_content_remove_entry  ( struct__ExifContent.htmlExifContent  *c, struct__ExifEntry.htmlExifEntry  *e)
00156 {
00157         unsigned int i;
00158 
00159         if (!c || !c-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv  || !e || (e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent  != c)) return;
00160 
00161         /* Search the entry */ 00162         for (i = 0; i < c-> struct__ExifContent.html#4265fe1501e719991a7d9f425f50a7bbcount ; i++) if (c-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries [i] == e) break;
00163         if (i == c-> struct__ExifContent.html#4265fe1501e719991a7d9f425f50a7bbcount ) return;
00164 
00165         /* Remove the entry */ 00166         memmove (&c-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries [i], &c-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries [i + 1],
00167                  sizeof ( struct__ExifEntry.htmlExifEntry ) * (c-> struct__ExifContent.html#4265fe1501e719991a7d9f425f50a7bbcount  - i - 1));
00168         c-> struct__ExifContent.html#4265fe1501e719991a7d9f425f50a7bbcount --;
00169         e-> struct__ExifEntry.html#d079de44f767d5024c58d32f512a4babparent  = NULL;
00170         exif-entry_8c.html#40616487cbcb314d606c831bad5ed1a7exif_entry_unref  (e);
00171         c-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries  = exif-mem_8c.html#e29eb09328c6a3b7e24fb69e0078942cexif_mem_realloc  (c-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#cc9ab9281cae9f83e24815313fcb94c0mem , c-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries ,
00172                                         sizeof( struct__ExifEntry.htmlExifEntry ) * c-> struct__ExifContent.html#4265fe1501e719991a7d9f425f50a7bbcount );
00173 }
00174 
00175 struct__ExifEntry.htmlExifEntry  *
exif-content_8h.html#e04772a37c6015cb212d3ec03eb5accc00176  exif-content_8c.html#f566b17fae4d83816ab22d6ffe029caaexif_content_get_entry  ( struct__ExifContent.htmlExifContent  *content, exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3ExifTag  mnote-canon-tag_8c.html#d88e1213ca240fe301a9559678bddd9btag )
00177 {
00178         unsigned int i;
00179 
00180         if (!content)
00181                 return (NULL);
00182 
00183         for (i = 0; i < content-> struct__ExifContent.html#4265fe1501e719991a7d9f425f50a7bbcount ; i++)
00184                 if (content-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries [i]-> struct__ExifEntry.html#8597b70e3caaad35ee423d3fd8af57b7tag  == tag)
00185                         return (content-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries [i]);
00186         return (NULL);
00187 }
00188 
00189 void exif-content_8h.html#1264e050d38bc76140a1ac5d268017af00190  exif-content_8c.html#7c6940bd0934dac4f79ca3f168984797exif_content_foreach_entry  ( struct__ExifContent.htmlExifContent  *content,
00191                             exif-content_8h.html#760a0c7c5ebe011848aee41a9dec199aExifContentForeachEntryFunc  func, void *data)
00192 {
00193         unsigned int i;
00194 
00195         if (!content || !func)
00196                 return;
00197 
00198         for (i = 0; i < content-> struct__ExifContent.html#4265fe1501e719991a7d9f425f50a7bbcount ; i++)
00199                 func (content-> struct__ExifContent.html#9faafe1e707d5c40e42be14126cd69c6entries [i], data);
00200 }
00201 
00202 void exif-content_8h.html#f6d34cba65d77805a9b51136d440e26600203  exif-content_8c.html#f6d34cba65d77805a9b51136d440e266exif_content_log  ( struct__ExifContent.htmlExifContent  *content, struct__ExifLog.htmlExifLog  *log)
00204 {
00205         if (!content || !content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv  || !log || content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#5e167d931afb3ec6a697be715b25563blog  == log)
00206                 return;
00207 
00208         if (content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#5e167d931afb3ec6a697be715b25563blog ) exif-log_8c.html#a4f16b2e2aa992cd5d1598fbf68d2fb7exif_log_unref  (content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#5e167d931afb3ec6a697be715b25563blog );
00209         content-> struct__ExifContent.html#6d569697e4f406394a7881e7838681dfpriv -> struct__ExifContentPrivate.html#5e167d931afb3ec6a697be715b25563blog  = log;
00210         exif-log_8c.html#926f0e50e2afab52db87acfbf76ff878exif_log_ref  (log);
00211 }
00212 
00213 exif-ifd_8h.html#012eb589be30809b32b28959abda81e6ExifIfd exif-content_8h.html#032859106c1b6ee13af2df3494d3171500214  exif-content_8c.html#b269f3232148e01ca609757cd7b7173bexif_content_get_ifd  ( struct__ExifContent.htmlExifContent  *c)
00215 {
00216         if (!c || !c-> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent ) return exif-ifd_8h.html#012eb589be30809b32b28959abda81e687c94414a3d6e5afbeabd959ff241113EXIF_IFD_COUNT ;
00217 
00218         return 
00219                 ((c)->parent->ifd[ exif-ifd_8h.html#012eb589be30809b32b28959abda81e6fb0a630569c79615438114bf16038ea6EXIF_IFD_0 ] == (c)) ? exif-ifd_8h.html#012eb589be30809b32b28959abda81e6fb0a630569c79615438114bf16038ea6EXIF_IFD_0  :
00220                 ((c)->parent->ifd[ exif-ifd_8h.html#012eb589be30809b32b28959abda81e6dde8e56fdee7c8874c72c7484e978218EXIF_IFD_1 ] == (c)) ? exif-ifd_8h.html#012eb589be30809b32b28959abda81e6dde8e56fdee7c8874c72c7484e978218EXIF_IFD_1  :
00221                 ((c)->parent->ifd[ exif-ifd_8h.html#012eb589be30809b32b28959abda81e60febbc743b5c7bca8248a7c39cfb1ebcEXIF_IFD_EXIF ] == (c)) ? exif-ifd_8h.html#012eb589be30809b32b28959abda81e60febbc743b5c7bca8248a7c39cfb1ebcEXIF_IFD_EXIF  :
00222                 ((c)->parent->ifd[ exif-ifd_8h.html#012eb589be30809b32b28959abda81e6671420cd9eccca3c34db0476949f7cedEXIF_IFD_GPS ] == (c)) ? exif-ifd_8h.html#012eb589be30809b32b28959abda81e6671420cd9eccca3c34db0476949f7cedEXIF_IFD_GPS  :
00223                 ((c)->parent->ifd[ exif-ifd_8h.html#012eb589be30809b32b28959abda81e6993503e00dda7ba098815692d761e037EXIF_IFD_INTEROPERABILITY ] == (c)) ? exif-ifd_8h.html#012eb589be30809b32b28959abda81e6993503e00dda7ba098815692d761e037EXIF_IFD_INTEROPERABILITY  :
00224                 exif-ifd_8h.html#012eb589be30809b32b28959abda81e687c94414a3d6e5afbeabd959ff241113EXIF_IFD_COUNT ;
00225 }
00226 
00227 static void exif-content_8c.html#801a4aae84b39eb55c50a47e9f433e3600228  exif-content_8c.html#801a4aae84b39eb55c50a47e9f433e36fix_func  ( struct__ExifEntry.htmlExifEntry  *e, void *data)
00229 {
00230         exif-entry_8c.html#8ed150debddcd76f55e476658101fb5cexif_entry_fix  (e);
00231 }
00232 
00233 void exif-content_8h.html#a517be8a0ef437195174ef42a145a7f300234  exif-content_8c.html#53f6100698f8bd323501e9c31932766dexif_content_fix  ( struct__ExifContent.htmlExifContent  *c)
00235 {
00236         exif-ifd_8h.html#012eb589be30809b32b28959abda81e6ExifIfd  exif-ifd_8c.html#b2d70b13403c886d20dd36201180b69fifd  = exif-content_8c.html#b269f3232148e01ca609757cd7b7173bexif_content_get_ifd  (c);
00237         exif-data-type_8h.html#7ce2f6788670b1693c10514810a8cae1ExifDataType  dt;
00238         exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3ExifTag  t;
00239         struct__ExifEntry.htmlExifEntry  *e;
00240 
00241         if (!c) return;
00242 
00243         dt = exif-data_8c.html#72ade14fcde3e475fce73a6004b607b6exif_data_get_data_type  (c-> struct__ExifContent.html#86f6fe3f0580e4a9ec3a27538c25a0e8parent );
00244 
00245         /* First of all, fix all existing entries. */ 00246         exif-content_8c.html#7c6940bd0934dac4f79ca3f168984797exif_content_foreach_entry  (c, exif-content_8c.html#801a4aae84b39eb55c50a47e9f433e36fix_func , NULL);
00247 
00248         /* 00249          * Then check for existing tags that are not allowed and for 00250          * non-existing mandatory tags. 00251          */ 00252         for (t = 0; t <= 0xffff; t++) {
00253                 switch ( exif-tag_8c.html#cee947b2bfd6d7c7fea1cc12257329b3exif_tag_get_support_level_in_ifd  (t, ifd, dt)) {
00254                 case exif-tag_8h.html#6f64f4539c5f4b27a18154d0d8f94c641ef74a734254b843925f00e9afa4916eEXIF_SUPPORT_LEVEL_MANDATORY :
00255                         if ( exif-content_8c.html#f566b17fae4d83816ab22d6ffe029caaexif_content_get_entry  (c, t)) break;
00256                         exif-log_8c.html#2252b03f7df6cd3688d6647cd7ba3fccexif_log  (c->priv->log, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG , "exif-content",
00257                                         "Tag '%s' is mandatory in IFD '%s' and has therefore been added.",
00258                                         exif-tag_8c.html#651b30ac8ded8ab03ca18a9f34f84447exif_tag_get_name_in_ifd  (t, ifd), exif-ifd_8c.html#13a16ae4cebfc6d3199b84cb693915cbexif_ifd_get_name  (ifd));
00259                         e = exif-entry_8c.html#83b606ff4b853c61b667f80b88e6738dexif_entry_new  ();
00260                         exif-content_8c.html#4c318d157f925ae3b44bd6d43d52dc71exif_content_add_entry  (c, e);
00261                         exif-entry_8c.html#91b9042b58d33de969dfa4cd1fb4e19bexif_entry_initialize  (e, t);
00262                         exif-entry_8c.html#40616487cbcb314d606c831bad5ed1a7exif_entry_unref  (e);
00263                         break;
00264                 case exif-tag_8h.html#6f64f4539c5f4b27a18154d0d8f94c64de0cde65aa57a987ece7e1f2b33c556fEXIF_SUPPORT_LEVEL_NOT_RECORDED :
00265                         e = exif-content_8c.html#f566b17fae4d83816ab22d6ffe029caaexif_content_get_entry  (c, t);
00266                         if (!e) break;
00267                         exif-log_8c.html#2252b03f7df6cd3688d6647cd7ba3fccexif_log  (c->priv->log, exif-log_8h.html#d7dbc9f25878759b54247de66204b7f2e8386f9a77a68764087d7f3d692f383eEXIF_LOG_CODE_DEBUG , "exif-content",
00268                                         "Tag '%s' is not recoreded in IFD '%s' and has therefore been " 00269                                         "removed.", exif-tag_8c.html#651b30ac8ded8ab03ca18a9f34f84447exif_tag_get_name_in_ifd  (t, ifd),
00270                                         exif-ifd_8c.html#13a16ae4cebfc6d3199b84cb693915cbexif_ifd_get_name  (ifd));
00271                         exif-content_8c.html#42678d16b6477a00d83aebb787d0b03bexif_content_remove_entry  (c, e);
00272                         break;
00273                 case exif-tag_8h.html#6f64f4539c5f4b27a18154d0d8f94c64343fa76644714e9dd02e9a718069ad8eEXIF_SUPPORT_LEVEL_OPTIONAL :
00274                 default:
00275                         break;
00276                 }
00277         }
00278 }
Generated on Sun Apr 23 01:22:39 2006 for EXIF library (libexif) Internals by 
http://www.doxygen.org/index.htmldoxygen  1.4.6 