exiftool-vendored.pl 12.31.0 → 12.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/LICENSE +10 -3
  2. package/bin/Changes +130 -4
  3. package/bin/MANIFEST +3 -0
  4. package/bin/META.json +1 -1
  5. package/bin/META.yml +1 -1
  6. package/bin/README +45 -45
  7. package/bin/arg_files/xmp2exif.args +2 -1
  8. package/bin/exiftool +128 -96
  9. package/bin/lib/File/RandomAccess.pm +1 -1
  10. package/bin/lib/File/RandomAccess.pod +2 -2
  11. package/bin/lib/Image/ExifTool/AES.pm +1 -1
  12. package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  13. package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  14. package/bin/lib/Image/ExifTool/APE.pm +1 -1
  15. package/bin/lib/Image/ExifTool/APP12.pm +1 -1
  16. package/bin/lib/Image/ExifTool/ASF.pm +1 -1
  17. package/bin/lib/Image/ExifTool/Apple.pm +1 -1
  18. package/bin/lib/Image/ExifTool/Audible.pm +1 -1
  19. package/bin/lib/Image/ExifTool/BMP.pm +1 -1
  20. package/bin/lib/Image/ExifTool/BPG.pm +1 -1
  21. package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  22. package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  23. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +17 -5
  24. package/bin/lib/Image/ExifTool/CBOR.pm +331 -0
  25. package/bin/lib/Image/ExifTool/Canon.pm +171 -13
  26. package/bin/lib/Image/ExifTool/CanonCustom.pm +13 -3
  27. package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  28. package/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  29. package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  30. package/bin/lib/Image/ExifTool/Casio.pm +1 -1
  31. package/bin/lib/Image/ExifTool/Charset.pm +3 -1
  32. package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  33. package/bin/lib/Image/ExifTool/DJI.pm +1 -1
  34. package/bin/lib/Image/ExifTool/DNG.pm +1 -1
  35. package/bin/lib/Image/ExifTool/DPX.pm +1 -1
  36. package/bin/lib/Image/ExifTool/DV.pm +1 -1
  37. package/bin/lib/Image/ExifTool/DarwinCore.pm +3 -3
  38. package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  39. package/bin/lib/Image/ExifTool/EXE.pm +1 -1
  40. package/bin/lib/Image/ExifTool/Exif.pm +118 -4
  41. package/bin/lib/Image/ExifTool/FITS.pm +1 -1
  42. package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  43. package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  44. package/bin/lib/Image/ExifTool/FLIR.pm +48 -11
  45. package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  46. package/bin/lib/Image/ExifTool/Flash.pm +1 -1
  47. package/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  48. package/bin/lib/Image/ExifTool/Font.pm +1 -1
  49. package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  50. package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  51. package/bin/lib/Image/ExifTool/GE.pm +1 -1
  52. package/bin/lib/Image/ExifTool/GIF.pm +6 -2
  53. package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  54. package/bin/lib/Image/ExifTool/GPS.pm +15 -11
  55. package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  56. package/bin/lib/Image/ExifTool/Geotag.pm +14 -3
  57. package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  58. package/bin/lib/Image/ExifTool/H264.pm +1 -1
  59. package/bin/lib/Image/ExifTool/HP.pm +1 -1
  60. package/bin/lib/Image/ExifTool/HTML.pm +1 -1
  61. package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  62. package/bin/lib/Image/ExifTool/ICC_Profile.pm +97 -5
  63. package/bin/lib/Image/ExifTool/ID3.pm +1 -1
  64. package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  65. package/bin/lib/Image/ExifTool/ISO.pm +1 -1
  66. package/bin/lib/Image/ExifTool/ITC.pm +1 -1
  67. package/bin/lib/Image/ExifTool/Import.pm +1 -1
  68. package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  69. package/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  70. package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  71. package/bin/lib/Image/ExifTool/JSON.pm +8 -4
  72. package/bin/lib/Image/ExifTool/JVC.pm +1 -1
  73. package/bin/lib/Image/ExifTool/Jpeg2000.pm +155 -25
  74. package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  75. package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  76. package/bin/lib/Image/ExifTool/LIF.pm +1 -1
  77. package/bin/lib/Image/ExifTool/LNK.pm +1 -1
  78. package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  79. package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  80. package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  81. package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  82. package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  83. package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  84. package/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  85. package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  86. package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  87. package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  88. package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  89. package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  90. package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  91. package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  92. package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  93. package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  94. package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  95. package/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  96. package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  97. package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  98. package/bin/lib/Image/ExifTool/MIE.pm +1 -1
  99. package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  100. package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  101. package/bin/lib/Image/ExifTool/MNG.pm +1 -1
  102. package/bin/lib/Image/ExifTool/MOI.pm +1 -1
  103. package/bin/lib/Image/ExifTool/MPC.pm +1 -1
  104. package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  105. package/bin/lib/Image/ExifTool/MPF.pm +1 -1
  106. package/bin/lib/Image/ExifTool/MRC.pm +1 -1
  107. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  108. package/bin/lib/Image/ExifTool/MXF.pm +1 -1
  109. package/bin/lib/Image/ExifTool/MacOS.pm +3 -3
  110. package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  111. package/bin/lib/Image/ExifTool/Matroska.pm +9 -5
  112. package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  113. package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  114. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  115. package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  116. package/bin/lib/Image/ExifTool/Nikon.pm +1895 -74
  117. package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  118. package/bin/lib/Image/ExifTool/NikonCustom.pm +523 -6
  119. package/bin/lib/Image/ExifTool/NikonSettings.pm +150 -87
  120. package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  121. package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  122. package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  123. package/bin/lib/Image/ExifTool/Olympus.pm +6 -2
  124. package/bin/lib/Image/ExifTool/OpenEXR.pm +5 -3
  125. package/bin/lib/Image/ExifTool/Opus.pm +1 -1
  126. package/bin/lib/Image/ExifTool/Other.pm +1 -1
  127. package/bin/lib/Image/ExifTool/PCX.pm +1 -1
  128. package/bin/lib/Image/ExifTool/PDF.pm +6 -4
  129. package/bin/lib/Image/ExifTool/PGF.pm +1 -1
  130. package/bin/lib/Image/ExifTool/PICT.pm +1 -1
  131. package/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  132. package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  133. package/bin/lib/Image/ExifTool/PNG.pm +29 -8
  134. package/bin/lib/Image/ExifTool/PPM.pm +1 -1
  135. package/bin/lib/Image/ExifTool/PSP.pm +1 -1
  136. package/bin/lib/Image/ExifTool/Palm.pm +1 -1
  137. package/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
  138. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  139. package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  140. package/bin/lib/Image/ExifTool/Pentax.pm +4 -2
  141. package/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  142. package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  143. package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  144. package/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  145. package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  146. package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  147. package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  148. package/bin/lib/Image/ExifTool/QuickTime.pm +25 -4
  149. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +125 -81
  150. package/bin/lib/Image/ExifTool/README +9 -2
  151. package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  152. package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  153. package/bin/lib/Image/ExifTool/RTF.pm +1 -1
  154. package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  155. package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  156. package/bin/lib/Image/ExifTool/Real.pm +1 -1
  157. package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  158. package/bin/lib/Image/ExifTool/Red.pm +1 -1
  159. package/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  160. package/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  161. package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  162. package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  163. package/bin/lib/Image/ExifTool/Shift.pl +3 -1
  164. package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  165. package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  166. package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  167. package/bin/lib/Image/ExifTool/Sony.pm +34 -14
  168. package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  169. package/bin/lib/Image/ExifTool/Stim.pm +1 -1
  170. package/bin/lib/Image/ExifTool/TagInfoXML.pm +11 -6
  171. package/bin/lib/Image/ExifTool/TagLookup.pm +6589 -5877
  172. package/bin/lib/Image/ExifTool/TagNames.pod +1681 -65
  173. package/bin/lib/Image/ExifTool/Text.pm +1 -1
  174. package/bin/lib/Image/ExifTool/Theora.pm +1 -1
  175. package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  176. package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  177. package/bin/lib/Image/ExifTool/VCard.pm +1 -1
  178. package/bin/lib/Image/ExifTool/Validate.pm +1 -1
  179. package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  180. package/bin/lib/Image/ExifTool/WTV.pm +1 -1
  181. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  182. package/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  183. package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  184. package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  185. package/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
  186. package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  187. package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  188. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +12 -1
  189. package/bin/lib/Image/ExifTool/WriteXMP.pl +11 -12
  190. package/bin/lib/Image/ExifTool/Writer.pl +56 -10
  191. package/bin/lib/Image/ExifTool/XMP.pm +164 -52
  192. package/bin/lib/Image/ExifTool/XMP2.pl +6 -3
  193. package/bin/lib/Image/ExifTool/XMPStruct.pl +4 -2
  194. package/bin/lib/Image/ExifTool/ZIP.pm +10 -2
  195. package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  196. package/bin/lib/Image/ExifTool/iWork.pm +1 -1
  197. package/bin/lib/Image/ExifTool.pm +98 -23
  198. package/bin/lib/Image/ExifTool.pod +76 -67
  199. package/bin/perl-Image-ExifTool.spec +43 -43
  200. package/bin/pp_build_exe.args +6 -5
  201. package/package.json +3 -3
