  
    
main.htmlMain Page     
classes.htmlData Structures     
files.htmlFiles     
dirs.htmlDirectories   
  
    
files.htmlFile List     
globals.htmlGlobals   
dir_20715630405f3b63e7ab7a5c713843d9.htmllibexif  &raquo dir_57e6ecf440319940c3301c1b4e94982a.htmlolympus mnote-olympus-entry.c
mnote-olympus-entry_8c.htmlGo to the documentation of this file. 00001 /* mnote-olympus-entry.c 00002  * 00003  * Copyright © 2002 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 #include " mnote-olympus-entry_8h.htmlmnote-olympus-entry.h " 00023 
00024 #include <stdio.h> 00025 #include <stdlib.h> 00026 #include <string.h> 00027 
00028 #include < exif-format_8h.htmllibexif/exif-format.h > 00029 #include < exif-utils_8h.htmllibexif/exif-utils.h > 00030 #include < exif-entry_8h.htmllibexif/exif-entry.h > 00031 #include < i18n_8h.htmllibexif/i18n.h > 00032 
mnote-olympus-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5e00033  #define CF(format,target,v,maxlen)                              \ 00034 {                                                               \ 00035         if (format != target) {                                 \ 00036                 snprintf (v, maxlen,                            \ 00037                         _("Invalid format '%s', "               \ 00038                         "expected '%s'."),                      \ 00039                         exif_format_get_name (format),          \ 00040                         exif_format_get_name (target));         \ 00041                 break;                                          \ 00042         }                                                       \ 00043 } 00044 mnote-olympus-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbd00045  #define CC(number,target,v,maxlen)                                      \ 00046 {                                                                       \ 00047         if (number != target) {                                         \ 00048                 snprintf (v, maxlen,                                    \ 00049                         _("Invalid number of components (%i, "          \ 00050                         "expected %i)."), (int) number, (int) target);  \ 00051                 break;                                                  \ 00052         }                                                               \ 00053 } 00054 mnote-olympus-entry_8c.html#417a66e74b70bc21d25bbada9d9352fa00055  #define CC2(number,t1,t2,v,maxlen)                                      \ 00056 {                                                                       \ 00057         if ((number != t1) && (number != t2)) {                         \ 00058                 snprintf (v, maxlen,                                    \ 00059                         _("Invalid number of components (%i, "          \ 00060                         "expected %i or %i)."), (int) number,           \ 00061                         (int) t1, (int) t2);                            \ 00062                 break;                                                  \ 00063         }                                                               \ 00064 } 00065 00066 static struct {
mnote-olympus-entry_8c.html#00b5e67d036a56d6bde55b838adcd30400067          exif-tag_8h.html#c9815913f16bb40205dcbc2b4d9f36a3ExifTag  mnote-canon-tag_8c.html#d88e1213ca240fe301a9559678bddd9btag ;
mnote-olympus-entry_8c.html#f40db092f503003b7bf507205f39893b00068      exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ExifFormat  mnote-olympus-entry_8c.html#f40db092f503003b7bf507205f39893bfmt ;
00069         struct {
mnote-olympus-entry_8c.html#de656d9dbc961315338502c279442a7a00070                  int exif-entry_8c.html#de656d9dbc961315338502c279442a7aindex ;
mnote-olympus-entry_8c.html#fdc36b1bc56391e3ac1692b287dc2bb800071                  const char * mnote-olympus-entry_8c.html#fdc36b1bc56391e3ac1692b287dc2bb8string ;
00072         } exif-entry_8c.html#1a2e3f9570a7b119e5ffc2124239ec0aelem [10];
00073 } mnote-olympus-entry_8c.html#811e40b15bce44da9a6d024957a47a55items [] = {
00074   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5baaadad817d55a3f30537dcad0a4e5927MNOTE_NIKON_TAG_LENSTYPE , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd10fe99fc897d3c96ff849052179d880f1EXIF_FORMAT_BYTE ,
00075     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("AF non D Lens")},
00076       {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Manual")},
00077       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("AF-D or AF-S Lens")},
00078       {6, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("AF-D G Lens")},
00079       {10, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("AF-D VR Lens")},
00080       {0, NULL}}},
00081   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b5befb668ed1cf6ac2a47fb6768fd8211MNOTE_NIKON_TAG_FLASHUSED , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd10fe99fc897d3c96ff849052179d880f1EXIF_FORMAT_BYTE ,
00082     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash did not fire")},
00083       {4, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash unit unknown")},
00084       {7, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash is external")},
00085       {9, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Flash is on Camera")},
00086       {0, NULL}}},
00087   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b674574e5d4bf03dc8289c895156f8c8dMNOTE_NIKON1_TAG_QUALITY , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00088     { {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("VGA Basic")},
00089       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("VGA Normal")},
00090       {3, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("VGA Fine")},
00091       {4, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("SXGA Basic")},
00092       {5, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("SXGA Normal")},
00093       {6, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("SXGA Fine")},
00094       {10, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("2 MPixel Basic")},
00095       {11, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("2 MPixel Normal")},
00096       {12, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("2 MPixel Fine")},
00097       {0, NULL}}},
00098   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5be357ef7772084123c19b4fed2276d788MNOTE_NIKON1_TAG_COLORMODE , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00099     { {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Color")},
00100       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Monochrome")},
00101       {0, NULL}}},
00102   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b0ff3566d7238c8a608dda46113e9b515MNOTE_NIKON1_TAG_IMAGEADJUSTMENT , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00103     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Normal")},
00104       {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Bright+")},
00105       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Bright-")},
00106       {3, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Contrast+")},
00107       {4, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Contrast-")},
00108       {0, NULL}}},
00109   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b443945325e1eeb82b37f0a32ea647b6fMNOTE_NIKON1_TAG_CCDSENSITIVITY , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00110     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("ISO80")},
00111       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("ISO160")},
00112       {4, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("ISO320")},
00113       {5, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("ISO100")},
00114       {0, NULL}}},
00115   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b14819bac69777e8b085c7dfc237972a8MNOTE_NIKON1_TAG_WHITEBALANCE , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00116     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Auto")},
00117       {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Preset")},
00118       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Daylight")},
00119       {3, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Incandescense")},
00120       {4, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Fluorescence")},
00121       {5, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Cloudy")},
00122       {6, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("SpeedLight")},
00123       {0, NULL}}},
00124   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b7749ff0a6f92a920d1f1b4534277322bMNOTE_NIKON1_TAG_CONVERTER , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00125     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("No Fisheye")},
00126       {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Fisheye On")},
00127       {0, NULL}}},
00128   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bef7dc1e9824114eed26b11a4005c6960MNOTE_OLYMPUS_TAG_QUALITY , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00129     { {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("SQ")},
00130       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("HQ")},
00131       {3, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("SHQ")},
00132       {0, NULL}}},
00133   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b55cab562a8eaff9f1ba3fa5287d1c2fcMNOTE_OLYMPUS_TAG_MACRO , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00134     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("No")},
00135       {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Yes")},
00136       {0, NULL}}},
00137   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bff56ab844f09da75a4db7ead4f853625MNOTE_OLYMPUS_TAG_DIGIZOOM , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00138     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("1x")},
00139       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("2x")},
00140       {0, NULL}}},
00141   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bf076dd4f08b8eca744683493bf30cab1MNOTE_OLYMPUS_TAG_FLASHMODE , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00142     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Auto")},
00143       {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Red-eye reduction")},
00144       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Fill")},
00145       {3, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Off")},
00146       {0, NULL}}},
00147   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b19341f5ec03b8a006377bf32d39b377dMNOTE_OLYMPUS_TAG_SHARPNESS , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00148     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Normal")},
00149       {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Hard")},
00150       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Soft")},
00151       {0, NULL}}},
00152   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bc544114ecb849e00d6ba23af7067bef6MNOTE_OLYMPUS_TAG_CONTRAST , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00153     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Hard")},
00154       {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Normal")},
00155       {2, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Soft")},
00156       {0, NULL}}},
00157   { mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b2555f69a0fe6b3a0a2b0b9d2c745d35bMNOTE_OLYMPUS_TAG_MANFOCUS , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT ,
00158     { {0, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("No")},
00159       {1, i18n_8h.html#3a5ebfb532ab1a97cf24a0c0320b9c58N_ ("Yes")},
00160       {0, NULL}}},
00161   { 0, }
00162 };
00163 
00164 char *
mnote-olympus-entry_8h.html#4fb5fc3f1e1abf42903581fc18a898ff00165  mnote-olympus-entry_8c.html#16a9c1f2c418bf3b1338460907a0f47emnote_olympus_entry_get_value  ( struct__MnoteOlympusEntry.htmlMnoteOlympusEntry  *entry, char *v, unsigned int maxlen)
00166 {
00167         char         buf[30];
00168         exif-utils_8h.html#1601686195534cc6337c596fb8af54faExifLong      vl;
00169         exif-utils_8h.html#23497f35004fb9e65a70b29fd1622a9cExifShort     vs = 0;
00170         structExifRational.htmlExifRational  vr;
00171         int          i, j;
00172         double       r, b;
00173 
00174         if (!entry)
00175                 return (NULL);
00176 
00177         memset (v, 0, maxlen);
00178         maxlen--;
00179 
00180         if ((!entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data ) && (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents  > 0)) return (v);
00181 
00182         switch (entry-> struct__MnoteOlympusEntry.html#5992d58d3aec91729b86961c50591ab4tag ) {
00183         
00184         /* Nikon */ 00185         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b82bea6426731808a957880c8866d8045MNOTE_NIKON_TAG_FIRMWARE :
00186                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format ,  exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED , v, maxlen);
00187                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 4, v, maxlen);
00188                 vl = exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data , entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00189                 if ((vl & 0xF0F0F0F0) == 0x30303030) {
00190                         memcpy (v, entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data , exif-loader_8c.html#9b073a1e97ac8f23636b9d2d443525a5MIN  (maxlen, 4));
00191                 } else {
00192                         snprintf (v, maxlen, "%04lx", (long unsigned int) vl);
00193                 }
00194                 break;
00195         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bd1efbf422db338a94ee0ab52fdada4daMNOTE_NIKON_TAG_ISO :
00196                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT , v, maxlen);
00197                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 2, v, maxlen);
00198                 //vs = exif_get_short (entry->data, entry->order); 00199                 vs = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data  + 2, entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00200                 snprintf (v, maxlen, "ISO %hd", vs);
00201                 break;
00202         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b913a61f4150effe5ec94fca6c5684a00MNOTE_NIKON_TAG_ISO2 :
00203                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT , v, maxlen);
00204                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 2, v, maxlen);
00205                 //vs = exif_get_short (entry->data, entry->order); 00206                 vs = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data  + 2, entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00207                 snprintf (v, maxlen, "ISO2 %hd", vs);
00208                 break;
00209         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b2b0cdca51e6520bdf76d9eae68339946MNOTE_NIKON_TAG_QUALITY :
00210                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII , v, maxlen);
00211                 //CC (entry->components, 8, v, maxlen); 00212                 //vl =  exif_get_long (entry->data  , entry->order); 00213                 //printf("-> 0x%04x\n",entry->data); 00214                 //printf("-> 0x%s<\n",entry->data - 0); 00215                 memcpy(v, entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data  ,entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents );
00216                 //snprintf (v, maxlen, "%s<",  ( entry->data - 9  ); 00217                 break;
00218         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bc8c551a91bb7a0ac7ad61cd8d590b650MNOTE_NIKON_TAG_COLORMODE :
00219         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b2c0bfbac77011da302a115cc6e3ae554MNOTE_NIKON_TAG_COLORMODE1 :
00220         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bef89d34b2d97c9818ebff65bafab2a72MNOTE_NIKON_TAG_WHITEBALANCE :
00221         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bf390f70a4915198a57ff4d84db72e03cMNOTE_NIKON_TAG_SHARPENING :
00222         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b63f240a96827a646c010207a3dc2ab0bMNOTE_NIKON_TAG_FOCUSMODE :
00223         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b839a7ffd4dae07db8eb51bf90b518480MNOTE_NIKON_TAG_FLASHSETTING :
00224         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bc41c559b4526978ee1431e95c94ae2d0MNOTE_NIKON_TAG_ISOSELECTION :
00225         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bfbd0b4b002542af6b3b4259ff43c8d39MNOTE_NIKON_TAG_FLASHMODE :
00226         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bc45d70f8b74c181f41ae058eab7fab98MNOTE_NIKON_TAG_IMAGEADJUSTMENT :
00227         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b2c8857f3df84ba4f87b50199c06d1e13MNOTE_NIKON_TAG_ADAPTER :
00228                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII , v, maxlen);
00229                 memcpy(v, entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data , exif-loader_8c.html#9b073a1e97ac8f23636b9d2d443525a5MIN  (maxlen, entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents ));
00230                 break;
00231         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bbe0d774368d0e344c25c25f7d1e4f9a0MNOTE_NIKON_TAG_TOTALPICTURES :
00232                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1b6f3a3c87b514af859dc91a1a1760f51EXIF_FORMAT_LONG , v, maxlen);
00233                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 1, v, maxlen);
00234                 vl =  exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data , entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00235                 snprintf (v, maxlen, "%lu",  (long unsigned int) vl );
00236                 break;
00237         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b9cd052fc48dfafaa11dfe5ee14fc1279MNOTE_NIKON_TAG_WHITEBALANCEFINE :
00238                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd174d803878ec7ffd34158ef9cc5be8714EXIF_FORMAT_SSHORT , v, maxlen);
00239                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 1, v, maxlen);
00240                 vs = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data , entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00241                 snprintf (v, maxlen, "%hd", vs);
00242                 break;
00243         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b23d4cd7eeba3393a559068fccd8169e5MNOTE_NIKON_TAG_WHITEBALANCERB :
00244                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , v, maxlen);
00245                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 4, v, maxlen);
00246                 vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data , entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00247                 r = (double)vr. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  / vr. structExifRational.html#9ed7ed672889fd57c6862005e07db87cdenominator ;
00248                 vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data +8, entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00249                 b = (double)vr. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  / vr. structExifRational.html#9ed7ed672889fd57c6862005e07db87cdenominator ;
00250                 //printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); 00251                 snprintf (v, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Red Correction %f, Blue Correction %f"), r,b);
00252                 break;
00253         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b076bff5323d379e3a64ac7f009708b3cMNOTE_NIKON_TAG_MANUALFOCUSDISTANCE :
00254                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , v, maxlen);
00255                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 1, v, maxlen);
00256                 vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data , entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00257                 if (vr. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator ) {
00258                         r = (double)vr. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  / vr. structExifRational.html#9ed7ed672889fd57c6862005e07db87cdenominator ;
00259                         snprintf (v, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("%2.2f meters"), r);
00260                 } else {
00261                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("No manual focus selection"), maxlen);
00262                 }
00263                 break;
00264         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b0115ca82e93db96647a22993339dc9afMNOTE_NIKON_TAG_DIGITALZOOM :
00265         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b664e63c0a3bf25f9a3a647b5d436a057MNOTE_NIKON1_TAG_DIGITALZOOM :
00266                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , v, maxlen);
00267                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 1, v, maxlen);
00268                 vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data , entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00269                 r = (double)vr. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  / vr. structExifRational.html#9ed7ed672889fd57c6862005e07db87cdenominator ;
00270                 snprintf (v, maxlen, "%2.2f", r);
00271                 break;
00272         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b999f138616c3e42a6f3d9e5ca3076fe6MNOTE_NIKON_TAG_AFFOCUSPOSITION :
00273                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED , v, maxlen);
00274                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 4, v, maxlen);
00275                 switch (  *( entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data +1)  ) {
00276                         case  0: strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("AF Position: Center"), maxlen); break;
00277                         case  1: strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("AF Position: Top"), maxlen); break;
00278                         case  2: strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("AF Position: Bottom"), maxlen); break;
00279                         case  3: strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("AF Position: Left"), maxlen); break;
00280                         case  4: strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("AF Position: Right"), maxlen); break;
00281                         default: strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Unknown AF Position"), maxlen);
00282                 }     
00283                 break;
00284         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bff56ab844f09da75a4db7ead4f853625MNOTE_OLYMPUS_TAG_DIGIZOOM :
00285                 if (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format  == exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL ) {
00286                         mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 1, v, maxlen);
00287                         vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data , entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00288                         r = (double)vr. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  / vr. structExifRational.html#9ed7ed672889fd57c6862005e07db87cdenominator ;
00289                         if (!vr. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator ) {
00290                                 strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("None"), maxlen);
00291                         } else {
00292                                 snprintf (v, maxlen, "%2.2f", r);
00293                         }
00294                         break;
00295                 }
00296                 /* fall through to handle SHORT version of this tag */ 00297         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5baaadad817d55a3f30537dcad0a4e5927MNOTE_NIKON_TAG_LENSTYPE :
00298         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b5befb668ed1cf6ac2a47fb6768fd8211MNOTE_NIKON_TAG_FLASHUSED :
00299         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b674574e5d4bf03dc8289c895156f8c8dMNOTE_NIKON1_TAG_QUALITY :
00300         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5be357ef7772084123c19b4fed2276d788MNOTE_NIKON1_TAG_COLORMODE :
00301         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b0ff3566d7238c8a608dda46113e9b515MNOTE_NIKON1_TAG_IMAGEADJUSTMENT :
00302         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b443945325e1eeb82b37f0a32ea647b6fMNOTE_NIKON1_TAG_CCDSENSITIVITY :
00303         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b14819bac69777e8b085c7dfc237972a8MNOTE_NIKON1_TAG_WHITEBALANCE :
00304         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b7749ff0a6f92a920d1f1b4534277322bMNOTE_NIKON1_TAG_CONVERTER :
00305         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bef7dc1e9824114eed26b11a4005c6960MNOTE_OLYMPUS_TAG_QUALITY :
00306         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b55cab562a8eaff9f1ba3fa5287d1c2fcMNOTE_OLYMPUS_TAG_MACRO :
00307         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bf076dd4f08b8eca744683493bf30cab1MNOTE_OLYMPUS_TAG_FLASHMODE :
00308         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b19341f5ec03b8a006377bf32d39b377dMNOTE_OLYMPUS_TAG_SHARPNESS :
00309         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bc544114ecb849e00d6ba23af7067bef6MNOTE_OLYMPUS_TAG_CONTRAST :
00310         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b2555f69a0fe6b3a0a2b0b9d2c745d35bMNOTE_OLYMPUS_TAG_MANFOCUS :
00311                 /* search the tag */ 00312                 for (i = 0; ( mnote-olympus-entry_8c.html#811e40b15bce44da9a6d024957a47a55items [i].tag && mnote-olympus-entry_8c.html#811e40b15bce44da9a6d024957a47a55items [i].tag != entry-> struct__MnoteOlympusEntry.html#5992d58d3aec91729b86961c50591ab4tag ); i++);
00313                 if (! mnote-olympus-entry_8c.html#811e40b15bce44da9a6d024957a47a55items [i]. mnote-canon-tag_8c.html#d88e1213ca240fe301a9559678bddd9btag ) {
00314                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Internal error"), maxlen);
00315                         break;
00316                 }
00317                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format , mnote-olympus-entry_8c.html#811e40b15bce44da9a6d024957a47a55items [i].fmt, v, maxlen);
00318                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry-> struct__MnoteOlympusEntry.html#3347bf2da36313878aee0bb274778ccacomponents , 1, v, maxlen);
00319                 switch (entry-> struct__MnoteOlympusEntry.html#716be53025dd917b980d9180309c12c1format ) {
00320                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd10fe99fc897d3c96ff849052179d880f1EXIF_FORMAT_BYTE :
00321                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED :
00322                         vs = entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data [0];
00323                         break;
00324                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT :
00325                         vs = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short (entry-> struct__MnoteOlympusEntry.html#5950390b898f6b3c75fb6cea276ee673data , entry-> struct__MnoteOlympusEntry.html#69e417d7a6aa6d2b02b667f4c892ff7eorder );
00326                         break;
00327                 default:
00328                         vs = 0;
00329                         break;
00330                 }
00331                 /* find the value */ 00332                 for (j = 0; mnote-olympus-entry_8c.html#811e40b15bce44da9a6d024957a47a55items [i].elem[j].string &&
00333                             ( mnote-olympus-entry_8c.html#811e40b15bce44da9a6d024957a47a55items [i].elem[j].index < vs); j++);
00334                 if ( mnote-olympus-entry_8c.html#811e40b15bce44da9a6d024957a47a55items [i]. exif-entry_8c.html#1a2e3f9570a7b119e5ffc2124239ec0aelem [j]. exif-entry_8c.html#de656d9dbc961315338502c279442a7aindex  != vs) {
00335                         snprintf (v, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Unknown value %hi"), vs);
00336                         break;
00337                 }
00338                 strncpy (v, mnote-olympus-entry_8c.html#811e40b15bce44da9a6d024957a47a55items [i]. exif-entry_8c.html#1a2e3f9570a7b119e5ffc2124239ec0aelem [j]. mnote-olympus-entry_8c.html#fdc36b1bc56391e3ac1692b287dc2bb8string , maxlen);
00339                 break;
00340 
00341         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b4257718980d1019a459b8446af655e32MNOTE_NIKON_TAG_LENS :
00342                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , v, maxlen);
00343                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry->components, 4, v, maxlen);
00344                 {
00345                         double c,d;
00346                         unsigned long a,b;
00347                         vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry->data, entry->order);
00348                         a = vr.numerator / vr.denominator;
00349                         vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry->data+8, entry->order);
00350                         b = vr.numerator / vr.denominator;
00351                         vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry->data+16, entry->order);
00352                         c = (double)vr.numerator / vr.denominator;
00353                         vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry->data+24, entry->order);
00354                         d = (double)vr. structExifRational.html#eb555c81ed222e6d2fc1a8276e54e220numerator  / vr.denominator;
00355                         //printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); 00356                         snprintf (v, maxlen, "%ld-%ldmm 1:%3.1f - %3.1f",a,b,c,d);
00357                 }
00358                 break;
00359         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b1dad3b3a49b81cc8fbf49ca55fbea05dMNOTE_NIKON1_TAG_FOCUS :
00360                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , v, maxlen);
00361                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry->components, 1, v, maxlen);
00362                 vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry->data, entry->order);
00363                 if (!vr.denominator) {
00364                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Infinite"), maxlen);
00365                 } else {
00366                         r = (double)vr.numerator / vr.denominator;
00367                         snprintf (v, maxlen, "%2.2f", r);
00368                 }
00369                 break;
00370 
00371         /* Olympus */ 00372         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b1541b8e78a14a4bdb896eb58be716510MNOTE_OLYMPUS_TAG_MODE :
00373                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1b6f3a3c87b514af859dc91a1a1760f51EXIF_FORMAT_LONG , v, maxlen);
00374                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry->components, 3, v, maxlen);
00375                 vl = exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (entry->data, entry->order);
00376                 switch (vl) {
00377                 case 0:
00378                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("normal"), maxlen);
00379                         break;
00380                 case 1:
00381                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("unknown"), maxlen);
00382                         break;
00383                 case 2:
00384                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("fast"), maxlen);
00385                         break;
00386                 case 3:
00387                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("panorama"), maxlen);
00388                         break;
00389                 default:
00390                         snprintf (v, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("%li"), (long int) vl);
00391                 }
00392                 vl = exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (entry->data + 4, entry->order);
00393                 snprintf (buf, sizeof (buf), "/%li/", (long int) vl);
00394                 strncat (v, buf, maxlen - strlen (v));
00395                 vl = exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (entry->data + 4, entry->order);
00396                 switch (vl) {
00397                 case 1:
00398                         strncat (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("left to right"), maxlen - strlen (v));
00399                         break;
00400                 case 2:
00401                         strncat (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("right to left"), maxlen - strlen (v));
00402                         break;
00403                 case 3:
00404                         strncat (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("bottom to top"), maxlen - strlen (v));
00405                         break;
00406                 case 4:
00407                         strncat (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("top to bottom"), maxlen - strlen (v));
00408                         break;
00409                 default:
00410                         snprintf (buf, sizeof (buf), i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("%li"),
00411                                   (long int) vl);
00412                         strncat (v, buf, maxlen - strlen (v));
00413                 }
00414                 break;
00415         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b56888d082dcbb537289cb9d86aca33a3MNOTE_OLYMPUS_TAG_UNKNOWN_1 :
00416                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT , v, maxlen);
00417                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry->components, 1, v, maxlen);
00418                 strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Unknown tag."), maxlen);
00419                 break;
00420         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b09418b6ecdc5923de22e9512ee92cf46MNOTE_OLYMPUS_TAG_UNKNOWN_2 :
00421                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , v, maxlen);
00422                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry->components, 1, v, maxlen);
00423                 break;
00424         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b6808b9eddc381317364b90e7ee005a85MNOTE_OLYMPUS_TAG_UNKNOWN_3 :
00425                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd174d803878ec7ffd34158ef9cc5be8714EXIF_FORMAT_SSHORT , v, maxlen);
00426                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry->components, 1, v, maxlen);
00427                 break;
00428         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bda1cdc8d6864efe23f75ef8b4b00a815MNOTE_OLYMPUS_TAG_VERSION :
00429                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII , v, maxlen);
00430                 mnote-canon-entry_8c.html#417a66e74b70bc21d25bbada9d9352faCC2  (entry->components, 5, 8, v, maxlen);
00431                 strncpy (v, (char *)entry->data, exif-loader_8c.html#9b073a1e97ac8f23636b9d2d443525a5MIN  (maxlen, entry->size));
00432                 break;
00433         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5b910b50572a003f6d283d37465d2abbfdMNOTE_OLYMPUS_TAG_INFO :
00434                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII , v, maxlen);
00435                 mnote-canon-entry_8c.html#417a66e74b70bc21d25bbada9d9352faCC2  (entry->components, 52, 53, v, maxlen);
00436                 strncpy (v, (char *)entry->data, exif-loader_8c.html#9b073a1e97ac8f23636b9d2d443525a5MIN  (maxlen, entry->size));
00437                 break;
00438         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5baf24f3d92f73606121a2dabc1b534a77MNOTE_OLYMPUS_TAG_ID :
00439                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED , v, maxlen);
00440                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry->components, 32, v, maxlen);
00441                 strncpy (v, (char *)entry->data, exif-loader_8c.html#9b073a1e97ac8f23636b9d2d443525a5MIN  (maxlen, entry->size));
00442                 break;
00443         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bce09d7d3fe6b0e1102d7c1187ca78980MNOTE_OLYMPUS_TAG_UNKNOWN_4 :
00444                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1b6f3a3c87b514af859dc91a1a1760f51EXIF_FORMAT_LONG , v, maxlen);
00445                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry->components, 30, v, maxlen);
00446                 break;
00447         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bdcfe10b06be34c02cdd2a2bcde1beb4dMNOTE_OLYMPUS_TAG_FOCUSDIST :
00448                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd19a07d82ff9979f0c075ca5c6292935d7EXIF_FORMAT_RATIONAL , v, maxlen);
00449                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry->components, 1, v, maxlen);
00450                 vr = exif-utils_8c.html#e2e189ba31007fa57643955ec7bd3110exif_get_rational  (entry->data, entry->order);
00451                 if (vr.numerator == 0) {
00452                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Unknown"), maxlen);
00453                 }
00454                 else {
00455                         unsigned long tmp = vr.numerator / vr.denominator;
00456                         /* printf("numerator %li, denominator %li\n", vr.numerator, vr.denominator); */ 00457                         snprintf (v, maxlen, "%li mm", tmp);
00458                 }
00459                 break;
00460         case mnote-olympus-tag_8h.html#64882ebb5d0f52da719e82e33fb97b5bcb2fe123852084cf0204898807d84900MNOTE_OLYMPUS_TAG_WBALANCE :
00461                 mnote-canon-entry_8c.html#a0a1e2b5f27a27bd54258f665f4a0f5eCF  (entry->format, exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT , v, maxlen);
00462                 mnote-canon-entry_8c.html#1eddfa358a4bf2f9641d7c267eeaffbdCC  (entry->components, 2, v, maxlen);
00463                 vs = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (entry->data, entry->order);
00464                 switch (vs) {
00465                 case 1:
00466                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Automatic"), maxlen);
00467                         break;
00468                 case 2:
00469                         {
00470                                 exif-utils_8h.html#23497f35004fb9e65a70b29fd1622a9cExifShort  v2 = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (entry->data + 2, entry->order);
00471                                 unsigned long colorTemp = 0;
00472                                 switch (v2) {
00473                                 case 2:
00474                                         colorTemp = 3000;
00475                                         break;
00476                                 case 3:
00477                                         colorTemp = 3700;
00478                                         break;
00479                                 case 4:
00480                                         colorTemp = 4000;
00481                                         break;
00482                                 case 5:
00483                                         colorTemp = 4500;
00484                                         break;
00485                                 case 6:
00486                                         colorTemp = 5500;
00487                                         break;
00488                                 case 7:
00489                                         colorTemp = 6500;
00490                                         break;
00491                                 case 9:
00492                                         colorTemp = 7500;
00493                                         break;
00494                                 }
00495                                 if (colorTemp) {
00496                                         snprintf (v, maxlen, "Manual: %liK", colorTemp);
00497                                 }
00498                                 else {
00499                                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Manual: Unknown"), maxlen);
00500                                 }
00501 
00502                         }
00503                         break;
00504                 case 3:
00505                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("One-touch"), maxlen);
00506                         break;
00507                 default:
00508                         strncpy (v, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("Unknown"), maxlen);
00509                         break;
00510                 }
00511                 break;
00512         default:
00513                 switch (entry->format) {
00514                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1ed05b7fe35145d01244085c176001486EXIF_FORMAT_ASCII :
00515                         strncpy (v, (char *)entry->data,
00516                                  exif-loader_8c.html#9b073a1e97ac8f23636b9d2d443525a5MIN  (maxlen, entry->components));
00517                         break;
00518                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd16187ddb8892af4772728e34118b26a4fEXIF_FORMAT_SHORT :
00519                         vs = exif-utils_8c.html#28505bc3777648fce6676fc01d74eb40exif_get_short  (entry->data, entry->order);
00520                         snprintf (v, maxlen, "%hi", vs);
00521                         break;
00522                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1b6f3a3c87b514af859dc91a1a1760f51EXIF_FORMAT_LONG :
00523                         vl = exif-utils_8c.html#c8ce446b600340ccf5f120d8735319f3exif_get_long  (entry->data, entry->order);
00524                         snprintf (v, maxlen, "%li", (long int) vl);
00525                         break;
00526                 case exif-format_8h.html#b34eef28c00c9728719334fa6a37bcd1a52e87eea3c82b9ef481cb68b95843e2EXIF_FORMAT_UNDEFINED :
00527                 default:
00528                         snprintf (v, maxlen, i18n_8h.html#709240620a80c25aca1c4e2576c3cba8_ ("%li bytes unknown data: "),
00529                                   (long int) entry->size);
00530                         for (i = 0; i < (int)entry->size; i++) {
00531                                 sprintf (buf, "%02x", entry->data[i]);
00532                                 strncat (v, buf, maxlen - strlen (v));
00533                         }
00534                         break;
00535                 }
00536                 break;
00537         }
00538 
00539         return (v);
00540 }
Generated on Sun Apr 23 01:22:39 2006 for EXIF library (libexif) Internals by 
http://www.doxygen.org/index.htmldoxygen  1.4.6 