35
35
#define CF(format,target,v,maxlen) \
37
if (format != target) { \
38
snprintf (v, maxlen, \
39
_("Invalid format '%s', " \
41
exif_format_get_name (format), \
42
exif_format_get_name (target)); \
37
if (format != target) { \
38
snprintf (v, maxlen, \
39
_("Invalid format '%s', " \
41
exif_format_get_name (format), \
42
exif_format_get_name (target)); \
47
47
#define CC(number,target,v,maxlen) \
49
if (number != target) { \
50
snprintf (v, maxlen, \
51
_("Invalid number of components (%i, " \
52
"expected %i)."), (int) number, (int) target); \
49
if (number != target) { \
50
snprintf (v, maxlen, \
51
_("Invalid number of components (%i, " \
52
"expected %i)."), (int) number, (int) target); \
57
#define CC2(number,t1,t2,v,maxlen) \
59
if ((number != t1) && (number != t2)) { \
60
snprintf (v, maxlen, \
61
_("Invalid number of components (%i, " \
62
"expected %i or %i)."), (int) number, \
63
(int) t1, (int) t2); \
114
126
{2, N_("Black & White")},
115
127
{3, N_("Sepia")},
129
{ MNOTE_PENTAX2_TAG_MODE,
131
{1, N_("Night-scene")},
133
{4, N_("Multi-exposure")},
135
{ MNOTE_PENTAX2_TAG_QUALITY,
142
{ MNOTE_PENTAX2_TAG_IMAGE_SIZE,
149
{8, N_("2560x1920 or 2304x1728")},
155
{22, N_("2304x1728 or 2592x1944")},
157
{25, N_("2816x2212 or 2816x2112")},
161
{ MNOTE_PENTAX2_TAG_PICTURE_MODE,
162
{ {0, N_("Program")},
163
{2, N_("Program AE")},
166
{6, N_("Landscape")},
168
{9, N_("Night Scene")},
170
{12, N_("Surf & Snow")},
171
{13, N_("Sunset or Candlelight")},
174
{17, N_("Fireworks")},
176
{19, N_("Panorama")},
177
{30, N_("Self Portrait")},
178
{31, N_("Illustrations")},
179
{33, N_("Digital Filter")},
182
{40, N_("Green Mode")},
183
{49, N_("Light Pet")},
184
{50, N_("Dark Pet")},
185
{51, N_("Medium Pet")},
186
{53, N_("Underwater")},
187
{54, N_("Candlelight")},
188
{55, N_("Natural Skin Tone")},
189
{56, N_("Synchro Sound Record")},
190
{58, N_("Frame Composite")},
192
{ MNOTE_PENTAX2_TAG_FLASH_MODE,
193
{ {0x0000, N_("Auto, Did not fire")},
195
{0x0003, N_("Auto, Did not fire, Red-eye reduction")},
196
{0x0100, N_("Auto, Fired")},
198
{0x0103, N_("Auto, Fired, Red-eye reduction")},
199
{0x0104, N_("On, Red-eye reduction")},
200
{0x0105, N_("On, Wireless")},
201
{0x0108, N_("On, Soft")},
202
{0x0109, N_("On, Slow-sync")},
203
{0x010a, N_("On, Slow-sync, Red-eye reduction")},
204
{0x010b, N_("On, Trailing-curtain Sync")},
206
{ MNOTE_PENTAX2_TAG_FOCUS_MODE,
211
{5, N_("Pan Focus")},
215
{ MNOTE_PENTAX2_TAG_AFPOINT_SELECTED,
216
{ {1, N_("Upper-left")},
218
{3, N_("Upper-right")},
222
{7, N_("Mid-right")},
224
{9, N_("Lower-left")},
226
{11, N_("Lower-right")},
227
{0xfffe, N_("Fixed Center")},
228
{0xffff, N_("Auto")},
230
{ MNOTE_PENTAX2_TAG_AUTO_AFPOINT,
231
{ {0, N_("Multiple")},
233
{2, N_("Top-center")},
234
{3, N_("Top-right")},
238
{7, N_("Bottom-left")},
239
{8, N_("Bottom-center")},
240
{9, N_("Bottom-right")},
241
{0xffff, N_("None")},
243
{ MNOTE_PENTAX2_TAG_WHITE_BALANCE,
247
{3, N_("Fluorescent")},
250
{6, N_("Daylight Fluorescent")},
251
{7, N_("Daywhite Fluorescent")},
252
{8, N_("White Fluorescent")},
255
{0xfffe, N_("Unknown")},
256
{0xffff, N_("User Selected")},
258
{MNOTE_CASIO2_TAG_BESTSHOT_MODE,
265
/* Two-component values */
273
{ MNOTE_PENTAX2_TAG_IMAGE_SIZE,
274
{ {0, 0, "2304x1728"},
278
{36, 0, N_("3008x2008 or 3040x2024")},
279
{37, 0, "3008x2000"},
280
{35, 1, "2400x1600"},
283
{34, 2, "1536x1024"},
285
{ MNOTE_PENTAX2_TAG_PICTURE_MODE,
286
{ {0, 0, N_("Auto")},
287
{5, 0, N_("Portrait")},
288
{53, 0, N_("Underwater")},
289
{255, 0, N_("Digital Filter?")},
290
{5, 1, N_("Portrait")},
291
{9, 1, N_("Night Scene")},
292
{13, 1, N_("Candlelight")},
293
{15, 1, N_("Macro")},
294
{53, 1, N_("Underwater")},
295
{0, 2, N_("Program AE")},
296
{5, 2, N_("Portrait")},
297
{6, 2, N_("Landscape")},
140
323
case MNOTE_PENTAX_TAG_SATURATION:
141
324
case MNOTE_PENTAX_TAG_ISO_SPEED:
142
325
case MNOTE_PENTAX_TAG_COLOR:
326
case MNOTE_PENTAX2_TAG_MODE:
327
case MNOTE_PENTAX2_TAG_QUALITY:
328
case MNOTE_PENTAX2_TAG_FLASH_MODE:
329
case MNOTE_PENTAX2_TAG_FOCUS_MODE:
330
case MNOTE_PENTAX2_TAG_AFPOINT_SELECTED:
331
case MNOTE_PENTAX2_TAG_AUTO_AFPOINT:
332
case MNOTE_PENTAX2_TAG_WHITE_BALANCE:
333
case MNOTE_PENTAX2_TAG_PICTURE_MODE:
334
case MNOTE_PENTAX2_TAG_IMAGE_SIZE:
335
case MNOTE_CASIO2_TAG_BESTSHOT_MODE:
143
336
CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
144
CC (entry->components, 1, val, maxlen);
145
vs = exif_get_short (entry->data, entry->order);
148
for (i = 0; (items[i].tag && items[i].tag != entry->tag); i++);
150
strncpy (val, "Internal error", maxlen);
155
for (j = 0; items[i].elem[j].string &&
337
CC2 (entry->components, 1, 2, val, maxlen);
338
if (entry->components == 1) {
339
vs = exif_get_short (entry->data, entry->order);
342
for (i = 0; (items[i].tag && items[i].tag != entry->tag); i++);
344
strncpy (val, _("Internal error"), maxlen);
349
for (j = 0; items[i].elem[j].string &&
156
350
(items[i].elem[j].index < vs); j++);
157
if (items[i].elem[j].index != vs) {
158
snprintf (val, maxlen,
159
"Internal error (unknown value %i)", vs);
351
if (items[i].elem[j].index != vs) {
352
snprintf (val, maxlen,
353
_("Internal error (unknown value %i)"), vs);
356
strncpy (val, items[i].elem[j].string, maxlen);
358
/* Two-component values */
359
CF (entry->format, EXIF_FORMAT_SHORT, val, maxlen);
360
CC2 (entry->components, 1, 2, val, maxlen);
361
vs = exif_get_short (entry->data, entry->order);
362
vs2 = exif_get_short (entry->data+2, entry->order) << 16;
365
for (i = 0; (items2[i].tag && items2[i].tag != entry->tag); i++);
366
if (!items2[i].tag) {
367
strncpy (val, _("Internal error"), maxlen);
372
for (j = 0; items2[i].elem[j].string && ((items2[i].elem[j].index2 < vs2)
373
|| ((items2[i].elem[j].index2 == vs2) && (items2[i].elem[j].index1 < vs))); j++);
374
if ((items2[i].elem[j].index1 != vs) || (items2[i].elem[j].index2 != vs2)) {
375
snprintf (val, maxlen,
376
_("Internal error (unknown value %i %i)"), vs, vs2);
379
strncpy (val, items2[i].elem[j].string, maxlen);
162
snprintf (val, maxlen, "%s", items[i].elem[j].string);
165
383
case MNOTE_PENTAX_TAG_ZOOM:
171
389
case MNOTE_PENTAX_TAG_PRINTIM:
172
390
CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen);
173
391
CC (entry->components, 124, val, maxlen);
174
snprintf (val, maxlen, "%li bytes unknown data",
392
snprintf (val, maxlen, _("%i bytes unknown data"),
177
395
case MNOTE_PENTAX_TAG_TZ_CITY:
178
396
CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen);
179
397
CC (entry->components, 4, val, maxlen);
180
snprintf (val, entry->components, "%s", entry->data);
398
strncpy (val, (char*)entry->data, MIN(maxlen, entry->size));
182
400
case MNOTE_PENTAX_TAG_TZ_DST:
183
401
CF (entry->format, EXIF_FORMAT_UNDEFINED, val, maxlen);
184
402
CC (entry->components, 4, val, maxlen);
185
snprintf (val, entry->components, "%s", entry->data);
403
strncpy (val, (char*)entry->data, MIN(maxlen, entry->size));
188
406
switch (entry->format) {
189
407
case EXIF_FORMAT_ASCII:
190
strncpy (val, (char *)entry->data, MIN(maxlen, entry->components));
408
strncpy (val, (char *)entry->data, MIN(maxlen, entry->size));
192
410
case EXIF_FORMAT_SHORT:
193
411
vs = exif_get_short (entry->data, entry->order);