source: extensions/AMetaData/JpegMetaData/TagDefinitions/CanonTags.class.php @ 26187

Last change on this file since 26187 was 17554, checked in by grum, 12 years ago

feature:2701
bug:2702
bug:2720
bug:2722

  • Property svn:executable set to *
File size: 76.1 KB
Line 
1<?php
2/*
3 * --:: JPEG MetaDatas ::-------------------------------------------------------
4 *
5 *  Author    : Grum
6 *   email    : grum at piwigo.org
7 *   website  : http://www.grum.fr
8 *
9 *   << May the Little SpaceFrog be with you ! >>
10 *
11 *
12 * +-----------------------------------------------------------------------+
13 * | JpegMetaData - a PHP based Jpeg Metadata manager                      |
14 * +-----------------------------------------------------------------------+
15 * | Copyright(C) 2010  Grum - http://www.grum.fr                          |
16 * +-----------------------------------------------------------------------+
17 * | This program is free software; you can redistribute it and/or modify  |
18 * | it under the terms of the GNU General Public License as published by  |
19 * | the Free Software Foundation                                          |
20 * |                                                                       |
21 * | This program is distributed in the hope that it will be useful, but   |
22 * | WITHOUT ANY WARRANTY; without even the implied warranty of            |
23 * | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
24 * | General Public License for more details.                              |
25 * |                                                                       |
26 * | You should have received a copy of the GNU General Public License     |
27 * | along with this program; if not, write to the Free Software           |
28 * | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
29 * | USA.                                                                  |
30 * +-----------------------------------------------------------------------+
31 *
32 *
33 * -----------------------------------------------------------------------------
34 *
35 * The CanonTags is the definition of the specific Canon Exif tags
36 *
37 * -----------------------------------------------------------------------------
38 *
39 * .. Notes ..
40 *
41 * The CanonTags class is derived from the KnownTags class.
42 *
43 * ======> See KnownTags.class.php to know more about the tag definitions <=====
44 *
45 *
46 * Pentax values from
47 *  - Exiftool by Phil Harvey    => http://www.sno.phy.queensu.ca/~phil/exiftool/
48 *                                  http://owl.phy.queensu.ca/~phil/exiftool/TagNames
49 *  - Exiv2 by Andreas Huggel    => http://www.exiv2.org/
50 *
51 */
52
53  require_once(JPEG_METADATA_DIR."TagDefinitions/KnownTags.class.php");
54
55  /**
56   * Define the tags for Canon camera
57   */
58  class CanonTags extends KnownTags
59  {
60    protected $label = "Canon specific tags";
61    protected $tags = Array(
62      /*
63       * tags with defined values
64       */
65
66      // CanonCameraSettings, tag 0x0001
67      0x0001 => Array(
68        'tagName'     => "CanonCameraSettings",
69        'schema'      => "Canon",
70        'translatable'=> false,
71        'combiTag'    => 0,
72        'implemented' => false,
73      ), // < CanonCameraSettings
74
75      /*
76       * The 'CanonCameraSettings' tags is composed by an array of sub tags
77       * Each subtag name is defined bu the class by the concatenation of
78       * "CanonCameraSettings" and the subtag name
79       *
80       * Giving something like :
81       *  "CanonCameraSettings.MacroMode" for the subtag 0x01
82       *
83       * This kind of data needs a particular algorythm in the CanonReader class
84       * provided by the processSubTag0x0001 function
85       *
86       * Keys are defined by a string build with :
87       *  - the tag number in hexa "0x0001"
88       *  - a dot "."
89       *  - sub tag number in decimal "10"
90       *  ==> "0x0001.10" => "CanonCameraSettings.CanonImageSize"
91       *
92       * >>> Begin of CanonCameraSettings subtags
93       *
94       */
95      "0x0001.1" => Array(
96        'tagName'     => "CanonCameraSettings.MacroMode",
97        'schema'      => "Canon",
98        'translatable'=> true,
99        'combiTag'    => 0,
100        'implemented' => true,
101        'tagValues'   => Array(
102            1 => "macro",
103            2 => "normal",
104          ),
105      ),
106
107      "0x0001.2" => Array(
108        'tagName'     => "CanonCameraSettings.SelfTimer",
109        'schema'      => "Canon",
110        'translatable'=> true,
111        'combiTag'    => 0,
112        'implemented' => true,
113      ),
114
115      "0x0001.3" => Array(
116        'tagName'     => "CanonCameraSettings.Quality",
117        'schema'      => "Canon",
118        'translatable'=> true,
119        'combiTag'    => 0,
120        'implemented' => true,
121        'tagValues'   => Array(
122            0x01 => "Economy",
123            0x02 => "normal",
124            0x03 => "Fine",
125            0x04 => "RAW",
126            0x05 => "Superfine",
127            0x82 => "Normal Movie"
128          ),
129      ),
130
131      "0x0001.4" => Array(
132        'tagName'     => "CanonCameraSettings.CanonFlashMode",
133        'schema'      => "Canon",
134        'translatable'=> true,
135        'combiTag'    => 0,
136        'implemented' => true,
137        'tagValues'   => Array(
138            0x00 => "Off",
139            0x01 => "Auto",
140            0x02 => "On",
141            0x03 => "Red-eye reduction",
142            0x04 => "Slow-sync",
143            0x05 => "Red-eye reduction (Auto)",
144            0x06 => "Red-eye reduction (On)",
145            0x10 => "External flash",
146          ),
147      ),
148
149      "0x0001.5" => Array(
150        'tagName'     => "CanonCameraSettings.ContinuousDrive",
151        'schema'      => "Canon",
152        'translatable'=> true,
153        'combiTag'    => 0,
154        'implemented' => true,
155        'tagValues'   => Array(
156            0 => "Single",
157            1 => "Continuous",
158            2 => "Movie",
159            3 => "Continuous, Speed Priority",
160            4 => "Continuous, Low",
161            5 => "Continuous, High",
162          ),
163      ),
164
165      "0x0001.7" => Array(
166        'tagName'     => "CanonCameraSettings.FocusMode",
167        'schema'      => "Canon",
168        'translatable'=> true,
169        'combiTag'    => 0,
170        'implemented' => true,
171        'tagValues'   => Array(
172            0x00 => "One-shot AF",
173            0x01 => "AI Servo AF",
174            0x02 => "AI Focus AF",
175            0x03 => "Manual Focus (3)",
176            0x04 => "Single",
177            0x05 => "Continuous",
178            0x06 => "Manual Focus (6)",
179            0x10 => "pan focus",
180          ),
181      ),
182
183      "0x0001.9" => Array(
184        'tagName'     => "CanonCameraSettings.RecordMode",
185        'schema'      => "Canon",
186        'translatable'=> true,
187        'combiTag'    => 0,
188        'implemented' => true,
189        'tagValues'   => Array(
190            0x01 => "JPEG",
191            0x02 => "CRW+THM",
192            0x03 => "AVI+THM",
193            0x04 => "TIF",
194            0x05 => "TIF+JPEG",
195            0x06 => "CR2",
196            0x07 => "CR2+JPEG",
197          ),
198      ),
199
200      "0x0001.10" => Array(
201        'tagName'     => "CanonCameraSettings.CanonImageSize",
202        'schema'      => "Canon",
203        'translatable'=> true,
204        'combiTag'    => 0,
205        'implemented' => true,
206        'tagValues'   => Array(
207            0x00 => "Large",
208            0x01 => "Medium",
209            0x02 => "Small",
210            0x05 => "Medium 1",
211            0x06 => "Medium 2",
212            0x07 => "Medium 3",
213            0x08 => "Postcard",
214            0x09 => "Widescreen",
215            0x81 => "Medium Movie",
216            0x82 => "Small Movie",
217          ),
218      ),
219
220      "0x0001.11" => Array(
221        'tagName'     => "CanonCameraSettings.EasyMode",
222        'schema'      => "Canon",
223        'translatable'=> true,
224        'combiTag'    => 0,
225        'implemented' => true,
226        'tagValues'   => Array(
227            0x00 => "Full auto",
228            0x01 => "Manual",
229            0x02 => "Landscape",
230            0x03 => "Fast shutter",
231            0x04 => "Slow shutter",
232            0x05 => "Night",
233            0x06 => "Gray Scale",
234            0x07 => "Sepia",
235            0x08 => "portrait",
236            0x09 => "Sports",
237            0x0a => "macro",
238            0x0b => "Black & White",
239            0x0c => "pan focus",
240            0x0d => "Vivid",
241            0x0e => "Neutral",
242            0x0f => "Flash Off",
243            0x10 => "Long Shutter",
244            0x11 => "super macro",
245            0x12 => "Foliage",
246            0x13 => "Indoor",
247            0x14 => "Fireworks",
248            0x15 => "Beach",
249            0x16 => "Underwater",
250            0x17 => "Snow",
251            0x18 => "Kids & Pets",
252            0x19 => "Night Snapshot",
253            0x1a => "Digital Macro",
254            0x1b => "My Colors",
255            0x1c => "Still Image",
256            0x1d => "Color Accent",
257            0x1e => "Color Swap",
258            0x20 => "Aquarium",
259            0x21 => "ISO 3200",
260            0x26 => "Creative Auto",
261            0x105 => "Sunset",
262          ),
263      ),
264
265      "0x0001.12" => Array(
266        'tagName'     => "CanonCameraSettings.DigitalZoom",
267        'schema'      => "Canon",
268        'translatable'=> true,
269        'combiTag'    => 0,
270        'implemented' => true,
271        'tagValues'   => Array(
272            0 => "none",
273            1 => "2x",
274            2 => "4x",
275            3 => "other",
276          ),
277      ),
278
279      "0x0001.13" => Array(
280        'tagName'     => "CanonCameraSettings.Contrast",
281        'schema'      => "Canon",
282        'translatable'=> false,
283        'combiTag'    => 0,
284        'implemented' => false,
285      ),
286
287      "0x0001.14" => Array(
288        'tagName'     => "CanonCameraSettings.Saturation",
289        'schema'      => "Canon",
290        'translatable'=> false,
291        'combiTag'    => 0,
292        'implemented' => false,
293      ),
294
295      "0x0001.15" => Array(
296        'tagName'     => "CanonCameraSettings.Sharpness",
297        'schema'      => "Canon",
298        'translatable'=> false,
299        'combiTag'    => 0,
300        'implemented' => false,
301      ),
302
303      "0x0001.16" => Array(
304        'tagName'     => "CanonCameraSettings.CameraISO",
305        'schema'      => "Canon",
306        'translatable'=> false,
307        'combiTag'    => 0,
308        'implemented' => false,
309      ),
310
311      "0x0001.17" => Array(
312        'tagName'     => "CanonCameraSettings.MeteringMode",
313        'schema'      => "Canon",
314        'translatable'=> true,
315        'combiTag'    => 0,
316        'implemented' => true,
317        'tagValues'   => Array(
318            0x00 => "default",
319            0x01 => "spot",
320            0x02 => "average",
321            0x03 => "evaluative",
322            0x04 => "partial",
323            0x05 => "center-weighted average",
324        ),
325      ),
326
327      "0x0001.18" => Array(
328        'tagName'     => "CanonCameraSettings.FocusRange",
329        'schema'      => "Canon",
330        'translatable'=> true,
331        'combiTag'    => 0,
332        'implemented' => true,
333        'tagValues'   => Array(
334            0x00 => "Manual",
335            0x01 => "Auto",
336            0x02 => "not known",
337            0x03 => "macro",
338            0x04 => "very close",
339            0x05 => "close",
340            0x06 => "middle range",
341            0x07 => "far range",
342            0x08 => "pan focus",
343            0x09 => "super macro",
344            0x0a => "infinity"
345        ),
346      ),
347
348      "0x0001.19" => Array(
349        'tagName'     => "CanonCameraSettings.AFPoint",
350        'schema'      => "Canon",
351        'translatable'=> true,
352        'combiTag'    => 0,
353        'implemented' => true,
354        'tagValues'   => Array(
355            0x2005 => "Manual AF point selection",
356            0x3000 => "None (MF)",
357            0x3001 => "Auto AF point selection",
358            0x3002 => "Right",
359            0x3003 => "Center",
360            0x3004 => "Left",
361            0x4001 => "Auto AF point selection",
362            0x4006 => "Face Detect"
363        ),
364      ),
365
366      "0x0001.20" => Array(
367        'tagName'     => "CanonCameraSettings.CanonExposureMode",
368        'schema'      => "Canon",
369        'translatable'=> true,
370        'combiTag'    => 0,
371        'implemented' => true,
372        'tagValues'   => Array(
373            0 => "Easy",
374            1 => "Program AE",
375            2 => "Shutter speed priority AE",
376            3 => "Aperture-priority AE",
377            4 => "Manual",
378            5 => "Depth-of-field AE",
379            6 => "M-Dep",
380            7 => "Bulb"
381        ),
382      ),
383
384      "0x0001.22" => Array(
385        'tagName'     => "CanonCameraSettings.LensType",
386        'schema'      => "Canon",
387        'translatable'=> true,
388        'combiTag'    => 0,
389        'implemented' => true,
390        'tagValues.special' => Array(
391              /* some lenses have the same Id. In this case associated name is
392               * not a single string, but an Array
393               *
394               * the lens CanonReader->processSubTag0x0001 function try to find
395               * to good lens by looking in each name if the ShortFocal-LongFocal
396               * correspond
397               */
398         0xffff => "Unknown lens",
399              1 => "Canon EF 50mm f/1.8",
400              2 => "Canon EF 28mm f/2.8",
401              3 => "Canon EF 135mm f/2.8 Soft",
402              4 => Array(
403                      "Canon EF 35-105mm f/3.5-4.5",
404                      "Sigma UC Zoom 35-135mm f/4-5.6",
405                    ),
406              5 => "Canon EF 35-70mm f/3.5-4.5",
407              6 => Array(
408                      "Canon EF 28-70mm f/3.5-4.5",
409                      "Sigma 18-50mm f/3.5-5.6 DC",
410                      "Sigma 18-125mm f/3.5-5.6 DC IF ASP",
411                      "Tokina AF193-2 19-35mm f/3.5-4.5",
412                    ),
413              7 => "Canon EF 100-300mm f/5.6L",
414              8 => Array(
415                      "Canon EF 100-300mm f/5.6",
416                      "Sigma 70-300mm f/4-5.6 DG Macro",
417                      "Tokina AT-X242AF 24-200mm f/3.5-5.6",
418                    ),
419              9 => Array(
420                      "Canon EF 70-210mm f/4",
421                      "Sigma 55-200mm f/4-5.6 DC",
422                    ),
423              10 => Array(
424                      "Canon EF 50mm f/2.5 Macro",
425                      "Sigma 50mm f/2.8 EX",
426                      "Sigma 28mm f/1.8",
427                      "Sigma 105mm f/2.8 Macro EX",
428                    ),
429              11 => "Canon EF 35mm f/2",
430              13 => "Canon EF 15mm f/2.8 Fisheye",
431              14 => "Canon EF 50-200mm f/3.5-4.5L",
432              15 => "Canon EF 50-200mm f/3.5-4.5",
433              16 => "Canon EF 35-135mm f/3.5-4.5",
434              17 => "Canon EF 35-70mm f/3.5-4.5A",
435              18 => "Canon EF 28-70mm f/3.5-4.5",
436              20 => "Canon EF 100-200mm f/4.5A",
437              21 => "Canon EF 80-200mm f/2.8L",
438              22 => Array(
439                        "Canon EF 20-35mm f/2.8L",
440                        "Tokina AT-X280AF PRO 28-80mm f/2.8 Aspherical",
441                      ),
442              23 => "Canon EF 35-105mm f/3.5-4.5",
443              24 => "Canon EF 35-80mm f/4-5.6 Power Zoom",
444              25 => "Canon EF 35-80mm f/4-5.6 Power Zoom",
445              26 => Array(
446                        "Canon EF 100mm f/2.8 Macro",
447                        "Cosina 100mm f/3.5 Macro AF",
448                        "Tamron SP AF 90mm f/2.8 Di Macro",
449                        "Tamron SP AF 180mm f/3.5 Di Macro",
450                        "Carl Zeiss Planar T* 50mm f/1.4",
451                      ),
452              27 => "Canon EF 35-80mm f/4-5.6",
453              28 => Array(
454                        "Canon EF 80-200mm f/4.5-5.6",
455                        "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF",
456                        "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro",
457                        "Tamron AF 70-300mm f/4.5-5.6 Di LD 1:2 Macro Zoom",
458                        "Tamron AF Aspherical 28-200mm f/3.8-5.6",
459                      ),
460              29 => "Canon EF 50mm f/1.8 MkII",
461              30 => "Canon EF 35-105mm f/4.5-5.6",
462              31 => Array(
463                        "Canon EF 75-300mm f/4-5.6",
464                        "Tamron SP AF 300mm f/2.8 LD IF",
465                      ),
466              32 => Array(
467                        "Canon EF 24mm f/2.8",
468                        "Sigma 15mm f/2.8 EX Fisheye",
469                      ),
470              33 => "Voigtlander Ultron 40mm f/2 SLII Aspherical",
471              35 => "Canon EF 35-80mm f/4-5.6",
472              36 => "Canon EF 38-76mm f/4.5-5.6",
473              37 => Array(
474                        "Canon EF 35-80mm f/4-5.6",
475                        "Tamron 70-200mm f/2.8 Di LD IF Macro",
476                        "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20",
477                      ),
478              38 => "Canon EF 80-200mm f/4.5-5.6",
479              39 => "Canon EF 75-300mm f/4-5.6",
480              40 => "Canon EF 28-80mm f/3.5-5.6",
481              41 => "Canon EF 28-90mm f/4-5.6",
482              42 => Array(
483                        "Canon EF 28-200mm f/3.5-5.6",
484                        "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20",
485                      ),
486              43 => "Canon EF 28-105mm f/4-5.6",
487              44 => "Canon EF 90-300mm f/4.5-5.6",
488              45 => "Canon EF-S 18-55mm f/3.5-5.6",
489              46 => "Canon EF 28-90mm f/4-5.6",
490              48 => "Canon EF-S 18-55mm f/3.5-5.6 IS",
491              49 => "Canon EF-S 55-250mm f/4-5.6 IS",
492              50 => "Canon EF-S 18-200mm f/3.5-5.6 IS",
493              51 => "Canon EF-S 18-135mm f/3.5-5.6 IS",
494              94 => "Canon TS-E 17mm f/4L",
495              95 => "Canon TS-E 24.0mm f/3.5 L II",
496              124 => "Canon MP-E 65mm f/2.8 1-5x Macro Photo",
497              125 => "Canon TS-E 24mm f/3.5L",
498              126 => "Canon TS-E 45mm f/2.8",
499              127 => "Canon TS-E 90mm f/2.8",
500              129 => "Canon EF 300mm f/2.8L",
501              130 => "Canon EF 50mm f/1.0L",
502              131 => Array(
503                        "Canon EF 28-80mm f/2.8-4L",
504                        "Sigma 8mm f/3.5 EX DG Circular Fisheye",
505                        "Sigma 17-35mm f/2.8-4 EX DG Aspherical HSM",
506                        "Sigma 17-70mm f/2.8-4.5 DC Macro",
507                        "Sigma APO 50-150mm f/2.8 [II] EX DC HSM",
508                        "Sigma APO 120-300mm f/2.8 EX DG HSM",
509                      ),
510              132 => "Canon EF 1200mm f/5.6L",
511              134 => "Canon EF 600mm f/4L IS",
512              135 => "Canon EF 200mm f/1.8L",
513              136 => "Canon EF 300mm f/2.8L",
514              137 => Array(
515                        "Canon EF 85mm f/1.2L",
516                        "Sigma 18-50mm f/2.8-4.5 DC OS HSM",
517                        "Sigma 50-200mm f/4-5.6 DC OS HSM",
518                        "Sigma 18-250mm f/3.5-6.3 DC OS HSM",
519                        "Sigma 24-70mm f/2.8 IF EX DG HSM",
520                        "Sigma 18-125mm f/3.8-5.6 DC OS HSM",
521                      ),
522              138 => "Canon EF 28-80mm f/2.8-4L",
523              139 => "Canon EF 400mm f/2.8L",
524              140 => "Canon EF 500mm f/4.5L",
525              141 => "Canon EF 500mm f/4.5L",
526              142 => "Canon EF 300mm f/2.8L IS",
527              143 => "Canon EF 500mm f/4L IS",
528              144 => "Canon EF 35-135mm f/4-5.6 USM",
529              145 => "Canon EF 100-300mm f/4.5-5.6 USM",
530              146 => "Canon EF 70-210mm f/3.5-4.5 USM",
531              147 => "Canon EF 35-135mm f/4-5.6 USM",
532              148 => "Canon EF 28-80mm f/3.5-5.6 USM",
533              149 => "Canon EF 100mm f/2 USM",
534              150 => Array(
535                        "Canon EF 14mm f/2.8L",
536                        "Sigma 20mm EX f/1.8",
537                        "Sigma 30mm f/1.4 DC HSM",
538                        "Sigma 24mm f/1.8 DG Macro EX",
539                      ),
540              151 => "Canon EF 200mm f/2.8L",
541              152 => Array(
542                        "Canon EF 300mm f/4L IS",
543                        "Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM",
544                        "Sigma 14mm f/2.8 EX Aspherical HSM",
545                        "Sigma 10-20mm f/4-5.6",
546                        "Sigma 100-300mm f/4",
547                      ),
548              153 => Array(
549                        "Canon EF 35-350mm f/3.5-5.6L",
550                        "Sigma 50-500mm f/4-6.3 APO HSM EX",
551                        "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical [IF] Macro",
552                        "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro Model A14",
553                        "Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro",
554                      ),
555              154 => "Canon EF 20mm f/2.8 USM",
556              155 => "Canon EF 85mm f/1.8 USM",
557              156 => "Canon EF 28-105mm f/3.5-4.5 USM",
558              160 => Array(
559                        "Canon EF 20-35mm f/3.5-4.5 USM",
560                        "Tamron AF 19-35mm f/3.5-4.5",
561                      ),
562              161 => Array(
563                        "Canon EF 28-70mm f/2.8L",
564                        "Sigma 24-70mm EX f/2.8",
565                        "Tamron 90mm f/2.8",
566                        "Tamron AF 17-50mm f/2.8 Di-II LD Aspherical",
567                      ),
568              162 => "Canon EF 200mm f/2.8L",
569              163 => "Canon EF 300mm f/4L",
570              164 => "Canon EF 400mm f/5.6L",
571              165 => "Canon EF 70-200mm f/2.8 L",
572              166 => "Canon EF 70-200mm f/2.8 L + 1.4x",
573              167 => "Canon EF 70-200mm f/2.8 L + 2x",
574              168 => "Canon EF 28mm f/1.8 USM",
575              169 => Array(
576                        "Canon EF 17-35mm f/2.8L",
577                        "Sigma 18-200mm f/3.5-6.3 DC OS",
578                        "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical",
579                        "Sigma 18-50mm f/2.8 Macro",
580                        "Sigma 50mm f/1.4 EX DG HSM",
581                      ),
582              170 => "Canon EF 200mm f/2.8L II",
583              171 => "Canon EF 300mm f/4L",
584              172 => "Canon EF 400mm f/5.6L",
585              173 => Array(
586                        "Canon EF 180mm Macro f/3.5L",
587                        "Sigma 180mm EX HSM Macro f/3.5",
588                        "Sigma APO Macro 150mm f/2.8 EX DG HSM",
589                      ),
590              174 => "Canon EF 135mm f/2L",
591              175 => "Canon EF 400mm f/2.8L",
592              176 => "Canon EF 24-85mm f/3.5-4.5 USM",
593              177 => "Canon EF 300mm f/4L IS",
594              178 => "Canon EF 28-135mm f/3.5-5.6 IS",
595              179 => "Canon EF 24mm f/1.4L",
596              180 => "Canon EF 35mm f/1.4L",
597              181 => "Canon EF 100-400mm f/4.5-5.6L IS + 1.4x",
598              182 => "Canon EF 100-400mm f/4.5-5.6L IS + 2x",
599              183 => "Canon EF 100-400mm f/4.5-5.6L IS",
600              184 => "Canon EF 400mm f/2.8L + 2x",
601              185 => "Canon EF 600mm f/4L IS",
602              186 => "Canon EF 70-200mm f/4L",
603              187 => "Canon EF 70-200mm f/4L + 1.4x",
604              188 => "Canon EF 70-200mm f/4L + 2x",
605              189 => "Canon EF 70-200mm f/4L + 2.8x",
606              190 => "Canon EF 100mm f/2.8 Macro",
607              191 => "Canon EF 400mm f/4 DO IS",
608              193 => "Canon EF 35-80mm f/4-5.6 USM",
609              194 => "Canon EF 80-200mm f/4.5-5.6 USM",
610              195 => "Canon EF 35-105mm f/4.5-5.6 USM",
611              196 => "Canon EF 75-300mm f/4-5.6 USM",
612              197 => "Canon EF 75-300mm f/4-5.6 IS USM",
613              198 => "Canon EF 50mm f/1.4 USM",
614              199 => "Canon EF 28-80mm f/3.5-5.6 USM",
615              200 => "Canon EF 75-300mm f/4-5.6 USM",
616              201 => "Canon EF 28-80mm f/3.5-5.6 USM",
617              202 => "Canon EF 28-80mm f/3.5-5.6 USM IV",
618              208 => "Canon EF 22-55mm f/4-5.6 USM",
619              209 => "Canon EF 55-200mm f/4.5-5.6",
620              210 => "Canon EF 28-90mm f/4-5.6 USM",
621              211 => "Canon EF 28-200mm f/3.5-5.6 USM",
622              212 => "Canon EF 28-105mm f/4-5.6 USM",
623              213 => "Canon EF 90-300mm f/4.5-5.6 USM",
624              214 => "Canon EF-S 18-55mm f/3.5-4.5 USM",
625              215 => "Canon EF 55-200mm f/4.5-5.6 II USM",
626              224 => "Canon EF 70-200mm f/2.8L IS",
627              225 => "Canon EF 70-200mm f/2.8L IS + 1.4x",
628              226 => "Canon EF 70-200mm f/2.8L IS + 2x",
629              227 => "Canon EF 70-200mm f/2.8L IS + 2.8x",
630              228 => "Canon EF 28-105mm f/3.5-4.5 USM",
631              229 => "Canon EF 16-35mm f/2.8L",
632              230 => "Canon EF 24-70mm f/2.8L",
633              231 => "Canon EF 17-40mm f/4L",
634              232 => "Canon EF 70-300mm f/4.5-5.6 DO IS USM",
635              233 => "Canon EF 28-300mm f/3.5-5.6L IS",
636              234 => "Canon EF-S 17-85mm f4-5.6 IS USM",
637              235 => "Canon EF-S 10-22mm f/3.5-4.5 USM",
638              236 => "Canon EF-S 60mm f/2.8 Macro USM",
639              237 => "Canon EF 24-105mm f/4L IS",
640              238 => "Canon EF 70-300mm f/4-5.6 IS USM",
641              239 => "Canon EF 85mm f/1.2L II",
642              240 => "Canon EF-S 17-55mm f/2.8 IS USM",
643              241 => "Canon EF 50mm f/1.2L",
644              242 => "Canon EF 70-200mm f/4L IS",
645              243 => "Canon EF 70-200mm f/4L IS + 1.4x",
646              244 => "Canon EF 70-200mm f/4L IS + 2x",
647              245 => "Canon EF 70-200mm f/4L IS + 2.8x",
648              246 => "Canon EF 16-35mm f/2.8L II",
649              247 => "Canon EF 14mm f/2.8L II USM",
650              248 => "Canon EF 200mm f/2L IS",
651              249 => "Canon EF 800mm f/5.6L IS",
652              250 => "Canon EF 24 f/1.4L II",
653              251 => "Canon EF 70-200mm f/2.8L IS II USM",
654              252 => "Canon EF 70-200mm f/2.8L IS II USM + 1.4x",
655              253 => "Canon EF 70-200mm f/2.8L IS II USM + 2x",
656              254 => "Canon EF 100mm f/2.8L Macro IS USM",
657              488 => "Canon EF-S 15-85mm f/3.5-5.6 IS USM",
658              489 => "Canon EF 70-300mm f/4-5.6L IS USM",
659              490 => "Canon EF 8-15mm f/4L USM",
660              491 => "Canon EF 300mm f/2.8L IS II USM",
661              494 => "Canon EF 600mm f/4.0L IS II USM",
662              495 => "Canon EF 24-70mm f/2.8L II USM",
663              4144 => "Canon EF 40mm f/2.8 STM"
664        )
665      ),
666
667      "0x0001.23" => Array(
668        'tagName'     => "CanonCameraSettings.LongFocal",
669        'schema'      => "Canon",
670        'translatable'=> false,
671        'combiTag'    => 0,
672        'implemented' => true,
673      ),
674
675      "0x0001.24" => Array(
676        'tagName'     => "CanonCameraSettings.ShortFocal",
677        'schema'      => "Canon",
678        'translatable'=> false,
679        'combiTag'    => 0,
680        'implemented' => true,
681      ),
682
683      "0x0001.25" => Array(
684        'tagName'     => "CanonCameraSettings.FocalUnits",
685        'schema'      => "Canon",
686        'translatable'=> false,
687        'combiTag'    => 0,
688        'implemented' => true,
689      ),
690
691      "0x0001.26" => Array(
692        'tagName'     => "CanonCameraSettings.MaxAperture",
693        'schema'      => "Canon",
694        'translatable'=> false,
695        'combiTag'    => 0,
696        'implemented' => true,
697      ),
698
699      "0x0001.27" => Array(
700        'tagName'     => "CanonCameraSettings.MinAperture",
701        'schema'      => "Canon",
702        'translatable'=> false,
703        'combiTag'    => 0,
704        'implemented' => true,
705      ),
706
707      "0x0001.28" => Array(
708        'tagName'     => "CanonCameraSettings.FlashActivity",
709        'schema'      => "Canon",
710        'translatable'=> true,
711        'combiTag'    => 0,
712        'implemented' => true,
713        'tagValues'   => Array(
714            0x00 => "Did not fire",
715            0x01 => "fired",
716        ),
717      ),
718
719      "0x0001.29" => Array(
720        'tagName'     => "CanonCameraSettings.FlashBits",
721        'schema'      => "Canon",
722        'translatable'=> true,
723        'combiTag'    => 0,
724        'implemented' => true,
725        'tagValues.special' => Array(
726            0x0001 => "Manual",                  //b0000000000000001
727            0x0002 => "TTL",                     //b0000000000000010
728            0x0004 => "A-TTL",                   //b0000000000000100
729            0x0008 => "E-TTL",                   //b0000000000001000
730            0x0010 => "FP sync enabled",         //b0000000000010000
731            0x0080 => "2nd-curtain sync used",   //b0000000010000000
732            0x0800 => "FP sync used",            //b0000100000000000
733            0x2000 => "Built-in",                //b0010000000000000
734            0x4000 => "External",                //b0100000000000000
735        ),
736      ),
737
738      "0x0001.32" => Array(
739        'tagName'     => "CanonCameraSettings.FocusContinuous",
740        'schema'      => "Canon",
741        'translatable'=> true,
742        'combiTag'    => 0,
743        'implemented' => true,
744        'tagValues'   => Array(
745            0x00 => "Single",
746            0x01 => "Continuous",
747            0x08 => "Manual",
748            0xFFFF => "Unknown",
749        ),
750      ),
751
752      "0x0001.33" => Array(
753        'tagName'     => "CanonCameraSettings.AESetting",
754        'schema'      => "Canon",
755        'translatable'=> true,
756        'combiTag'    => 0,
757        'implemented' => true,
758        'tagValues'   => Array(
759            0x00 => "Normal AE",
760            0x01 => "Exposure Compensation",
761            0x02 => "AE Lock",
762            0x03 => "AE Lock + Exposure Comp.",
763            0x04 => "No AE"
764        ),
765      ),
766
767      "0x0001.34" => Array(
768        'tagName'     => "CanonCameraSettings.ImageStabilization",
769        'schema'      => "Canon",
770        'translatable'=> true,
771        'combiTag'    => 0,
772        'implemented' => true,
773        'tagValues'   => Array(
774            0x00 => "Off",
775            0x01 => "On",
776            0x02 => "On, Shot Only",
777            0x03 => "On, Panning",
778            0xFFFF => "Unknown",
779        ),
780      ),
781
782      "0x0001.35" => Array(
783        'tagName'     => "CanonCameraSettings.DisplayAperture",
784        'schema'      => "Canon",
785        'translatable'=> false,
786        'combiTag'    => 0,
787        'implemented' => false,
788      ),
789
790      "0x0001.36" => Array(
791        'tagName'     => "CanonCameraSettings.ZoomSourceWidth",
792        'schema'      => "Canon",
793        'translatable'=> false,
794        'combiTag'    => 0,
795        'implemented' => false,
796      ),
797
798      "0x0001.37" => Array(
799        'tagName'     => "CanonCameraSettings.ZoomTargetWidth",
800        'schema'      => "Canon",
801        'translatable'=> false,
802        'combiTag'    => 0,
803        'implemented' => false,
804      ),
805
806      "0x0001.39" => Array(
807        'tagName'     => "CanonCameraSettings.SpotMeteringMode",
808        'schema'      => "Canon",
809        'translatable'=> true,
810        'combiTag'    => 0,
811        'implemented' => true,
812        'tagValues'   => Array(
813            0x00 => "Center",
814            0x01 => "AF Point",
815            0xFFFF => "Unknown",
816        ),
817      ),
818
819      "0x0001.40" => Array(
820        'tagName'     => "CanonCameraSettings.PhotoEffect",
821        'schema'      => "Canon",
822        'translatable'=> true,
823        'combiTag'    => 0,
824        'implemented' => true,
825        'tagValues'   => Array(
826            0x00 => "Off",
827            0x01 => "Vivid",
828            0x02 => "Neutral",
829            0x03 => "Smooth",
830            0x04 => "Sepia",
831            0x05 => "B&W",
832            0x06 => "Custom",
833            0x64 => "My Color Data",
834            0xFFFF => "Unknown",
835        ),
836      ),
837
838      "0x0001.41" => Array(
839        'tagName'     => "CanonCameraSettings.ManualFlashOutput",
840        'schema'      => "Canon",
841        'translatable'=> true,
842        'combiTag'    => 0,
843        'implemented' => true,
844        'tagValues'   => Array(
845            0x0000 => "n/a",
846            0x0500 => "Full",
847            0x0502 => "Medium",
848            0x0504 => "low",
849            0x7fff => "n/a",
850        ),
851      ),
852
853      "0x0001.42" => Array(
854        'tagName'     => "CanonCameraSettings.ColorTone",
855        'schema'      => "Canon",
856        'translatable'=> true,
857        'combiTag'    => 0,
858        'implemented' => true,
859        'tagValues'   => Array(
860            0x0000 => "normal",
861        ),
862      ),
863
864      "0x0001.46" => Array(
865        'tagName'     => "CanonCameraSettings.SRAWQuality",
866        'schema'      => "Canon",
867        'translatable'=> true,
868        'combiTag'    => 0,
869        'implemented' => true,
870        'tagValues'   => Array(
871            0x00 => "n/a",
872            0x01 => "sRAW1 (mRAW)",
873            0x02 => "sRAW2 (sRAW)"
874        ),
875      ),
876
877      /*
878       * <<< End of CanonCameraSettings subtags
879       */
880
881      // CanonFocalLength, tag 0x0000
882      0x0002 => Array(
883        'tagName'     => "CanonFocalLength",
884        'schema'      => "Canon",
885        'translatable'=> false,
886        'combiTag'    => 0,
887        'implemented' => false,
888      ), // < CanonFocalLength
889
890      // CanonFlashInfo?, tag 0x0003
891      0x0003 => Array(
892        'tagName'     => "CanonFlashInfo",
893        'schema'      => "Canon",
894        'translatable'=> false,
895        'combiTag'    => 0,
896        'implemented' => false,
897      ), // < CanonFlashInfo
898
899      // CanonShotInfo, tag 0x0004
900      0x0004 => Array(
901        'tagName'     => "CanonShotInfo",
902        'schema'      => "Canon",
903        'translatable'=> false,
904        'combiTag'    => 0,
905        'implemented' => false,
906      ), // <
907
908      /*
909       * The 'CanonShotInfo' tags is composed by an array of sub tags
910       *
911       * Like the CanonCameraSettings tag, this kind of data needs a particular
912       * algorythm in the CanonReader class, provided by the processSubTag0x0004
913       * function
914       *
915       * >>> Begin of CanonShotInfo subtags
916       *
917       */
918      "0x0004.1" => Array(
919        'tagName'     => "CanonShotInfo.AutoISO",
920        'schema'      => "Canon",
921        'translatable'=> false,
922        'combiTag'    => 0,
923        'implemented' => true,
924      ),
925
926      "0x0004.2" => Array(
927        'tagName'     => "CanonShotInfo.BaseISO",
928        'schema'      => "Canon",
929        'translatable'=> false,
930        'combiTag'    => 0,
931        'implemented' => true,
932      ),
933
934      "0x0004.3" => Array(
935        'tagName'     => "CanonShotInfo.MeasuredEV",
936        'schema'      => "Canon",
937        'translatable'=> false,
938        'combiTag'    => 0,
939        'implemented' => false,
940      ),
941
942      "0x0004.4" => Array(
943        'tagName'     => "CanonShotInfo.TargetAperture",
944        'schema'      => "Canon",
945        'translatable'=> false,
946        'combiTag'    => 0,
947        'implemented' => true,
948      ),
949
950      "0x0004.5" => Array(
951        'tagName'     => "CanonShotInfo.TargetExposureTime",
952        'schema'      => "Canon",
953        'translatable'=> false,
954        'combiTag'    => 0,
955        'implemented' => true,
956      ),
957
958      "0x0004.6" => Array(
959        'tagName'     => "CanonShotInfo.ExposureCompensation",
960        'schema'      => "Canon",
961        'translatable'=> false,
962        'combiTag'    => 0,
963        'implemented' => true,
964      ),
965
966      "0x0004.7" => Array(
967        'tagName'     => "CanonShotInfo.WhiteBalance",
968        'schema'      => "Canon",
969        'translatable'=> true,
970        'combiTag'    => 0,
971        'implemented' => true,
972        'tagValues'   => Array(
973            0x00 => "Auto",
974            0x01 => "Daylight",
975            0x02 => "Cloudy",
976            0x03 => "Tungsten",
977            0x04 => "Fluorescent",
978            0x05 => "Flash",
979            0x06 => "Custom",
980            0x07 => "Black & White",
981            0x08 => "Shade",
982            0x09 => "Manual Temperature (Kelvin)",
983            0x0A => "PC Set1",
984            0x0B => "PC Set2",
985            0x0C => "PC Set3",
986            0x0E => "Daylight Fluorescent",
987            0x0F => "Custom 1",
988            0x10 => "Custom 2",
989            0x11 => "Underwater",
990            0x12 => "Custom 3",
991            0x13 => "Custom 4",
992            0x14 => "PC Set4",
993            0x15 => "PC Set5",
994        ),
995      ),
996
997      "0x0004.8" => Array(
998        'tagName'     => "CanonShotInfo.SlowShutter",
999        'schema'      => "Canon",
1000        'translatable'=> true,
1001        'combiTag'    => 0,
1002        'implemented' => true,
1003        'tagValues'   => Array(
1004            0x00 => "Off",
1005            0x01 => "night scene",
1006            0x02 => "On",
1007            0x03 => "none",
1008        ),
1009      ),
1010
1011      "0x0004.9" => Array(
1012        'tagName'     => "CanonShotInfo.SequenceNumber",
1013        'schema'      => "Canon",
1014        'translatable'=> false,
1015        'combiTag'    => 0,
1016        'implemented' => true,
1017      ),
1018
1019      "0x0004.10" => Array(
1020        'tagName'     => "CanonShotInfo.OpticalZoomCode",
1021        'schema'      => "Canon",
1022        'translatable'=> false,
1023        'combiTag'    => 0,
1024        'implemented' => false,
1025      ),
1026
1027      "0x0004.13" => Array(
1028        'tagName'     => "CanonShotInfo.FlashGuideNumber",
1029        'schema'      => "Canon",
1030        'translatable'=> false,
1031        'combiTag'    => 0,
1032        'implemented' => true,
1033      ),
1034
1035      "0x0004.14" => Array(
1036        'tagName'     => "CanonShotInfo.AFPointsInFocus",
1037        'schema'      => "Canon",
1038        'translatable'=> true,
1039        'combiTag'    => 0,
1040        'implemented' => false,
1041        'tagValues'   => Array(
1042            // (used by D30, D60 and some PowerShot/Ixus models)
1043            0x3000 => "None (MF)",
1044            0x3001 => "Right",
1045            0x3002 => "Center",
1046            0x3003 => "Center+Right",
1047            0x3004 => "Left",
1048            0x3005 => "Left+Right",
1049            0x3006 => "Left+Center",
1050            0x3007 => "All",
1051        ),
1052      ),
1053
1054      "0x0004.15" => Array(
1055        'tagName'     => "CanonShotInfo.FlashExposureComp",
1056        'schema'      => "Canon",
1057        'translatable'=> false,
1058        'combiTag'    => 0,
1059        'implemented' => true,
1060      ),
1061
1062      "0x0004.16" => Array(
1063        'tagName'     => "CanonShotInfo.AutoExposureBracketing",
1064        'schema'      => "Canon",
1065        'translatable'=> true,
1066        'combiTag'    => 0,
1067        'implemented' => true,
1068        'tagValues'   => Array(
1069            -1 => "On",
1070            0 => "Off",
1071            1 => "On (shot 1)",
1072            2 => "On (shot 2)",
1073            3 => "On (shot 3)",
1074        ),
1075      ),
1076
1077      "0x0004.17" => Array(
1078        'tagName'     => "CanonShotInfo.AEBBracketValue",
1079        'schema'      => "Canon",
1080        'translatable'=> false,
1081        'combiTag'    => 0,
1082        'implemented' => true,
1083      ),
1084
1085      "0x0004.18" => Array(
1086        'tagName'     => "CanonShotInfo.ControlMode",
1087        'schema'      => "Canon",
1088        'translatable'=> true,
1089        'combiTag'    => 0,
1090        'implemented' => true,
1091        'tagValues'   => Array(
1092            0 => "n/a",
1093            1 => "Camera Local Control",
1094            3 => "Computer Remote Control",
1095        ),
1096      ),
1097
1098      "0x0004.19" => Array(
1099        'tagName'     => "CanonShotInfo.FocusDistanceUpper",
1100        'schema'      => "Canon",
1101        'translatable'=> false,
1102        'combiTag'    => 0,
1103        'implemented' => false,
1104      ),
1105
1106      "0x0004.20" => Array(
1107        'tagName'     => "CanonShotInfo.FocusDistanceLower",
1108        'schema'      => "Canon",
1109        'translatable'=> false,
1110        'combiTag'    => 0,
1111        'implemented' => false,
1112      ),
1113
1114      "0x0004.21" => Array(
1115        'tagName'     => "CanonShotInfo.FNumber",
1116        'schema'      => "Canon",
1117        'translatable'=> false,
1118        'combiTag'    => 0,
1119        'implemented' => false,
1120      ),
1121
1122      "0x0004.22" => Array(
1123        'tagName'     => "CanonShotInfo.ExposureTime",
1124        'schema'      => "Canon",
1125        'translatable'=> false,
1126        'combiTag'    => 0,
1127        'implemented' => false,
1128      ),
1129
1130      "0x0004.23" => Array(
1131        'tagName'     => "CanonShotInfo.MeasuredEV2",
1132        'schema'      => "Canon",
1133        'translatable'=> false,
1134        'combiTag'    => 0,
1135        'implemented' => false,
1136      ),
1137
1138      "0x0004.24" => Array(
1139        'tagName'     => "CanonShotInfo.BulbDuration",
1140        'schema'      => "Canon",
1141        'translatable'=> false,
1142        'combiTag'    => 0,
1143        'implemented' => false,
1144      ),
1145
1146      "0x0004.26" => Array(
1147        'tagName'     => "CanonShotInfo.CameraType",
1148        'schema'      => "Canon",
1149        'translatable'=> true,
1150        'combiTag'    => 0,
1151        'implemented' => true,
1152        'tagValues'   => Array(
1153            248 => "EOS High-end",
1154            250 => "Compact",
1155            252 => "EOS Mid-range",
1156            255 => "DV Camera",
1157        ),
1158      ),
1159
1160      "0x0004.27" => Array(
1161        'tagName'     => "CanonShotInfo.AutoRotate",
1162        'schema'      => "Canon",
1163        'translatable'=> true,
1164        'combiTag'    => 0,
1165        'implemented' => true,
1166        'tagValues'   => Array(
1167       0xFFFF => "Unknown",
1168            0 => "none",
1169            1 => "Rotate 90 CW",
1170            2 => "Rotate 180",
1171            3 => "Rotate 270 CW",
1172        ),
1173      ),
1174
1175      "0x0004.28" => Array(
1176        'tagName'     => "CanonShotInfo.NDFilter",
1177        'schema'      => "Canon",
1178        'translatable'=> true,
1179        'combiTag'    => 0,
1180        'implemented' => true,
1181        'tagValues'   => Array(
1182            0 => "Off",
1183            1 => "On",
1184       0xFFFF => "Unknown",
1185        ),
1186      ),
1187
1188      "0x0004.29" => Array(
1189        'tagName'     => "CanonShotInfo.SelfTimer2",
1190        'schema'      => "Canon",
1191        'translatable'=> false,
1192        'combiTag'    => 0,
1193        'implemented' => false,
1194      ),
1195
1196      "0x0004.33" => Array(
1197        'tagName'     => "CanonShotInfo.FlashOutput",
1198        'schema'      => "Canon",
1199        'translatable'=> false,
1200        'combiTag'    => 0,
1201        'implemented' => false,
1202      ),
1203
1204      /*
1205       * <<< Begin of CanonShotInfo subtags
1206       *
1207       */
1208
1209
1210      // CanonPanorama, tag 0x0005
1211      0x0005 => Array(
1212        'tagName'     => "CanonPanorama",
1213        'schema'      => "Canon",
1214        'translatable'=> false,
1215        'combiTag'    => 0,
1216        'implemented' => false,
1217      ), // < CanonPanorama
1218
1219      // CanonImageType, tag 0x0006
1220      0x0006 => Array(
1221        'tagName'     => "CanonImageType",
1222        'schema'      => "Canon",
1223        'translatable'=> false,
1224        'combiTag'    => 0,
1225        'implemented' => true,
1226      ), // <
1227
1228      // CanonFirmwareVersion, tag 0x0007
1229      0x0007 => Array(
1230        'tagName'     => "CanonFirmwareVersion",
1231        'schema'      => "Canon",
1232        'translatable'=> false,
1233        'combiTag'    => 0,
1234        'implemented' => true,
1235      ), // < CanonFirmwareVersion
1236
1237      // FileNumber, tag 0x0008
1238      0x0008 => Array(
1239        'tagName'     => "FileNumber",
1240        'schema'      => "Canon",
1241        'translatable'=> false,
1242        'combiTag'    => 0,
1243        'implemented' => false,
1244      ), // < FileNumber
1245
1246      // OwnerName, tag 0x0009
1247      0x0009 => Array(
1248        'tagName'     => "OwnerName",
1249        'schema'      => "Canon",
1250        'translatable'=> false,
1251        'combiTag'    => 0,
1252        'implemented' => true,
1253      ), // < OwnerName
1254
1255      // UnknownD30, tag 0x000a
1256      0x000a => Array(
1257        'tagName'     => "UnknownD30",
1258        'schema'      => "Canon",
1259        'translatable'=> false,
1260        'combiTag'    => 0,
1261        'implemented' => false,
1262      ), // < UnknownD30
1263
1264      // SerialNumber, tag 0x000c
1265      0x000c => Array(
1266        'tagName'     => "SerialNumber",
1267        'schema'      => "Canon",
1268        'translatable'=> false,
1269        'combiTag'    => 0,
1270        'implemented' => true,
1271      ), // < SerialNumber
1272
1273      // CanonCameraInfo, tag 0x000d
1274      0x000d => Array(
1275        'tagName'     => "CanonCameraInfo",
1276        'schema'      => "Canon",
1277        'translatable'=> false,
1278        'combiTag'    => 0,
1279        'implemented' => false,
1280        'tagValues.special' => Array(
1281          '40D'      => Array(3, 4, 6, 21, 24, 27, 29, 48, 67, 69, 111, 115, 214, 216, 218, 255, 307, 319, 2347),
1282          '1DMarkIV' => Array(3, 4, 6, 7, 21, 25, 30, 53, 84, 86, 488, 493),
1283        )
1284      ), // < CanonCameraInfo
1285
1286      /*
1287       * The 'CanonCameraInfo' tags structure depends of the camera model
1288       *
1289       * Like the CanonCameraSettings tag, this kind of data needs a particular
1290       * algorythm in the CanonReader class, provided by the processSubTag0x000d
1291       * functions
1292       *
1293       * >>> Begin of CanonCameraInfo subtags
1294       *
1295       */
1296
1297      /*
1298       * Canon EOS 40D CameraInfo tags
1299       */
1300      "0x000d.40D.3" => Array(
1301        'tagName'     => "CanonCameraInfo.FNumber",
1302        'schema'      => "Canon",
1303        'translatable'=> false,
1304        'combiTag'    => 0,
1305        'implemented' => false,
1306        'pos'         => 3,
1307        'type'        => ByteType::UBYTE,
1308      ),
1309
1310      "0x000d.40D.4" => Array(
1311        'tagName'     => "CanonCameraInfo.ExposureTime",
1312        'schema'      => "Canon",
1313        'translatable'=> false,
1314        'combiTag'    => 0,
1315        'implemented' => false,
1316        'pos'         => 4,
1317        'type'        => ByteType::UBYTE,
1318      ),
1319
1320      "0x000d.40D.6" => Array(
1321        'tagName'     => "CanonCameraInfo.ISO",
1322        'schema'      => "Canon",
1323        'translatable'=> false,
1324        'combiTag'    => 0,
1325        'implemented' => false,
1326        'pos'         => 6,
1327        'type'        => ByteType::UBYTE,
1328      ),
1329
1330      "0x000d.40D.21" => Array(
1331        'tagName'     => "CanonCameraInfo.FlashMeteringMode",
1332        'schema'      => "Canon",
1333        'translatable'=> true,
1334        'combiTag'    => 0,
1335        'implemented' => true,
1336        'pos'         => 21,
1337        'type'        => ByteType::UBYTE,
1338        'tagValues'   => Array(
1339            0 => "E-TTL",
1340            3 => "TTL",
1341            4 => "External Auto",
1342            5 => "External Manual",
1343            6 => "Off",
1344        )
1345      ),
1346
1347      "0x000d.40D.24" => Array(
1348        'tagName'     => "CanonCameraInfo.CameraTemperature",
1349        'schema'      => "Canon",
1350        'translatable'=> false,
1351        'combiTag'    => 0,
1352        'implemented' => true,
1353        'pos'         => 24,
1354        'type'        => ByteType::UBYTE,
1355      ),
1356
1357      "0x000d.40D.27" => Array(
1358        'tagName'     => "CanonCameraInfo.MacroMagnification",
1359        'schema'      => "Canon",
1360        'translatable'=> false,
1361        'combiTag'    => 0,
1362        'implemented' => false,
1363        'pos'         => 29,
1364        'type'        => ByteType::UBYTE,
1365      ),
1366
1367      "0x000d.40D.29" => Array(
1368        'tagName'     => "CanonCameraInfo.FocalLength",
1369        'schema'      => "Canon",
1370        'translatable'=> false,
1371        'combiTag'    => 0,
1372        'implemented' => true,
1373        'pos'         => 29,
1374        'type'        => ByteType::USHORT,
1375        'byteOrder'   => BYTE_ORDER_BIG_ENDIAN,
1376      ),
1377
1378      "0x000d.40D.48" => Array(
1379        'tagName'     => "CanonCameraInfo.CameraOrientation",
1380        'schema'      => "Canon",
1381        'translatable'=> true,
1382        'combiTag'    => 0,
1383        'implemented' => true,
1384        'pos'         => 48,
1385        'type'        => ByteType::UBYTE,
1386        'tagValues'   => Array(
1387            0 => "Horizontal (normal)",
1388            1 => "Rotate 90 CW",
1389            2 => "Rotate 270 CW",
1390        )
1391      ),
1392
1393      "0x000d.40D.67" => Array(
1394        'tagName'     => "CanonCameraInfo.FocusDistanceUpper",
1395        'schema'      => "Canon",
1396        'translatable'=> false,
1397        'combiTag'    => 0,
1398        'implemented' => false,
1399        'pos'         => 67,
1400        'type'        => ByteType::USHORT,
1401        'byteOrder'   => BYTE_ORDER_BIG_ENDIAN,
1402      ),
1403
1404      "0x000d.40D.69" => Array(
1405        'tagName'     => "CanonCameraInfo.FocusDistanceLower",
1406        'schema'      => "Canon",
1407        'translatable'=> false,
1408        'combiTag'    => 0,
1409        'implemented' => false,
1410        'pos'         => 69,
1411        'type'        => ByteType::USHORT,
1412        'byteOrder'   => BYTE_ORDER_BIG_ENDIAN,
1413      ),
1414
1415      "0x000d.40D.111" => Array(
1416        'tagName'     => "CanonCameraInfo.WhiteBalance",
1417        'schema'      => "Canon",
1418        'translatable'=> false,
1419        'combiTag'    => 0,
1420        'implemented' => true,
1421        'pos'         => 111,
1422        'type'        => ByteType::USHORT,
1423      ),
1424
1425      "0x000d.40D.115" => Array(
1426        'tagName'     => "CanonCameraInfo.ColorTemperature",
1427        'schema'      => "Canon",
1428        'translatable'=> false,
1429        'combiTag'    => 0,
1430        'implemented' => false,
1431        'pos'         => 115,
1432        'type'        => ByteType::USHORT,
1433      ),
1434
1435      "0x000d.40D.214" => Array(
1436        'tagName'     => "CanonCameraInfo.LensType",
1437        'schema'      => "Canon",
1438        'translatable'=> false,
1439        'combiTag'    => 0,
1440        'implemented' => true,
1441        'pos'         => 214,
1442        'type'        => ByteType::USHORT,
1443        'byteOrder'   => BYTE_ORDER_BIG_ENDIAN,
1444      ),
1445
1446      "0x000d.40D.216" => Array(
1447        'tagName'     => "CanonCameraInfo.ShortFocal",
1448        'schema'      => "Canon",
1449        'translatable'=> false,
1450        'combiTag'    => 0,
1451        'implemented' => true,
1452        'pos'         => 216,
1453        'type'        => ByteType::USHORT,
1454        'byteOrder'   => BYTE_ORDER_BIG_ENDIAN,
1455      ),
1456
1457      "0x000d.40D.218" => Array(
1458        'tagName'     => "CanonCameraInfo.LongFocal",
1459        'schema'      => "Canon",
1460        'translatable'=> false,
1461        'combiTag'    => 0,
1462        'implemented' => true,
1463        'pos'         => 218,
1464        'type'        => ByteType::UBYTE,
1465        'byteOrder'   => BYTE_ORDER_BIG_ENDIAN,
1466      ),
1467
1468      "0x000d.40D.255" => Array(
1469        'tagName'     => "CanonCameraInfo.FirmwareVersion",
1470        'schema'      => "Canon",
1471        'translatable'=> false,
1472        'combiTag'    => 0,
1473        'implemented' => true,
1474        'pos'         => 255,
1475        'type'        => ByteType::ASCII,
1476        'length'      => 6,
1477      ),
1478
1479      "0x000d.40D.307" => Array(
1480        'tagName'     => "CanonCameraInfo.FileIndex",
1481        'schema'      => "Canon",
1482        'translatable'=> false,
1483        'combiTag'    => 0,
1484        'implemented' => false,
1485        'pos'         => 307,
1486        'type'        => ByteType::ULONG,
1487      ),
1488
1489      "0x000d.40D.319" => Array(
1490        'tagName'     => "CanonCameraInfo.DirectoryIndex",
1491        'schema'      => "Canon",
1492        'translatable'=> false,
1493        'combiTag'    => 0,
1494        'implemented' => false,
1495        'pos'         => 319,
1496        'type'        => ByteType::ULONG,
1497      ),
1498
1499      "0x000d.40D.2347" => Array(
1500        'tagName'     => "CanonCameraInfo.LensModel",
1501        'schema'      => "Canon",
1502        'translatable'=> false,
1503        'combiTag'    => 0,
1504        'implemented' => true,
1505        'pos'         => 2347,
1506        'type'        => ByteType::ASCII,
1507        'length'      => 64,
1508      ),
1509
1510
1511      /*
1512       * Canon EOS 40D CameraInfo tags
1513       */
1514      "0x000d.1DMarkIV.3" => Array(
1515        'tagName'     => "CanonCameraInfo.FNumber",
1516        'schema'      => "Canon",
1517        'translatable'=> false,
1518        'combiTag'    => 0,
1519        'implemented' => false,
1520        'pos'         => 3,
1521        'type'        => ByteType::UBYTE,
1522      ),
1523
1524      "0x000d.1DMarkIV.4" => Array(
1525        'tagName'     => "CanonCameraInfo.ExposureTime",
1526        'schema'      => "Canon",
1527        'translatable'=> false,
1528        'combiTag'    => 0,
1529        'implemented' => false,
1530        'pos'         => 4,
1531        'type'        => ByteType::UBYTE,
1532      ),
1533
1534      "0x000d.1DMarkIV.6" => Array(
1535        'tagName'     => "CanonCameraInfo.ISO",
1536        'schema'      => "Canon",
1537        'translatable'=> false,
1538        'combiTag'    => 0,
1539        'implemented' => false,
1540        'pos'         => 6,
1541        'type'        => ByteType::UBYTE,
1542      ),
1543
1544      "0x000d.1DMarkIV.7" => Array(
1545        'tagName'     => "CanonCameraInfo.HighlightTonePriority",
1546        'schema'      => "Canon",
1547        'translatable'=> true,
1548        'combiTag'    => 0,
1549        'implemented' => true,
1550        'pos'         => 7,
1551        'type'        => ByteType::UBYTE,
1552        'tagValues'   => Array(
1553            0 => "Off",
1554            1 => "On"
1555        ),
1556      ),
1557
1558      "0x000d.1DMarkIV.21" => Array(
1559        'tagName'     => "CanonCameraInfo.FlashMeteringMode",
1560        'schema'      => "Canon",
1561        'translatable'=> true,
1562        'combiTag'    => 0,
1563        'implemented' => true,
1564        'pos'         => 21,
1565        'type'        => ByteType::UBYTE,
1566        'tagValues'   => Array(
1567            0 => "E-TTL",
1568            3 => "TTL",
1569            4 => "External Auto",
1570            5 => "External Manual",
1571            6 => "Off",
1572        )
1573      ),
1574
1575      "0x000d.1DMarkIV.25" => Array(
1576        'tagName'     => "CanonCameraInfo.CameraTemperature",
1577        'schema'      => "Canon",
1578        'translatable'=> false,
1579        'combiTag'    => 0,
1580        'implemented' => true,
1581        'pos'         => 25,
1582        'type'        => ByteType::UBYTE,
1583      ),
1584
1585      "0x000d.1DMarkIV.30" => Array(
1586        'tagName'     => "CanonCameraInfo.FocalLength",
1587        'schema'      => "Canon",
1588        'translatable'=> false,
1589        'combiTag'    => 0,
1590        'implemented' => true,
1591        'pos'         => 30,
1592        'type'        => ByteType::USHORT,
1593        'byteOrder'   => BYTE_ORDER_BIG_ENDIAN,
1594      ),
1595
1596      "0x000d.1DMarkIV.53" => Array(
1597        'tagName'     => "CanonCameraInfo.CameraOrientation",
1598        'schema'      => "Canon",
1599        'translatable'=> true,
1600        'combiTag'    => 0,
1601        'implemented' => true,
1602        'pos'         => 53,
1603        'type'        => ByteType::UBYTE,
1604        'tagValues'   => Array(
1605            0 => "Horizontal (normal)",
1606            1 => "Rotate 90 CW",
1607            2 => "Rotate 270 CW",
1608        )
1609      ),
1610
1611      "0x000d.1DMarkIV.84" => Array(
1612        'tagName'     => "CanonCameraInfo.FocusDistanceUpper",
1613        'schema'      => "Canon",
1614        'translatable'=> false,
1615        'combiTag'    => 0,
1616        'implemented' => false,
1617        'pos'         => 84,
1618        'type'        => ByteType::USHORT,
1619        'byteOrder'   => BYTE_ORDER_BIG_ENDIAN,
1620      ),
1621
1622      "0x000d.1DMarkIV.86" => Array(
1623        'tagName'     => "CanonCameraInfo.FocusDistanceLower",
1624        'schema'      => "Canon",
1625        'translatable'=> false,
1626        'combiTag'    => 0,
1627        'implemented' => false,
1628        'pos'         => 86,
1629        'type'        => ByteType::USHORT,
1630        'byteOrder'   => BYTE_ORDER_BIG_ENDIAN,
1631      ),
1632
1633
1634      /*
1635       * <<< end of CanonCameraInfo subtags
1636       *
1637       */
1638
1639      // CanonFileLength, tag 0x000e
1640      0x000e => Array(
1641        'tagName'     => "CanonFileLength",
1642        'schema'      => "Canon",
1643        'translatable'=> false,
1644        'combiTag'    => 0,
1645        'implemented' => false,
1646      ), // < CanonFileLength
1647
1648      // CustomFunctions, tag 0x000f
1649      0x000f => Array(
1650        'tagName'     => "CustomFunctions",
1651        'schema'      => "Canon",
1652        'translatable'=> false,
1653        'combiTag'    => 0,
1654        'implemented' => false,
1655      ), // < CustomFunctions
1656
1657      // CanonModelID, tag 0x0010
1658      0x0010 => Array(
1659        'tagName'     => "CanonModelID",
1660        'schema'      => "Canon",
1661        'translatable'=> false,
1662        'combiTag'    => 0,
1663        'implemented' => true,
1664        'tagValues.special'   => Array(
1665            '0x01010000' => "PowerShot A30",
1666            '0x01040000' => "PowerShot S300 / Digital IXUS 300 / IXY Digital 300",
1667            '0x01060000' => "PowerShot A20",
1668            '0x01080000' => "PowerShot A10",
1669            '0x01090000' => "PowerShot S110 / Digital IXUS v / IXY Digital 200",
1670            '0x01100000' => "PowerShot G2",
1671            '0x01110000' => "PowerShot S40",
1672            '0x01120000' => "PowerShot S30",
1673            '0x01130000' => "PowerShot A40",
1674            '0x01140000' => "EOS D30",
1675            '0x01150000' => "PowerShot A100",
1676            '0x01160000' => "PowerShot S200 / Digital IXUS v2 / IXY Digital 200a",
1677            '0x01170000' => "PowerShot A200",
1678            '0x01180000' => "PowerShot S330 / Digital IXUS 330 / IXY Digital 300a",
1679            '0x01190000' => "PowerShot G3",
1680            '0x01210000' => "PowerShot S45",
1681            '0x01230000' => "PowerShot SD100 / Digital IXUS II / IXY Digital 30",
1682            '0x01240000' => "PowerShot S230 / Digital IXUS v3 / IXY Digital 320",
1683            '0x01250000' => "PowerShot A70",
1684            '0x01260000' => "PowerShot A60",
1685            '0x01270000' => "PowerShot S400 / Digital IXUS 400 / IXY Digital 400",
1686            '0x01290000' => "PowerShot G5",
1687            '0x01300000' => "PowerShot A300",
1688            '0x01310000' => "PowerShot S50",
1689            '0x01340000' => "PowerShot A80",
1690            '0x01350000' => "PowerShot SD10 / Digital IXUS i / IXY Digital L",
1691            '0x01360000' => "PowerShot S1 IS",
1692            '0x01370000' => "PowerShot Pro1",
1693            '0x01380000' => "PowerShot S70",
1694            '0x01390000' => "PowerShot S60",
1695            '0x01400000' => "PowerShot G6",
1696            '0x01410000' => "PowerShot S500 / Digital IXUS 500 / IXY Digital 500",
1697            '0x01420000' => "PowerShot A75",
1698            '0x01440000' => "PowerShot SD110 / Digital IXUS IIs / IXY Digital 30a",
1699            '0x01450000' => "PowerShot A400",
1700            '0x01470000' => "PowerShot A310",
1701            '0x01490000' => "PowerShot A85",
1702            '0x01520000' => "PowerShot S410 / Digital IXUS 430 / IXY Digital 450",
1703            '0x01530000' => "PowerShot A95",
1704            '0x01540000' => "PowerShot SD300 / Digital IXUS 40 / IXY Digital 50",
1705            '0x01550000' => "PowerShot SD200 / Digital IXUS 30 / IXY Digital 40",
1706            '0x01560000' => "PowerShot A520",
1707            '0x01570000' => "PowerShot A510",
1708            '0x01590000' => "PowerShot SD20 / Digital IXUS i5 / IXY Digital L2",
1709            '0x01640000' => "PowerShot S2 IS",
1710            '0x01650000' => "PowerShot SD430 / IXUS Wireless / IXY Wireless",
1711            '0x01660000' => "PowerShot SD500 / Digital IXUS 700 / IXY Digital 600",
1712            '0x01668000' => "EOS D60",
1713            '0x01700000' => "PowerShot SD30 / Digital IXUS i zoom / IXY Digital L3",
1714            '0x01740000' => "PowerShot A430",
1715            '0x01750000' => "PowerShot A410",
1716            '0x01760000' => "PowerShot S80",
1717            '0x01780000' => "PowerShot A620",
1718            '0x01790000' => "PowerShot A610",
1719            '0x01800000' => "PowerShot SD630 / Digital IXUS 65 / IXY Digital 80",
1720            '0x01810000' => "PowerShot SD450 / Digital IXUS 55 / IXY Digital 60",
1721            '0x01820000' => "PowerShot TX1",
1722            '0x01870000' => "PowerShot SD400 / Digital IXUS 50 / IXY Digital 55",
1723            '0x01880000' => "PowerShot A420",
1724            '0x01890000' => "PowerShot SD900 / Digital IXUS 900 Ti / IXY Digital 1000",
1725            '0x01900000' => "PowerShot SD550 / Digital IXUS 750 / IXY Digital 700",
1726            '0x01920000' => "PowerShot A700",
1727            '0x01940000' => "PowerShot SD700 IS / Digital IXUS 800 IS / IXY Digital 800 IS",
1728            '0x01950000' => "PowerShot S3 IS",
1729            '0x01960000' => "PowerShot A540",
1730            '0x01970000' => "PowerShot SD600 / Digital IXUS 60 / IXY Digital 70",
1731            '0x01980000' => "PowerShot G7",
1732            '0x01990000' => "PowerShot A530",
1733            '0x02000000' => "PowerShot SD800 IS / Digital IXUS 850 IS / IXY Digital 900 IS",
1734            '0x02010000' => "PowerShot SD40 / Digital IXUS i7 / IXY Digital L4",
1735            '0x02020000' => "PowerShot A710 IS",
1736            '0x02030000' => "PowerShot A640",
1737            '0x02040000' => "PowerShot A630",
1738            '0x02090000' => "PowerShot S5 IS",
1739            '0x02100000' => "PowerShot A460",
1740            '0x02120000' => "PowerShot SD850 IS / Digital IXUS 950 IS / IXY Digital 810 IS",
1741            '0x02130000' => "PowerShot A570 IS",
1742            '0x02140000' => "PowerShot A560",
1743            '0x02150000' => "PowerShot SD750 / Digital IXUS 75 / IXY Digital 90",
1744            '0x02160000' => "PowerShot SD1000 / Digital IXUS 70 / IXY Digital 10",
1745            '0x02180000' => "PowerShot A550",
1746            '0x02190000' => "PowerShot A450",
1747            '0x02230000' => "PowerShot G9",
1748            '0x02240000' => "PowerShot A650 IS",
1749            '0x02260000' => "PowerShot A720 IS",
1750            '0x02290000' => "PowerShot SX100 IS",
1751            '0x02300000' => "PowerShot SD950 IS / Digital IXUS 960 IS / IXY Digital 2000 IS",
1752            '0x02310000' => "PowerShot SD870 IS / Digital IXUS 860 IS / IXY Digital 910 IS",
1753            '0x02320000' => "PowerShot SD890 IS / Digital IXUS 970 IS / IXY Digital 820 IS",
1754            '0x02360000' => "PowerShot SD790 IS / Digital IXUS 90 IS / IXY Digital 95 IS",
1755            '0x02370000' => "PowerShot SD770 IS / Digital IXUS 85 IS / IXY Digital 25 IS",
1756            '0x02380000' => "PowerShot A590 IS",
1757            '0x02390000' => "PowerShot A580",
1758            '0x02420000' => "PowerShot A470",
1759            '0x02430000' => "PowerShot SD1100 IS / Digital IXUS 80 IS / IXY Digital 20 IS",
1760            '0x02460000' => "PowerShot SX1 IS",
1761            '0x02470000' => "PowerShot SX10 IS",
1762            '0x02480000' => "PowerShot A1000 IS",
1763            '0x02490000' => "PowerShot G10",
1764            '0x02510000' => "PowerShot A2000 IS",
1765            '0x02520000' => "PowerShot SX110 IS",
1766            '0x02530000' => "PowerShot SD990 IS / Digital IXUS 980 IS / IXY Digital 3000 IS",
1767            '0x02540000' => "PowerShot SD880 IS / Digital IXUS 870 IS / IXY Digital 920 IS",
1768            '0x02550000' => "PowerShot E1",
1769            '0x02560000' => "PowerShot D10",
1770            '0x02570000' => "PowerShot SD960 IS / Digital IXUS 110 IS / IXY Digital 510 IS",
1771            '0x02580000' => "PowerShot A2100 IS",
1772            '0x02590000' => "PowerShot A480",
1773            '0x02600000' => "PowerShot SX200 IS",
1774            '0x02610000' => "PowerShot SD970 IS / Digital IXUS 990 IS / IXY Digital 830 IS",
1775            '0x02620000' => "PowerShot SD780 IS / Digital IXUS 100 IS / IXY Digital 210 IS",
1776            '0x02630000' => "PowerShot A1100 IS",
1777            '0x02640000' => "PowerShot SD1200 IS / Digital IXUS 95 IS / IXY Digital 110 IS",
1778            '0x02700000' => "PowerShot G11",
1779            '0x02710000' => "PowerShot SX120 IS",
1780            '0x02720000' => "PowerShot S90",
1781            '0x02750000' => "PowerShot SX20 IS",
1782            '0x02760000' => "PowerShot SD980 IS / Digital IXUS 200 IS / IXY Digital 930 IS",
1783            '0x02770000' => "PowerShot SD940 IS / Digital IXUS 120 IS / IXY Digital 220 IS",
1784            '0x02800000' => "PowerShot A495",
1785            '0x02810000' => "PowerShot A490",
1786            '0x02820000' => "PowerShot A3100 IS",
1787            '0x02830000' => "PowerShot A3000 IS",
1788            '0x02840000' => "PowerShot SD1400 IS / Digital IXUS 130 / IXY Digital 400F",
1789            '0x02850000' => "PowerShot SD1300 IS / Digital IXUS 105 / IXY Digital 200F",
1790            '0x02860000' => "PowerShot SD3500 IS / Digital IXUS 210 / IXY Digital 10S",
1791            '0x02870000' => "PowerShot SX210 IS",
1792            '0x03010000' => "PowerShot Pro90 IS",
1793            '0x03020000' => "Digital IXUS 115 HS",  // added from forum
1794            '0x04040000' => "PowerShot G1",
1795            '0x06040000' => "PowerShot S100 / Digital IXUS / IXY Digital",
1796            '0x4007d673' => "DC19/DC21/DC22",
1797            '0x4007d674' => "XH A1",
1798            '0x4007d675' => "HV10",
1799            '0x4007d676' => "MD130/MD140/MD150/MD160/ZR850",
1800            '0x4007d777' => "iVIS DC50",
1801            '0x4007d778' => "iVIS HV20",
1802            '0x4007d779' => "DC211",
1803            '0x4007d77b' => "iVIS HR10",
1804            '0x4007d77d' => "MD255/ZR950",
1805            '0x4007d81c' => "HF11",
1806            '0x4007d878' => "HV30",
1807            '0x4007d87c' => "XH A1S",
1808            '0x4007d87e' => "DC301/DC310/DC311/DC320/DC330",
1809            '0x4007d87f' => "FS100",
1810            '0x4007d880' => "iVIS HF10",
1811            '0x4007d882' => "HG20/HG21",
1812            '0x4007d925' => "HF21",
1813            '0x4007d926' => "HF S11",
1814            '0x4007d978' => "HV40",
1815            '0x4007d987' => "DC410/DC411/DC420",
1816            '0x4007d988' => "FS19/FS20/FS21/FS22/FS200",
1817            '0x4007d989' => "HF20/HF200",
1818            '0x4007d98a' => "HF S10/S100",
1819            '0x4007da8e' => "HF R10/R16/R17/R18/R100/R106",
1820            '0x4007da8f' => "HF M30/M31/M36/M300/M306",
1821            '0x4007da90' => "HF S20/S21/S200",
1822            '0x4007da92' => "FS31/FS36/FS37/FS300/FS305/FS306/FS307",
1823            '0x80000001' => "EOS-1D",
1824            '0x80000167' => "EOS-1DS",
1825            '0x80000168' => "EOS 10D",
1826            '0x80000169' => "EOS-1D Mark III",
1827            '0x80000170' => "EOS Digital Rebel / 300D / Kiss Digital",
1828            '0x80000174' => "EOS-1D Mark II",
1829            '0x80000175' => "EOS 20D",
1830            '0x80000176' => "EOS Digital Rebel XSi / 450D / Kiss X2",
1831            '0x80000188' => "EOS-1Ds Mark II",
1832            '0x80000189' => "EOS Digital Rebel XT / 350D / Kiss Digital N",
1833            '0x80000190' => "EOS 40D",
1834            '0x80000213' => "EOS 5D",
1835            '0x80000215' => "EOS-1Ds Mark III",
1836            '0x80000218' => "EOS 5D Mark II",
1837            '0x80000219' => "WFT-E1",
1838            '0x80000232' => "EOS-1D Mark II N",
1839            '0x80000234' => "EOS 30D",
1840            '0x80000236' => "EOS Digital Rebel XTi / 400D / Kiss Digital X (and rare K236)",
1841            '0x80000241' => "WFT-E2",
1842            '0x80000246' => "WFT-E3",
1843            '0x80000250' => "EOS 7D",
1844            '0x80000252' => "EOS Rebel T1i / 500D / Kiss X3",
1845            '0x80000254' => "EOS Rebel XS / 1000D / Kiss F",
1846            '0x80000261' => "EOS 50D",
1847            '0x80000269' => "EOS-1D X",
1848            '0x80000270' => "EOS Rebel T2i / 550D / Kiss X4",
1849            '0x80000271' => "WFT-E4",
1850            '0x80000273' => "WFT-E5",
1851            '0x80000281' => "EOS-1D Mark IV",
1852            '0x80000285' => "EOS 5D Mark III",
1853            '0x80000286' => "EOS Rebel T3i / 600D / Kiss X5",
1854            '0x80000287' => "EOS 60D",
1855            '0x80000288' => "EOS Rebel T3 / 1100D / Kiss X50",
1856            '0x80000297' => "WFT-E2 II",
1857            '0x80000298' => "WFT-E4 II",
1858            '0x80000301' => "EOS Rebel T4i / 650D / Kiss X6i"
1859        ),
1860      ), // < CanonModelID
1861
1862      // CanonAFInfo, tag 0x0012
1863      0x0012 => Array(
1864        'tagName'     => "CanonAFInfo",
1865        'schema'      => "Canon",
1866        'translatable'=> false,
1867        'combiTag'    => 0,
1868        'implemented' => false,
1869      ), // < CanonAFInfo
1870
1871      // ThumbnailImageValidArea, tag 0x0013
1872      0x0013 => Array(
1873        'tagName'     => "ThumbnailImageValidArea",
1874        'schema'      => "Canon",
1875        'translatable'=> false,
1876        'combiTag'    => 0,
1877        'implemented' => false,
1878      ), // < ThumbnailImageValidArea
1879
1880      // SerialNumberFormat, tag 0x0015
1881      0x0015 => Array(
1882        'tagName'     => "SerialNumberFormat",
1883        'schema'      => "Canon",
1884        'translatable'=> false,
1885        'combiTag'    => 0,
1886        'implemented' => true,
1887        'tagValues.special' => Array(
1888            '0x90000000' => "Format 1",
1889            '0xa0000000' => "Format 2",
1890        )
1891      ), // < SerialNumberFormat
1892
1893      // SuperMacro, tag 0x001a
1894      0x001a => Array(
1895        'tagName'     => "SuperMacro",
1896        'schema'      => "Canon",
1897        'translatable'=> false,
1898        'combiTag'    => 0,
1899        'implemented' => false,
1900      ), // < SuperMacro
1901
1902      // DateStampMode, tag 0x001c
1903      0x001c => Array(
1904        'tagName'     => "DateStampMode",
1905        'schema'      => "Canon",
1906        'translatable'=> false,
1907        'combiTag'    => 0,
1908        'implemented' => false,
1909      ), // < DateStampMode
1910
1911      // MyColors, tag 0x001d
1912      0x001d => Array(
1913        'tagName'     => "MyColors",
1914        'schema'      => "Canon",
1915        'translatable'=> false,
1916        'combiTag'    => 0,
1917        'implemented' => false,
1918      ), // < MyColors
1919
1920      // FirmwareRevision, tag 0x001e
1921      0x001e => Array(
1922        'tagName'     => "FirmwareRevision",
1923        'schema'      => "Canon",
1924        'translatable'=> false,
1925        'combiTag'    => 0,
1926        'implemented' => false,
1927      ), // < FirmwareRevision
1928
1929      // Categories, tag 0x0023
1930      0x0023 => Array(
1931        'tagName'     => "Categories",
1932        'schema'      => "Canon",
1933        'translatable'=> false,
1934        'combiTag'    => 0,
1935        'implemented' => false,
1936      ), // < Categories
1937
1938      // FaceDetect1, tag 0x0024
1939      0x0024 => Array(
1940        'tagName'     => "FaceDetect1",
1941        'schema'      => "Canon",
1942        'translatable'=> false,
1943        'combiTag'    => 0,
1944        'implemented' => false,
1945      ), // < FaceDetect1
1946
1947      // FaceDetect2, tag 0x0025
1948      0x0025 => Array(
1949        'tagName'     => "FaceDetect2",
1950        'schema'      => "Canon",
1951        'translatable'=> false,
1952        'combiTag'    => 0,
1953        'implemented' => false,
1954      ), // < FaceDetect2
1955
1956      // CanonAFInfo2, tag 0x0026
1957      0x0026 => Array(
1958        'tagName'     => "CanonAFInfo2",
1959        'schema'      => "Canon",
1960        'translatable'=> false,
1961        'combiTag'    => 0,
1962        'implemented' => false,
1963      ), // < CanonAFInfo2
1964
1965      // ImageUniqueID, tag 0x0028
1966      0x0028 => Array(
1967        'tagName'     => "ImageUniqueID",
1968        'schema'      => "Canon",
1969        'translatable'=> false,
1970        'combiTag'    => 0,
1971        'implemented' => false,
1972      ), // < ImageUniqueID
1973
1974      // RawDataOffset, tag 0x0081
1975      0x0081 => Array(
1976        'tagName'     => "RawDataOffset",
1977        'schema'      => "Canon",
1978        'translatable'=> false,
1979        'combiTag'    => 0,
1980        'implemented' => false,
1981      ), // < RawDataOffset
1982
1983      // OriginalDecisionDataOffset, tag 0x0083
1984      0x0083 => Array(
1985        'tagName'     => "OriginalDecisionDataOffset",
1986        'schema'      => "Canon",
1987        'translatable'=> false,
1988        'combiTag'    => 0,
1989        'implemented' => false,
1990      ), // < OriginalDecisionDataOffset
1991
1992      // CustomFunctions1D, tag 0x0090
1993      0x0090 => Array(
1994        'tagName'     => "CustomFunctions1D",
1995        'schema'      => "Canon",
1996        'translatable'=> false,
1997        'combiTag'    => 0,
1998        'implemented' => false,
1999      ), // < CustomFunctions1D
2000
2001      // PersonalFunctions, tag 0x0091
2002      0x0091 => Array(
2003        'tagName'     => "PersonalFunctions",
2004        'schema'      => "Canon",
2005        'translatable'=> false,
2006        'combiTag'    => 0,
2007        'implemented' => false,
2008      ), // < PersonalFunctions
2009
2010      // PersonalFunctionValues, tag 0x0092
2011      0x0092 => Array(
2012        'tagName'     => "PersonalFunctionValues",
2013        'schema'      => "Canon",
2014        'translatable'=> false,
2015        'combiTag'    => 0,
2016        'implemented' => false,
2017      ), // < PersonalFunctionValues
2018
2019      // CanonFileInfo, tag 0x0093
2020      0x0093 => Array(
2021        'tagName'     => "CanonFileInfo",
2022        'schema'      => "Canon",
2023        'translatable'=> false,
2024        'combiTag'    => 0,
2025        'implemented' => false,
2026      ), // < CanonFileInfo
2027
2028      // AFPointsInFocus1D, tag 0x0094
2029      0x0094 => Array(
2030        'tagName'     => "AFPointsInFocus1D",
2031        'schema'      => "Canon",
2032        'translatable'=> false,
2033        'combiTag'    => 0,
2034        'implemented' => false,
2035      ), // < AFPointsInFocus1D
2036
2037      // LensModel, tag 0x0095
2038      0x0095 => Array(
2039        'tagName'     => "LensModel",
2040        'schema'      => "Canon",
2041        'translatable'=> false,
2042        'combiTag'    => 0,
2043        'implemented' => true,
2044      ), // < LensModel
2045
2046      // InternalSerialNumber, tag 0x0096
2047      0x0096 => Array(
2048        'tagName'     => "InternalSerialNumber",
2049        'schema'      => "Canon",
2050        'translatable'=> false,
2051        'combiTag'    => 0,
2052        'implemented' => true,
2053      ), // < InternalSerialNumber
2054
2055      // DustRemovalData, tag 0x0097
2056      0x0097 => Array(
2057        'tagName'     => "DustRemovalData",
2058        'schema'      => "Canon",
2059        'translatable'=> false,
2060        'combiTag'    => 0,
2061        'implemented' => false,
2062      ), // < DustRemovalData
2063
2064      // CustomFunctions2, tag 0x0099
2065      0x0099 => Array(
2066        'tagName'     => "CustomFunctions2",
2067        'schema'      => "Canon",
2068        'translatable'=> false,
2069        'combiTag'    => 0,
2070        'implemented' => false,
2071      ), // < CustomFunctions2
2072
2073      // ProcessingInfo, tag 0x00a0
2074      0x00a0 => Array(
2075        'tagName'     => "ProcessingInfo",
2076        'schema'      => "Canon",
2077        'translatable'=> false,
2078        'combiTag'    => 0,
2079        'implemented' => false,
2080      ), // < ProcessingInfo
2081
2082      // ToneCurveTable, tag 0x00a1
2083      0x00a1 => Array(
2084        'tagName'     => "ToneCurveTable",
2085        'schema'      => "Canon",
2086        'translatable'=> false,
2087        'combiTag'    => 0,
2088        'implemented' => false,
2089      ), // < ToneCurveTable
2090
2091      // SharpnessTable, tag 0x00a2
2092      0x00a2 => Array(
2093        'tagName'     => "SharpnessTable",
2094        'schema'      => "Canon",
2095        'translatable'=> false,
2096        'combiTag'    => 0,
2097        'implemented' => false,
2098      ), // < SharpnessTable
2099
2100      // SharpnessFreqTable, tag 0x00a3
2101      0x00a3 => Array(
2102        'tagName'     => "SharpnessFreqTable",
2103        'schema'      => "Canon",
2104        'translatable'=> false,
2105        'combiTag'    => 0,
2106        'implemented' => false,
2107      ), // < SharpnessFreqTable
2108
2109      // WhiteBalanceTable, tag 0x00a4
2110      0x00a4 => Array(
2111        'tagName'     => "WhiteBalanceTable",
2112        'schema'      => "Canon",
2113        'translatable'=> false,
2114        'combiTag'    => 0,
2115        'implemented' => false,
2116      ), // < WhiteBalanceTable
2117
2118      // ColorBalance, tag 0x00a9
2119      0x00a9 => Array(
2120        'tagName'     => "ColorBalance",
2121        'schema'      => "Canon",
2122        'translatable'=> false,
2123        'combiTag'    => 0,
2124        'implemented' => false,
2125      ), // < ColorBalance
2126
2127      // MeasuredColor, tag 0x00aa
2128      0x00aa => Array(
2129        'tagName'     => "MeasuredColor",
2130        'schema'      => "Canon",
2131        'translatable'=> false,
2132        'combiTag'    => 0,
2133        'implemented' => false,
2134      ), // < MeasuredColor
2135
2136      // ColorTemperature, tag 0x00ae
2137      0x00ae => Array(
2138        'tagName'     => "ColorTemperature",
2139        'schema'      => "Canon",
2140        'translatable'=> false,
2141        'combiTag'    => 0,
2142        'implemented' => false,
2143      ), // < ColorTemperature
2144
2145      // CanonFlags, tag 0x00b0
2146      0x00b0 => Array(
2147        'tagName'     => "CanonFlags",
2148        'schema'      => "Canon",
2149        'translatable'=> false,
2150        'combiTag'    => 0,
2151        'implemented' => false,
2152      ), // < CanonFlags
2153
2154      // ModifiedInfo, tag 0x00b1
2155      0x00b1 => Array(
2156        'tagName'     => "ModifiedInfo",
2157        'schema'      => "Canon",
2158        'translatable'=> false,
2159        'combiTag'    => 0,
2160        'implemented' => false,
2161      ), // < ModifiedInfo
2162
2163      // ToneCurveMatching, tag 0x00b2
2164      0x00b2 => Array(
2165        'tagName'     => "ToneCurveMatching",
2166        'schema'      => "Canon",
2167        'translatable'=> false,
2168        'combiTag'    => 0,
2169        'implemented' => false,
2170      ), // < ToneCurveMatching
2171
2172      // WhiteBalanceMatching, tag 0x00b3
2173      0x00b3 => Array(
2174        'tagName'     => "WhiteBalanceMatching",
2175        'schema'      => "Canon",
2176        'translatable'=> false,
2177        'combiTag'    => 0,
2178        'implemented' => false,
2179      ), // < WhiteBalanceMatching
2180
2181      // ColorSpace, tag 0x00b4
2182      0x00b4 => Array(
2183        'tagName'     => "ColorSpace",
2184        'schema'      => "Canon",
2185        'translatable'=> false,
2186        'combiTag'    => 0,
2187        'implemented' => false,
2188      ), // < ColorSpace
2189
2190      // PreviewImageInfo, tag 0x00b6
2191      0x00b6 => Array(
2192        'tagName'     => "PreviewImageInfo",
2193        'schema'      => "Canon",
2194        'translatable'=> false,
2195        'combiTag'    => 0,
2196        'implemented' => false,
2197      ), // < PreviewImageInfo
2198
2199      // VRDOffset, tag 0x00d0
2200      0x00d0 => Array(
2201        'tagName'     => "VRDOffset",
2202        'schema'      => "Canon",
2203        'translatable'=> false,
2204        'combiTag'    => 0,
2205        'implemented' => false,
2206      ), // < VRDOffset
2207
2208      // SensorInfo, tag 0x00e0
2209      0x00e0 => Array(
2210        'tagName'     => "SensorInfo",
2211        'schema'      => "Canon",
2212        'translatable'=> false,
2213        'combiTag'    => 0,
2214        'implemented' => false,
2215      ), // < SensorInfo
2216
2217      // ColorData, tag 0x4001
2218      0x4001 => Array(
2219        'tagName'     => "ColorData",
2220        'schema'      => "Canon",
2221        'translatable'=> false,
2222        'combiTag'    => 0,
2223        'implemented' => false,
2224      ), // < ColorData
2225
2226      // ColorInfo, tag 0x4003
2227      0x4003 => Array(
2228        'tagName'     => "ColorInfo",
2229        'schema'      => "Canon",
2230        'translatable'=> false,
2231        'combiTag'    => 0,
2232        'implemented' => false,
2233      ), // < ColorInfo
2234
2235      // AFMicroAdj, tag 0x4013
2236      0x4013 => Array(
2237        'tagName'     => "AFMicroAdj",
2238        'schema'      => "Canon",
2239        'translatable'=> false,
2240        'combiTag'    => 0,
2241        'implemented' => false,
2242      ), // < AFMicroAdj
2243
2244      // VignettingCorr, tag 0x4015
2245      0x4015 => Array(
2246        'tagName'     => "VignettingCorr",
2247        'schema'      => "Canon",
2248        'translatable'=> false,
2249        'combiTag'    => 0,
2250        'implemented' => false,
2251      ), // < VignettingCorr
2252
2253      // VignettingCorr2, tag 0x4016
2254      0x4016 => Array(
2255        'tagName'     => "VignettingCorr2",
2256        'schema'      => "Canon",
2257        'translatable'=> false,
2258        'combiTag'    => 0,
2259        'implemented' => false,
2260      ), // < VignettingCorr2
2261
2262      // LightingOpt, tag 0x4018
2263      0x4018 => Array(
2264        'tagName'     => "LightingOpt",
2265        'schema'      => "Canon",
2266        'translatable'=> false,
2267        'combiTag'    => 0,
2268        'implemented' => false,
2269      ), // < LightingOpt
2270
2271
2272    );
2273
2274    function __destruct()
2275    {
2276      parent::__destruct();
2277    }
2278
2279  } // CanonTags
2280
2281
2282
2283?>
Note: See TracBrowser for help on using the repository browser.