exiftool_vendored 12.38.0 → 12.39.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +17 -0
  3. data/bin/MANIFEST +1 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +45 -45
  7. data/bin/exiftool +46 -46
  8. data/bin/lib/File/RandomAccess.pm +1 -1
  9. data/bin/lib/File/RandomAccess.pod +2 -2
  10. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  11. data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  12. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  13. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  14. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  15. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  16. data/bin/lib/Image/ExifTool/Apple.pm +1 -1
  17. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  18. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  19. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  20. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  21. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  22. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +6 -4
  23. data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  24. data/bin/lib/Image/ExifTool/Canon.pm +1 -1
  25. data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  26. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  27. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  28. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  29. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  30. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  31. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  32. data/bin/lib/Image/ExifTool/DJI.pm +1 -1
  33. data/bin/lib/Image/ExifTool/DNG.pm +1 -1
  34. data/bin/lib/Image/ExifTool/DPX.pm +1 -1
  35. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  36. data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  37. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  38. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  39. data/bin/lib/Image/ExifTool/Exif.pm +9 -1
  40. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  41. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  42. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  43. data/bin/lib/Image/ExifTool/FLIR.pm +16 -4
  44. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  45. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  46. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  47. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  48. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  49. data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  50. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  51. data/bin/lib/Image/ExifTool/GIF.pm +1 -1
  52. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  53. data/bin/lib/Image/ExifTool/GPS.pm +1 -1
  54. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  55. data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  56. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  57. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  58. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  59. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  60. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  61. data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  62. data/bin/lib/Image/ExifTool/ID3.pm +1 -1
  63. data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  64. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  65. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  66. data/bin/lib/Image/ExifTool/Import.pm +1 -1
  67. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  68. data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  69. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  70. data/bin/lib/Image/ExifTool/JSON.pm +1 -1
  71. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  72. data/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
  73. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  74. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  75. data/bin/lib/Image/ExifTool/LIF.pm +1 -1
  76. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  77. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  78. data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  79. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  81. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  82. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  83. data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  84. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  85. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  92. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  96. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  97. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  98. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  99. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  100. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  101. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  102. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  103. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  104. data/bin/lib/Image/ExifTool/MPF.pm +1 -1
  105. data/bin/lib/Image/ExifTool/MRC.pm +1 -1
  106. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  107. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  109. data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  110. data/bin/lib/Image/ExifTool/Matroska.pm +9 -5
  111. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  112. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  113. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  114. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  115. data/bin/lib/Image/ExifTool/Nikon.pm +897 -184
  116. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  117. data/bin/lib/Image/ExifTool/NikonCustom.pm +519 -6
  118. data/bin/lib/Image/ExifTool/NikonSettings.pm +17 -18
  119. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  120. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  121. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  122. data/bin/lib/Image/ExifTool/Olympus.pm +1 -1
  123. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  124. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  125. data/bin/lib/Image/ExifTool/Other.pm +1 -1
  126. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  127. data/bin/lib/Image/ExifTool/PDF.pm +1 -1
  128. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  129. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  130. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  131. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  132. data/bin/lib/Image/ExifTool/PNG.pm +28 -8
  133. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  134. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  135. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  136. data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  137. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  138. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  139. data/bin/lib/Image/ExifTool/Pentax.pm +3 -2
  140. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  141. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  142. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  143. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  144. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  145. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  146. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  147. data/bin/lib/Image/ExifTool/QuickTime.pm +1 -1
  148. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +14 -3
  149. data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  150. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  151. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  152. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  153. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  154. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  155. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  156. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  157. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  158. data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  159. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  160. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  161. data/bin/lib/Image/ExifTool/Shift.pl +3 -1
  162. data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  163. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  164. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  165. data/bin/lib/Image/ExifTool/Sony.pm +1 -1
  166. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  167. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  168. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  169. data/bin/lib/Image/ExifTool/TagLookup.pm +4560 -4474
  170. data/bin/lib/Image/ExifTool/TagNames.pod +320 -21
  171. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  172. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  173. data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  174. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  175. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  176. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  177. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  178. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  179. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  180. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  181. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  182. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  183. data/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
  184. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  185. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  186. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +2 -1
  187. data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
  188. data/bin/lib/Image/ExifTool/Writer.pl +6 -5
  189. data/bin/lib/Image/ExifTool/XMP.pm +40 -22
  190. data/bin/lib/Image/ExifTool/XMP2.pl +3 -2
  191. data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  192. data/bin/lib/Image/ExifTool/ZIP.pm +10 -2
  193. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  194. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  195. data/bin/lib/Image/ExifTool.pm +11 -3
  196. data/bin/lib/Image/ExifTool.pod +64 -63
  197. data/bin/perl-Image-ExifTool.spec +43 -43
  198. data/lib/exiftool_vendored/version.rb +1 -1
  199. 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