-
Notifications
You must be signed in to change notification settings - Fork 278
/
canonmn_int.cpp
2209 lines (2080 loc) · 124 KB
/
canonmn_int.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// ***************************************************************** -*- C++ -*-
/*
* Copyright (C) 2004-2018 Exiv2 authors
* This program is part of the Exiv2 distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
*/
/*
File: canonmn.cpp
Author(s): Andreas Huggel (ahu) <[email protected]>
David Cannings (dc) <[email protected]>
Andi Clemens (ac) <[email protected]>
*/
// *****************************************************************************
// included header files
#include "types.hpp"
#include "makernote_int.hpp"
#include "canonmn_int.hpp"
#include "tags_int.hpp"
#include "value.hpp"
#include "exif.hpp"
#include "i18n.h" // NLS support.
// + standard includes
#include <string>
#include <sstream>
#include <iomanip>
#include <ios>
#include <algorithm>
#include <cassert>
#include <cstring>
#include <cmath>
// *****************************************************************************
// class member definitions
namespace Exiv2 {
namespace Internal {
//! OffOn, multiple tags
extern const TagDetails canonOffOn[] = {
{ 0, N_("Off") },
{ 1, N_("On") }
};
//! Special treatment pretty-print function for non-unique lens ids.
std::ostream& printCsLensByFocalLengthAndMaxAperture(std::ostream& os,
const Value& value,
const ExifData* metadata);
//! Special treatment pretty-print function for non-unique lens ids.
std::ostream& printCsLensByFocalLength(std::ostream& os,
const Value& value,
const ExifData* metadata);
//! Special treatment pretty-print function for non-unique lens ids.
std::ostream& printCsLensByFocalLengthTC(std::ostream& os,
const Value& value,
const ExifData* metadata);
//! Special treatment pretty-print function for non-unique lens ids.
std::ostream& printCsLensFFFF(std::ostream& os,
const Value& value,
const ExifData* metadata);
//! ModelId, tag 0x0010
extern const TagDetails canonModelId[] = {
{static_cast<long int>(0x1010000), "PowerShot A30"},
{static_cast<long int>(0x1040000), "PowerShot S300 / Digital IXUS 300 / IXY Digital 300"},
{static_cast<long int>(0x1060000), "PowerShot A20"},
{static_cast<long int>(0x1080000), "PowerShot A10"},
{static_cast<long int>(0x1090000), "PowerShot S110 / Digital IXUS v / IXY Digital 200"},
{static_cast<long int>(0x1100000), "PowerShot G2"},
{static_cast<long int>(0x1110000), "PowerShot S40"},
{static_cast<long int>(0x1120000), "PowerShot S30"},
{static_cast<long int>(0x1130000), "PowerShot A40"},
{static_cast<long int>(0x1140000), "EOS D30"},
{static_cast<long int>(0x1150000), "PowerShot A100"},
{static_cast<long int>(0x1160000), "PowerShot S200 / Digital IXUS v2 / IXY Digital 200a"},
{static_cast<long int>(0x1170000), "PowerShot A200"},
{static_cast<long int>(0x1180000), "PowerShot S330 / Digital IXUS 330 / IXY Digital 300a"},
{static_cast<long int>(0x1190000), "PowerShot G3"},
{static_cast<long int>(0x1210000), "PowerShot S45"},
{static_cast<long int>(0x1230000), "PowerShot SD100 / Digital IXUS II / IXY Digital 30"},
{static_cast<long int>(0x1240000), "PowerShot S230 / Digital IXUS v3 / IXY Digital 320"},
{static_cast<long int>(0x1250000), "PowerShot A70"},
{static_cast<long int>(0x1260000), "PowerShot A60"},
{static_cast<long int>(0x1270000), "PowerShot S400 / Digital IXUS 400 / IXY Digital 400"},
{static_cast<long int>(0x1290000), "PowerShot G5"},
{static_cast<long int>(0x1300000), "PowerShot A300"},
{static_cast<long int>(0x1310000), "PowerShot S50"},
{static_cast<long int>(0x1340000), "PowerShot A80"},
{static_cast<long int>(0x1350000), "PowerShot SD10 / Digital IXUS i / IXY Digital L"},
{static_cast<long int>(0x1360000), "PowerShot S1 IS"},
{static_cast<long int>(0x1370000), "PowerShot Pro1"},
{static_cast<long int>(0x1380000), "PowerShot S70"},
{static_cast<long int>(0x1390000), "PowerShot S60"},
{static_cast<long int>(0x1400000), "PowerShot G6"},
{static_cast<long int>(0x1410000), "PowerShot S500 / Digital IXUS 500 / IXY Digital 500"},
{static_cast<long int>(0x1420000), "PowerShot A75"},
{static_cast<long int>(0x1440000), "PowerShot SD110 / Digital IXUS IIs / IXY Digital 30a"},
{static_cast<long int>(0x1450000), "PowerShot A400"},
{static_cast<long int>(0x1470000), "PowerShot A310"},
{static_cast<long int>(0x1490000), "PowerShot A85"},
{static_cast<long int>(0x1520000), "PowerShot S410 / Digital IXUS 430 / IXY Digital 450"},
{static_cast<long int>(0x1530000), "PowerShot A95"},
{static_cast<long int>(0x1540000), "PowerShot SD300 / Digital IXUS 40 / IXY Digital 50"},
{static_cast<long int>(0x1550000), "PowerShot SD200 / Digital IXUS 30 / IXY Digital 40"},
{static_cast<long int>(0x1560000), "PowerShot A520"},
{static_cast<long int>(0x1570000), "PowerShot A510"},
{static_cast<long int>(0x1590000), "PowerShot SD20 / Digital IXUS i5 / IXY Digital L2"},
{static_cast<long int>(0x1640000), "PowerShot S2 IS"},
{static_cast<long int>(0x1650000), "PowerShot SD430 / IXUS Wireless / IXY Wireless"},
{static_cast<long int>(0x1660000), "PowerShot SD500 / Digital IXUS 700 / IXY Digital 600"},
{static_cast<long int>(0x1668000), "EOS D60"},
{static_cast<long int>(0x1700000), "PowerShot SD30 / Digital IXUS i zoom / IXY Digital L3"},
{static_cast<long int>(0x1740000), "PowerShot A430"},
{static_cast<long int>(0x1750000), "PowerShot A410"},
{static_cast<long int>(0x1760000), "PowerShot S80"},
{static_cast<long int>(0x1780000), "PowerShot A620"},
{static_cast<long int>(0x1790000), "PowerShot A610"},
{static_cast<long int>(0x1800000), "PowerShot SD630 / Digital IXUS 65 / IXY Digital 80"},
{static_cast<long int>(0x1810000), "PowerShot SD450 / Digital IXUS 55 / IXY Digital 60"},
{static_cast<long int>(0x1820000), "PowerShot TX1"},
{static_cast<long int>(0x1870000), "PowerShot SD400 / Digital IXUS 50 / IXY Digital 55"},
{static_cast<long int>(0x1880000), "PowerShot A420"},
{static_cast<long int>(0x1890000), "PowerShot SD900 / Digital IXUS 900 Ti / IXY Digital 1000"},
{static_cast<long int>(0x1900000), "PowerShot SD550 / Digital IXUS 750 / IXY Digital 700"},
{static_cast<long int>(0x1920000), "PowerShot A700"},
{static_cast<long int>(0x1940000), "PowerShot SD700 IS / Digital IXUS 800 IS / IXY Digital 800 IS"},
{static_cast<long int>(0x1950000), "PowerShot S3 IS"},
{static_cast<long int>(0x1960000), "PowerShot A540"},
{static_cast<long int>(0x1970000), "PowerShot SD600 / Digital IXUS 60 / IXY Digital 70"},
{static_cast<long int>(0x1980000), "PowerShot G7"},
{static_cast<long int>(0x1990000), "PowerShot A530"},
{static_cast<long int>(0x2000000), "PowerShot SD800 IS / Digital IXUS 850 IS / IXY Digital 900 IS"},
{static_cast<long int>(0x2010000), "PowerShot SD40 / Digital IXUS i7 / IXY Digital L4"},
{static_cast<long int>(0x2020000), "PowerShot A710 IS"},
{static_cast<long int>(0x2030000), "PowerShot A640"},
{static_cast<long int>(0x2040000), "PowerShot A630"},
{static_cast<long int>(0x2090000), "PowerShot S5 IS"},
{static_cast<long int>(0x2100000), "PowerShot A460"},
{static_cast<long int>(0x2120000), "PowerShot SD850 IS / Digital IXUS 950 IS"},
{static_cast<long int>(0x2130000), "PowerShot A570 IS"},
{static_cast<long int>(0x2140000), "PowerShot A560"},
{static_cast<long int>(0x2150000), "PowerShot SD750 / Digital IXUS 75 / IXY Digital 90"},
{static_cast<long int>(0x2160000), "PowerShot SD1000 / Digital IXUS 70 / IXY Digital 10"},
{static_cast<long int>(0x2180000), "PowerShot A550"},
{static_cast<long int>(0x2190000), "PowerShot A450"},
{static_cast<long int>(0x2230000), "PowerShot G9"},
{static_cast<long int>(0x2240000), "PowerShot A650 IS"},
{static_cast<long int>(0x2260000), "PowerShot A720 IS"},
{static_cast<long int>(0x2290000), "PowerShot SX100 IS"},
{static_cast<long int>(0x2300000), "PowerShot SD950 IS / Digital IXUS 960 IS / IXY Digital 2000 IS"},
{static_cast<long int>(0x2310000), "PowerShot SD870 IS / Digital IXUS 860 IS / IXY Digital 910 IS"},
{static_cast<long int>(0x2320000), "PowerShot SD890 IS / Digital IXUS 970 IS / IXY Digital 820 IS"},
{static_cast<long int>(0x2360000), "PowerShot SD790 IS / Digital IXUS 90 IS / IXY Digital 95 IS"},
{static_cast<long int>(0x2370000), "PowerShot SD770 IS / Digital IXUS 85 IS / IXY Digital 25 IS"},
{static_cast<long int>(0x2380000), "PowerShot A590 IS"},
{static_cast<long int>(0x2390000), "PowerShot A580"},
{static_cast<long int>(0x2420000), "PowerShot A470"},
{static_cast<long int>(0x2430000), "PowerShot SD1100 IS / Digital IXUS 80 IS / IXY Digital 20 IS"},
{static_cast<long int>(0x2460000), "PowerShot SX1 IS"},
{static_cast<long int>(0x2470000), "PowerShot SX10 IS"},
{static_cast<long int>(0x2480000), "PowerShot A1000 IS"},
{static_cast<long int>(0x2490000), "PowerShot G10"},
{static_cast<long int>(0x2510000), "PowerShot A2000 IS"},
{static_cast<long int>(0x2520000), "PowerShot SX110 IS"},
{static_cast<long int>(0x2530000), "PowerShot SD990 IS / Digital IXUS 980 IS / IXY Digital 3000 IS"},
{static_cast<long int>(0x2540000), "PowerShot SD880 IS / Digital IXUS 870 IS / IXY Digital 920 IS"},
{static_cast<long int>(0x2550000), "PowerShot E1"},
{static_cast<long int>(0x2560000), "PowerShot D10"},
{static_cast<long int>(0x2570000), "PowerShot SD960 IS / Digital IXUS 110 IS / IXY Digital 510 IS"},
{static_cast<long int>(0x2580000), "PowerShot A2100 IS"},
{static_cast<long int>(0x2590000), "PowerShot A480"},
{static_cast<long int>(0x2600000), "PowerShot SX200 IS"},
{static_cast<long int>(0x2610000), "PowerShot SD970 IS / Digital IXUS 990 IS / IXY Digital 830 IS"},
{static_cast<long int>(0x2620000), "PowerShot SD780 IS / Digital IXUS 100 IS / IXY Digital 210 IS"},
{static_cast<long int>(0x2630000), "PowerShot A1100 IS"},
{static_cast<long int>(0x2640000), "PowerShot SD1200 IS / Digital IXUS 95 IS / IXY Digital 110 IS"},
{static_cast<long int>(0x2700000), "PowerShot G11"},
{static_cast<long int>(0x2710000), "PowerShot SX120 IS"},
{static_cast<long int>(0x2720000), "PowerShot S90"},
{static_cast<long int>(0x2750000), "PowerShot SX20 IS"},
{static_cast<long int>(0x2760000), "PowerShot SD980 IS / Digital IXUS 200 IS / IXY Digital 930 IS"},
{static_cast<long int>(0x2770000), "PowerShot SD940 IS / Digital IXUS 120 IS / IXY Digital 220 IS"},
{static_cast<long int>(0x2800000), "PowerShot A495"},
{static_cast<long int>(0x2810000), "PowerShot A490"},
{static_cast<long int>(0x2820000), "PowerShot A3100 IS / A3150 IS"},
{static_cast<long int>(0x2830000), "PowerShot A3000 IS"},
{static_cast<long int>(0x2840000), "PowerShot SD1400 IS / IXUS 130 / IXY 400F"},
{static_cast<long int>(0x2850000), "PowerShot SD1300 IS / IXUS 105 / IXY 200F"},
{static_cast<long int>(0x2860000), "PowerShot SD3500 IS / IXUS 210 / IXY 10S"},
{static_cast<long int>(0x2870000), "PowerShot SX210 IS"},
{static_cast<long int>(0x2880000), "PowerShot SD4000 IS / IXUS 300 HS / IXY 30S"},
{static_cast<long int>(0x2890000), "PowerShot SD4500 IS / IXUS 1000 HS / IXY 50S"},
{static_cast<long int>(0x2920000), "PowerShot G12"},
{static_cast<long int>(0x2930000), "PowerShot SX30 IS"},
{static_cast<long int>(0x2940000), "PowerShot SX130 IS"},
{static_cast<long int>(0x2950000), "PowerShot S95"},
{static_cast<long int>(0x2980000), "PowerShot A3300 IS"},
{static_cast<long int>(0x2990000), "PowerShot A3200 IS"},
{static_cast<long int>(0x3000000), "PowerShot ELPH 500 HS / IXUS 310 HS / IXY 31S"},
{static_cast<long int>(0x3010000), "PowerShot Pro90 IS"},
{static_cast<long int>(0x3010001), "PowerShot A800"},
{static_cast<long int>(0x3020000), "PowerShot ELPH 100 HS / IXUS 115 HS / IXY 210F"},
{static_cast<long int>(0x3030000), "PowerShot SX230 HS"},
{static_cast<long int>(0x3040000), "PowerShot ELPH 300 HS / IXUS 220 HS / IXY 410F"},
{static_cast<long int>(0x3050000), "PowerShot A2200"},
{static_cast<long int>(0x3060000), "PowerShot A1200"},
{static_cast<long int>(0x3070000), "PowerShot SX220 HS"},
{static_cast<long int>(0x3080000), "PowerShot G1 X"},
{static_cast<long int>(0x3090000), "PowerShot SX150 IS"},
{static_cast<long int>(0x3100000), "PowerShot ELPH 510 HS / IXUS 1100 HS / IXY 51S"},
{static_cast<long int>(0x3110000), "PowerShot S100 (new)"},
{static_cast<long int>(0x3130000), "PowerShot SX40 HS"},
{static_cast<long int>(0x3120000), "PowerShot ELPH 310 HS / IXUS 230 HS / IXY 600F"},
{static_cast<long int>(0x3140000), "IXY 32S"},
{static_cast<long int>(0x3160000), "PowerShot A1300"},
{static_cast<long int>(0x3170000), "PowerShot A810"},
{static_cast<long int>(0x3180000), "PowerShot ELPH 320 HS / IXUS 240 HS / IXY 420F"},
{static_cast<long int>(0x3190000), "PowerShot ELPH 110 HS / IXUS 125 HS / IXY 220F"},
{static_cast<long int>(0x3200000), "PowerShot D20"},
{static_cast<long int>(0x3210000), "PowerShot A4000 IS"},
{static_cast<long int>(0x3220000), "PowerShot SX260 HS"},
{static_cast<long int>(0x3230000), "PowerShot SX240 HS"},
{static_cast<long int>(0x3240000), "PowerShot ELPH 530 HS / IXUS 510 HS / IXY 1"},
{static_cast<long int>(0x3250000), "PowerShot ELPH 520 HS / IXUS 500 HS / IXY 3"},
{static_cast<long int>(0x3260000), "PowerShot A3400 IS"},
{static_cast<long int>(0x3270000), "PowerShot A2400 IS"},
{static_cast<long int>(0x3280000), "PowerShot A2300"},
{static_cast<long int>(0x3330000), "PowerShot G15"},
{static_cast<long int>(0x3340000), "PowerShot SX50"},
{static_cast<long int>(0x3350000), "PowerShot SX160 IS"},
{static_cast<long int>(0x3360000), "PowerShot S110 (new)"},
{static_cast<long int>(0x3370000), "PowerShot SX500 IS"},
{static_cast<long int>(0x3380000), "PowerShot N"},
{static_cast<long int>(0x3390000), "IXUS 245 HS / IXY 430F"},
{static_cast<long int>(0x3400000), "PowerShot SX280 HS"},
{static_cast<long int>(0x3410000), "PowerShot SX270 HS"},
{static_cast<long int>(0x3420000), "PowerShot A3500 IS"},
{static_cast<long int>(0x3430000), "PowerShot A2600"},
{static_cast<long int>(0x3450000), "PowerShot A1400"},
{static_cast<long int>(0x3460000), "PowerShot ELPH 130 IS / IXUS 140 / IXY 110F"},
{static_cast<long int>(0x3470000), "PowerShot ELPH 115/120 IS / IXUS 132/135 / IXY 90F/100F"},
{static_cast<long int>(0x3490000), "PowerShot ELPH 330 HS / IXUS 255 HS / IXY 610F"},
{static_cast<long int>(0x3510000), "PowerShot A2500"},
{static_cast<long int>(0x3540000), "PowerShot G16"},
{static_cast<long int>(0x3550000), "PowerShot S120"},
{static_cast<long int>(0x3560000), "PowerShot SX170 IS"},
{static_cast<long int>(0x3580000), "PowerShot SX510 HS"},
{static_cast<long int>(0x3590000), "PowerShot S200 (new)"},
{static_cast<long int>(0x3600000), "IXY 620F"},
{static_cast<long int>(0x3610000), "PowerShot N100"},
{static_cast<long int>(0x3640000), "PowerShot G1 X Mark II"},
{static_cast<long int>(0x3650000), "PowerShot D30"},
{static_cast<long int>(0x3660000), "PowerShot SX700 HS"},
{static_cast<long int>(0x3670000), "PowerShot SX600 HS"},
{static_cast<long int>(0x3680000), "PowerShot ELPH 140 IS / IXUS 150 / IXY 130"},
{static_cast<long int>(0x3690000), "PowerShot ELPH 135 / IXUS 145 / IXY 120"},
{static_cast<long int>(0x3700000), "PowerShot ELPH 340 HS / IXUS 265 HS / IXY 630"},
{static_cast<long int>(0x3710000), "PowerShot ELPH 150 IS / IXUS 155 / IXY 140"},
{static_cast<long int>(0x3740000), "EOS M3"},
{static_cast<long int>(0x3750000), "PowerShot SX60 HS"},
{static_cast<long int>(0x3760000), "PowerShot SX520 HS"},
{static_cast<long int>(0x3770000), "PowerShot SX400 IS"},
{static_cast<long int>(0x3780000), "PowerShot G7 X"},
{static_cast<long int>(0x3790000), "PowerShot N2"},
{static_cast<long int>(0x3800000), "PowerShot SX530 HS"},
{static_cast<long int>(0x3820000), "PowerShot SX710 HS"},
{static_cast<long int>(0x3830000), "PowerShot SX610 HS"},
{static_cast<long int>(0x3840000), "EOS M10"},
{static_cast<long int>(0x3850000), "PowerShot G3 X"},
{static_cast<long int>(0x3860000), "PowerShot ELPH 165 HS / IXUS 165 / IXY 160"},
{static_cast<long int>(0x3870000), "PowerShot ELPH 160 / IXUS 160"},
{static_cast<long int>(0x3880000), "PowerShot ELPH 350 HS / IXUS 275 HS / IXY 640"},
{static_cast<long int>(0x3890000), "PowerShot ELPH 170 IS / IXUS 170"},
{static_cast<long int>(0x3910000), "PowerShot SX410 HS"},
{static_cast<long int>(0x3930000), "PowerShot G9 X"},
{static_cast<long int>(0x3940000), "EOS M5"},
{static_cast<long int>(0x3950000), "PowerShot G5 X"},
{static_cast<long int>(0x3970000), "PowerShot G7 X Mark II"},
{static_cast<long int>(0x3980000), "EOS M100"},
{static_cast<long int>(0x3990000), "PowerShot ELPH 360 HS / IXUS 285 HS / IXY 650"},
{static_cast<long int>(0x4010000), "PowerShot SX540 HS"},
{static_cast<long int>(0x4020000), "PowerShot SX420 IS"},
{static_cast<long int>(0x4030000), "PowerShot ELPH 190 IS / IXUS 180 / IXY 190"},
{static_cast<long int>(0x4040000), "PowerShot G1"},
{static_cast<long int>(0x4040001), "IXY 180"},
{static_cast<long int>(0x4050000), "PowerShot SX720 HS"},
{static_cast<long int>(0x4060000), "PowerShot SX620 HS"},
{static_cast<long int>(0x4070000), "EOS M6"},
{static_cast<long int>(0x4100000), "PowerShot G9 X Mark II"},
{static_cast<long int>(0x6040000), "PowerShot S100 / Digital IXUS / IXY Digital"},
{static_cast<long int>(0x4007d673), "DC19/DC21/DC22"},
{static_cast<long int>(0x4007d674), "XH A1"},
{static_cast<long int>(0x4007d675), "HV10"},
{static_cast<long int>(0x4007d676), "MD130/MD140/MD150/MD160/ZR850"},
{static_cast<long int>(0x4007d777), "DC50"},
{static_cast<long int>(0x4007d778), "HV20"},
{static_cast<long int>(0x4007d779), "DC211"},
{static_cast<long int>(0x4007d77a), "HG10"},
{static_cast<long int>(0x4007d77b), "HR10"},
{static_cast<long int>(0x4007d77c), "MD255/ZR950"},
{static_cast<long int>(0x4007d81c), "HF11"},
{static_cast<long int>(0x4007d878), "HV30"},
{static_cast<long int>(0x4007d87c), "XH A1S"},
{static_cast<long int>(0x4007d87e), "DC301/DC310/DC311/DC320/DC330"},
{static_cast<long int>(0x4007d87f), "FS100"},
{static_cast<long int>(0x4007d880), "HF10"},
{static_cast<long int>(0x4007d882), "HG20/HG21"},
{static_cast<long int>(0x4007d925), "HF21"},
{static_cast<long int>(0x4007d926), "HF S11"},
{static_cast<long int>(0x4007d978), "HV40"},
{static_cast<long int>(0x4007d987), "DC410/DC411/DC420"},
{static_cast<long int>(0x4007d988), "FS19/FS20/FS21/FS22/FS200"},
{static_cast<long int>(0x4007d989), "HF20/HF200"},
{static_cast<long int>(0x4007d98a), "HF S10/S100"},
{static_cast<long int>(0x4007da8e), "HF R10/R16/R17/R18/R100/R106"},
{static_cast<long int>(0x4007da8f), "HF M30/M31/M36/M300/M306"},
{static_cast<long int>(0x4007da90), "HF S20/S21/S200"},
{static_cast<long int>(0x4007da92), "FS31/FS36/FS37/FS300/FS305/FS306/FS307"},
{static_cast<long int>(0x4007dda9), "HF G25"},
{static_cast<long int>(0x4007dfb4), "XC10"},
{static_cast<long int>(0x80000001), "EOS-1D"},
{static_cast<long int>(0x80000167), "EOS-1DS"},
{static_cast<long int>(0x80000168), "EOS 10D"},
{static_cast<long int>(0x80000169), "EOS-1D Mark III"},
{static_cast<long int>(0x80000170), "EOS Digital Rebel / 300D / Kiss Digital"},
{static_cast<long int>(0x80000174), "EOS-1D Mark II"},
{static_cast<long int>(0x80000175), "EOS 20D"},
{static_cast<long int>(0x80000176), "EOS Digital Rebel XSi / 450D / Kiss X2"},
{static_cast<long int>(0x80000188), "EOS-1Ds Mark II"},
{static_cast<long int>(0x80000189), "EOS Digital Rebel XT / 350D / Kiss Digital N"},
{static_cast<long int>(0x80000190), "EOS 40D"},
{static_cast<long int>(0x80000213), "EOS 5D"},
{static_cast<long int>(0x80000215), "EOS-1Ds Mark III"},
{static_cast<long int>(0x80000218), "EOS 5D Mark II"},
{static_cast<long int>(0x80000219), "WFT-E1"},
{static_cast<long int>(0x80000232), "EOS-1D Mark II N"},
{static_cast<long int>(0x80000234), "EOS 30D"},
{static_cast<long int>(0x80000236), "EOS Digital Rebel XTi / 400D / Kiss Digital X"},
{static_cast<long int>(0x80000241), "WFT-E2"},
{static_cast<long int>(0x80000246), "WFT-E3"},
{static_cast<long int>(0x80000250), "EOS 7D"},
{static_cast<long int>(0x80000252), "EOS Rebel T1i / 500D / Kiss X3"},
{static_cast<long int>(0x80000254), "EOS Rebel XS / 1000D / Kiss F"},
{static_cast<long int>(0x80000261), "EOS 50D"},
{static_cast<long int>(0x80000269), "EOS-1D X"},
{static_cast<long int>(0x80000270), "EOS Rebel T2i / 550D / Kiss X4"},
{static_cast<long int>(0x80000271), "WFT-E4"},
{static_cast<long int>(0x80000273), "WFT-E5"},
{static_cast<long int>(0x80000281), "EOS-1D Mark IV"},
{static_cast<long int>(0x80000285), "EOS 5D Mark III"},
{static_cast<long int>(0x80000286), "EOS Rebel T3i / 600D / Kiss X5"},
{static_cast<long int>(0x80000287), "EOS 60D"},
{static_cast<long int>(0x80000288), "EOS Rebel T3 / 1100D / Kiss X50"},
{static_cast<long int>(0x80000289), "EOS 7D Mark II"},
{static_cast<long int>(0x80000297), "WFT-E2 II"},
{static_cast<long int>(0x80000298), "WFT-E4 II"},
{static_cast<long int>(0x80000301), "EOS Rebel T4i / 650D / Kiss X6i"},
{static_cast<long int>(0x80000302), "EOS 6D"},
{static_cast<long int>(0x80000324), "EOS-1D C"},
{static_cast<long int>(0x80000325), "EOS 70D"},
{static_cast<long int>(0x80000326), "EOS Rebel T5i / 700D / Kiss X7i"},
{static_cast<long int>(0x80000327), "EOS Rebel T5 / 1200D / Kiss X70"},
{static_cast<long int>(0x80000328), "EOS-1D X MARK II"},
{static_cast<long int>(0x80000331), "EOS M"},
{static_cast<long int>(0x80000350), "EOS 80D"},
{static_cast<long int>(0x80000355), "EOS M2"},
{static_cast<long int>(0x80000346), "EOS Rebel SL1 / 100D / Kiss X7"},
{static_cast<long int>(0x80000347), "EOS Rebel T6s / 760D / 8000D"},
{static_cast<long int>(0x80000349), "EOS 5D Mark IV"},
{static_cast<long int>(0x80000382), "EOS 5DS"},
{static_cast<long int>(0x80000393), "EOS Rebel T6i / 750D / Kiss X8i"},
{static_cast<long int>(0x80000401), "EOS 5DS R"},
{static_cast<long int>(0x80000404), "EOS Rebel T6 / 1300D / Kiss X80"},
{static_cast<long int>(0x80000405), "EOS Rebel T7i / 800D / Kiss X9i"},
{static_cast<long int>(0x80000408), "EOS 77D / 9000D"}};
//! SerialNumberFormat, tag 0x0015
extern const TagDetails canonSerialNumberFormat[] = {
{static_cast<long int>(0x90000000), N_("Format 1")},
{static_cast<long int>(0xa0000000), N_("Format 2")},
};
//! SuperMacro, tag 0x001a
extern const TagDetails canonSuperMacro[] = {
{ 0, N_("Off") },
{ 1, N_("On (1)") },
{ 2, N_("On (2)") }
};
//! ColorSpace, tag 0x00b4
extern const TagDetails canonColorSpace[] = {
{ 1, N_("sRGB") },
{ 2, N_("Adobe RGB") }
};
extern const TagDetails canonAFAreaMode[] = {
{ 0, N_("Off (Manual Focus)") },
{ 1, N_("AF Point Expansion (surround)")},
{ 2, N_("Single-point AF") },
{ 4, N_("Multi-point AF") },
{ 5, N_("Face Detect AF") },
{ 6, N_("Face + Tracking") },
{ 7, N_("Zone AF") },
{ 8, N_("AF Point Expansion (4 point)") },
{ 9, N_("Spot AF") },
{ 10, N_("AF Point Expansion (8 point)") },
{ 11, N_("Flexizone Multi (49 point)") },
{ 12, N_("Flexizone Multi (9 point)") },
{ 13, N_("Flexizone Single") },
{ 14, N_("Large Zone AF") },
};
// Canon MakerNote Tag Info
const TagInfo CanonMakerNote::tagInfo_[] = {
TagInfo(0x0000, "0x0000", "0x0000", N_("Unknown"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0001, "CameraSettings", N_("Camera Settings"), N_("Various camera settings"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0002, "FocalLength", N_("Focal Length"), N_("Focal length"), canonId, makerTags, unsignedShort, -1, printFocalLength),
TagInfo(0x0003, "0x0003", "0x0003", N_("Unknown"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0004, "ShotInfo", N_("Shot Info"), N_("Shot information"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0005, "Panorama", N_("Panorama"), N_("Panorama"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0006, "ImageType", N_("Image Type"), N_("Image type"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x0007, "FirmwareVersion", N_("Firmware Version"), N_("Firmware version"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x0008, "FileNumber", N_("File Number"), N_("File number"), canonId, makerTags, unsignedLong, -1, print0x0008),
TagInfo(0x0009, "OwnerName", N_("Owner Name"), N_("Owner Name"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x000c, "SerialNumber", N_("Serial Number"), N_("Camera serial number"), canonId, makerTags, unsignedLong, -1, print0x000c),
TagInfo(0x000d, "CameraInfo", N_("Camera Info"), N_("Camera info"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x000f, "CustomFunctions", N_("Custom Functions"), N_("Custom Functions"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0010, "ModelID", N_("ModelID"), N_("Model ID"), canonId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(canonModelId)),
TagInfo(0x0012, "PictureInfo", N_("Picture Info"), N_("Picture info"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0013, "ThumbnailImageValidArea", N_("Thumbnail Image Valid Area"), N_("Thumbnail image valid area"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x0015, "SerialNumberFormat", N_("Serial Number Format"), N_("Serial number format"), canonId, makerTags, unsignedLong, -1, EXV_PRINT_TAG(canonSerialNumberFormat)),
TagInfo(0x001a, "SuperMacro", N_("Super Macro"), N_("Super macro"), canonId, makerTags, signedShort, -1, EXV_PRINT_TAG(canonSuperMacro)),
TagInfo(0x0026, "AFInfo", N_("AF Info"), N_("AF info"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0035, "TimeInfo", N_("Time Info"), N_("Time zone information"), canonId, makerTags, signedLong, -1, printValue),
TagInfo(0x0083, "OriginalDecisionDataOffset", N_("Original Decision Data Offset"), N_("Original decision data offset"), canonId, makerTags, signedLong, -1, printValue),
TagInfo(0x00a4, "WhiteBalanceTable", N_("White Balance Table"), N_("White balance table"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x0095, "LensModel", N_("Lens Model"), N_("Lens model"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x0096, "InternalSerialNumber", N_("Internal Serial Number"), N_("Internal serial number"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x0097, "DustRemovalData", N_("Dust Removal Data"), N_("Dust removal data"), canonId, makerTags, asciiString, -1, printValue),
TagInfo(0x0099, "CustomFunctions", N_("Custom Functions"), N_("Custom functions"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00a0, "ProcessingInfo", N_("Processing Info"), N_("Processing info"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00aa, "MeasuredColor", N_("Measured Color"), N_("Measured color"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00b4, "ColorSpace", N_("ColorSpace"), N_("ColorSpace"), canonId, makerTags, signedShort, -1, EXV_PRINT_TAG(canonColorSpace)),
TagInfo(0x00b5, "0x00b5", "0x00b5", N_("Unknown"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00c0, "0x00c0", "0x00c0", N_("Unknown"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00c1, "0x00c1", "0x00c1", N_("Unknown"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x00d0, "VRDOffset", N_("VRD Offset"), N_("VRD offset"), canonId, makerTags, unsignedLong, -1, printValue),
TagInfo(0x00e0, "SensorInfo", N_("Sensor Info"), N_("Sensor info"), canonId, makerTags, unsignedShort, -1, printValue),
TagInfo(0x2600, "AFInfoSize", N_("AF InfoSize"), N_("AF InfoSize"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x2601, "AFAreaMode", N_("AF Area Mode"), N_("AF Area Mode"), canonId, makerTags, signedShort, -1, EXV_PRINT_TAG(canonAFAreaMode)),
TagInfo(0x2602, "AFNumPoints", N_("AF NumPoints"), N_("AF NumPoints"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x2603, "AFValidPoints", N_("AF ValidPoints"), N_("AF ValidPoints"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x2604, "AFCanonImageWidth", N_("AF ImageWidth"), N_("AF ImageWidth"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x2605, "AFCanonImageHeight", N_("AF ImageHeight"), N_("AF ImageHeight"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x2606, "AFImageWidth", N_("AF Width"), N_("AF Width"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x2607, "AFImageHeight", N_("AF Height"), N_("AF Height"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x2608, "AFAreaWidths", N_("AF Area Widths"), N_("AF Area Widths"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x2609, "AFAreaHeights", N_("AF Area Heights"), N_("AF Area Heights"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x260a, "AFXPositions", N_("AF X Positions"), N_("AF X Positions"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x260b, "AFYPositions", N_("AF Y Positions"), N_("AF Y Positions"), canonId, makerTags, signedShort, -1, printValue),
TagInfo(0x260c, "AFPointsInFocus", N_("AF Points in Focus"), N_("AF Points in Focus"), canonId, makerTags, signedShort, -1,printBitmask),
TagInfo(0x260d, "AFPointsSelected", N_("AF Points Selected"), N_("AF Points Selected"), canonId, makerTags, signedShort, -1, printBitmask),
TagInfo(0x260e, "AFPrimaryPoint", N_("AF Primary Point"), N_("AF Primary Point"), canonId, makerTags, signedShort, -1, printBitmask),
TagInfo(0x4001, "ColorData", N_("Color Data"), N_("Color data"), canonId, makerTags, unsignedShort, -1, printValue),
// End of list marker
TagInfo(0xffff, "(UnknownCanonMakerNoteTag)", "(UnknownCanonMakerNoteTag)", N_("Unknown CanonMakerNote tag"), canonId, makerTags, asciiString, -1, printValue)
};
const TagInfo* CanonMakerNote::tagList()
{
return tagInfo_;
}
//! Macro, tag 0x0001
extern const TagDetails canonCsMacro[] = {
{ 1, N_("On") },
{ 2, N_("Off") }
};
//! Quality, tag 0x0003
extern const TagDetails canonCsQuality[] = {
{ 1, N_("Economy") },
{ 2, N_("Normal") },
{ 3, N_("Fine") },
{ 4, N_("RAW") },
{ 5, N_("Superfine") },
{ 130, N_("Normal Movie") },
{ 131, N_("Movie (2)") }
};
//! FlashMode, tag 0x0004
extern const TagDetails canonCsFlashMode[] = {
{ 0, N_("Off") },
{ 1, N_("Auto") },
{ 2, N_("On") },
{ 3, N_("Red-eye") },
{ 4, N_("Slow sync") },
{ 5, N_("Auto + red-eye") },
{ 6, N_("On + red-eye") },
{ 16, N_("External") },
{ 16, N_("External") } // To silence compiler warning
};
//! DriveMode, tag 0x0005
extern const TagDetails canonCsDriveMode[] = {
{ 0, N_("Single / timer") },
{ 1, N_("Continuous") },
{ 2, N_("Movie") },
{ 3, N_("Continuous, speed priority") },
{ 4, N_("Continuous, low") },
{ 5, N_("Continuous, high") },
{ 6, N_("Silent Single") },
{ 9, N_("Single, Silent") },
{ 10, N_("Continuous, Silent") }
};
//! FocusMode, tag 0x0007
extern const TagDetails canonCsFocusMode[] = {
{ 0, N_("One shot AF") },
{ 1, N_("AI servo AF") },
{ 2, N_("AI focus AF") },
{ 3, N_("Manual focus (3)") },
{ 4, N_("Single") },
{ 5, N_("Continuous") },
{ 6, N_("Manual focus (6)") },
{ 16, N_("Pan focus") },
{ 256, N_("AF + MF") },
{ 512, N_("Movie Snap Focus") },
{ 519, N_("Movie Servo AF") },
{ 519, N_("Movie Servo AF") } // To silence compiler warning
};
//! ImageSize, tag 0x000a
extern const TagDetails canonCsImageSize[] = {
{ 0, N_("Large") },
{ 1, N_("Medium") },
{ 2, N_("Small") },
{ 5, N_("Medium 1") },
{ 6, N_("Medium 2") },
{ 7, N_("Medium 3") },
{ 8, N_("Postcard") },
{ 9, N_("Widescreen") },
{ 10, N_("Medium Widescreen") },
{ 14, N_("Small 1") },
{ 15, N_("Small 2") },
{ 16, N_("Small 3") },
{ 128, N_("640x480 Movie") },
{ 129, N_("Medium Movie") },
{ 130, N_("Small Movie") },
{ 137, N_("1280x720 Movie") },
{ 142, N_("1920x1080 Movie") }
};
//! EasyMode, tag 0x000b
extern const TagDetails canonCsEasyMode[] = {
{ 0, N_("Full auto") },
{ 1, N_("Manual") },
{ 2, N_("Landscape") },
{ 3, N_("Fast shutter") },
{ 4, N_("Slow shutter") },
{ 5, N_("Night") },
{ 6, N_("Gray Scale") },
{ 7, N_("Sepia") },
{ 8, N_("Portrait") },
{ 9, N_("Sports") },
{ 10, N_("Macro") },
{ 11, N_("Black & White") },
{ 12, N_("Pan focus") },
{ 13, N_("Vivid") },
{ 14, N_("Neutral") },
{ 15, N_("Flash Off") },
{ 16, N_("Long Shutter") },
{ 17, N_("Super Macro") },
{ 18, N_("Foliage") },
{ 19, N_("Indoor") },
{ 20, N_("Fireworks") },
{ 21, N_("Beach") },
{ 22, N_("Underwater") },
{ 23, N_("Snow") },
{ 24, N_("Kids & Pets") },
{ 25, N_("Night Snapshot") },
{ 26, N_("Digital Macro") },
{ 27, N_("My Colors") },
{ 28, N_("Movie Snap") },
{ 29, N_("Super Macro 2") },
{ 30, N_("Color Accent") },
{ 31, N_("Color Swap") },
{ 32, N_("Aquarium") },
{ 33, N_("ISO 3200") },
{ 34, N_("ISO 6400") },
{ 35, N_("Creative Light Effect") },
{ 36, N_("Easy") },
{ 37, N_("Quick Shot") },
{ 38, N_("Creative Auto") },
{ 39, N_("Zoom Blur") },
{ 40, N_("Low Light") },
{ 41, N_("Nostalgic") },
{ 42, N_("Super Vivid") },
{ 43, N_("Poster Effect") },
{ 44, N_("Face Self-timer") },
{ 45, N_("Smile") },
{ 46, N_("Wink Self-timer") },
{ 47, N_("Fisheye Effect") },
{ 48, N_("Miniature Effect") },
{ 49, N_("High-speed Burst") },
{ 50, N_("Best Image Selection") },
{ 51, N_("High Dynamic Range") },
{ 52, N_("Handheld Night Scene") },
{ 53, N_("Movie Digest") },
{ 54, N_("Live View Control") },
{ 55, N_("Discreet") },
{ 56, N_("Blur Reduction") },
{ 57, N_("Monochrome") },
{ 58, N_("Toy Camera Effect") },
{ 59, N_("Scene Intelligent Auto") },
{ 60, N_("High-speed Burst HQ") },
{ 61, N_("Smooth Skin") },
{ 62, N_("Soft Focus") },
{ 257, N_("Spotlight") },
{ 258, N_("Night 2") },
{ 259, N_("Night+") },
{ 260, N_("Super Night") },
{ 261, N_("Sunset") },
{ 263, N_("Night Scene") },
{ 264, N_("Surface") },
{ 265, N_("Low Light 2") }
};
//! DigitalZoom, tag 0x000c
extern const TagDetails canonCsDigitalZoom[] = {
{ 0, N_("None") },
{ 1, "2x" },
{ 2, "4x" },
{ 3, N_("Other") },
{ 3, N_("Other") } // To silence compiler warning
};
//! Contrast, Saturation Sharpness, tags 0x000d, 0x000e, 0x000f
extern const TagDetails canonCsLnh[] = {
{ 0xffff, N_("Low") },
{ 0x0000, N_("Normal") },
{ 0x0001, N_("High") }
};
//! ISOSpeeds, tag 0x0010
extern const TagDetails canonCsISOSpeed[] = {
{ 0, N_("n/a") },
{ 14, N_("Auto High") },
{ 15, N_("Auto") },
{ 16, "50" },
{ 17, "100" },
{ 18, "200" },
{ 19, "400" },
{ 20, "800" },
{ 16464, "80" },
{ 16484, "100" },
{ 16509, "125" },
{ 16544, "160" },
{ 16584, "200" },
{ 16634, "250" },
{ 16704, "320" },
{ 16784, "400" },
{ 16884, "500" },
{ 17024, "640" },
{ 17184, "800" },
{ 17384, "1000" },
{ 17634, "1250" },
{ 17984, "1600" },
{ 18384, "2000" },
{ 18884, "2500" },
{ 19584, "3200" },
{ 20384, "4000" },
{ 21384, "5000" },
{ 22784, "6400" },
{ 24384, "8000" },
{ 26384, "10000" },
{ 29184, "12800" }
};
//! MeteringMode, tag 0x0011
extern const TagDetails canonCsMeteringMode[] = {
{ 0, N_("Default") },
{ 1, N_("Spot") },
{ 2, N_("Average") },
{ 3, N_("Evaluative") },
{ 4, N_("Partial") },
{ 5, N_("Center-weighted average") }
};
//! FocusType, tag 0x0012
extern const TagDetails canonCsFocusType[] = {
{ 0, N_("Manual") },
{ 1, N_("Auto") },
{ 2, N_("Not known") },
{ 3, N_("Macro") },
{ 4, N_("Very close") },
{ 5, N_("Close") },
{ 6, N_("Middle range") },
{ 7, N_("Far range") },
{ 8, N_("Pan focus") },
{ 9, N_("Super macro") },
{ 10, N_("Infinity") }
};
//! AFPoint, tag 0x0013
extern const TagDetails canonCsAfPoint[] = {
{ 0x2005, N_("Manual AF point selection") },
{ 0x3000, N_("None (MF)") },
{ 0x3001, N_("Auto-selected") },
{ 0x3002, N_("Right") },
{ 0x3003, N_("Center") },
{ 0x3004, N_("Left") },
{ 0x4001, N_("Auto AF point selection") },
{ 0x4006, N_("Face Detect") }
};
//! ExposureProgram, tag 0x0014
extern const TagDetails canonCsExposureProgram[] = {
{ 0, N_("Easy shooting (Auto)") },
{ 1, N_("Program (P)") },
{ 2, N_("Shutter priority (Tv)") },
{ 3, N_("Aperture priority (Av)") },
{ 4, N_("Manual (M)") },
{ 5, N_("A-DEP") },
{ 6, N_("M-DEP") },
{ 7, N_("Bulb") }
};
//! LensType, tag 0x0016
extern const TagDetails canonCsLensType[] = {
{ 1, "Canon EF 50mm f/1.8" },
{ 2, "Canon EF 28mm f/2.8" },
{ 3, "Canon EF 135mm f/2.8 Soft" },
{ 4, "Canon EF 35-105mm f/3.5-4.5" }, // 0
{ 4, "Sigma UC Zoom 35-135mm f/4-5.6" }, // 1
{ 5, "Canon EF 35-70mm f/3.5-4.5" },
{ 6, "Canon EF 28-70mm f/3.5-4.5" }, // 0
{ 6, "Sigma 18-50mm f/3.5-5.6 DC" }, // 1
{ 6, "Sigma 18-125mm f/3.5-5.6 DC IF ASP" }, // 2
{ 6, "Tokina AF193-2 19-35mm f/3.5-4.5" }, // 3
{ 6, "Sigma 28-80mm f/3.5-5.6 II Macro" }, // 4
{ 7, "Canon EF 100-300mm f/5.6L" },
{ 8, "Canon EF 100-300mm f/5.6" }, // 0
{ 8, "Sigma 70-300mm f/4-5.6 [APO] DG Macro" }, // 1
{ 8, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6" }, // 2
{ 9, "Canon EF 70-210mm f/4" }, // 0
{ 9, "Sigma 55-200mm f/4-5.6 DC" }, // 1
{ 10, "Canon EF 50mm f/2.5 Macro" }, // 0
{ 10, "Sigma 50mm f/2.8 EX" }, // 1
{ 10, "Sigma 28mm f/1.8" }, // 2
{ 10, "Sigma 105mm f/2.8 Macro EX" }, // 3
{ 10, "Sigma 70mm f/2.8 EX DG Macro EF" }, // 4
{ 11, "Canon EF 35mm f/2" },
{ 13, "Canon EF 15mm f/2.8 Fisheye" },
{ 14, "Canon EF 50-200mm f/3.5-4.5L" },
{ 15, "Canon EF 50-200mm f/3.5-4.5" },
{ 16, "Canon EF 35-135mm f/3.5-4.5" },
{ 17, "Canon EF 35-70mm f/3.5-4.5A" },
{ 18, "Canon EF 28-70mm f/3.5-4.5" },
{ 20, "Canon EF 100-200mm f/4.5A" },
{ 21, "Canon EF 80-200mm f/2.8L" },
{ 22, "Canon EF 20-35mm f/2.8L" }, // 0
{ 22, "Tokina AT-X 280 AF PRO 28-80mm f/2.8 Aspherical" }, // 1
{ 23, "Canon EF 35-105mm f/3.5-4.5" },
{ 24, "Canon EF 35-80mm f/4-5.6 Power Zoom" },
{ 25, "Canon EF 35-80mm f/4-5.6 Power Zoom" },
{ 26, "Canon EF 100mm f/2.8 Macro" }, // 0
{ 26, "Cosina 100mm f/3.5 Macro AF" }, // 1
{ 26, "Tamron SP AF 90mm f/2.8 Di Macro" }, // 2
{ 26, "Tamron SP AF 180mm f/3.5 Di Macro" }, // 3
{ 26, "Carl Zeiss Planar T* 50mm f/1.4" }, // 4
{ 27, "Canon EF 35-80mm f/4-5.6" },
{ 28, "Canon EF 80-200mm f/4.5-5.6" }, // 0
{ 28, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF" }, // 1
{ 28, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro" }, // 2
{ 28, "Tamron AF 70-300mm f/4-5.6 Di LD 1:2 Macro" }, // 3
{ 28, "Tamron AF Aspherical 28-200mm f/3.8-5.6" }, // 4
{ 29, "Canon EF 50mm f/1.8 II" },
{ 30, "Canon EF 35-105mm f/4.5-5.6" },
{ 31, "Canon EF 75-300mm f/4-5.6" }, // 0
{ 31, "Tamron SP AF 300mm f/2.8 LD IF" }, // 1
{ 32, "Canon EF 24mm f/2.8" }, // 0
{ 32, "Sigma 15mm f/2.8 EX Fisheye" }, // 1
{ 33, "Voigtlander or Carl Zeiss Lens" }, // 0
{ 33, "Voigtlander Ultron 40mm f/2 SLII Aspherical" }, // 1
{ 33, "Voigtlander Color Skopar 20mm f/3.5 SLII Aspherical" }, // 2
{ 33, "Voigtlander APO-Lanthar 90mm f/3.5 SLII Close Focus" }, // 3
{ 33, "Carl Zeiss Distagon 15mm T* f/2.8 ZE" }, // 4
{ 33, "Carl Zeiss Distagon 18mm T* f/3.5 ZE" }, // 5
{ 33, "Carl Zeiss Distagon 21mm T* f/2.8 ZE" }, // 6
{ 33, "Carl Zeiss Distagon 25mm T* f/2 ZE" }, // 7
{ 33, "Carl Zeiss Distagon 28mm T* f/2 ZE" }, // 8
{ 33, "Carl Zeiss Distagon 35mm T* f/2 ZE" }, // 9
{ 33, "Carl Zeiss Distagon 35mm T* f/1.4 ZE" }, // 10
{ 33, "Carl Zeiss Planar 50mm T* f/1.4 ZE" }, // 11
{ 33, "Carl Zeiss Makro-Planar T* 50mm f/2 ZE" }, // 12
{ 33, "Carl Zeiss Makro-Planar T* 100mm f/2 ZE" }, // 13
{ 33, "Carl Zeiss Apo-Sonnar T* 135mm f/2 ZE" }, // 14
{ 35, "Canon EF 35-80mm f/4-5.6" },
{ 36, "Canon EF 38-76mm f/4.5-5.6" },
{ 37, "Canon EF 35-80mm f/4-5.6" }, // 0
{ 37, "Tamron 70-200mm f/2.8 Di LD IF Macro" }, // 1
{ 37, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20" }, // 2
{ 37, "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical [IF] " }, // 3
{ 37, "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical [IF] Macro" }, // 4
{ 38, "Canon EF 80-200mm f/4.5-5.6" },
{ 39, "Canon EF 75-300mm f/4-5.6" },
{ 40, "Canon EF 28-80mm f/3.5-5.6" },
{ 41, "Canon EF 28-90mm f/4-5.6" },
{ 42, "Canon EF 28-200mm f/3.5-5.6" }, // 0
{ 42, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20" }, // 1
{ 43, "Canon EF 28-105mm f/4-5.6" },
{ 44, "Canon EF 90-300mm f/4.5-5.6" },
{ 45, "Canon EF-S 18-55mm f/3.5-5.6" },
{ 46, "Canon EF 28-90mm f/4-5.6" },
{ 47, "Zeiss Milvus 35mm f/2" }, // 0
{ 47, "Zeiss Milvus 50mm f/2 Makro" }, // 1
{ 48, "Canon EF-S 18-55mm f/3.5-5.6 IS" },
{ 49, "Canon EF-S 55-250mm f/4-5.6 IS" },
{ 50, "Canon EF-S 18-200mm f/3.5-5.6 IS" },
{ 51, "Canon EF-S 18-135mm f/3.5-5.6 IS" },
{ 52, "Canon EF-S 18-55mm f/3.5-5.6 IS II" },
{ 53, "Canon EF-S 18-55mm f/3.5-5.6 III" },
{ 54, "Canon EF-S 55-250mm f/4-5.6 IS II" },
{ 60, "Irix 11mm f/4" },
{ 82, "Canon TS-E 135mm f/4L Macro" },
{ 94, "Canon TS-E 17mm f/4L" },
{ 95, "Canon TS-E 24.0mm f/3.5 L II" },
{ 124, "Canon MP-E 65mm f/2.8 1-5x Macro Photo" },
{ 125, "Canon TS-E 24mm f/3.5L" },
{ 126, "Canon TS-E 45mm f/2.8" },
{ 127, "Canon TS-E 90mm f/2.8" },
{ 129, "Canon EF 300mm f/2.8L" },
{ 130, "Canon EF 50mm f/1.0L" },
{ 131, "Canon EF 28-80mm f/2.8-4L" }, // 0
{ 131, "Sigma 8mm f/3.5 EX DG Circular Fisheye" }, // 1
{ 131, "Sigma 17-35mm f/2.8-4 EX DG Aspherical HSM" }, // 2
{ 131, "Sigma 17-70mm f/2.8-4.5 DC Macro" }, // 3
{ 131, "Sigma APO 50-150mm f/2.8 EX DC HSM" }, // 4
{ 131, "Sigma APO 120-300mm f/2.8 EX DG HSM" }, // 5
{ 131, "Sigma 4.5mm F2.8 EX DC HSM Circular Fisheye" }, // 6
{ 131, "Sigma 70-200mm f/2.8 APO EX HSM" }, // 7
{ 132, "Canon EF 1200mm f/5.6L" },
{ 134, "Canon EF 600mm f/4L IS" },
{ 135, "Canon EF 200mm f/1.8L" },
{ 136, "Canon EF 300mm f/2.8L" }, // 0
{ 136, "Tamron SP 15-30mm f/2.8 Di VC USD A012" }, // 1
{ 137, "Canon EF 85mm f/1.2L" }, // 0
{ 137, "Sigma 18-50mm f/2.8-4.5 DC OS HSM" }, // 1
{ 137, "Sigma 50-200mm f/4-5.6 DC OS HSM" }, // 2
{ 137, "Sigma 18-250mm f/3.5-6.3 DC OS HSM" }, // 3
{ 137, "Sigma 24-70mm f/2.8 IF EX DG HSM" }, // 4
{ 137, "Sigma 18-125mm f/3.8-5.6 DC OS HSM" }, // 5
{ 137, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C" }, // 6
{ 137, "Sigma 17-50mm f/2.8 OS HSM" }, // 7
{ 137, "Sigma 18-200mm f/3.5-6.3 DC OS HSM [II]" }, // 8
{ 137, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD" }, // 9
{ 137, "Sigma 8-16mm f/4.5-5.6 DC HSM" }, // 10
{ 137, "Tamron SP 17-50mm f/2.8 XR Di II VC" }, // 11
{ 137, "Tamron SP 60mm f/2 Macro Di II" }, // 12
{ 137, "Sigma 10-20mm f/3.5 EX DC HSM" }, // 13
{ 137, "Tamron SP 24-70mm f/2.8 Di VC USD" }, // 14
{ 137, "Sigma 18-35mm f/1.8 DC HSM | A" }, // 15
{ 137, "Sigma 12-24mm f/4.5-5.6 DG HSM II" }, // 16
{ 138, "Canon EF 28-80mm f/2.8-4L" },
{ 139, "Canon EF 400mm f/2.8L" },
{ 140, "Canon EF 500mm f/4.5L" },
{ 141, "Canon EF 500mm f/4.5L" },
{ 142, "Canon EF 300mm f/2.8L IS" },
{ 143, "Canon EF 500mm f/4L IS" }, // 0
{ 143, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM" }, // 1
{ 143, "Sigma 24-105mm F4 DG OS HSM [Art 013]" }, // 2
{ 144, "Canon EF 35-135mm f/4-5.6 USM" },
{ 145, "Canon EF 100-300mm f/4.5-5.6 USM" },
{ 146, "Canon EF 70-210mm f/3.5-4.5 USM" },
{ 147, "Canon EF 35-135mm f/4-5.6 USM" },
{ 148, "Canon EF 28-80mm f/3.5-5.6 USM" },
{ 149, "Canon EF 100mm f/2 USM" },
{ 150, "Canon EF 14mm f/2.8L" }, // 0
{ 150, "Sigma 20mm EX f/1.8" }, // 1
{ 150, "Sigma 30mm f/1.4 DC HSM" }, // 2
{ 150, "Sigma 24mm f/1.8 DG Macro EX" }, // 3
{ 150, "Sigma 28mm f/1.8 DG Macro EX" }, // 4
{ 150, "Sigma 18-35mm f/1.8 DC HSM | A" }, // 5
{ 151, "Canon EF 200mm f/2.8L" },
{ 152, "Canon EF 300mm f/4L IS" }, // 0
{ 152, "Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM" }, // 1
{ 152, "Sigma 14mm f/2.8 EX Aspherical HSM" }, // 2
{ 152, "Sigma 10-20mm f/4-5.6" }, // 3
{ 152, "Sigma 100-300mm f/4" }, // 4
{ 153, "Canon EF 35-350mm f/3.5-5.6L" }, // 0
{ 153, "Sigma 50-500mm f/4-6.3 APO HSM EX" }, // 1
{ 153, "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical [IF] Macro" }, // 2
{ 153, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro Model A14" }, // 3
{ 153, "Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro" }, // 4
{ 154, "Canon EF 20mm f/2.8 USM" }, // 0
{ 154, "Zeiss Milvus 21mm f/2.8" }, // 1
{ 155, "Canon EF 85mm f/1.8 USM" }, // 0
{ 155, "Sigma 14mm f/1.8 DG HSM | A" }, // 1
{ 156, "Canon EF 28-105mm f/3.5-4.5 USM" }, // 0
{ 156, "Tamron SP 70-300mm f/4-5.6 Di VC USD" }, // 1
{ 156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF" }, // 2
{ 160, "Canon EF 20-35mm f/3.5-4.5 USM" }, // 0
{ 160, "Tamron AF 19-35mm f/3.5-4.5" }, // 1
{ 160, "Tokina AT-X 124 AF 12-24mm f/4 DX" }, // 2
{ 160, "Tokina AT-X 107 AF DX Fish-eye 10-17mm f/3.5-4.5" }, // 3
{ 160, "Tokina AT-X 116 PRO DX AF 11-16mm f/2.8" }, // 4
{ 160, "Tokina AT-X 11-20 F2.8 PRO DX Aspherical 11-20mm f/2.8" }, // 5
{ 161, "Canon EF 28-70mm f/2.8L" }, // 0
{ 161, "Sigma 24-70mm EX f/2.8" }, // 1
{ 161, "Sigma 28-70mm f/2.8 EX" }, // 2
{ 161, "Sigma 24-60mm f/2.8 EX DG" }, // 3
{ 161, "Tamron AF 17-50mm f/2.8 Di-II LD Aspherical" }, // 4
{ 161, "Tamron 90mm f/2.8" }, // 5
{ 161, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF" }, // 6
{ 161, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro" }, // 7
{ 162, "Canon EF 200mm f/2.8L" },
{ 163, "Canon EF 300mm f/4L" },
{ 164, "Canon EF 400mm f/5.6L" },
{ 165, "Canon EF 70-200mm f/2.8 L" },
{ 166, "Canon EF 70-200mm f/2.8 L + 1.4x" },
{ 167, "Canon EF 70-200mm f/2.8 L + 2x" },
{ 168, "Canon EF 28mm f/1.8 USM" }, // 0
{ 168, "Sigma 50-100mm f/1.8 DC HSM | A" }, // 1
{ 169, "Canon EF 17-35mm f/2.8L" }, // 0
{ 169, "Sigma 18-200mm f/3.5-6.3 DC OS" }, // 1
{ 169, "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical" }, // 2
{ 169, "Sigma 18-50mm f/2.8 Macro" }, // 3
{ 169, "Sigma 50mm f/1.4 EX DG HSM" }, // 4
{ 169, "Sigma 85mm f/1.4 EX DG HSM" }, // 5
{ 169, "Sigma 30mm f/1.4 EX DC HSM" }, // 6
{ 169, "Sigma 35mm f/1.4 DG HSM" }, // 7
{ 170, "Canon EF 200mm f/2.8L II" },
{ 171, "Canon EF 300mm f/4L" },
{ 172, "Canon EF 400mm f/5.6L" }, // 0
{ 172, "Sigma 150-600mm f/5-6.3 DG OS HSM | S" }, // 1
{ 172, "Sigma 150-500mm f/5-6.3 APO DG OS HSM + 1.4x" }, // 2
{ 173, "Canon EF 180mm Macro f/3.5L" }, // 0
{ 173, "Sigma 180mm EX HSM Macro f/3.5" }, // 1
{ 173, "Sigma APO Macro 150mm f/3.5 EX DG IF HSM" }, // 2
{ 173, "Sigma 150-500mm f/5-6.3 APO DG OS HSM + 2x" }, // 3
{ 174, "Canon EF 135mm f/2L" }, // 0
{ 174, "Sigma 70-200mm f/2.8 EX DG APO OS HSM" }, // 1
{ 174, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM" }, // 2
{ 174, "Sigma 150-500mm f/5-6.3 APO DG OS HSM" }, // 3
{ 174, "Zeiss Milvus 100mm f/2 Makro" }, // 4
{ 174, "Sigma 120-300mm f/2.8 EX APO DG OS HSM" }, // 5
{ 175, "Canon EF 400mm f/2.8L" },
{ 176, "Canon EF 24-85mm f/3.5-4.5 USM" },
{ 177, "Canon EF 300mm f/4L IS" },
{ 178, "Canon EF 28-135mm f/3.5-5.6 IS" },
{ 179, "Canon EF 24mm f/1.4L" },
{ 180, "Canon EF 35mm f/1.4L" }, // 0
{ 180, "Sigma 50mm f/1.4 DG HSM | A" }, // 1
{ 180, "Sigma 24mm f/1.4 DG HSM | A" }, // 2
{ 180, "Sigma 20mm f/1.4 DG HSM | A" }, // 3
{ 180, "Zeiss Milvus 50mm f/1.4" }, // 4
{ 180, "Zeiss Milvus 85mm f/1.4" }, // 5
{ 180, "Zeiss Otus 28mm f/1.4 ZE" }, // 6
{ 181, "Canon EF 100-400mm f/4.5-5.6L IS + 1.4x" }, // 0
{ 181, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x" }, // 1
{ 182, "Canon EF 100-400mm f/4.5-5.6L IS + 2x" }, // 0
{ 182, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 2x" }, // 1
{ 183, "Canon EF 100-400mm f/4.5-5.6L IS" }, // 0
{ 183, "Sigma 150mm f/2.8 EX DG OS HSM APO Macro" }, // 1
{ 183, "Sigma 105mm f/2.8 EX DG OS HSM Macro" }, // 2
{ 183, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro" }, // 3
{ 183, "Sigma 150-600mm f/5-6.3 DG OS HSM | C" }, // 4
{ 183, "Sigma 150-600mm f/5-6.3 DG OS HSM | S" }, // 5
{ 184, "Canon EF 400mm f/2.8L + 2x" },
{ 185, "Canon EF 600mm f/4L IS" },
{ 186, "Canon EF 70-200mm f/4L" },
{ 187, "Canon EF 70-200mm f/4L + 1.4x" },
{ 188, "Canon EF 70-200mm f/4L + 2x" },
{ 189, "Canon EF 70-200mm f/4L + 2.8x" },
{ 190, "Canon EF 100mm f/2.8 Macro USM" },
{ 191, "Canon EF 400mm f/4 DO IS" },
{ 193, "Canon EF 35-80mm f/4-5.6 USM" },
{ 194, "Canon EF 80-200mm f/4.5-5.6 USM" },
{ 195, "Canon EF 35-105mm f/4.5-5.6 USM" },
{ 196, "Canon EF 75-300mm f/4-5.6 USM" },
{ 197, "Canon EF 75-300mm f/4-5.6 IS USM" }, // 0
{ 197, "Sigma 18-300mm f/3.5-6.3 DC Macro HSM" }, // 1
{ 198, "Canon EF 50mm f/1.4 USM" }, // 0
{ 198, "Zeiss Otus 55mm f/1.4 ZE" }, // 1
{ 198, "Zeiss Otus 85mm f/1.4 ZE" }, // 2
{ 199, "Canon EF 28-80mm f/3.5-5.6 USM" },