  
    
main.htmlMain Page     
classes.htmlData Structures     
files.htmlFiles     
dirs.htmlDirectories   
  
    
files.htmlFile List     
globals.htmlGlobals   
dir_20715630405f3b63e7ab7a5c713843d9.htmllibexif  &raquo dir_bea55758c19edd1eb54fe072709420f1.htmlcanon exif-mnote-data-canon.c
exif-mnote-data-canon_8c.htmlGo to the documentation of this file. 00001 /* exif-mnote-data-canon.c 00002  * 00003  * Copyright © 2002, 2003 Lutz Müller <lutz@users.sourceforge.net> 00004  * Copyright © 2003 Matthieu Castet <mat-c@users.sourceforge.net> 00005  * 00006  * This library is free software; you can redistribute it and/or 00007  * modify it under the terms of the GNU Lesser General Public 00008  * License as published by the Free Software Foundation; either 00009  * version 2 of the License, or (at your option) any later version. 00010  * 00011  * This library is distributed in the hope that it will be useful, 00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 00014  * Lesser General Public License for more details. 00015  * 00016  * You should have received a copy of the GNU Lesser General Public 00017  * License along with this library; if not, write to the 00018  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00019  * Boston, MA 02111-1307, USA. 00020  */ 00021 
00022 #include <config.h> 00023 #include " exif-mnote-data-canon_8h.htmlexif-mnote-data-canon.h " 00024 
00025 #include <stdlib.h> 00026 #include <stdio.h> 00027 #include <string.h> 00028 
00029 #include < exif-byte-order_8h.htmllibexif/exif-byte-order.h > 00030 #include < exif-utils_8h.htmllibexif/exif-utils.h > 00031 #include < exif-data_8h.htmllibexif/exif-data.h > 00032 
exif-mnote-data-canon_8c.html#ac47fa634ceaa64ebda2d1f75475520500033  #define DEBUG 00034 00035 static void exif-mnote-data-canon_8c.html#7d3b2c933886eebcf2eef77f1db9762900036  exif-mnote-data-canon_8c.html#7d3b2c933886eebcf2eef77f1db97629exif_mnote_data_canon_clear  ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *n)
00037 {
00038         struct__ExifMnoteData.htmlExifMnoteData  *d = ( struct__ExifMnoteData.htmlExifMnoteData  *) n;
00039         unsigned int i;
00040 
00041         if (!n) return;
00042 
00043         if (n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries ) {
00044                 for (i = 0; i < n-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count ; i++)
00045                         if (n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3555bbee84e9d81da3ec054a6cde8355data ) {
00046                                 exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (d-> struct__ExifMnoteData.html#5af61de00f29058de1d06484f96145fcmem , n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3555bbee84e9d81da3ec054a6cde8355data );
00047                                 n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3555bbee84e9d81da3ec054a6cde8355data  = NULL;
00048                         }
00049                 exif-mem_8c.html#c18517acd3216e21942966d3dfab5f53exif_mem_free  (d-> struct__ExifMnoteData.html#5af61de00f29058de1d06484f96145fcmem , n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries );
00050                 n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries  = NULL;
00051                 n-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count  = 0;
00052         }
00053 }
00054 
00055 static void exif-mnote-data-canon_8c.html#b8cb9f5e253266694d4fa74059389f1000056  exif-mnote-data-canon_8c.html#b8cb9f5e253266694d4fa74059389f10exif_mnote_data_canon_free  ( struct__ExifMnoteData.htmlExifMnoteData  *n)
00057 {
00058         if (!n) return;
00059 
00060         exif-mnote-data-canon_8c.html#7d3b2c933886eebcf2eef77f1db97629exif_mnote_data_canon_clear  (( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) n);
00061 }
00062 
00063 static void exif-mnote-data-canon_8c.html#bbc2f6e7f8c8fa466aa0e6e45774dbdc00064  exif-mnote-data-canon_8c.html#bbc2f6e7f8c8fa466aa0e6e45774dbdcexif_mnote_data_canon_get_tags  ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *dc, unsigned int n,
00065                 unsigned int *m, unsigned int *s)
00066 {
00067         unsigned int from = 0, to;
00068 
00069         if (!dc || !m) return;
00070         for (*m = 0; *m < dc-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count ; (*m)++) {
00071                 to = from + mnote-canon-entry_8c.html#43ef7a94abb1f6626d8bd6255a766689mnote_canon_entry_count_values  (&dc-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [*m]);
00072                 if (to > n) {
00073                         if (s) *s = n - from;
00074                         break;
00075                 }
00076                 from = to;
00077         }
00078 }
00079 
00080 static char *
exif-mnote-data-canon_8c.html#0b726955b3ce416704446c25d133f2f900081  exif-mnote-data-canon_8c.html#0b726955b3ce416704446c25d133f2f9exif_mnote_data_canon_get_value  ( struct__ExifMnoteData.htmlExifMnoteData  *note, unsigned int n, char *val, unsigned int maxlen)
00082 {
00083         struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *dc = ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) note;
00084         unsigned int m, s;
00085 
00086         if (!dc) return NULL;
00087         exif-mnote-data-canon_8c.html#bbc2f6e7f8c8fa466aa0e6e45774dbdcexif_mnote_data_canon_get_tags  (dc, n, &m, &s);
00088         if (m >= dc-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count ) return NULL;
00089         return mnote-canon-entry_8c.html#74f4dc73c4ff4e6d6e4684ae299fae02mnote_canon_entry_get_value  (&dc-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [m], s, val, maxlen);
00090 }
00091 
00092 static void exif-mnote-data-canon_8c.html#b0626cacd631c488cc691fa6f58557c000093  exif-mnote-data-canon_8c.html#b0626cacd631c488cc691fa6f58557c0exif_mnote_data_canon_set_byte_order  ( struct__ExifMnoteData.htmlExifMnoteData  *d, exif-byte-order_8h.html#de4a9c512c9cd4723485181c5679f1d5ExifByteOrder  o)
00094 {
00095         exif-byte-order_8h.html#de4a9c512c9cd4723485181c5679f1d5ExifByteOrder  o_orig;
00096         struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *n = ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) d;
00097         unsigned int i;
00098 
00099         if (!n) return;
00100 
00101         o_orig = n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder ;
00102         n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder  = o;
00103         for (i = 0; i < n-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count ; i++) {
00104                 n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3ac42129c6cb5b38b6b391f1aceb3989order  = o;
00105                 exif-utils_8c.html#a54ca56c1ccaeb730631f1c1e7ce807aexif_array_set_byte_order  (n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#c7d8eb13948391a3eb289154d0070d9cformat , n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3555bbee84e9d81da3ec054a6cde8355data ,
00106                                 n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#2912752f6e416f2ecd3ce858e8c0a1d4components , o_orig, o);
00107         }
00108 }
00109 
00110 static void exif-mnote-data-canon_8c.html#9e8144518124d553a804ad8aefd0add900111  exif-mnote-data-canon_8c.html#9e8144518124d553a804ad8aefd0add9exif_mnote_data_canon_set_offset  ( struct__ExifMnoteData.htmlExifMnoteData  *n, unsigned int o)
00112 {
00113         if (n) (( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) n)->offset = o;
00114 }
00115 
00116 static void exif-mnote-data-canon_8c.html#0f037f185f08be3489aa144019a361d500117  exif-mnote-data-canon_8c.html#0f037f185f08be3489aa144019a361d5exif_mnote_data_canon_save  ( struct__ExifMnoteData.htmlExifMnoteData  *ne, 
00118         unsigned char **buf, unsigned int *buf_size)
00119 {
00120         struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *n = ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) ne;
00121         unsigned int i, o, s, doff;
00122 
00123         if (!n || !buf || !buf_size) return;
00124 
00125         /* 00126          * Allocate enough memory for all entries and the number 00127          * of entries. 00128          */ 00129         *buf_size = 2 + n-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count  * 12 + 4;
00130         *buf = exif-mem_8c.html#28065115ce31c8c9c7701df5b3f4ada5exif_mem_alloc  (ne-> struct__ExifMnoteData.html#5af61de00f29058de1d06484f96145fcmem , sizeof (char) * *buf_size);
00131         if (!*buf) return;
00132 
00133         /* Save the number of entries */ 00134         exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (*buf, n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder , ( exif-utils_8h.html#23497f35004fb9e65a70b29fd1622a9cExifShort ) n-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count );
00135         
00136         /* Save each entry */ 00137         for (i = 0; i < n-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count ; i++) {
00138                 o = 2 + i * 12;
00139                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (*buf + o + 0, n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder , ( exif-utils_8h.html#23497f35004fb9e65a70b29fd1622a9cExifShort ) n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#1d37c874a6a63c3b1ad70ff18555887ctag );
00140                 exif-utils_8c.html#3c3f4df2af5ea90902c44b23b05e20c3exif_set_short  (*buf + o + 2, n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder , ( exif-utils_8h.html#23497f35004fb9e65a70b29fd1622a9cExifShort ) n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#c7d8eb13948391a3eb289154d0070d9cformat );
00141                 exif-utils_8c.html#73d539019fccab7808a97c9501e3154dexif_set_long   (*buf + o + 4, n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder ,
00142                                 n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#2912752f6e416f2ecd3ce858e8c0a1d4components );
00143                 o += 8;
00144                 s = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#c7d8eb13948391a3eb289154d0070d9cformat ) *
00145                                                 n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#2912752f6e416f2ecd3ce858e8c0a1d4components ;
00146                 if (s > 4) {
00147                         *buf_size += s;
00148 
00149                         /* Ensure even offsets. Set padding bytes to 0. */ 00150                         if (s & 1) *buf_size += 1;
00151                         *buf = exif-mem_8c.html#e29eb09328c6a3b7e24fb69e0078942cexif_mem_realloc  (ne-> struct__ExifMnoteData.html#5af61de00f29058de1d06484f96145fcmem , *buf,
00152                                                  sizeof (char) * *buf_size);
00153                         if (!*buf) return;
00154                         doff = *buf_size - s;
00155                         if (s & 1) { doff--; *(*buf + *buf_size - 1) = '\0'; }
00156                         exif-utils_8c.html#73d539019fccab7808a97c9501e3154dexif_set_long  (*buf + o, n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder , n-> struct__ExifMnoteDataCanon.html#77bc1e5e3909de94d558f05d6327b2ddoffset  + doff);
00157                 } else 00158                         doff = o;
00159 
00160                 /* 00161                  * Write the data. Fill unneeded bytes with 0. Do not 00162                  * crash if data is NULL. 00163                  */ 00164                 if (!n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3555bbee84e9d81da3ec054a6cde8355data ) memset (*buf + doff, 0, s);
00165                 else memcpy (*buf + doff, n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3555bbee84e9d81da3ec054a6cde8355data , s);
00166                 if (s < 4) memset (*buf + doff + s, 0, (4 - s));
00167         }
00168 }
00169 
00170 /* XXX 00171  * FIXME: exif_mnote_data_canon_load() may fail and there is no 00172  *        semantics to express that. 00173  *        See bug #1054323 for details, especially the comment by liblit 00174  *        after it has supposedly been fixed: 00175  * 00176  *        https://sourceforge.net/tracker/?func=detail&aid=1054323&group_id=12272&atid=112272 00177  *        Unfortunately, the "return" statements aren't commented at 00178  *        all, so it isn't trivial to find out what is a normal 00179  *        return, and what is a reaction to an error condition. 00180  */ 00181 
00182 static void exif-mnote-data-canon_8c.html#ae363e398cd7be32186e18387c40fcb600183  exif-mnote-data-canon_8c.html#ae363e398cd7be32186e18387c40fcb6exif_mnote_data_canon_load  ( struct__ExifMnoteData.htmlExifMnoteData  *ne,
00184         const unsigned char *buf, unsigned int buf_size)
00185 {
00186         struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *n = ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) ne;
00187         exif-utils_8h.html#23497f35004fb9e65a70b29fd1622a9cExifShort  c;
00188         unsigned int i, o, s;
00189 
00190         if (!n || !buf || !buf_size || (buf_size < 6 + n->offset + 2)) return;
00191 
00192         /* Read the number of entries and remove old ones. */ 00193         c = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (buf + 6 + n-> struct__ExifMnoteDataCanon.html#77bc1e5e3909de94d558f05d6327b2ddoffset , n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder );
00194         exif-mnote-data-canon_8c.html#7d3b2c933886eebcf2eef77f1db97629exif_mnote_data_canon_clear  (n);
00195 
00196         /* Parse the entries */ 00197         for (i = 0; i < c; i++) {
00198                 o = 6 + 2 + n-> struct__ExifMnoteDataCanon.html#77bc1e5e3909de94d558f05d6327b2ddoffset  + 12 * i;
00199           if (o + 8 > buf_size) return;
00200 
00201                 n-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count  = i + 1;
00202                 n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries  = exif-mem_8c.html#e29eb09328c6a3b7e24fb69e0078942cexif_mem_realloc  (ne-> struct__ExifMnoteData.html#5af61de00f29058de1d06484f96145fcmem , n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries ,
00203                                 sizeof ( struct__MnoteCanonEntry.htmlMnoteCanonEntry ) * (i+1));
00204                 memset (&n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i], 0, sizeof ( struct__MnoteCanonEntry.htmlMnoteCanonEntry ));
00205           n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#1d37c874a6a63c3b1ad70ff18555887ctag         = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (buf + o, n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder );
00206           n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#c7d8eb13948391a3eb289154d0070d9cformat      = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (buf + o + 2, n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder );
00207           n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#2912752f6e416f2ecd3ce858e8c0a1d4components  = exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (buf + o + 4, n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder );
00208           n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3ac42129c6cb5b38b6b391f1aceb3989order       = n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder ;
00209 
00210           /* 00211            * Size? If bigger than 4 bytes, the actual data is not 00212            * in the entry but somewhere else (offset). 00213            */ 00214           s = exif-format_8c.html#0cd0c832a16f47c39d50aeaeb6c07e83exif_format_get_size  (n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#c7d8eb13948391a3eb289154d0070d9cformat ) * n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#2912752f6e416f2ecd3ce858e8c0a1d4components ;
00215                 if (!s) return;
00216                 o += 8;
00217                 if (s > 4) o = exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (buf + o, n-> struct__ExifMnoteDataCanon.html#af9406f5a1120149260d02323dc4a9adorder ) + 6;
00218                 if (o + s > buf_size) return;
00219 
00220                 /* Sanity check */ 00221                 n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3555bbee84e9d81da3ec054a6cde8355data  = exif-mem_8c.html#28065115ce31c8c9c7701df5b3f4ada5exif_mem_alloc  (ne-> struct__ExifMnoteData.html#5af61de00f29058de1d06484f96145fcmem , sizeof (char) * s);
00222                 if (!n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3555bbee84e9d81da3ec054a6cde8355data ) return;
00223                 n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#ff227d9211c79fc6b9bd986fc45362efsize  = s;
00224                 memcpy (n-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]. struct__MnoteCanonEntry.html#3555bbee84e9d81da3ec054a6cde8355data , buf + o, s);
00225         }
00226 }
00227 
00228 static unsigned int exif-mnote-data-canon_8c.html#633f09e6e59d4bc6d3a7430433c053cd00229  exif-mnote-data-canon_8c.html#633f09e6e59d4bc6d3a7430433c053cdexif_mnote_data_canon_count  ( struct__ExifMnoteData.htmlExifMnoteData  *n)
00230 {
00231         struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *dc = ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) n;
00232         unsigned int i, c;
00233 
00234         for (i = c = 0; dc && (i < dc-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count ); i++)
00235                 c += mnote-canon-entry_8c.html#43ef7a94abb1f6626d8bd6255a766689mnote_canon_entry_count_values  (&dc-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [i]);
00236         return c;
00237 }
00238 
00239 static unsigned int exif-mnote-data-canon_8c.html#e0189ab3cc2f379ae5fdb052972b6ed000240  exif-mnote-data-canon_8c.html#e0189ab3cc2f379ae5fdb052972b6ed0exif_mnote_data_canon_get_id  ( struct__ExifMnoteData.htmlExifMnoteData  *d, unsigned int i)
00241 {
00242         struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *dc = ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) d;
00243         unsigned int m;
00244 
00245         if (!dc) return 0;
00246         exif-mnote-data-canon_8c.html#bbc2f6e7f8c8fa466aa0e6e45774dbdcexif_mnote_data_canon_get_tags  (dc, i, &m, NULL);
00247         if (m >= dc-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count ) return 0;
00248         return dc-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [m]. struct__MnoteCanonEntry.html#1d37c874a6a63c3b1ad70ff18555887ctag ;
00249 }
00250 
00251 static const char *
exif-mnote-data-canon_8c.html#768d784a8e9ee3d24d0178887bfe80a800252  exif-mnote-data-canon_8c.html#768d784a8e9ee3d24d0178887bfe80a8exif_mnote_data_canon_get_name  ( struct__ExifMnoteData.htmlExifMnoteData  *note, unsigned int i)
00253 {
00254         struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *dc = ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) note;
00255         unsigned int m, s;
00256 
00257         if (!dc) return NULL;
00258         exif-mnote-data-canon_8c.html#bbc2f6e7f8c8fa466aa0e6e45774dbdcexif_mnote_data_canon_get_tags  (dc, i, &m, &s);
00259         if (m >= dc-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count ) return NULL;
00260         return mnote-canon-tag_8c.html#e7f9013530eff30982d9d4757d275e85mnote_canon_tag_get_name_sub  (dc-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [m]. struct__MnoteCanonEntry.html#1d37c874a6a63c3b1ad70ff18555887ctag , s);
00261 }
00262 
00263 static const char *
exif-mnote-data-canon_8c.html#b05261bc6dabdf75ebc825b7abd714c900264  exif-mnote-data-canon_8c.html#b05261bc6dabdf75ebc825b7abd714c9exif_mnote_data_canon_get_title  ( struct__ExifMnoteData.htmlExifMnoteData  *note, unsigned int i)
00265 {
00266         struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *dc = ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) note;
00267         unsigned int m, s;
00268 
00269         if (!dc) return NULL;
00270         exif-mnote-data-canon_8c.html#bbc2f6e7f8c8fa466aa0e6e45774dbdcexif_mnote_data_canon_get_tags  (dc, i, &m, &s);
00271         if (m >= dc-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count ) return NULL;
00272         return mnote-canon-tag_8c.html#636bccb1829764793e451ef5161e436amnote_canon_tag_get_title_sub  (dc-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [m]. struct__MnoteCanonEntry.html#1d37c874a6a63c3b1ad70ff18555887ctag , s);
00273 }
00274 
00275 static const char *
exif-mnote-data-canon_8c.html#a031757ab541475a43f32da262ac2cd200276  exif-mnote-data-canon_8c.html#a031757ab541475a43f32da262ac2cd2exif_mnote_data_canon_get_description  ( struct__ExifMnoteData.htmlExifMnoteData  *note, unsigned int i)
00277 {
00278         struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *dc = ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon  *) note;
00279         unsigned int m;
00280 
00281         if (!dc) return NULL;
00282         exif-mnote-data-canon_8c.html#bbc2f6e7f8c8fa466aa0e6e45774dbdcexif_mnote_data_canon_get_tags  (dc, i, &m, NULL);
00283         if (m >= dc-> struct__ExifMnoteDataCanon.html#34828fe377ecf0c0042f99760eb112f4count ) return NULL;
00284         return mnote-canon-tag_8c.html#0f984fbbba3e9bce1f866e3f93a83bfcmnote_canon_tag_get_description  (dc-> struct__ExifMnoteDataCanon.html#7e0ee542f95c428b9543fa553a3812e2entries [m]. struct__MnoteCanonEntry.html#1d37c874a6a63c3b1ad70ff18555887ctag );
00285 }
00286 
00287 struct__ExifMnoteData.htmlExifMnoteData  *
exif-mnote-data-canon_8h.html#0ae1c332b1e8eb17a3f910b5c80dad3600288  exif-mnote-data-canon_8c.html#0ae1c332b1e8eb17a3f910b5c80dad36exif_mnote_data_canon_new  ( struct__ExifMem.htmlExifMem  *mem)
00289 {
00290         struct__ExifMnoteData.htmlExifMnoteData  *d;
00291 
00292         if (!mem) return NULL;
00293 
00294         d = exif-mem_8c.html#28065115ce31c8c9c7701df5b3f4ada5exif_mem_alloc  (mem, sizeof ( struct__ExifMnoteDataCanon.htmlExifMnoteDataCanon ));
00295         if (!d) return NULL;
00296 
00297         exif-mnote-data-priv_8h.html#4851f7dbe71b3c0faec2970bcd39e284exif_mnote_data_construct  (d, mem);
00298 
00299         /* Set up function pointers */ 00300         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#235b911b5e76cad1172c5551e6edd609free             = exif-mnote-data-canon_8c.html#b8cb9f5e253266694d4fa74059389f10exif_mnote_data_canon_free ;
00301         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#d841cedf65defa767e26d59479dbe59bset_byte_order   = exif-mnote-data-canon_8c.html#b0626cacd631c488cc691fa6f58557c0exif_mnote_data_canon_set_byte_order ;
00302         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#23a49245e91ceeb7b8693da10544e84eset_offset       = exif-mnote-data-canon_8c.html#9e8144518124d553a804ad8aefd0add9exif_mnote_data_canon_set_offset ;
00303         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#70dd60ad580375fe7533eaea4bf36386load             = exif-mnote-data-canon_8c.html#ae363e398cd7be32186e18387c40fcb6exif_mnote_data_canon_load ;
00304         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#bd9b0c209efcccfd92be7b3f16f1ff2dsave             = exif-mnote-data-canon_8c.html#0f037f185f08be3489aa144019a361d5exif_mnote_data_canon_save ;
00305         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#8c5c9588e9360c9d98362e52563cfdcdcount            = exif-mnote-data-canon_8c.html#633f09e6e59d4bc6d3a7430433c053cdexif_mnote_data_canon_count ;
00306         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#6f13f4a3b196ae98e0c8e52011e25f1eget_id           = exif-mnote-data-canon_8c.html#e0189ab3cc2f379ae5fdb052972b6ed0exif_mnote_data_canon_get_id ;
00307         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#d5578f1f1352a9d4f0d5ebcd15ee6347get_name         = exif-mnote-data-canon_8c.html#768d784a8e9ee3d24d0178887bfe80a8exif_mnote_data_canon_get_name ;
00308         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#dcec364c97ceb5ebb9620a51aef6bebcget_title        = exif-mnote-data-canon_8c.html#b05261bc6dabdf75ebc825b7abd714c9exif_mnote_data_canon_get_title ;
00309         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#53535571495924097f7c882cab4eb848get_description  = exif-mnote-data-canon_8c.html#a031757ab541475a43f32da262ac2cd2exif_mnote_data_canon_get_description ;
00310         d-> struct__ExifMnoteData.html#8aa4201e4ba43f3b45356ae8d9bb4bc5methods . struct__ExifMnoteDataMethods.html#68d48f72ec7505897fdd344781af5e6bget_value        = exif-mnote-data-canon_8c.html#0b726955b3ce416704446c25d133f2f9exif_mnote_data_canon_get_value ;
00311 
00312         return d;
00313 }
Generated on Sun Apr 23 01:22:39 2006 for EXIF library (libexif) Internals by 
http://www.doxygen.org/index.htmldoxygen  1.4.6 