  
    
main.htmlMain Page     
classes.htmlData Structures     
files.htmlFiles     
dirs.htmlDirectories   
  
    
files.htmlFile List     
globals.htmlGlobals   
dir_3c4fde49625df9344590fff295c7c38d.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#b2810faddbf6c665dfe5fb3d2ddff98c00035          unsigned int struct__ExifContentPrivate.html#b2810faddbf6c665dfe5fb3d2ddff98cref_count ;
00036 
struct__ExifContentPrivate.html#ca37b4aea80f99044d08ea18fede887c00037          struct__ExifMem.htmlExifMem  * struct__ExifContentPrivate.html#ca37b4aea80f99044d08ea18fede887cmem ;
struct__ExifContentPrivate.html#a5ac28313a5f00483bbec1a39f4c77e800038          struct__ExifLog.htmlExifLog  * struct__ExifContentPrivate.html#a5ac28313a5f00483bbec1a39f4c77e8log ;
00039 };
00040 
00041 struct__ExifContent.htmlExifContent  *
exif-content_8h.html#ebb572c40893d08ec2f418af397c48f400042  exif-content_8c.html#ebb572c40893d08ec2f418af397c48f4exif_content_new  (void)
00043 {
00044         struct__ExifMem.htmlExifMem  *mem = exif-mem_8c.html#cd2926c29b470c9d43f84567a84d5acbexif_mem_new_default  ();
00045         struct__ExifContent.htmlExifContent  *content = exif-content_8c.html#8a359560f5985ec0a74a28871675d902exif_content_new_mem  (mem);
00046 
00047         exif-mem_8c.html#66744e0987af08c443df247ce55f7d87exif_mem_unref  (mem);
00048 
00049         return content;
00050 }
00051 
00052 struct__ExifContent.htmlExifContent  *
exif-content_8h.html#242392dd3720f31e27963c1fd89f95d400053  exif-content_8c.html#8a359560f5985ec0a74a28871675d902exif_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#e8c09cfbcb95e435c4c4b7ec3bbd79e4exif_mem_alloc  (mem, ( exif-utils_8h.html#34c5d7765ab2e6dec8308c5127a10afaExifLong ) sizeof ( struct__ExifContent.htmlExifContent ));
00060         if (!content)
00061                 return NULL;
00062         content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv  = exif-mem_8c.html#e8c09cfbcb95e435c4c4b7ec3bbd79e4exif_mem_alloc  (mem,
00063                                 ( exif-utils_8h.html#34c5d7765ab2e6dec8308c5127a10afaExifLong ) sizeof ( struct__ExifContentPrivate.htmlExifContentPrivate ));
00064         if (!content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv ) {
00065                 exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (mem, content);
00066                 return NULL;
00067         }
00068 
00069         content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#b2810faddbf6c665dfe5fb3d2ddff98cref_count  = 1;
00070 
00071         content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#ca37b4aea80f99044d08ea18fede887cmem  = mem;
00072         exif-mem_8c.html#f28c61972f529be46907956e0b3e7a60exif_mem_ref  (mem);
00073 
00074         return content;
00075 }
00076 
00077 void exif-content_8h.html#5761c3d5d962d61a453b4f1a7cc53ab500078  exif-content_8c.html#5761c3d5d962d61a453b4f1a7cc53ab5exif_content_ref  ( struct__ExifContent.htmlExifContent  *content)
00079 {
00080         content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#b2810faddbf6c665dfe5fb3d2ddff98cref_count ++;
00081 }
00082 
00083 void exif-content_8h.html#5e72c0f223d5d1aa33b34f388a5c9d3700084  exif-content_8c.html#5e72c0f223d5d1aa33b34f388a5c9d37exif_content_unref  ( struct__ExifContent.htmlExifContent  *content)
00085 {
00086         content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#b2810faddbf6c665dfe5fb3d2ddff98cref_count --;
00087         if (!content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#b2810faddbf6c665dfe5fb3d2ddff98cref_count )
00088                 exif-content_8c.html#f77d27f5949aa4249fd54a5146c28289exif_content_free  (content);
00089 }
00090 
00091 void exif-content_8h.html#f77d27f5949aa4249fd54a5146c2828900092  exif-content_8c.html#f77d27f5949aa4249fd54a5146c28289exif_content_free  ( struct__ExifContent.htmlExifContent  *content)
00093 {
00094         struct__ExifMem.htmlExifMem  *mem = (content && content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv ) ? content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#ca37b4aea80f99044d08ea18fede887cmem  : NULL;
00095         unsigned int i;
00096 
00097         if (!content) return;
00098 
00099         for (i = 0; i < content-> struct__ExifContent.html#83e0ab89fd53da23fec28563450b7c02count ; i++)
00100                 exif-entry_8c.html#82d5d923121488d847d341727cdd2ef4exif_entry_unref  (content-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries [i]);
00101         exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (mem, content-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries );
00102 
00103         if (content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv ) {
00104                 exif-log_8c.html#7a9b738a7429197d68c80ffedac7d8fbexif_log_unref  (content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#a5ac28313a5f00483bbec1a39f4c77e8log );
00105         }
00106 
00107         exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (mem, content->priv);
00108         exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (mem, content);
00109         exif-mem_8c.html#66744e0987af08c443df247ce55f7d87exif_mem_unref  (mem);
00110 }
00111 
00112 void exif-content_8h.html#941c3522a39280f44329eaf36464562000113  exif-content_8c.html#941c3522a39280f44329eaf364645620exif_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#83e0ab89fd53da23fec28563450b7c02count );
00127         for (i = 0; i < content-> struct__ExifContent.html#83e0ab89fd53da23fec28563450b7c02count ; i++)
00128                 exif-entry_8c.html#ddd6fdf3f0e4bd8777aff249ebe25da5exif_entry_dump  (content-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries [i], indent + 1);
00129 }
00130 
00131 void exif-content_8h.html#e44479e0e26ba49add19281518d426d300132  exif-content_8c.html#89876388ea2f732f8c8cd2c8ef199908exif_content_add_entry  ( struct__ExifContent.htmlExifContent  *c, struct__ExifEntry.htmlExifEntry  *entry)
00133 {
00134         if (!c || !c-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv  || !entry || entry-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent ) return;
00135 
00136         /* One tag can only be added once to an IFD. */ 00137         if ( exif-content_8c.html#c72bb2dacf0da27156c2c4dce08eef5dexif_content_get_entry  (c, entry-> struct__ExifEntry.html#a03a4dc9fa98c8bbc447c19a4d0536e9tag )) {
00138                 exif-log_8c.html#025d4a5d96544913ea6f6ebbec69cb68exif_log  (c->priv->log, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_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#09dab484396dbcd277161df07aa09cf1exif_tag_get_name  (entry-> struct__ExifEntry.html#a03a4dc9fa98c8bbc447c19a4d0536e9tag ));
00142                 return;
00143         }
00144 
00145         entry-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent  = c;
00146         c-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries  = exif-mem_8c.html#3dcfe6794d82e79e92da5e2c62484b17exif_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#fd537c2d20109a1ee3923584e969d3d7exif_entry_ref  (entry);
00151         c->count++;
00152 }
00153 
00154 void exif-content_8h.html#6b579931925271a19b0650baa635088c00155  exif-content_8c.html#04f76832f82ea29ce05cd7c4e51932b1exif_content_remove_entry  ( struct__ExifContent.htmlExifContent  *c, struct__ExifEntry.htmlExifEntry  *e)
00156 {
00157         unsigned int i;
00158 
00159         if (!c || !c-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv  || !e || (e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent  != c)) return;
00160 
00161         /* Search the entry */ 00162         for (i = 0; i < c-> struct__ExifContent.html#83e0ab89fd53da23fec28563450b7c02count ; i++) if (c-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries [i] == e) break;
00163         if (i == c-> struct__ExifContent.html#83e0ab89fd53da23fec28563450b7c02count ) return;
00164 
00165         /* Remove the entry */ 00166         memmove (&c-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries [i], &c-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries [i + 1],
00167                  sizeof ( struct__ExifEntry.htmlExifEntry ) * (c-> struct__ExifContent.html#83e0ab89fd53da23fec28563450b7c02count  - i - 1));
00168         c-> struct__ExifContent.html#83e0ab89fd53da23fec28563450b7c02count --;
00169         e-> struct__ExifEntry.html#6a4cb064a2c7d60f3fd439e2b3cab2a6parent  = NULL;
00170         exif-entry_8c.html#82d5d923121488d847d341727cdd2ef4exif_entry_unref  (e);
00171         c-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries  = exif-mem_8c.html#3dcfe6794d82e79e92da5e2c62484b17exif_mem_realloc  (c-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#ca37b4aea80f99044d08ea18fede887cmem , c-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries ,
00172                                         sizeof( struct__ExifEntry.htmlExifEntry ) * c-> struct__ExifContent.html#83e0ab89fd53da23fec28563450b7c02count );
00173 }
00174 
00175 struct__ExifEntry.htmlExifEntry  *
exif-content_8h.html#ac2981215f917c0f0eb3b03ebe32c07100176  exif-content_8c.html#c72bb2dacf0da27156c2c4dce08eef5dexif_content_get_entry  ( struct__ExifContent.htmlExifContent  *content, exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41ExifTag  mnote-canon-tag_8c.html#f81b5c697b6608b9a512a4bf55f025e8tag )
00177 {
00178         unsigned int i;
00179 
00180         if (!content)
00181                 return (NULL);
00182 
00183         for (i = 0; i < content-> struct__ExifContent.html#83e0ab89fd53da23fec28563450b7c02count ; i++)
00184                 if (content-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries [i]-> struct__ExifEntry.html#a03a4dc9fa98c8bbc447c19a4d0536e9tag  == tag)
00185                         return (content-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries [i]);
00186         return (NULL);
00187 }
00188 
00189 void exif-content_8h.html#ddc77910c821d9ee9b3ce0890caad74100190  exif-content_8c.html#f7372b1342146e73a9d5b671c717a730exif_content_foreach_entry  ( struct__ExifContent.htmlExifContent  *content,
00191                             exif-content_8h.html#c0e055821bf37e68a5e9361359223e75ExifContentForeachEntryFunc  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#83e0ab89fd53da23fec28563450b7c02count ; i++)
00199                 func (content-> struct__ExifContent.html#bfcd8677a7e44b7eaf5ce9c65e7a0ed0entries [i], data);
00200 }
00201 
00202 void exif-content_8h.html#cdc250f9237c430642c2c71ba022070a00203  exif-content_8c.html#cdc250f9237c430642c2c71ba022070aexif_content_log  ( struct__ExifContent.htmlExifContent  *content, struct__ExifLog.htmlExifLog  *log)
00204 {
00205         if (!content || !content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv  || !log || content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#a5ac28313a5f00483bbec1a39f4c77e8log  == log)
00206                 return;
00207 
00208         if (content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#a5ac28313a5f00483bbec1a39f4c77e8log ) exif-log_8c.html#7a9b738a7429197d68c80ffedac7d8fbexif_log_unref  (content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#a5ac28313a5f00483bbec1a39f4c77e8log );
00209         content-> struct__ExifContent.html#9a2a4c21095d7954b5f45600306be24bpriv -> struct__ExifContentPrivate.html#a5ac28313a5f00483bbec1a39f4c77e8log  = log;
00210         exif-log_8c.html#afd7e5d40ca73440976a3b684bfa1059exif_log_ref  (log);
00211 }
00212 
00213 exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf523ExifIfd exif-content_8h.html#c970c6cf739e34f22f150fc06518d45500214  exif-content_8c.html#102270386bc7fdc7296e243967f1a2f4exif_content_get_ifd  ( struct__ExifContent.htmlExifContent  *c)
00215 {
00216         if (!c || !c-> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent ) return exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf523aef6c6dfc79dbd02383ed6719f9ecca5EXIF_IFD_COUNT ;
00217 
00218         return 
00219                 ((c)->parent->ifd[ exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf523dba1cc10dacaad97ca9ba61d391e218cEXIF_IFD_0 ] == (c)) ? exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf523dba1cc10dacaad97ca9ba61d391e218cEXIF_IFD_0  :
00220                 ((c)->parent->ifd[ exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf5239ecbe6f6d48d2d5702aab804e3196409EXIF_IFD_1 ] == (c)) ? exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf5239ecbe6f6d48d2d5702aab804e3196409EXIF_IFD_1  :
00221                 ((c)->parent->ifd[ exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf5239dce0091318fd65e7c05f1b39fa9a177EXIF_IFD_EXIF ] == (c)) ? exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf5239dce0091318fd65e7c05f1b39fa9a177EXIF_IFD_EXIF  :
00222                 ((c)->parent->ifd[ exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf5230ef0053cc0238dfea6770310ec478270EXIF_IFD_GPS ] == (c)) ? exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf5230ef0053cc0238dfea6770310ec478270EXIF_IFD_GPS  :
00223                 ((c)->parent->ifd[ exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf52387105b7ad04d314b1f8fc8478874cc29EXIF_IFD_INTEROPERABILITY ] == (c)) ? exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf52387105b7ad04d314b1f8fc8478874cc29EXIF_IFD_INTEROPERABILITY  :
00224                 exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf523aef6c6dfc79dbd02383ed6719f9ecca5EXIF_IFD_COUNT ;
00225 }
00226 
00227 static void exif-content_8c.html#01413ca11ba6f2f10a0c4fbdd1ef522600228  exif-content_8c.html#01413ca11ba6f2f10a0c4fbdd1ef5226fix_func  ( struct__ExifEntry.htmlExifEntry  *e, void *data)
00229 {
00230         exif-entry_8c.html#a19ef4321004b1ce44187c12ff4f78c6exif_entry_fix  (e);
00231 }
00232 
00233 void exif-content_8h.html#59e92a9e9a341a0833cb12a2db54f25700234  exif-content_8c.html#16c54e0f88067820efd37cd3088a9c70exif_content_fix  ( struct__ExifContent.htmlExifContent  *c)
00235 {
00236         exif-ifd_8h.html#7d1ed13ce50db58b739185faa1faf523ExifIfd  exif-ifd_8c.html#557f08b1d90e26e072167911210c9eb1ifd  = exif-content_8c.html#102270386bc7fdc7296e243967f1a2f4exif_content_get_ifd  (c);
00237         exif-data-type_8h.html#b7d01513ff048ac5d8ae50a3e0235ce8ExifDataType  dt;
00238         exif-tag_8h.html#1a0ded93d47585f6889eb546915d0f41ExifTag  t;
00239         struct__ExifEntry.htmlExifEntry  *e;
00240 
00241         if (!c) return;
00242 
00243         dt = exif-data_8c.html#4fb5dada09c9fdcab3eb7fe7e840ec84exif_data_get_data_type  (c-> struct__ExifContent.html#ae965558ea5c98783c4c2418364aabeaparent );
00244 
00245         /* First of all, fix all existing entries. */ 00246         exif-content_8c.html#f7372b1342146e73a9d5b671c717a730exif_content_foreach_entry  (c, exif-content_8c.html#01413ca11ba6f2f10a0c4fbdd1ef5226fix_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#90f76ad051d48ed87fafa8aca39f98e2exif_tag_get_support_level_in_ifd  (t, ifd, dt)) {
00254                 case exif-tag_8h.html#ab34677f82c1f5f17df13e4912659ddbddc3006a2f625757fd9ad5be91e4ca40EXIF_SUPPORT_LEVEL_MANDATORY :
00255                         if ( exif-content_8c.html#c72bb2dacf0da27156c2c4dce08eef5dexif_content_get_entry  (c, t)) break;
00256                         exif-log_8c.html#025d4a5d96544913ea6f6ebbec69cb68exif_log  (c->priv->log, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_LOG_CODE_DEBUG , "exif-content",
00257                                         "Tag '%s' is mandatory in IFD '%s' and has therefore been added.",
00258                                         exif-tag_8c.html#82b5a88d44d27d432afb5a1db74268b0exif_tag_get_name_in_ifd  (t, ifd), exif-ifd_8c.html#57651cc68698f037cd9fb8f9d3a021a2exif_ifd_get_name  (ifd));
00259                         e = exif-entry_8c.html#81d54ed31654fc76331ca493a2a35633exif_entry_new  ();
00260                         exif-content_8c.html#89876388ea2f732f8c8cd2c8ef199908exif_content_add_entry  (c, e);
00261                         exif-entry_8c.html#d7f9e3fd0fde760c332dfbef208589edexif_entry_initialize  (e, t);
00262                         exif-entry_8c.html#82d5d923121488d847d341727cdd2ef4exif_entry_unref  (e);
00263                         break;
00264                 case exif-tag_8h.html#ab34677f82c1f5f17df13e4912659ddb51dbe231f8df9b73d8e3dea5d8ccc1d2EXIF_SUPPORT_LEVEL_NOT_RECORDED :
00265                         e = exif-content_8c.html#c72bb2dacf0da27156c2c4dce08eef5dexif_content_get_entry  (c, t);
00266                         if (!e) break;
00267                         exif-log_8c.html#025d4a5d96544913ea6f6ebbec69cb68exif_log  (c->priv->log, exif-log_8h.html#36f42667fb0481f099dbc0628dae2652e8772b1ad05481f996ae4ab831f22860EXIF_LOG_CODE_DEBUG , "exif-content",
00268                                         "Tag '%s' is not recoreded in IFD '%s' and has therefore been " 00269                                         "removed.", exif-tag_8c.html#82b5a88d44d27d432afb5a1db74268b0exif_tag_get_name_in_ifd  (t, ifd),
00270                                         exif-ifd_8c.html#57651cc68698f037cd9fb8f9d3a021a2exif_ifd_get_name  (ifd));
00271                         exif-content_8c.html#04f76832f82ea29ce05cd7c4e51932b1exif_content_remove_entry  (c, e);
00272                         break;
00273                 case exif-tag_8h.html#ab34677f82c1f5f17df13e4912659ddb223d4b5f60d18a5b37871844bd06728dEXIF_SUPPORT_LEVEL_OPTIONAL :
00274                 default:
00275                         break;
00276                 }
00277         }
00278 }
Generated on Sun Apr 23 02:19:18 2006 for EXIF library (libexif) Internals by 
http://www.doxygen.org/index.htmldoxygen  1.4.6 