  
    
main.htmlMain Page     
classes.htmlData Structures     
files.htmlFiles     
dirs.htmlDirectories   
  
    
files.htmlFile List     
globals.htmlGlobals   
dir_3c4fde49625df9344590fff295c7c38d.htmllibexif  &raquo dir_265b6d436dcd479b211f2ef756056fdc.htmlcanon mnote-canon-entry.c
mnote-canon-entry_8c.htmlGo to the documentation of this file. 00001 /* mnote-canon-entry.c 00002  * 00003  * Copyright © 2002 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 " mnote-canon-entry_8h.htmlmnote-canon-entry.h " 00024 
00025 #include <stdio.h> 00026 #include <stdlib.h> 00027 #include <string.h> 00028 
00029 #include < exif-format_8h.htmllibexif/exif-format.h > 00030 #include < exif-utils_8h.htmllibexif/exif-utils.h > 00031 #include < i18n_8h.htmllibexif/i18n.h > 00032 
00033 /* #define DEBUG */ 00034 
mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e6400035  #define CF(format,target,v,maxlen)                              \ 00036 {                                                               \ 00037         if (format != target) {                                 \ 00038                 snprintf (v, maxlen,                            \ 00039                         _("Invalid format '%s', "               \ 00040                         "expected '%s'."),                      \ 00041                         exif_format_get_name (format),          \ 00042                         exif_format_get_name (target));         \ 00043                 break;                                          \ 00044         }                                                       \ 00045 } 00046 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce300047  #define CC(number,target,v,maxlen)                                      \ 00048 {                                                                       \ 00049         if (number != target) {                                         \ 00050                 snprintf (v, maxlen,                                    \ 00051                         _("Invalid number of components (%i, "          \ 00052                         "expected %i)."), (int) number, (int) target);  \ 00053                 break;                                                  \ 00054         }                                                               \ 00055 } mnote-canon-entry_8c.html#d10a673ae1cc3b2ac77f28c2e8f0973700056  #define CC2(number,t1,t2,v,maxlen)                                      \ 00057 {                                                                       \ 00058         if ((number != t1) && (number != t2)) {                         \ 00059                 snprintf (v, maxlen,                                    \ 00060                         _("Invalid number of components (%i, "          \ 00061                         "expected %i or %i)."), (int) number,           \ 00062                         (int) t1, (int) t2);                            \ 00063                 break;                                                  \ 00064         }                                                               \ 00065 } 00066 mnote-canon-entry_8c.html#2dc3870be25a19efa2940150507aaf7100067  #define UNDEFINED 0xFF 00068     
00069 static struct  {
mnote-canon-entry_8c.html#18a0a47ed02ba4229ea27d2ac3ee506600070    unsigned int mnote-canon-entry_8c.html#18a0a47ed02ba4229ea27d2ac3ee5066subtag ;
mnote-canon-entry_8c.html#c3cc58975ec017f769b62d6e100e4d0600071    exif-utils_8h.html#398536727127a9bc2206ffbdacaafaadExifShort  mnote-canon-entry_8c.html#c3cc58975ec017f769b62d6e100e4d06value ;
mnote-canon-entry_8c.html#5ac083a645d964373f022d03df4849c800072    char * mnote-canon-entry_8c.html#5ac083a645d964373f022d03df4849c8name ;
00073 } mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries  [] = {
00074   { 0,  1, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("macro")},
00075   { 0,  2, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("normal")},
00076   { 3,  0, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("flash did not fire")},
00077   { 3,  1, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("auto")},
00078   { 3,  2, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("on")},
00079   { 3,  3, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("red eyes reduction")},
00080   { 3,  4, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("slow synchro")},
00081   { 3,  5, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("auto + red yes reduction")},
00082   { 3,  6, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("on + red eyes reduction")},
00083   { 3, 16, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("external")},
00084   { 4,  0, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("single or timer")},
00085   { 4,  1, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("continuous")},
00086   { 6,  0, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("one-Shot")},
00087   { 6,  1, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("AI Servo")},
00088   { 6,  2, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("AI Focus")},
00089   { 6,  3, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("MF")},
00090   { 6,  4, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Single")},
00091   { 6,  5, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Continuous")},
00092   { 6,  6, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("MF")},
00093   { 9,  0, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("large")},
00094   { 9,  1, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("medium")},
00095   { 9,  2, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("small")},
00096   {10,  0, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("full auto")},
00097         {10,  1, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("manual")},
00098         {10,  2, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("landscape")},
00099         {10,  3, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("fast shutter")},
00100         {10,  4, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("slow shutter")},
00101         {10,  5, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("night")},
00102         {10,  6, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Black & White")},
00103         {10,  7, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Sepia")},
00104         {10,  8, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Portrait")},
00105         {10,  9, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Sports")},
00106         {10, 10, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Macro / Close-Up")},
00107         {10, 11, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Pan Focus")},
00108         {12, 0x0000, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("normal")},
00109         {12, 0x0001, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("high")},
00110         {12, 0xffff, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("low")},
00111         {13, 0x0000, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("normal")},
00112         {13, 0x0001, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("high")},
00113         {13, 0xffff, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("low")},
00114         {14, 0x0000, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("normal")},
00115         {14, 0x0001, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("high")},
00116         {14, 0xffff, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("low")},
00117         {15, 15, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("auto")},
00118         {15, 16, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("50")},
00119         {15, 17, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("100")},
00120         {15, 18, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("200")},
00121         {15, 19, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("400")},
00122         {16,  3, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("evaluative")},
00123         {16,  4, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("partial")},
00124         {16,  5, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("center-weighted")},
00125         {18, 0x3000, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("none (manual focus)")},
00126         {18, 0x3001, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("auto-selected")},
00127         {18, 0x3002, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("right")},
00128         {18, 0x3003, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("center")},
00129         {18, 0x3004, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("left")},
00130         {19,  0, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("easy shooting")},
00131         {19,  1, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("program")},
00132         {19,  2, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Tv-priority")},
00133         {19,  3, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Av-priority")},
00134         {19,  4, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("manual")},
00135         {19,  5, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("A-DEP")},
00136         {21, 0x001, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 50mm f/1.8")},
00137         {21, 0x002, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 28mm f/2.8")},
00138         {21, 0x004, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Sigma UC Zoom 35-135mm f/4-5.6")},
00139         {21, 0x006, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Tokina AF193-2 19-35mm f/3.5-4.5")},
00140         {21, 0x010, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Sigma 50mm f/2.8 EX or 28mm f/1.8")},
00141         {21, 0x011, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 35mm f/2")},
00142         {21, 0x013, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 15mm f/2.8")},
00143         {21, 0x021, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 80-200mm f/2.8L")},
00144         {21, 0x026, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Cosina 100mm f/3.5 Macro AF")},
00145         {21, 0x028, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Tamron AF Aspherical 28-200mm f/3.8-5.6")},
00146         {21, 0x029, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 50mm f/1.8 MkII")},
00147         {21, 0x039, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 75-300mm f/4-5.6")},
00148         {21, 0x040, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 28-80mm f/3.5-5.6")},
00149         {21, 0x124, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon MP-E 65mm f/2.8 1-5x Macro Photo")},
00150         {21, 0x125, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon TS-E 24mm f/3.5L")},
00151         {21, 0x131, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Sigma 17-35mm f2.8-4 EX Aspherical HSM")},
00152         {21, 0x135, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 200mm f/1.8L")},
00153         {21, 0x136, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 300mm f/2.8L")},
00154         {21, 0x139, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 400mm f/2.8L")},
00155         {21, 0x141, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 500mm f/4.5L")},
00156         {21, 0x149, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 100mm f/2")},
00157         {21, 0x150, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Sigma 20mm EX f/1.8")},
00158         {21, 0x151, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 200mm f/2.8L")},
00159         {21, 0x153, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 35-350mm f/3.5-5.6L")},
00160         {21, 0x155, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 85mm f/1.8 USM")},
00161         {21, 0x156, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 28-105mm f/3.5-4.5 USM")},
00162         {21, 0x160, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 20-35mm f/3.5-4.5 USM")},
00163         {21, 0x161, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 28-70mm f/2.8L or Sigma 24-70mm EX f/2.8")},
00164         {21, 0x165, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 70-200mm f/2.8 L")},
00165         {21, 0x166, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 70-200mm f/2.8 L + x1.4")},
00166         {21, 0x167, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 70-200mm f/2.8 L + x2")},
00167         {21, 0x169, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Sigma 15-30mm f/3.5-4.5 EX DG Aspherical")},
00168         {21, 0x170, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 200mm f/2.8L II")},
00169         {21, 0x173, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 180mm Macro f/3.5L or Sigma 180mm EX HSM Macro f/3.5")},
00170         {21, 0x174, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 135mm f/2L")},
00171         {21, 0x176, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 24-85mm f/3.5-4.5 USM")},
00172         {21, 0x177, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 300mm f/4L IS")},
00173         {21, 0x178, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 28-135mm f/3.5-5.6 IS")},
00174         {21, 0x180, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 35mm f/1.4L")},
00175         {21, 0x182, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 100-400mm f/4.5-5.6L IS + x2")},
00176         {21, 0x183, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 100-400mm f/4.5-5.6L IS")},
00177         {21, 0x186, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 70-200mm f/4L")},
00178         {21, 0x190, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 100mm f/2.8 Macro")},
00179         {21, 0x191, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 400mm f/4 DO IS")},
00180         {21, 0x197, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 75-300mm f/4-5.6 IS")},
00181         {21, 0x198, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 50mm f/1.4")},
00182         {21, 0x202, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 28-80 f/3.5-5.6 USM IV")},
00183         {21, 0x213, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 90-300mm f/4.5-5.6")},
00184         {21, 0x229, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 16-35mm f/2.8L")},
00185         {21, 0x230, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 24-70mm f/2.8L")},
00186         {21, 0x231, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("Canon EF 17-40mm f/4L")},
00187   {31,  0, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("single")},
00188   {31,  1, i18n_8h.html#75278405e7f034d2b1af80bfd94675feN_ ("continuous")},
00189   { 0,  0, NULL}
00190 };
00191 
00192 unsigned int mnote-canon-entry_8h.html#3c6bf1abda2f966a7b891a0a32cafcd200193  mnote-canon-entry_8c.html#9d343f3faec828b2467bacbab0919f47mnote_canon_entry_count_values  (const struct__MnoteCanonEntry.htmlMnoteCanonEntry  *entry)
00194 {
00195         unsigned int  val;
00196 
00197         if (!entry) return 0;
00198 
00199         switch (entry-> struct__MnoteCanonEntry.html#5149803b1d26b39e2adfea73c4bf23bbtag ) {
00200         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba4470cd16ac8c0eac0ef2775ed5aa78db9MNOTE_CANON_TAG_SETTINGS_1 :
00201         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba46c1137eb65df9cf52c252b797f6bae24MNOTE_CANON_TAG_SETTINGS_2 :
00202         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba4a8954671a0ccf2fc3ae64ba3363fc9cbMNOTE_CANON_TAG_CUSTOM_FUNCS :
00203                 if (entry-> struct__MnoteCanonEntry.html#dc746fe67b6a9936b438524a39cfe7e9format  != exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT ) return 0;
00204 
00205                 val = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (entry-> struct__MnoteCanonEntry.html#b3f5b422bbc0a5d9b9905060e2951bdfdata , entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder );
00206                 /* val is buffer size, i.e. # of values plus 1 */ 00207                 return exif-loader_8c.html#3acffbd305ee72dcd4593c0d8af64a4fMIN  (entry-> struct__MnoteCanonEntry.html#e94be3aa11a5f858e248b5c3c819c327size  - 2, val) / 2;
00208         default:
00209                 return 1;
00210         }
00211 }
00212 
00213 char *
mnote-canon-entry_8h.html#74ae5cac5deb8197314ac3414a28a85700214  mnote-canon-entry_8c.html#89b5ffb4fb194043e60f4c521cec7cc9mnote_canon_entry_get_value  (const struct__MnoteCanonEntry.htmlMnoteCanonEntry  *entry, unsigned int t, char *val, unsigned int maxlen)
00215 {
00216         char buf[128];
00217         exif-utils_8h.html#34c5d7765ab2e6dec8308c5127a10afaExifLong  vl;
00218         exif-utils_8h.html#398536727127a9bc2206ffbdacaafaadExifShort  vs, n;
00219         unsigned int j;
00220         unsigned char *data = entry-> struct__MnoteCanonEntry.html#b3f5b422bbc0a5d9b9905060e2951bdfdata ;
00221 
00222         if (!entry) return NULL;
00223 
00224         memset (val, 0, maxlen);
00225         maxlen--;
00226 
00227         switch (entry-> struct__MnoteCanonEntry.html#5149803b1d26b39e2adfea73c4bf23bbtag ) {
00228         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba4470cd16ac8c0eac0ef2775ed5aa78db9MNOTE_CANON_TAG_SETTINGS_1 :
00229                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (entry-> struct__MnoteCanonEntry.html#dc746fe67b6a9936b438524a39cfe7e9format , exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT , val, maxlen);
00230                 n = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (data, entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder ) / 2;
00231                 if (t >= n) return NULL;
00232                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (entry-> struct__MnoteCanonEntry.html#9f2b0cf8664468473f6c61da8b328404components , n, val, maxlen);
00233                 vs = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (entry-> struct__MnoteCanonEntry.html#b3f5b422bbc0a5d9b9905060e2951bdfdata  + 2 + t * 2, entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder );
00234                 switch (t) {
00235                 case 1:
00236                         if (!vs) break;
00237                         snprintf (buf, sizeof (buf), i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("%i (ms)"), vs * 100);
00238                         strncpy (val, buf, maxlen - strlen (val));
00239                         break;
00240                 case 22:
00241                 case 23:
00242                         snprintf (buf, sizeof (buf), "%u", vs);
00243                         strncpy (val, buf, maxlen - strlen (val));
00244                         break;
00245                 case 24:
00246                         snprintf (buf, sizeof (buf), i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("%u mm"), vs);
00247                         strncpy (val, buf, maxlen - strlen(val));
00248                         break;
00249                 case 28:
00250                         if ((vs >> 14) & 1)
00251                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("External E-TTL"), maxlen - strlen (val));
00252                         if ((vs >> 13) & 1)
00253                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Internal flash"), maxlen - strlen (val));
00254                         if ((vs >> 11) & 1)
00255                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("FP sync used"), maxlen - strlen (val));
00256                         if ((vs >> 4) & 1)
00257                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("FP sync enabled"), maxlen - strlen (val));
00258                         break;
00259 
00260                 default:
00261                         for (j = 0; mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries [j].name && (( mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries [j].subtag < t) ||
00262                                                 (( mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries [j]. mnote-canon-entry_8c.html#18a0a47ed02ba4229ea27d2ac3ee5066subtag  == t) && mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries [j]. mnote-canon-entry_8c.html#c3cc58975ec017f769b62d6e100e4d06value  <= vs)); j++)
00263                                 if (( mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries [j]. mnote-canon-entry_8c.html#18a0a47ed02ba4229ea27d2ac3ee5066subtag  == t) && ( mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries [j]. mnote-canon-entry_8c.html#c3cc58975ec017f769b62d6e100e4d06value  == vs)) break;
00264                         if (( mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries [j]. mnote-canon-entry_8c.html#18a0a47ed02ba4229ea27d2ac3ee5066subtag  == t) &&
00265                                         ( mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries [j]. mnote-canon-entry_8c.html#c3cc58975ec017f769b62d6e100e4d06value  == vs) && mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries [j]. mnote-canon-entry_8c.html#5ac083a645d964373f022d03df4849c8name )
00266                                 strncpy (val, mnote-canon-entry_8c.html#3f48be5af3cab1c16fc7650d138442c5entries [j]. name, maxlen - strlen (val));
00267                         else {
00268                                 snprintf (buf, sizeof (buf), "0x%04x", vs);
00269                                 strncpy (val, buf, maxlen - strlen (val));
00270                         }
00271                 }
00272                 break;
00273 
00274         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba46c1137eb65df9cf52c252b797f6bae24MNOTE_CANON_TAG_SETTINGS_2 :
00275                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (entry-> struct__MnoteCanonEntry.html#dc746fe67b6a9936b438524a39cfe7e9format , exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT , val, maxlen);
00276                 n = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (data, entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder ) / 2;
00277                 if (t >= n) return NULL;
00278                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (entry-> struct__MnoteCanonEntry.html#9f2b0cf8664468473f6c61da8b328404components , n, val, maxlen);
00279                 vs = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (entry-> struct__MnoteCanonEntry.html#b3f5b422bbc0a5d9b9905060e2951bdfdata  + 2 + t * 2, entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder );
00280                 switch (t) {
00281                 case 6:
00282                         switch (vs) {
00283                         case 0:
00284                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Auto"), maxlen - strlen (val));
00285                                 break;
00286                         case 1:
00287                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Sunny"), maxlen - strlen (val));
00288                                 break;
00289                         case 2:
00290                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Cloudy"), maxlen - strlen (val));
00291                                 break;
00292                         case 3:
00293                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Tungsten"), maxlen - strlen (val));
00294                                 break;
00295                         case 4:
00296                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Flourescent"), maxlen - strlen (val));
00297                                 break;
00298                         case 5:
00299                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Flash"), maxlen - strlen (val));
00300                                 break;
00301                         case 6:
00302                                 strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("Custom"), maxlen - strlen (val));
00303                                 break;
00304                         default:
00305                                 snprintf (buf, sizeof (buf), "%i", vs);
00306                                 strncpy (val, buf, maxlen - strlen (val));
00307                         }
00308                         break;
00309                 case 8:
00310                         snprintf (buf, sizeof (buf), "%u", vs);
00311                         strncpy (val, buf, maxlen - strlen (val));
00312                         break;
00313                 case 13:
00314                         if (vs >> 12) {
00315                                 if (vs & 1)
00316                                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("right"), maxlen - strlen (val));
00317                                 if ((vs >> 1) & 1)
00318                                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("center"), maxlen - strlen (val));
00319                                 if ((vs >> 2) & 1)
00320                                         strncpy (val, i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("left"), maxlen - strlen (val));
00321                                 if (vs >> 12 == 1)
00322                                         snprintf (buf, sizeof (buf), i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ (" (1 available focus point)"));
00323                                 else 00324                                         snprintf (buf, sizeof (buf), i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ (" (%u available focus points)"), vs >> 12);
00325                                 strncat (val, buf, maxlen - strlen (val));
00326                         }
00327                         break;
00328                 case 14:
00329                         snprintf (buf, sizeof (buf), i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("%.2f EV"), vs / 32.);
00330                         strncpy (val, buf, maxlen - strlen (val));
00331                         break;
00332                 case 18:
00333                         snprintf (buf, sizeof (buf), i18n_8h.html#32a3cf3d9dd914f5aeeca5423c157934_ ("%u mm"), vs);
00334                         strncpy (val, buf, maxlen - strlen (val));
00335                         break;
00336                 default:
00337                         snprintf (buf, sizeof (buf), "0x%04x", vs);
00338                         strncpy (val, buf, maxlen - strlen (val));
00339                         break;
00340                 }
00341                 break;
00342 
00343         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba4f33c77f275bef5302c45b2348ad7c955MNOTE_CANON_TAG_OWNER :
00344                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (entry-> struct__MnoteCanonEntry.html#9f2b0cf8664468473f6c61da8b328404components , 32, val, maxlen);
00345                 /* Fall through; ImageType can have many sizes */ 00346         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba493583b83ff59f9780854e6cdadc8e30fMNOTE_CANON_TAG_IMAGE_TYPE :
00347                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (entry-> struct__MnoteCanonEntry.html#dc746fe67b6a9936b438524a39cfe7e9format , exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d28cee3caa738d8bb85311678f0cb0e868EXIF_FORMAT_ASCII , val, maxlen);
00348                 strncpy (val, (char *)data, exif-loader_8c.html#3acffbd305ee72dcd4593c0d8af64a4fMIN  (entry-> struct__MnoteCanonEntry.html#e94be3aa11a5f858e248b5c3c819c327size , maxlen));
00349                 break;
00350 
00351         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba4b11d8501c880e461ad957cb0977d4d28MNOTE_CANON_TAG_FIRMWARE :
00352                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (entry-> struct__MnoteCanonEntry.html#dc746fe67b6a9936b438524a39cfe7e9format , exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d28cee3caa738d8bb85311678f0cb0e868EXIF_FORMAT_ASCII , val, maxlen);
00353 /*              CC2 (entry->components, 24, 32, val, maxlen); Can also be 22 */ 00354                 strncpy (val, (char *)data, exif-loader_8c.html#3acffbd305ee72dcd4593c0d8af64a4fMIN  (entry-> struct__MnoteCanonEntry.html#e94be3aa11a5f858e248b5c3c819c327size , maxlen));
00355                 break;
00356 
00357         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba480d6eb0fbe3a84915823bea9af19d7d5MNOTE_CANON_TAG_IMAGE_NUMBER :
00358                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (entry-> struct__MnoteCanonEntry.html#dc746fe67b6a9936b438524a39cfe7e9format , exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25611dcd2fcdcaf91f25412bece8485b6EXIF_FORMAT_LONG , val, maxlen);
00359                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (entry-> struct__MnoteCanonEntry.html#9f2b0cf8664468473f6c61da8b328404components , 1, val, maxlen);
00360                 vl = exif-utils_8c.html#4ad94614630897766dd0a5c9bc2a59bfexif_get_long  (data, entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder );
00361                 snprintf (val, maxlen, "%03lu-%04lu",
00362                                 (unsigned long) vl/10000,
00363                                 (unsigned long) vl%10000);
00364                 break;
00365 
00366         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba4bb9b82ba8842e98db9456bc049e80406MNOTE_CANON_TAG_SERIAL_NUMBER :
00367                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (entry-> struct__MnoteCanonEntry.html#dc746fe67b6a9936b438524a39cfe7e9format , exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25611dcd2fcdcaf91f25412bece8485b6EXIF_FORMAT_LONG , val, maxlen);
00368                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (entry-> struct__MnoteCanonEntry.html#9f2b0cf8664468473f6c61da8b328404components , 1, val, maxlen);
00369                 vl = exif-utils_8c.html#4ad94614630897766dd0a5c9bc2a59bfexif_get_long  (data, entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder );
00370                 snprintf (val, maxlen, "%04X-%05d", (int)vl>>16,(int)vl&0xffff);
00371                 break;
00372 
00373         case mnote-canon-tag_8h.html#ef5b4bff3b1e2938e0eabb6dafc5dba4a8954671a0ccf2fc3ae64ba3363fc9cbMNOTE_CANON_TAG_CUSTOM_FUNCS :
00374                 mnote-canon-entry_8c.html#be3f1c3be53cd1322a0c0d55b7277e64CF  (entry-> struct__MnoteCanonEntry.html#dc746fe67b6a9936b438524a39cfe7e9format , exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT , val, maxlen);
00375                 n = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (data, entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder ) / 2;
00376                 if (t >= n) return NULL;
00377                 mnote-canon-entry_8c.html#07ec45612d8ae3bfd365de49a1459ce3CC  (entry-> struct__MnoteCanonEntry.html#9f2b0cf8664468473f6c61da8b328404components , n, val, maxlen);
00378                 vs = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (data + 2 + 2 * t, entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder );
00379                 snprintf (buf, sizeof (buf), "%u", vs);
00380                 strncat (val, buf, maxlen - strlen (val));
00381                 break;
00382 
00383         default:
00384 #ifdef DEBUG 00385                 if (entry-> struct__MnoteCanonEntry.html#dc746fe67b6a9936b438524a39cfe7e9format  == exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25f22efb2ec9e3bd9e29faa87cd7b64e5EXIF_FORMAT_SHORT )
00386                 for(i=0;i<entry-> struct__MnoteCanonEntry.html#9f2b0cf8664468473f6c61da8b328404components ;i++) {
00387                         vs = exif-utils_8c.html#4b4acf537a8c6b9405e7b53be868e4d7exif_get_short  (data, entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder );
00388                         data+=2;
00389                         printf ("Value%d=%d\n", i, vs);
00390                 }
00391                 else if (entry-> struct__MnoteCanonEntry.html#dc746fe67b6a9936b438524a39cfe7e9format  == exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d25611dcd2fcdcaf91f25412bece8485b6EXIF_FORMAT_LONG )
00392                 for(i=0;i<entry->components;i++) {
00393                         vl = exif-utils_8c.html#4ad94614630897766dd0a5c9bc2a59bfexif_get_long  (data, entry-> struct__MnoteCanonEntry.html#4e049e9f596df10810044aae0ec3569dorder );
00394                         data+=4;
00395                         printf ("Value%d=%d\n", i, vs);
00396                 }
00397                 else if (entry->format == exif-format_8h.html#761152047d73b4a9fcdc4e2051b817d28cee3caa738d8bb85311678f0cb0e868EXIF_FORMAT_ASCII )
00398                     strncpy (val, data, exif-loader_8c.html#3acffbd305ee72dcd4593c0d8af64a4fMIN  (entry->size, maxlen));
00399 #endif
00400                 break;
00401         }
00402         return val;
00403 }
Generated on Sun Apr 23 02:19:18 2006 for EXIF library (libexif) Internals by 
http://www.doxygen.org/index.htmldoxygen  1.4.6 