@@ -918,7 +918,7 @@ the maker notes of NEF images.
918
918
 
919
919
  =head1 AUTHOR
920
920
 
921
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
921
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
922
922
 
923
923
  This library is free software; you can redistribute it and/or modify it
924
924
  under the same terms as Perl itself.
@@ -5,7 +5,7 @@
5
5
  #
6
6
  # Revisions: 2009/11/25 - P. Harvey Created
7
7
  #
8
- # References: 1) Warren Hatch private communication (D3 with SB-800 and SB-900)
8
+ # References: 1) Warren Hatch private communication (D3 and Z9 with SB-800 and SB-900)
9
9
  # 2) Anonymous contribution 2011/05/25 (D700, D7000)
10
10
  # JD) Jens Duttke private communication
11
11
  #------------------------------------------------------------------------------
@@ -15,8 +15,122 @@ package Image::ExifTool::NikonCustom;
15
15
  use strict;
16
16
  use vars qw($VERSION);
17
17
 
18
- $VERSION = '1.17';
18
+ $VERSION = '1.19';
19
19
 
20
+ my %buttonsZ9= (
21
+ 0 => 'None',
22
+ 1 => 'Preview',
23
+ 3 => 'FV Lock',
24
+ 4 => 'AE/AF Lock',
25
+ 5 => 'AE Lock Only',
26
+ 6 => 'AE Lock (reset on release)',
27
+ 7 => 'AE Lock (hold)',
28
+ 8 => 'AF Lock Only',
29
+ 9 => 'AF-On',
30
+ 10 => 'Flash Disable/Enable',
31
+ 11 => 'Bracketing Burst',
32
+ 12 => '+NEF(RAW)',
33
+ 18 => 'Virtual Horizon',
34
+ 19 => 'Synchronized Release',
35
+ 20 => 'My Menu',
36
+ 21 => 'My Menu Top Item',
37
+ 22 => 'Playback',
38
+ 23 => 'Rating',
39
+ 24 => 'Protect',
40
+ 25 => 'Zoom',
41
+ 26 => 'Focus Peaking',
42
+ 28 => 'Image Area',
43
+ 30 => 'Non-CPU Lens',
44
+ 31 => 'Active-D Lighting',
45
+ 33 => '1 Stop Speed/Aperture',
46
+ 35 => 'Metering',
47
+ 36 => 'Auto Bracketing',
48
+ 37 => 'Multiple Exposure',
49
+ 38 => 'HDR Overlay',
50
+ 39 => 'Picture Control',
51
+ 40 => 'Quality',
52
+ 41 => 'Focus Mode/AF AreaMode',
53
+ 42 => 'Select Center Focus Point',
54
+ 44 => 'Record Movie',
55
+ 47 => 'Choose Folder',
56
+ 48 => 'Power Aperture (Open)',
57
+ 49 => 'Power Aperture (Close)',
58
+ 52 => 'Microphone Sensitivity',
59
+ 57 => 'Preset Focus Point',
60
+ 58 => 'AE/AWB Lock (hold)',
61
+ 59 => 'AF-AreaMode',
62
+ 60 => 'AF-AreaMode + AF-On',
63
+ 61 => 'Recall Shooting Functions',
64
+ 64 => 'Filtered Playback',
65
+ 65 => 'Same as AF-On',
66
+ 66 => 'Voice Memo',
67
+ 70 => 'Photo Shooting Bank',
68
+ 73 => 'Exposure Compensation',
69
+ 76 => 'Silent Mode',
70
+ 78 => 'LiveView Information',
71
+ 79 => 'AWB Lock (hold)',
72
+ 80 => 'Grid Display',
73
+ 81 => 'Starlight View',
74
+ 82 => 'Select To Send (PC)',
75
+ 83 => 'Select To Send (FTP)',
76
+ 85 => 'Control Lock',
77
+ );
78
+ my %dialsZ9 = (
79
+ 0 => '1 Frame',
80
+ 1 => '10 Frames',
81
+ 2 => '50 Frames',
82
+ 3 => 'Folder',
83
+ 4 => 'Protect',
84
+ 5 => 'Photos Only',
85
+ 6 => 'Videos Only',
86
+ 7 => 'Rating',
87
+ 8 => 'Page',
88
+ );
89
+ my %evfGridsZ9 = (
90
+ 0 => '3x3',
91
+ 1 => '4x4',
92
+ 2 => '2.35:1',
93
+ 3 => '1.85:1',
94
+ 4 => '5:4',
95
+ 5 => '4:3',
96
+ 6 => '1:1',
97
+ 7 => '16:9',
98
+ 8 => '90%',
99
+ );
100
+ my %flicksZ9 = (
101
+ 0 => 'Rating',
102
+ 1 => 'Select To Send (PC)',
103
+ 2 => 'Select To Send (FTP)',
104
+ 3 => 'Protect',
105
+ 4 => 'Voice Memo',
106
+ 5 => 'None',
107
+ );
108
+ my %focusModeRestrictionsZ9 = (
109
+ 0 => 'AF-S',
110
+ 1 => 'AF-C',
111
+ 2 => 'Full-time AF',
112
+ 3 => 'Manual',
113
+ 4 => 'No Restrictions',
114
+ );
115
+ my %powerOffDelayTimesZ9 = (
116
+ 0 => '2 s',
117
+ 1 => '4 s',
118
+ 3 => '10 s',
119
+ 4 => '20 s',
120
+ 5 => '30 s',
121
+ 6 => '1 min',
122
+ 7 => '5 min',
123
+ 8 => '10 min',
124
+ 11 => '30 min',
125
+ 12 => 'No Limit',
126
+ );
127
+ my %thirdHalfFull = (
128
+ 0 => '1/3 EV',
129
+ 1 => '1/2 EV',
130
+ 2 => '1 EV',
131
+ );
132
+
133
+ my %limitNolimit = ( 0 => 'Limit', 1 => 'No Limit' );
20
134
  my %offOn = ( 0 => 'Off', 1 => 'On' );
