OLD | NEW |
(Empty) | |
| 1 /* mnote-canon-tag.c |
| 2 * |
| 3 * Copyright (c) 2002 Lutz Mueller <lutz@users.sourceforge.net> |
| 4 * |
| 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Lesser General Public |
| 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. |
| 9 * |
| 10 * This library is distributed in the hope that it will be useful, |
| 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 13 * Lesser General Public License for more details. |
| 14 * |
| 15 * You should have received a copy of the GNU Lesser General Public |
| 16 * License along with this library; if not, write to the |
| 17 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 18 * Boston, MA 02110-1301 USA. |
| 19 */ |
| 20 |
| 21 #include <config.h> |
| 22 #include "mnote-canon-tag.h" |
| 23 |
| 24 #include <stdlib.h> |
| 25 |
| 26 #include <libexif/i18n.h> |
| 27 |
| 28 static const struct { |
| 29 MnoteCanonTag tag; |
| 30 const char *name; |
| 31 const char *title; |
| 32 const char *description; |
| 33 } table[] = { |
| 34 #ifndef NO_VERBOSE_TAG_STRINGS |
| 35 {MNOTE_CANON_TAG_SETTINGS_1, "Settings1", N_("Settings (First Part)"), "
"}, |
| 36 {MNOTE_CANON_TAG_FOCAL_LENGTH, "FocalLength", N_("Focal Length"), ""}, |
| 37 {MNOTE_CANON_TAG_SETTINGS_2, "Settings2", N_("Settings (Second Part)"),
""}, |
| 38 {MNOTE_CANON_TAG_PANORAMA, "Panorama", N_("Panorama"), ""}, |
| 39 {MNOTE_CANON_TAG_IMAGE_TYPE, "ImageType", N_("Image Type"), ""}, |
| 40 {MNOTE_CANON_TAG_FIRMWARE, "FirmwareVersion", N_("Firmware Version"), ""
}, |
| 41 {MNOTE_CANON_TAG_IMAGE_NUMBER, "ImageNumber", N_("Image Number"), ""}, |
| 42 {MNOTE_CANON_TAG_OWNER, "OwnerName", N_("Owner Name"), ""}, |
| 43 {MNOTE_CANON_TAG_COLOR_INFORMATION, "ColorInformation", N_("Color Inform
ation"), ""}, |
| 44 {MNOTE_CANON_TAG_SERIAL_NUMBER, "SerialNumber", N_("Serial Number"), ""}
, |
| 45 {MNOTE_CANON_TAG_CUSTOM_FUNCS, "CustomFunctions", N_("Custom Functions")
, ""}, |
| 46 #endif |
| 47 {0, NULL, NULL, NULL} |
| 48 }; |
| 49 |
| 50 static const struct { |
| 51 MnoteCanonTag tag; |
| 52 unsigned int subtag; |
| 53 const char *name; |
| 54 } table_sub[] = { |
| 55 #ifndef NO_VERBOSE_TAG_STRINGS |
| 56 {MNOTE_CANON_TAG_SETTINGS_1, 0, N_("Macro Mode")}, |
| 57 {MNOTE_CANON_TAG_SETTINGS_1, 1, N_("Self-timer")}, |
| 58 {MNOTE_CANON_TAG_SETTINGS_1, 2, N_("Quality")}, |
| 59 {MNOTE_CANON_TAG_SETTINGS_1, 3, N_("Flash Mode")}, |
| 60 {MNOTE_CANON_TAG_SETTINGS_1, 4, N_("Drive Mode")}, |
| 61 {MNOTE_CANON_TAG_SETTINGS_1, 6, N_("Focus Mode")}, |
| 62 {MNOTE_CANON_TAG_SETTINGS_1, 8, N_("Record Mode")}, |
| 63 {MNOTE_CANON_TAG_SETTINGS_1, 9, N_("Image Size")}, |
| 64 {MNOTE_CANON_TAG_SETTINGS_1, 10, N_("Easy Shooting Mode")}, |
| 65 {MNOTE_CANON_TAG_SETTINGS_1, 11, N_("Digital Zoom")}, |
| 66 {MNOTE_CANON_TAG_SETTINGS_1, 12, N_("Contrast")}, |
| 67 {MNOTE_CANON_TAG_SETTINGS_1, 13, N_("Saturation")}, |
| 68 {MNOTE_CANON_TAG_SETTINGS_1, 14, N_("Sharpness")}, |
| 69 {MNOTE_CANON_TAG_SETTINGS_1, 15, N_("ISO")}, |
| 70 {MNOTE_CANON_TAG_SETTINGS_1, 16, N_("Metering Mode")}, |
| 71 {MNOTE_CANON_TAG_SETTINGS_1, 17, N_("Focus Range")}, |
| 72 {MNOTE_CANON_TAG_SETTINGS_1, 18, N_("AF Point")}, |
| 73 {MNOTE_CANON_TAG_SETTINGS_1, 19, N_("Exposure Mode")}, |
| 74 {MNOTE_CANON_TAG_SETTINGS_1, 21, N_("Lens Type")}, |
| 75 {MNOTE_CANON_TAG_SETTINGS_1, 22, N_("Long Focal Length of Lens")}, |
| 76 {MNOTE_CANON_TAG_SETTINGS_1, 23, N_("Short Focal Length of Lens")}, |
| 77 {MNOTE_CANON_TAG_SETTINGS_1, 24, N_("Focal Units per mm")}, |
| 78 {MNOTE_CANON_TAG_SETTINGS_1, 25, N_("Maximal Aperture")}, |
| 79 {MNOTE_CANON_TAG_SETTINGS_1, 26, N_("Minimal Aperture")}, |
| 80 {MNOTE_CANON_TAG_SETTINGS_1, 27, N_("Flash Activity")}, |
| 81 {MNOTE_CANON_TAG_SETTINGS_1, 28, N_("Flash Details")}, |
| 82 {MNOTE_CANON_TAG_SETTINGS_1, 31, N_("Focus Mode")}, |
| 83 {MNOTE_CANON_TAG_SETTINGS_1, 32, N_("AE Setting")}, |
| 84 {MNOTE_CANON_TAG_SETTINGS_1, 33, N_("Image Stabilization")}, |
| 85 {MNOTE_CANON_TAG_SETTINGS_1, 34, N_("Display Aperture")}, |
| 86 {MNOTE_CANON_TAG_SETTINGS_1, 35, N_("Zoom Source Width")}, |
| 87 {MNOTE_CANON_TAG_SETTINGS_1, 36, N_("Zoom Target Width")}, |
| 88 {MNOTE_CANON_TAG_SETTINGS_1, 39, N_("Photo Effect")}, |
| 89 {MNOTE_CANON_TAG_SETTINGS_1, 40, N_("Manual Flash Output")}, |
| 90 {MNOTE_CANON_TAG_SETTINGS_1, 41, N_("Color Tone")}, |
| 91 {MNOTE_CANON_TAG_FOCAL_LENGTH, 0, N_("Focal Type")}, |
| 92 {MNOTE_CANON_TAG_FOCAL_LENGTH, 1, N_("Focal Length")}, |
| 93 {MNOTE_CANON_TAG_FOCAL_LENGTH, 2, N_("Focal Plane X Size")}, |
| 94 {MNOTE_CANON_TAG_FOCAL_LENGTH, 3, N_("Focal Plane Y Size")}, |
| 95 {MNOTE_CANON_TAG_SETTINGS_2, 0, N_("Auto ISO")}, |
| 96 {MNOTE_CANON_TAG_SETTINGS_2, 1, N_("Shot ISO")}, |
| 97 {MNOTE_CANON_TAG_SETTINGS_2, 2, N_("Measured EV")}, |
| 98 {MNOTE_CANON_TAG_SETTINGS_2, 3, N_("Target Aperture")}, |
| 99 {MNOTE_CANON_TAG_SETTINGS_2, 4, N_("Target Exposure Time")}, |
| 100 {MNOTE_CANON_TAG_SETTINGS_2, 5, N_("Exposure Compensation")}, |
| 101 {MNOTE_CANON_TAG_SETTINGS_2, 6, N_("White Balance")}, |
| 102 {MNOTE_CANON_TAG_SETTINGS_2, 7, N_("Slow Shutter")}, |
| 103 {MNOTE_CANON_TAG_SETTINGS_2, 8, N_("Sequence Number")}, |
| 104 {MNOTE_CANON_TAG_SETTINGS_2, 12, N_("Flash Guide Number")}, |
| 105 {MNOTE_CANON_TAG_SETTINGS_2, 13, N_("AF Point")}, |
| 106 {MNOTE_CANON_TAG_SETTINGS_2, 14, N_("Flash Exposure Compensation")}, |
| 107 {MNOTE_CANON_TAG_SETTINGS_2, 15, N_("AE Bracketing")}, |
| 108 {MNOTE_CANON_TAG_SETTINGS_2, 16, N_("AE Bracket Value")}, |
| 109 {MNOTE_CANON_TAG_SETTINGS_2, 18, N_("Focus Distance Upper")}, |
| 110 {MNOTE_CANON_TAG_SETTINGS_2, 19, N_("Focus Distance Lower")}, |
| 111 {MNOTE_CANON_TAG_SETTINGS_2, 20, N_("FNumber")}, |
| 112 {MNOTE_CANON_TAG_SETTINGS_2, 21, N_("Exposure Time")}, |
| 113 {MNOTE_CANON_TAG_SETTINGS_2, 23, N_("Bulb Duration")}, |
| 114 {MNOTE_CANON_TAG_SETTINGS_2, 25, N_("Camera Type")}, |
| 115 {MNOTE_CANON_TAG_SETTINGS_2, 26, N_("Auto Rotate")}, |
| 116 {MNOTE_CANON_TAG_SETTINGS_2, 27, N_("ND Filter")}, |
| 117 {MNOTE_CANON_TAG_SETTINGS_2, 28, N_("Self-timer")}, |
| 118 {MNOTE_CANON_TAG_SETTINGS_2, 32, N_("Manual Flash Output")}, |
| 119 {MNOTE_CANON_TAG_PANORAMA, 2, N_("Panorama Frame")}, |
| 120 {MNOTE_CANON_TAG_PANORAMA, 5, N_("Panorama Direction")}, |
| 121 {MNOTE_CANON_TAG_COLOR_INFORMATION, 0, N_("Tone Curve")}, |
| 122 {MNOTE_CANON_TAG_COLOR_INFORMATION, 2, N_("Sharpness Frequency")}, |
| 123 {MNOTE_CANON_TAG_COLOR_INFORMATION, 7, N_("White Balance")}, |
| 124 {MNOTE_CANON_TAG_COLOR_INFORMATION, 9, N_("Picture Style")}, |
| 125 #endif |
| 126 {0, 0, NULL} |
| 127 }; |
| 128 |
| 129 const char * |
| 130 mnote_canon_tag_get_name (MnoteCanonTag t) |
| 131 { |
| 132 unsigned int i; |
| 133 |
| 134 for (i = 0; i < sizeof (table) / sizeof (table[0]); i++) |
| 135 if (table[i].tag == t) return table[i].name; /* do not translate
*/ |
| 136 return NULL; |
| 137 } |
| 138 |
| 139 const char * |
| 140 mnote_canon_tag_get_name_sub (MnoteCanonTag t, unsigned int s, ExifDataOption o) |
| 141 { |
| 142 unsigned int i; |
| 143 int tag_found = 0; |
| 144 |
| 145 for (i = 0; i < sizeof (table_sub) / sizeof (table_sub[0]); i++) { |
| 146 if (table_sub[i].tag == t) { |
| 147 if (table_sub[i].subtag == s) |
| 148 return table_sub[i].name; |
| 149 tag_found = 1; |
| 150 } |
| 151 } |
| 152 if (!tag_found || !(o & EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS)) |
| 153 return mnote_canon_tag_get_name (t); |
| 154 else |
| 155 return NULL; |
| 156 } |
| 157 |
| 158 const char * |
| 159 mnote_canon_tag_get_title (MnoteCanonTag t) |
| 160 { |
| 161 unsigned int i; |
| 162 |
| 163 #if defined(BIND_TEXTDOMAIN) |
| 164 bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); |
| 165 #endif |
| 166 for (i = 0; i < sizeof (table) / sizeof (table[0]); i++) |
| 167 if (table[i].tag == t) return (_(table[i].title)); |
| 168 return NULL; |
| 169 } |
| 170 |
| 171 const char * |
| 172 mnote_canon_tag_get_title_sub (MnoteCanonTag t, unsigned int s, ExifDataOption o
) |
| 173 { |
| 174 unsigned int i; |
| 175 int tag_found = 0; |
| 176 |
| 177 for (i = 0; i < sizeof (table_sub) / sizeof (table_sub[0]); i++) { |
| 178 if (table_sub[i].tag == t) { |
| 179 if (table_sub[i].subtag == s) |
| 180 return _(table_sub[i].name); |
| 181 tag_found = 1; |
| 182 } |
| 183 } |
| 184 if (!tag_found || !(o & EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS)) |
| 185 return mnote_canon_tag_get_title (t); |
| 186 else |
| 187 return NULL; |
| 188 } |
| 189 |
| 190 const char * |
| 191 mnote_canon_tag_get_description (MnoteCanonTag t) |
| 192 { |
| 193 unsigned int i; |
| 194 |
| 195 for (i = 0; i < sizeof (table) / sizeof (table[0]); i++) |
| 196 if (table[i].tag == t) { |
| 197 if (!*table[i].description) |
| 198 return ""; |
| 199 #if defined(BIND_TEXTDOMAIN) |
| 200 bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); |
| 201 #endif |
| 202 return _(table[i].description); |
| 203 } |
| 204 return NULL; |
| 205 } |
OLD | NEW |