exiftool_vendored 12.37.0 → 12.41.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 (206) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +73 -0
  3. data/bin/MANIFEST +2 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +45 -45
  7. data/bin/arg_files/exif2xmp.args +5 -0
  8. data/bin/arg_files/xmp2exif.args +6 -0
  9. data/bin/config_files/acdsee.config +6 -6
  10. data/bin/config_files/photoshop_paths.config +30 -7
  11. data/bin/config_files/picasa_faces.config +1 -1
  12. data/bin/config_files/pix4d.config +2 -2
  13. data/bin/config_files/tiff_version.config +2 -2
  14. data/bin/exiftool +100 -67
  15. data/bin/lib/File/RandomAccess.pm +1 -1
  16. data/bin/lib/File/RandomAccess.pod +2 -2
  17. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  18. data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  19. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  20. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  21. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  22. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  23. data/bin/lib/Image/ExifTool/Apple.pm +1 -1
  24. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  25. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  26. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  27. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  28. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  29. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +6 -4
  30. data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  31. data/bin/lib/Image/ExifTool/Canon.pm +79 -5
  32. data/bin/lib/Image/ExifTool/CanonCustom.pm +13 -3
  33. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  34. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  35. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  36. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  37. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  38. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  39. data/bin/lib/Image/ExifTool/DJI.pm +1 -1
  40. data/bin/lib/Image/ExifTool/DNG.pm +1 -1
  41. data/bin/lib/Image/ExifTool/DPX.pm +1 -1
  42. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  43. data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  44. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  45. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  46. data/bin/lib/Image/ExifTool/Exif.pm +53 -21
  47. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  48. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  49. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  50. data/bin/lib/Image/ExifTool/FLIR.pm +16 -4
  51. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  52. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  53. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  54. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  55. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  56. data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  57. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  58. data/bin/lib/Image/ExifTool/GIF.pm +1 -1
  59. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  60. data/bin/lib/Image/ExifTool/GPS.pm +1 -1
  61. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  62. data/bin/lib/Image/ExifTool/Geotag.pm +4 -3
  63. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  64. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  65. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  66. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  67. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  68. data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  69. data/bin/lib/Image/ExifTool/ID3.pm +1 -1
  70. data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  71. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  72. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  73. data/bin/lib/Image/ExifTool/Import.pm +1 -1
  74. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  75. data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  76. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  77. data/bin/lib/Image/ExifTool/JSON.pm +1 -1
  78. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  79. data/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  81. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  82. data/bin/lib/Image/ExifTool/LIF.pm +1 -1
  83. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  84. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  85. data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  92. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  96. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  97. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  98. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  99. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  100. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  101. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  102. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  103. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  104. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  105. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  106. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  107. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  109. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  110. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  111. data/bin/lib/Image/ExifTool/MPF.pm +1 -1
  112. data/bin/lib/Image/ExifTool/MRC.pm +1 -1
  113. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  114. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  115. data/bin/lib/Image/ExifTool/MacOS.pm +10 -10
  116. data/bin/lib/Image/ExifTool/MakerNotes.pm +13 -2
  117. data/bin/lib/Image/ExifTool/Matroska.pm +9 -5
  118. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  119. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  120. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  121. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  122. data/bin/lib/Image/ExifTool/Nikon.pm +1062 -189
  123. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  124. data/bin/lib/Image/ExifTool/NikonCustom.pm +519 -6
  125. data/bin/lib/Image/ExifTool/NikonSettings.pm +17 -18
  126. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  127. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  128. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  129. data/bin/lib/Image/ExifTool/Olympus.pm +8 -7
  130. data/bin/lib/Image/ExifTool/OpenEXR.pm +5 -3
  131. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  132. data/bin/lib/Image/ExifTool/Other.pm +1 -1
  133. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  134. data/bin/lib/Image/ExifTool/PDF.pm +1 -1
  135. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  136. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  137. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  138. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  139. data/bin/lib/Image/ExifTool/PNG.pm +28 -8
  140. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  141. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  142. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  143. data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  144. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  145. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  146. data/bin/lib/Image/ExifTool/Pentax.pm +3 -2
  147. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  148. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  149. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  150. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  151. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  152. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  153. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  154. data/bin/lib/Image/ExifTool/QuickTime.pm +10 -6
  155. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +16 -5
  156. data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  157. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  158. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  159. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  160. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  161. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  162. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  163. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  164. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  165. data/bin/lib/Image/ExifTool/Samsung.pm +6 -2
  166. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  167. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  168. data/bin/lib/Image/ExifTool/Shift.pl +3 -1
  169. data/bin/lib/Image/ExifTool/Shortcuts.pm +3 -2
  170. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  171. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  172. data/bin/lib/Image/ExifTool/Sony.pm +11 -5
  173. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  174. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  175. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  176. data/bin/lib/Image/ExifTool/TagLookup.pm +6385 -6290
  177. data/bin/lib/Image/ExifTool/TagNames.pod +361 -22
  178. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  179. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  180. data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  181. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  182. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  183. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  184. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  185. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  186. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  187. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  188. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  189. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  190. data/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
  191. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  192. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  193. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +9 -4
  194. data/bin/lib/Image/ExifTool/WriteXMP.pl +3 -1
  195. data/bin/lib/Image/ExifTool/Writer.pl +6 -5
  196. data/bin/lib/Image/ExifTool/XMP.pm +51 -25
  197. data/bin/lib/Image/ExifTool/XMP2.pl +3 -2
  198. data/bin/lib/Image/ExifTool/XMPStruct.pl +22 -8
  199. data/bin/lib/Image/ExifTool/ZIP.pm +10 -2
  200. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  201. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  202. data/bin/lib/Image/ExifTool.pm +23 -6
  203. data/bin/lib/Image/ExifTool.pod +71 -69
  204. data/bin/perl-Image-ExifTool.spec +43 -43
  205. data/lib/exiftool_vendored/version.rb +1 -1
  206. metadata +2 -2
@@ -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.18';
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' );
@@ -9516,6 +9630,405 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9516
9630
  },
9517
9631
  );
9518
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
+
9519
10032
  1; # end
9520
10033
 
9521
10034
  __END__
@@ -9538,16 +10051,16 @@ this information.
9538
10051
 
9539
10052
  =head1 AUTHOR
9540
10053
 
9541
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
10054
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
9542
10055
 
9543
10056
  This library is free software; you can redistribute it and/or modify it
9544
10057
  under the same terms as Perl itself.
9545
10058
 
9546
10059
  =head1 ACKNOWLEDGEMENTS
9547
10060
 
9548
- Thanks to Jens Duttke and Warren Hatch for their help decoding the D300 and
9549
- D3 custom settings. And thanks to the customer service personnel at Best
9550
- 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
9551
10064
  cameras.
9552
10065
 
9553
10066
  =head1 SEE ALSO