21
135
  my %onOff = ( 0 => 'On', 1 => 'Off' );
22
136
  my %noYes = ( 0 => 'No', 1 => 'Yes' );
@@ -3358,6 +3472,8 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
3358
3472
  47 => 'AF-Area Mode + AF-On (Auto Area AF)',
3359
3473
  49 => 'Sync Release (Master Only)',
3360
3474
  50 => 'Sync Release (Remote Only)',
3475
+ 58 => 'AF-Area Mode + AF-On (Group Area AF - HL)',
3476
+ 59 => 'AF-Area Mode + AF-On (Group Area AF - VL)',
3361
3477
  },
3362
3478
  },
3363
3479
  15.1 => { # CSf1-a
@@ -3401,6 +3517,8 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
3401
3517
  47 => 'AF-Area Mode + AF-On (Auto Area AF)',
3402
3518
  49 => 'Sync Release (Master Only)',
3403
3519
  50 => 'Sync Release (Remote Only)',
3520
+ 58 => 'AF-Area Mode + AF-On (Group Area AF - HL)',
3521
+ 59 => 'AF-Area Mode + AF-On (Group Area AF - VL)',
3404
3522
  },
3405
3523
  },
3406
3524
  16.1 => { # CSf1-p
@@ -9512,6 +9630,405 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9512
9630
  },
