  
    
main.htmlMain Page     
classes.htmlData Structures     
files.htmlFiles     
dirs.htmlDirectories   
  
    
files.htmlFile List     
globals.htmlGlobals   
dir_3c4fde49625df9344590fff295c7c38d.htmllibexif  &raquo dir_865be09178e76dd210ba2d95815f3c04.htmlpentax exif-mnote-data-pentax.c
exif-mnote-data-pentax_8c.htmlGo to the documentation of this file. 00001 /* exif-mnote-data-pentax.c 00002  * 00003  * Copyright © 2002, 2003 Lutz Mueller <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 #include " exif-mnote-data-pentax_8h.htmlexif-mnote-data-pentax.h " 00023 
00024 #include <stdlib.h> 00025 #include <string.h> 00026 #include <stdio.h> 00027 
00028 #include < exif-byte-order_8h.htmllibexif/exif-byte-order.h > 00029 #include < exif-utils_8h.htmllibexif/exif-utils.h > 00030 
00031 /* #define DEBUG */ 00032 
00033 static void exif-mnote-data-pentax_8c.html#5692961f9f5ea8ac552d06fbfae9460800034  exif-mnote-data-pentax_8c.html#5692961f9f5ea8ac552d06fbfae94608exif_mnote_data_pentax_clear  ( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *n)
00035 {
00036         struct__ExifMnoteData.htmlExifMnoteData  *d = ( struct__ExifMnoteData.htmlExifMnoteData  *) n;
00037         unsigned int i;
00038 
00039         if (!n) return;
00040 
00041         if (n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries ) {
00042                 for (i = 0; i < n-> struct__ExifMnoteDataPentax.html#68803d5161264b468c70eeb627e8689ecount ; i++)
00043                         if (n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#a789cc86395b0218d875948e75a6dfd8data ) {
00044                                 exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (d-> struct__ExifMnoteData.html#f4e3979d486789a2005b01100bc48c4bmem , n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#a789cc86395b0218d875948e75a6dfd8data );
00045                                 n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#a789cc86395b0218d875948e75a6dfd8data  = NULL;
00046                         }
00047                 exif-mem_8c.html#43190b81b4b4bdb4ffb89bfb612051b1exif_mem_free  (d-> struct__ExifMnoteData.html#f4e3979d486789a2005b01100bc48c4bmem , n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries );
00048                 n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries  = NULL;
00049                 n-> struct__ExifMnoteDataPentax.html#68803d5161264b468c70eeb627e8689ecount  = 0;
00050         }
00051 }
00052 
00053 static void exif-mnote-data-pentax_8c.html#82d158e7f9acb024ff6278598615256c00054  exif-mnote-data-pentax_8c.html#82d158e7f9acb024ff6278598615256cexif_mnote_data_pentax_free  ( struct__ExifMnoteData.htmlExifMnoteData  *n)
00055 {
00056         if (!n) return;
00057 
00058         exif-mnote-data-pentax_8c.html#5692961f9f5ea8ac552d06fbfae94608exif_mnote_data_pentax_clear  (( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *) n);
00059 }
00060 
00061 static char *
exif-mnote-data-pentax_8c.html#ae77b40af2bb904239a48f0b42143e9c00062  exif-mnote-data-pentax_8c.html#ae77b40af2bb904239a48f0b42143e9cexif_mnote_data_pentax_get_value  ( struct__ExifMnoteData.htmlExifMnoteData  *d, unsigned int i, char *val, unsigned int maxlen)
00063 {
00064         struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *n = ( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *) d;
00065 
00066         if (!n) return NULL;
00067         if (n-> struct__ExifMnoteDataPentax.html#68803d5161264b468c70eeb627e8689ecount  <= i) return NULL;
00068         return mnote-pentax-entry_8c.html#db79ea438e2552d504077606912af8acmnote_pentax_entry_get_value  (&n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i], val, maxlen);
00069 }
00070 
00071 static void exif-mnote-data-pentax_8c.html#15b400b4eddbdda7f4a929105d5224f000072  exif-mnote-data-pentax_8c.html#15b400b4eddbdda7f4a929105d5224f0exif_mnote_data_pentax_load  ( struct__ExifMnoteData.htmlExifMnoteData  *en,
00073                 const unsigned char *buf, unsigned int buf_size)
00074 {
00075         struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *n = ( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *) en;
00076         unsigned int i, o, s;
00077         exif-utils_8h.html#398536727127a9bc2206ffbdacaafaadExifShort  c;
00078 
00079         /* Number of entries */ 00080         if (buf_size < 2) return;
00081         c = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (buf + 6 + n-> struct__ExifMnoteDataPentax.html#47f5cb203d05bdeee0460c628f65e57coffset , n-> struct__ExifMnoteDataPentax.html#a58169c28b38f3b6a08129db035e5b08order );
00082         n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries  = exif-mem_8c.html#e8c09cfbcb95e435c4c4b7ec3bbd79e4exif_mem_alloc  (en-> struct__ExifMnoteData.html#f4e3979d486789a2005b01100bc48c4bmem , sizeof ( struct__MnotePentaxEntry.htmlMnotePentaxEntry ) * c);
00083         if (!n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries ) return;
00084 
00085         for (i = 0; i < c; i++) {
00086             o = 6 + 2 + n-> struct__ExifMnoteDataPentax.html#47f5cb203d05bdeee0460c628f65e57coffset  + 12 * i;
00087             if (o + 8 > buf_size) return;
00088 
00089             n-> struct__ExifMnoteDataPentax.html#68803d5161264b468c70eeb627e8689ecount  = i + 1;
00090             n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#d74cf1e86ed5e97e5e2b9a21fc6504a7tag         = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (buf + o + 0, n-> struct__ExifMnoteDataPentax.html#a58169c28b38f3b6a08129db035e5b08order );
00091             n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#95dab7a0b02912e659be0469c841411bformat      = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (buf + o + 2, n-> struct__ExifMnoteDataPentax.html#a58169c28b38f3b6a08129db035e5b08order );
00092             n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#12157d57c04c460c96a2603fedad2735components  = exif-utils_8c.html#4ad94614630897766dd0a5c9bc2a59bfexif_get_long   (buf + o + 4, n-> struct__ExifMnoteDataPentax.html#a58169c28b38f3b6a08129db035e5b08order );
00093             n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#8a7370d33d1b61808a1030700eca3eeaorder       = n-> struct__ExifMnoteDataPentax.html#a58169c28b38f3b6a08129db035e5b08order ;
00094 
00095             /* 00096              * Size? If bigger than 4 bytes, the actual data is not 00097              * in the entry but somewhere else (offset). 00098              */ 00099             s = exif-format_8c.html#924038efe0cd8ebade8f44619dd794f3exif_format_get_size  (n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#95dab7a0b02912e659be0469c841411bformat ) *
00100                                       n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#12157d57c04c460c96a2603fedad2735components ;
00101             if (!s) return;
00102             o += 8;
00103             if (s > 4) o = exif-utils_8c.html#4ad94614630897766dd0a5c9bc2a59bfexif_get_long  (buf + o, n-> struct__ExifMnoteDataPentax.html#a58169c28b38f3b6a08129db035e5b08order ) + 6;
00104             if (o + s > buf_size) return;
00105                                                                                 
00106             /* Sanity check */ 00107             n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#a789cc86395b0218d875948e75a6dfd8data  = exif-mem_8c.html#e8c09cfbcb95e435c4c4b7ec3bbd79e4exif_mem_alloc  (en-> struct__ExifMnoteData.html#f4e3979d486789a2005b01100bc48c4bmem , sizeof (char) * s);
00108             if (!n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#a789cc86395b0218d875948e75a6dfd8data ) return;
00109             n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#f4a3232bd33d8d6ef262392e89e5bf8fsize  = s;
00110             memcpy (n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#a789cc86395b0218d875948e75a6dfd8data , buf + o, s);
00111         }
00112 }
00113 
00114 static unsigned int exif-mnote-data-pentax_8c.html#19bed17d86d273b41f5ee6e93c00d57b00115  exif-mnote-data-pentax_8c.html#19bed17d86d273b41f5ee6e93c00d57bexif_mnote_data_pentax_count  ( struct__ExifMnoteData.htmlExifMnoteData  *n)
00116 {
00117         return n ? (( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *) n)->count : 0;
00118 }
00119 
00120 static unsigned int exif-mnote-data-pentax_8c.html#9dbd1aba48c7214b7f0d96c483655ae900121  exif-mnote-data-pentax_8c.html#9dbd1aba48c7214b7f0d96c483655ae9exif_mnote_data_pentax_get_id  ( struct__ExifMnoteData.htmlExifMnoteData  *d, unsigned int n)
00122 {
00123         struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *note = ( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *) d;
00124 
00125         if (!note) return 0;
00126         if (note-> struct__ExifMnoteDataPentax.html#68803d5161264b468c70eeb627e8689ecount  <= n) return 0;
00127         return note-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [n]. struct__MnotePentaxEntry.html#d74cf1e86ed5e97e5e2b9a21fc6504a7tag ;
00128 }
00129 
00130 static const char *
exif-mnote-data-pentax_8c.html#96600e3e6e7f5f086901c75c641d67e100131  exif-mnote-data-pentax_8c.html#96600e3e6e7f5f086901c75c641d67e1exif_mnote_data_pentax_get_name  ( struct__ExifMnoteData.htmlExifMnoteData  *d, unsigned int n)
00132 {
00133         struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *note = ( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *) d;
00134 
00135         if (!note) return NULL;
00136         if (note-> struct__ExifMnoteDataPentax.html#68803d5161264b468c70eeb627e8689ecount  <= n) return NULL;
00137         return mnote-pentax-tag_8c.html#ff5ff8ef6f5f5d183146b9f867036851mnote_pentax_tag_get_name  (note-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [n]. struct__MnotePentaxEntry.html#d74cf1e86ed5e97e5e2b9a21fc6504a7tag );
00138 }
00139 
00140 static const char *
exif-mnote-data-pentax_8c.html#8ae95c8342e4d90900ef782fb7d4f46900141  exif-mnote-data-pentax_8c.html#8ae95c8342e4d90900ef782fb7d4f469exif_mnote_data_pentax_get_title  ( struct__ExifMnoteData.htmlExifMnoteData  *d, unsigned int n)
00142 {
00143         struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *note = ( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *) d;
00144 
00145         if (!note) return NULL;
00146         if (note-> struct__ExifMnoteDataPentax.html#68803d5161264b468c70eeb627e8689ecount  <= n) return NULL;
00147         return mnote-pentax-tag_8c.html#6324d52fb2344ccfccedcf8af394c7d0mnote_pentax_tag_get_title  (note-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [n]. struct__MnotePentaxEntry.html#d74cf1e86ed5e97e5e2b9a21fc6504a7tag );
00148 }
00149 
00150 static const char *
exif-mnote-data-pentax_8c.html#b93a4d276686f71eb66c5d8842ecb5ea00151  exif-mnote-data-pentax_8c.html#b93a4d276686f71eb66c5d8842ecb5eaexif_mnote_data_pentax_get_description  ( struct__ExifMnoteData.htmlExifMnoteData  *d, unsigned int n)
00152 {
00153         struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *note = ( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *) d;
00154         
00155         if (!note) return NULL;
00156         if (note-> struct__ExifMnoteDataPentax.html#68803d5161264b468c70eeb627e8689ecount  <= n) return NULL;
00157         return mnote-pentax-tag_8c.html#30ee5edeecdce79957826fd41dfe2e2dmnote_pentax_tag_get_description  (note-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [n]. struct__MnotePentaxEntry.html#d74cf1e86ed5e97e5e2b9a21fc6504a7tag );
00158 }
00159 
00160 static void exif-mnote-data-pentax_8c.html#0fc18a8b6cd347be2eb68b4a05b200d600161  exif-mnote-data-pentax_8c.html#0fc18a8b6cd347be2eb68b4a05b200d6exif_mnote_data_pentax_set_offset  ( struct__ExifMnoteData.htmlExifMnoteData  *d, unsigned int o)
00162 {
00163         if (d) (( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *) d)->offset = o;
00164 }
00165 
00166 static void exif-mnote-data-pentax_8c.html#086e5b21d67069237955d8f30bd6c3c500167  exif-mnote-data-pentax_8c.html#086e5b21d67069237955d8f30bd6c3c5exif_mnote_data_pentax_set_byte_order  ( struct__ExifMnoteData.htmlExifMnoteData  *d, exif-byte-order_8h.html#f966227d69ff74eea7ecd69ca645155bExifByteOrder  o)
00168 {
00169         exif-byte-order_8h.html#f966227d69ff74eea7ecd69ca645155bExifByteOrder  o_orig;
00170         struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *n = ( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax  *) d;
00171         unsigned int i;
00172 
00173         if (!n) return;
00174 
00175         o_orig = n-> struct__ExifMnoteDataPentax.html#a58169c28b38f3b6a08129db035e5b08order ;
00176         n-> struct__ExifMnoteDataPentax.html#a58169c28b38f3b6a08129db035e5b08order  = o;
00177         for (i = 0; i < n-> struct__ExifMnoteDataPentax.html#68803d5161264b468c70eeb627e8689ecount ; i++) {
00178                 n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#8a7370d33d1b61808a1030700eca3eeaorder  = o;
00179                 exif-utils_8c.html#54ef3b86ffeb643e9c4434b85ccf2992exif_array_set_byte_order  (n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#95dab7a0b02912e659be0469c841411bformat , n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#a789cc86395b0218d875948e75a6dfd8data ,
00180                                 n-> struct__ExifMnoteDataPentax.html#8b81c8b2e4db3a178c6ea6a2ff49a0a4entries [i]. struct__MnotePentaxEntry.html#12157d57c04c460c96a2603fedad2735components , o_orig, o);
00181         }
00182 }
00183 
00184 struct__ExifMnoteData.htmlExifMnoteData  *
exif-mnote-data-pentax_8h.html#0c85ae70ee9f0e38536668d156f4d93800185  exif-mnote-data-pentax_8c.html#0e2c726228df26028291868165509812exif_mnote_data_pentax_new  ( struct__ExifMem.htmlExifMem  *mem)
00186 {
00187         struct__ExifMnoteData.htmlExifMnoteData  *d;
00188 
00189         if (!mem) return NULL;
00190 
00191         d = exif-mem_8c.html#e8c09cfbcb95e435c4c4b7ec3bbd79e4exif_mem_alloc  (mem, sizeof ( struct__ExifMnoteDataPentax.htmlExifMnoteDataPentax ));
00192         if (!d) return NULL;
00193 
00194         exif-mnote-data-priv_8h.html#06db5604f65a97b1c5ea3fcc4bfec7dcexif_mnote_data_construct  (d, mem);
00195 
00196         /* Set up function pointers */ 00197         d-> struct__ExifMnoteData.html#431955e099ce8f160de45644f2bddaebmethods . struct__ExifMnoteDataMethods.html#a63698879f7a67e6b17c112b1bd5bad8free             = exif-mnote-data-pentax_8c.html#82d158e7f9acb024ff6278598615256cexif_mnote_data_pentax_free ;
00198         d-> struct__ExifMnoteData.html#431955e099ce8f160de45644f2bddaebmethods . struct__ExifMnoteDataMethods.html#2e6037a3070fa6b0f2a66b16c5ce70aeset_byte_order   = exif-mnote-data-pentax_8c.html#086e5b21d67069237955d8f30bd6c3c5exif_mnote_data_pentax_set_byte_order ;
00199         d-> struct__ExifMnoteData.html#431955e099ce8f160de45644f2bddaebmethods . struct__ExifMnoteDataMethods.html#bb617ca9aecebc6a4bdea49aec2bc8b0set_offset       = exif-mnote-data-pentax_8c.html#0fc18a8b6cd347be2eb68b4a05b200d6exif_mnote_data_pentax_set_offset ;
00200         d-> struct__ExifMnoteData.html#431955e099ce8f160de45644f2bddaebmethods . struct__ExifMnoteDataMethods.html#351860e435018eb6f20a1a80cc848058load             = exif-mnote-data-pentax_8c.html#15b400b4eddbdda7f4a929105d5224f0exif_mnote_data_pentax_load ;
00201         d-> struct__ExifMnoteData.html#431955e099ce8f160de45644f2bddaebmethods . struct__ExifMnoteDataMethods.html#aad86617351c2ee737b392f94040cccbcount            = exif-mnote-data-pentax_8c.html#19bed17d86d273b41f5ee6e93c00d57bexif_mnote_data_pentax_count ;
00202         d-> struct__ExifMnoteData.html#431955e099ce8f160de45644f2bddaebmethods . struct__ExifMnoteDataMethods.html#453d479929b42b3db130e4853ca1f0c5get_id           = exif-mnote-data-pentax_8c.html#9dbd1aba48c7214b7f0d96c483655ae9exif_mnote_data_pentax_get_id ;
00203         d-> struct__ExifMnoteData.html#431955e099ce8f160de45644f2bddaebmethods . struct__ExifMnoteDataMethods.html#478e4e150437d70bdfdb6ceb274603ebget_name         = exif-mnote-data-pentax_8c.html#96600e3e6e7f5f086901c75c641d67e1exif_mnote_data_pentax_get_name ;
00204         d-> struct__ExifMnoteData.html#431955e099ce8f160de45644f2bddaebmethods . struct__ExifMnoteDataMethods.html#c14c8b9a7a9a282b94fc2c7476110d25get_title        = exif-mnote-data-pentax_8c.html#8ae95c8342e4d90900ef782fb7d4f469exif_mnote_data_pentax_get_title ;
00205         d-> struct__ExifMnoteData.html#431955e099ce8f160de45644f2bddaebmethods . struct__ExifMnoteDataMethods.html#4ca7e0ab9aed5703a2038699e9bcc486get_description  = exif-mnote-data-pentax_8c.html#b93a4d276686f71eb66c5d8842ecb5eaexif_mnote_data_pentax_get_description ;
00206         d-> struct__ExifMnoteData.html#431955e099ce8f160de45644f2bddaebmethods . struct__ExifMnoteDataMethods.html#35e308b7ffbdc5dcd6681eab820ba444get_value        = exif-mnote-data-pentax_8c.html#ae77b40af2bb904239a48f0b42143e9cexif_mnote_data_pentax_get_value ;
00207 
00208         return d;
00209 }
Generated on Sun Apr 23 02:19:19 2006 for EXIF library (libexif) Internals by 
http://www.doxygen.org/index.htmldoxygen  1.4.6 