9513
9631
  );
9514
9632
 
9633
+ # Z9 custom settings (ref 1) #base at offset26 + 1035 (firmware 1.0.0)
9634
+ %Image::ExifTool::NikonCustom::SettingsZ9 = (
9635
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
9636
+ WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
9637
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
9638
+ DATAMEMBER => [ 185, 529 ],
9639
+ WRITABLE => 1,
9640
+ FIRST_ENTRY => 0,
9641
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
9642
+ NOTES => 'Custom settings for the Z9.',
9643
+ 1 => {
9644
+ Name => 'CustomSettingsBank',
9645
+ PrintConv => {
9646
+ 0 => 'A',
9647
+ 1 => 'B',
9648
+ 2 => 'C',
9649
+ 3 => 'D',
9650
+ },
9651
+ },
9652
+ 3 => { # CSa1
9653
+ Name => 'AF-CPrioritySelection',
9654
+ PrintConv => {
9655
+ 0 => 'Release',
9656
+ 1 => 'Release + Focus',
9657
+ 3 => 'Focus',
9658
+ },
9659
+ },
9660
+ 5 => { Name => 'AF-SPrioritySelection', PrintConv => {0 => 'Release',1 => 'Focus'}}, #CSa2
9661
+ 7 => { # CSa3-a #when AFAreaMode is 3D-tracking, blocked shot response will be 3, regardless of this setting
9662
+ Name => 'BlockShotAFResponse',
9663
+ PrintConv => {
9664
+ 1 => '1 (Quick)',
9665
+ 2 => '2',
9666
+ 3 => '3 (Normal)',
9667
+ 4 => '4',
9668
+ 5 => '5 (Delayed)',
9669
+ },
9670
+ },
9671
+ 11 => {Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
9672
+ 13 => { # CSa5
9673
+ Name => 'StoreByOrientation',
9674
+ PrintConv => {
9675
+ 0 => 'Off',
9676
+ 1 => 'Focus Point',
9677
+ 2 => 'Focus Point and AF-area mode',
9678
+ },
9679
+ },
9680
+ 15 => { Name => 'AFActivation', PrintConv => {0 => 'AF-On Only', 1 => 'Shutter/AF-On'}}, # CSa6-a
9681
+ 16 => { Name => 'AF-OnOutOfFocusRelease', PrintConv => {0 => 'Disable', 1 => 'Enable'}, Unknown => 1}, # CSa6-b
9682
+ 17 => { Name => 'LimitAF-AreaModeSelPinpoint', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9683
+ 19 => { Name => 'LimitAF-AreaModeSelWideAF_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9684
+ 20 => { Name => 'LimitAF-AreaModeSelWideAF_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9685
+ 21 => { Name => 'LimitAFAreaModeSelAuto', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8 #left out hypen to retain compatibility with tag name in NikonSettings
9686
+ 22 => { Name => 'FocusPointWrap', PrintConv => { 0 => 'No Wrap', 1 => 'Wrap' }, Unknown => 1 }, # CSa10
9687
+ 23 => { Name => 'ManualFocusPointIllumination', PrintConv => {0 => 'On During Focus Point Selection Only', 1 => 'On', }, Unknown => 1 }, # CSa11a
9688
+ 24 => { Name => 'DynamicAreaAFAssist', PrintConv => { 0 => 'Focus Point Only',1 => 'Focus and Surrounding Points',}, Unknown => 1 }, # CSa11b
9689
+ 25 => { Name => 'AF-AssistIlluminator', PrintConv => \%offOn }, # CSa12
9690
+ 26 => { Name => 'ManualFocusRingInAFMode', PrintConv => \%offOn }, # CSa14
9691
+ 27 => { Name => 'ExposureControlStepSize', PrintConv => \%thirdHalfFull }, # CSb2
9692
+ 29 => { # CSb3
9693
+ Name => 'EasyExposureCompensation',
9694
+ PrintConv => {
9695
+ 0 => 'Off',
9696
+ 1 => 'On',
9697
+ 2 => 'On (auto reset)',
9698
+ },
9699
+ },
9700
+ 31 => { # CSb5
9701
+ Name => 'CenterWeightedAreaSize',
9702
+ PrintConv => {
9703
+ 0 => '8 mm',
9704
+ 1 => '12 mm',
9705
+ 4 => 'Average',
9706
+ },
9707
+ },
9708
+ 33 => { # CSb6-a
9709
+ Name => 'FineTuneOptMatrixMetering',
9710
+ Format => 'int8s',
9711
+ ValueConv => '$val / 6',
9712
+ ValueConvInv => 'int($val*6)',
9713
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
9714
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
9715
+ },
9716
+ 35 => { # CSb6-b
9717
+ Name => 'FineTuneOptCenterWeighted',
9718
+ Format => 'int8s',
9719
+ ValueConv => '$val / 6',
9720
+ ValueConvInv => 'int($val*6)',
9721
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
9722
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
9723
+ },
9724
+ 37 => { # CSb6-c
9725
+ Name => 'FineTuneOptSpotMetering',
9726
+ Format => 'int8s',
9727
+ ValueConv => '$val / 6',
9728
+ ValueConvInv => 'int($val*6)',
9729
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
9730
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
9731
+ },
9732
+ 39 => { # CSb6-d
9733
+ Name => 'FineTuneOptHighlightWeighted',
9734
+ Format => 'int8s',
9735
+ ValueConv => '$val / 6',
9736
+ ValueConvInv => 'int($val*6)',
9737
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
9738
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
9739
+ },
9740
+ 41 => { # CSc1
9741
+ Name => 'ShutterReleaseButtonAE-L',
9742
+ PrintConv => {
9743
+ 0 => 'Off',
9744
+ 1 => 'On (Half Press)',
9745
+ 2 => 'On (Burst Mode)',
9746
+ },
9747
+ },
9748
+ 43 => { # CSc3-a
9749
+ Name => 'SelfTimerTime',
9750
+ PrintConv => {
9751
+ 0 => '2 s',
9752
+ 1 => '5 s',
9753
+ 2 => '10 s',
9754
+ 3 => '20 s',
9755
+ },
9756
+ },
9757
+ 45 => { Name => 'SelfTimerShotCount', }, # CSc3-b 1-9
9758
+ 49 => { # CSc3-c
9759
+ Name => 'SelfTimerShotInterval',
9760
+ PrintConv => {
9761
+ 0 => '0.5 s',
9762
+ 1 => '1 s',
9763
+ 2 => '2 s',
9764
+ 3 => '3 s',
9765
+ },
9766
+ },
9767
+ 51 => { Name => 'PlaybackMonitorOffTime', PrintConv => \%powerOffDelayTimesZ9 }, # CSc4-a
9768
+ 53 => { Name => 'MenuMonitorOffTime', PrintConv => \%powerOffDelayTimesZ9 }, # CSc4-b
9769
+ 55 => { Name => 'ShootingInfoMonitorOffTime',PrintConv => \%powerOffDelayTimesZ9 }, # CSc4-c
9770
+ 57 => { Name => 'ImageReviewMonitorOffTime', PrintConv => \%powerOffDelayTimesZ9 }, # CSc4-d
9771
+ 59 => { Name => 'CLModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1b
9772
+ 61 => { # CSd2 # values: 1-200 & 'No Limit'
9773
+ Name => 'MaxContinuousRelease',
9774
+ Format => 'int16s',
9775
+ ValueConv => '($val = -1 ? \'No Limit\' : $val ) ',
9776
+ },
9777
+ 65 => { Name => 'SyncReleaseMode', PrintConv => { 0 => 'No Sync', 1 => 'Sync' }, Unknown => 1 }, # CSd4
9778
+ 69 => { Name => 'LimitSelectableImageAreaDX', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-1
9779
+ 70 => { Name => 'LimitSelectableImageArea1To1', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-2
9780
+ 71 => { Name => 'LimitSelectableImageArea16To9', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-3
9781
+ 72 => { Name => 'FileNumberSequence', PrintConv => \%offOn }, # CSd7
9782
+ 73 => { #CSa13b
9783
+ Name => 'FocusPeakingLevel',
9784
+ Unknown => 1,
9785
+ PrintConv => {
9786
+ 0 => 'High Sensitivity',
9787
+ 1 => 'Standard Sensitivity',
9788
+ 2 => 'Low Sensitivity',
9789
+ },
9790
+ },
9791
+ 75 => { #CSa13c
9792
+ Name => 'FocusPeakingHighlightColor',
9793
+ Unknown => 1,
9794
+ PrintConv => {
9795
+ 0 => 'Red',
9796
+ 1 => 'Yellow',
9797
+ 2 => 'Blue',
9798
+ 3 => 'White',
9799
+ },
9800
+ },
9801
+ 81 => { Name => 'ContinuousModeDisplay', PrintConv => \%offOn }, # CSd12
9802
+ 83 => { # CSe1-a Previous cameras reported this with HighSpeedSync indicator appended as '(Auto FP)'. Z9 separated the 2 fields.
9803
+ Name => 'FlashSyncSpeed',
9804
+ ValueConv => '($val-144)/8',
9805
+ PrintConv => {
9806
+ 0 => '1/60 s',
9807
+ 1 => '1/80 s',
9808
+ 2 => '1/100 s',
9809
+ 3 => '1/125 s',
9810
+ 4 => '1/160 s',
9811
+ 5 => '1/200 s',
9812
+ 6 => '1/250 s',
9813
+ },
9814
+ },
9815
+ 85 => { Name => 'HighSpeedSync', PrintConv => \%offOn }, # CSe1-b
9816
+ 87 => { # CSe2
9817
+ Name => 'FlashShutterSpeed',
9818
+ ValueConv => 'my $t = ($val - 16) % 24; $t ? $val / 24 : 2 + ($val - 16) / 24', #unusual decode perhaps due to need to accomodate 4 new values?
9819
+ PrintConv => {
9820
+ 0 => '1 s',
9821
+ 1 => '1/2 s',
9822
+ 2 => '1/4 s',
9823
+ 3 => '1/8 s',
9824
+ 4 => '1/15 s',
9825
+ 5 => '1/30 s',
9826
+ 6 => '1/60 s',
9827
+ 7 => '30 s',
9828
+ 8 => '15 s',
9829
+ 9 => '8 s',
9830
+ 10 => '4 s',
9831
+ 11 => '2 s',
9832
+ },
9833
+ },
9834
+ 89 => { Name => 'FlashExposureCompArea', PrintConv => { 0 => 'Entire Frame', 1 => 'Background Only' } }, # CSe3
9835
+ 91 => { Name => 'AutoFlashISOSensitivity', PrintConv => { 0 => 'Subject and Background',1 => 'Subject Only'} }, # CSe4
9836
+ 93 => { Name => 'ModelingFlash', PrintConv => \%offOn }, # CSe5
9837
+ 95 => { # CSe6
9838
+ Name => 'AutoBracketModeM',
9839
+ PrintConv => {
9840
+ 0 => 'Flash/Speed',
9841
+ 1 => 'Flash/Speed/Aperture',
9842
+ 2 => 'Flash/Aperture',
9843
+ 3 => 'Flash Only',
9844
+ 4 => 'Flash/ISO',
9845
+ },
9846
+ },
9847
+ 97 => { Name => 'AutoBracketOrder', PrintConv => { 0 => '0,-,+',1 => '-,0,+' } }, # CSe7
9848
+ 99 => { Name => 'Func1Button', PrintConv => \%buttonsZ9}, # CSf2-a
9849
+ #101 Func1Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-a
9850
+ #103 Func1Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-a
9851
+ #105 Func1Button submenu: AreaMode+AF-On 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-a
9852
+ #109 Func1Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-a
9853
+ #111 Func1Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-a
9854
+ #113 Func1Button & Func1ButtonPlayback submenu: Rating # CSf2-a & CSf3a 0=>'Candidate For Deletion' 6=>''None'
9855
+ 115 => { Name => 'Func2Button', PrintConv => \%buttonsZ9}, # CSf2-b
9856
+ #117 Func2Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-b
9857
+ #119 Func2Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-b
9858
+ #121 Func2Button submenu: AreaMode+AF-On 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-b
9859
+ #125 Func2Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-b
9860
+ #127 Func2Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-b
9861
+ #129 Func2Button & Func2ButtonPlayback submenu: Rating # CSf2-b & CSf3b 0=>'Candidate For Deletion' 6=>''None'
9862
+ 131 => { Name => 'AFOnButton', PrintConv => \%buttonsZ9}, # CSf2-c
9863
+ 143 => { Name => 'SubSelector', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-g
9864
+ 155 => { Name => 'AssignMovieRecordButton', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-m
9865
+ 159 => { Name => 'LensFunc1Button', PrintConv => \%buttonsZ9}, # CSf2-o
9866
+ 167 => { Name => 'LensFunc2Button', PrintConv => \%buttonsZ9}, # CSf2-p
9867
+ 173 => { # CSf2-q
9868
+ Name => 'LensControlRing',
9869
+ PrintConv => {
9870
+ 0 => 'None (Disabled)',
9871
+ 1 => 'Focus (M/A)',
9872
+ 2 => 'ISO Sensitivity',
9873
+ 3 => 'Exposure Compensation',
9874
+ 4 => 'Aperture',
9875
+ },
9876
+ },
9877
+ 175 => { Name => 'MultiSelectorShootMode', PrintConv => \%buttonsZ9}, # CSf2-h called the OK button in camera, tag name retained for compatibility
9878
+ 179 => { Name => 'MultiSelectorPlaybackMode', PrintConv => \%buttonsZ9}, # CSf3f
9879
+ 183 => { Name => 'ShutterSpeedLock', PrintConv => \%offOn }, # CSf4-a
9880
+ 184 => { Name => 'ApertureLock', PrintConv => \%offOn }, # CSf4-b
9881
+ 185 => { # CSf5-a Previous cameras reported this tag as part of CmdDialsReverseRotation. Blend with CSf5-b separate settings together to match extant tag name and values
9882
+ Name => 'CmdDialsReverseRotExposureComp',
9883
+ RawConv => '$$self{CmdDialsReverseRotExposureComp} = $val',
9884
+ Hidden => 1,
9885
+ },
9886
+ 186 => [{ # CSf5-a (continued from above)
9887
+ Name => 'CmdDialsReverseRotation',
9888
+ Condition => '$$self{CmdDialsReverseRotExposureComp} == 0',
9889
+ PrintConv => {
9890
+ 0 => 'No',
9891
+ 1 => 'Shutter Speed & Aperture',
9892
+ },
9893
+ },{
9894
+ Name => 'CmdDialsReverseRotation',
9895
+ PrintConv => {
9896
+ 0 => 'Exposure Compensation',
9897
+ 1 => 'Exposure Compensation, Shutter Speed & Aperture',
9898
+ },
9899
+ }],
9900
+ 191 => { Name => 'UseDialWithoutHold', PrintConv => \%offOn, Unknown => 1 }, # CSf6
9901
+ 193 => { Name => 'ReverseIndicators', PrintConv => { 0 => '+ 0 -', 1 => '- 0 +' }, Unknown => 1 }, # CSf7
9902
+ 195 => { Name => 'MovieFunc1Button', PrintConv => \%buttonsZ9}, # CSg2-a
9903
+ 203 => { Name => 'MovieAF-OnButton', PrintConv => \%buttonsZ9}, # CSg2-f
9904
+ 217 => { Name => 'MovieMultiSelector', PrintConv => \%buttonsZ9, Unknown => 1}, # CSg2-h
9905
+ 221 => { Name => 'MovieAFSpeed', ValueConv => '$val - 5', ValueConvInv => '$val + 6' }, # CSg6-a
9906
+ 223 => { Name => 'MovieAFSpeedApply', rintConv => {0 => 'Always', 1 => 'Only During Recording'},}, # CSg6-b
9907
+ 225 => { # CSg7
9908
+ Name => 'MovieAFTrackingSensitivity',
9909
+ PrintConv => {
9910
+ 0 => '1 (High)',
9911
+ 1 => '2',
9912
+ 2 => '3',
9913
+ 3 => '4 (Normal)',
9914
+ 4 => '5',
9915
+ 5 => '6',
9916
+ 6 => '7 (Low)',
9917
+ },
9918
+ },
9919
+ 257 => { Name => 'LCDIllumination', PrintConv => \%offOn, Unknown => 1 }, # CSd11
9920
+ 258 => { Name => 'ExtendedShutterSpeeds', PrintConv => \%offOn }, # CSd5
9921
+ 259 => { Name => 'SubjectMotion', PrintConv => {0 => 'Erratic', 1 => 'Steady'} }, # CSa3-b
9922
+ 261 => { Name => 'FocusPointPersistence', PrintConv => {0 => 'Auto', 1 => 'Off'} }, # CSa7
9923
+ 263 => { Name => 'AutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
9924
+ 267 => { Name => 'CHModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1a
9925
+ 269.1 => { Name => 'LimitReleaseModeSelCL', Mask => 0x02, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-a
9926
+ 269.2 => { Name => 'LimitReleaseModeSelCH', Mask => 0x04, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-b
9927
+ 269.3 => { Name => 'LimitReleaseModeSelC30', Mask => 0x10, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-e
9928
+ 269.4 => { Name => 'LimitReleaseModeSelC120', Mask => 0x40, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-c
9929
+ 269.5 => { Name => 'LimitReleaseModeSelSelf', Mask => 0x80, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-d
9930
+ 273 => { Name => 'FlashBurstPriority', PrintConv => { 0 => 'Frame Rate',1 => 'Exposure'}, Unknown => 1 }, # CSe8
9931
+ 277 => { Name => 'VerticalFuncButton', PrintConv => \%buttonsZ9}, # CSf2-c
9932
+ 281 => { Name => 'Func3Button', PrintConv => \%buttonsZ9}, # CSf2-c
9933
+ 285 => { Name => 'VerticalAFOnButton', PrintConv => \%buttonsZ9}, # CSf2-l
9934
+ 293 => { Name => 'VerticalMultiSelectorPlaybackMode', PrintConv => { 0 => 'Image Scroll L/R', 1 => 'Image Scroll Up/Down' }, Unknown => 1}, # CSf3-j
9935
+ 295 => { Name => 'MovieFunc3Button', PrintConv => \%buttonsZ9}, # CSg2-c
9936
+ 335 => { Name => 'LimitAF-AreaModeSelDynamic_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9937
+ 336 => { Name => 'LimitAF-AreaModeSelDynamic_M', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9938
+ 337 => { Name => 'LimitAF-AreaModeSelDynamic_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9939
+ 339 => { Name => 'LimitAF-AreaModeSel3DTracking', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9940
+ 341 => { Name => 'PlaybackFlickUp', PrintConv => \%flicksZ9, Unknown => 1}, # CSf11-a
9941
+ 345 => { Name => 'PlaybackFlickDown', PrintConv => \%flicksZ9, Unknown => 1}, # CSf11-b
9942
+ 349 => { Name => 'ISOStepSize', PrintConv => \%thirdHalfFull }, # CSb1
9943
+ 355 => { Name => 'ReverseFocusRing', PrintConv => { 0 => 'Not Reversed', 1 => 'Reversed' } }, # CSf8
9944
+ 356 => { Name => 'EVFImageFrame', PrintConv => \%offOn, Unknown => 1 }, # CSd14
9945
+ 357 => { Name => 'EVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSd15
9946
+ 359 => { Name => 'VirtualHorizonStyle', PrintConv => {0 => 'Type A (Cockpit)', 1 => 'Type B (Sides)' }, Unknown => 1}, #CSd16
9947
+ 373 => { Name => 'Func4Button', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-e
9948
+ 379 => { Name => 'AudioButton', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-i
9949
+ 381 => { Name => 'QualityButton', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-j
9950
+ 399 => { Name => 'VerticalMultiSelector', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-k
9951
+ 421 => { Name => 'Func1ButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-a
9952
+ 423 => { Name => 'Func2ButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-b
9953
+ 425 => { Name => 'Func3ButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-c
9954
+ 431 => { Name => 'Func4ButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-e
9955
+ 437 => { Name => 'MovieRecordButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-m
9956
+ 439 => { Name => 'VerticalFuncButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-d
9957
+ 441 => { Name => 'AudioButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-g
9958
+ 447 => { Name => 'QualityButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-h
9959
+ 467 => { Name => 'FocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
9960
+ 453 => { Name => 'WhiteBalanceButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-i
9961
+ 459 => { Name => 'CommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-k
9962
+ 463 => { Name => 'SubCommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-l
9963
+ 469 => { Name => 'ControlRingResponse', PrintConv => { 0 => 'High', 1 => 'Low' } }, # CSf10
9964
+ 481 => { Name => 'VerticalMovieFuncButton', PrintConv => \%buttonsZ9, Unknown => 1}, # CSg2-d
9965
+ 505 => { Name => 'VerticalMovieAFOnButton', PrintConv => \%buttonsZ9, Unknown => 1}, # CSg2-l
9966
+ 515 => { Name => 'MovieAFAreaMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSg2-e
9967
+ #521 => { Name => 'MovieLimitAF-AreaModeSelWideAF_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-a
9968
+ #522 => { Name => 'MovieLimitAF-AreaModeSelWideAF_W', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-b
9969
+ #523 => { Name => 'MovieLimitAF-AreaModeSelSubjectTrack', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-c
9970
+ #524 => { Name => 'MovieLimitAFAreaModeSelAuto', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-d
9971
+ #525 => { Name => 'MovieAutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
9972
+ 527 => { Name => 'HDMIViewAssist', PrintConv => \%offOn, Unknown => 1 }, # CSg8
9973
+ 529 => { # CSg9-a
9974
+ Name => 'ZebraPatternToneRange',
9975
+ Unknown => 1,
9976
+ RawConv => '$$self{ZebraPatternToneRange} = $val',
9977
+ PrintConv => {
9978
+ 0 => 'Off',
9979
+ 1 => 'Highlights',
9980
+ 2 => 'Midtones',
9981
+ },
9982
+ },
9983
+ 531 => { Name => 'MovieZebraPattern', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} != 0', PrintConv => {0 => 'Pattern 1', 1 => 'Pattern 2'}, Unknown => 1}, # CSg9-b
9984
+ 533 => { Name => 'MovieHighlightDisplayThreshold', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 1', Unknown => 1 }, # CSg9-c 120-25 when highlights are the selected tone range
9985
+ 535 => { Name => 'MovieMidtoneDisplayValue', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', Unknown => 1 }, # CSg9-d1 when midtones are the selected tone range
9986
+ 537 => { Name => 'MovieMidtoneDisplayRange', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', PrintConv => '"+/-$val"', Unknown => 1 }, # CSg9-d1 when midtones are the selected tone range
9987
+ #539 CS g-10 LimitZebraPatternToneRange 0=>'No Restrictions', 1=> 'Highlights', 2=> 'Midtones'
9988
+ 541 => { Name => 'MovieEVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSg11
9989
+ 549 => { Name => 'MovieShutterSpeedLock', PrintConv => \%offOn, Unknown => 1}, # CSg4-a
9990
+ 550 => { Name => 'MovieFocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
9991
+ 563 => { Name => 'MatrixMetering', PrintConv => { 0 => 'Face Detection Off', 1 => 'Face Detection On' }, Unknown => 1 }, # CSb4
9992
+ 564 => { Name => 'AF-CFocusDisplay', PrintConv => \%offOn }, # CSa11c
9993
+ 565 => { Name => 'FocusPeakingDisplay', PrintConv => \%offOn, Unknown => 1}, # CSa13a
9994
+ 567 => { # CSb7
9995
+ Name => 'KeepExposure',
9996
+ PrintConv => {
9997
+ 0 => 'Off',
9998
+ 1 => 'Shutter Speed',
9999
+ 2 => 'ISO',
10000
+ },
10001
+ },
10002
+ #569 CDd8 (adjust viewfinder/monitor hue, brightness and/or white balance settings) 0=>'No adjustment', 1=>'Adjust'. Related ontrols & adjustments stored in following dozen bytes or so.
10003
+ 585 => { Name => 'StarlightView', PrintConv => \%offOn, Unknown => 1 }, # CSd9
10004
+ 587 => { # CSd10-a
10005
+ Name => 'EVFWarmDisplayMode',
10006
+ Unknown => 1,
10007
+ PrintConv => {
10008
+ 0 => 'Off',
10009
+ 1 => 'Mode 1',
10010
+ 2 => 'Mode 2',
10011
+ },
10012
+ },
10013
+ 589 => { # CSd10-b values in range -3 to +3
10014
+ Name => 'EVFWarmDisplayBrightness',
10015
+ Format => 'int8s',
10016
+ Unknown => 1,
10017
+ },
10018
+ 591 => { #CSd13
10019
+ Name => 'EVFReleaseIndicator',
10020
+ Unknown => 1,
10021
+ PrintConv => {
10022
+ 0 => 'Off',
10023
+ 1 => 'Type A (Dark)',
10024
+ 2 => 'Type B (Border)',
10025
+ 3 => 'Type C (Sides)',
10026
+ },
10027
+ },
10028
+ 601 => { Name => 'MovieApertureLock', PrintConv => \%offOn, Unknown => 1 }, # CSg4-b
10029
+ 607 => { Name => 'FlickAdvanceDirection', PrintConv => { 0 => 'Left to Right', 1 => 'Right to Left' }, Unknown => 1 }, # CSf11-c
10030
+ );
10031
+
9515
10032
  1; # end
9516
10033
 
9517
10034
  __END__
@@ -9534,16 +10051,16 @@ this information.
9534
10051
 
9535
10052
  =head1 AUTHOR
9536
10053
 
9537
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
10054
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
9538
10055
 
9539
10056
  This library is free software; you can redistribute it and/or modify it
9540
10057
  under the same terms as Perl itself.
9541
10058
 
9542
10059
  =head1 ACKNOWLEDGEMENTS
9543
10060
 
9544
- Thanks to Jens Duttke and Warren Hatch for their help decoding the D300 and
9545
- D3 custom settings. And thanks to the customer service personnel at Best
9546
- Buy for not bugging me while I spent lots of time playing with their
10061
+ Thanks to Jens Duttke and Warren Hatch for their help decoding the D300, D3
10062
+ and Z9 custom settings. And thanks to the customer service personnel at
10063
+ Best Buy for not bugging me while I spent lots of time playing with their
9547
10064
  cameras.
9548
10065
 
9549
10066
  =head1 SEE ALSO