exiftool-vendored.exe 12.62.0 → 12.67.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 (52) hide show
  1. package/LICENSE +254 -254
  2. package/bin/exiftool_files/Changes +96 -1
  3. package/bin/exiftool_files/Makefile.PL +7 -1
  4. package/bin/exiftool_files/README +50 -46
  5. package/bin/exiftool_files/config_files/guano.config +161 -0
  6. package/bin/exiftool_files/exiftool.pl +113 -78
  7. package/bin/exiftool_files/lib/Image/ExifTool/7Z.pm +793 -0
  8. package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +19 -8
  9. package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +8 -1
  10. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +33 -12
  11. package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +4 -4
  12. package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +4 -1
  13. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +31 -14
  14. package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +8 -2
  15. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +6 -3
  16. package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +5 -2
  17. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +5 -2
  18. package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +226 -28
  19. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +1467 -202
  20. package/bin/exiftool_files/lib/Image/ExifTool/MPF.pm +2 -1
  21. package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +16 -1
  22. package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
  23. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +948 -31
  24. package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +874 -63
  25. package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +23 -5
  26. package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +8 -1
  27. package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +19 -4
  28. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +6 -6
  29. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +3 -1
  30. package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +5 -5
  31. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +91 -30
  32. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +20 -19
  33. package/bin/exiftool_files/lib/Image/ExifTool/README +2 -2
  34. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +11 -9
  35. package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +227 -227
  36. package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +2 -1
  37. package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +4 -4
  38. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +229 -30
  39. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +4758 -4633
  40. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +715 -23
  41. package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +17 -1
  42. package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +9 -7
  43. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +21 -9
  44. package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +2 -2
  45. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +36 -12
  46. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +14 -2
  47. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +33 -1
  48. package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +96 -28
  49. package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +5 -5
  50. package/bin/exiftool_files/lib/Image/ExifTool.pm +184 -132
  51. package/bin/exiftool_files/lib/Image/ExifTool.pod +124 -58
  52. package/package.json +3 -2
@@ -13,11 +13,14 @@
13
13
  package Image::ExifTool::NikonCustom;
14
14
 
15
15
  use strict;
16
- use vars qw($VERSION);
16
+ use vars qw($VERSION @ISA @EXPORT_OK %buttonsZ9);
17
17
 
18
- $VERSION = '1.22';
18
+ $VERSION = '1.24';
19
19
 
20
- my %buttonsZ9= (
20
+ @ISA = qw(Exporter);
21
+ @EXPORT_OK = qw(%buttonsZ9);
22
+
23
+ %buttonsZ9= (
21
24
  SeparateTable => 'ButtonsZ9',
22
25
  PrintConv => {
23
26
  0 => 'None',
@@ -41,9 +44,11 @@ my %buttonsZ9= (
41
44
  24 => 'Protect',
42
45
  25 => 'Zoom',
43
46
  26 => 'Focus Peaking',
47
+ 27 => 'Flash Mode/Compensation',
44
48
  28 => 'Image Area',
45
49
  30 => 'Non-CPU Lens',
46
50
  31 => 'Active-D Lighting',
51
+ 32 => 'Exposure Delay Mode',
47
52
  33 => '1 Stop Speed/Aperture',
48
53
  34 => 'White Balance',
49
54
  35 => 'Metering',
@@ -55,10 +60,13 @@ my %buttonsZ9= (
55
60
  41 => 'Focus Mode/AF AreaMode',
56
61
  42 => 'Select Center Focus Point',
57
62
  44 => 'Record Movie',
63
+ 45 => 'Thumbnail On/Off',
64
+ 46 => 'View Histograms',
58
65
  47 => 'Choose Folder',
59
66
  48 => 'Power Aperture (Open)',
60
67
  49 => 'Power Aperture (Close)',
61
68
  52 => 'Microphone Sensitivity',
69
+ 53 => 'Release Mode',
62
70
  57 => 'Preset Focus Point',
63
71
  58 => 'AE/AWB Lock (hold)',
64
72
  59 => 'AF-AreaMode',
@@ -95,6 +103,8 @@ my %buttonsZ9= (
95
103
  109 => 'DISP - Cycle Information Display (shooting)', # Shooting Mode
96
104
  110 => 'DISP - Cycle Information Display (playback)', # Playback mode
97
105
  111 => 'Resume Shooting',
106
+ 112 => 'Switch Eyes',
107
+ 115 => 'Delete',
98
108
  },
99
109
  );
100
110
  my %dialsZ9 = (
@@ -107,6 +117,7 @@ my %dialsZ9 = (
107
117
  6 => 'Videos Only',
108
118
  7 => 'Rating',
109
119
  8 => 'Page',
120
+ 9 => 'Skip To First Shot In Series',
110
121
  );
111
122
  my %evfGridsZ9 = (
112
123
  0 => '3x3',
@@ -9655,8 +9666,8 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9655
9666
  },
9656
9667
  );
9657
9668
 
9658
- # Z9 custom settings (ref 1) #base at offset26 + 1035 (firmware 1.0.0)
9659
- %Image::ExifTool::NikonCustom::SettingsZ9 = (
9669
+ # Z8 custom settings (ref 1) #base at offset26 + 1195 (firmware 1.0.0)
9670
+ %Image::ExifTool::NikonCustom::SettingsZ8 = (
9660
9671
  PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
9661
9672
  WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
9662
9673
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
@@ -9664,7 +9675,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9664
9675
  WRITABLE => 1,
9665
9676
  FIRST_ENTRY => 0,
9666
9677
  GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
9667
- NOTES => 'Custom settings for the Z9.',
9678
+ NOTES => 'Custom settings for the Z8.',
9668
9679
  1 => {
9669
9680
  Name => 'CustomSettingsBank',
9670
9681
  PrintConv => {
@@ -9712,7 +9723,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9712
9723
  23 => { Name => 'ManualFocusPointIllumination', PrintConv => {0 => 'On During Focus Point Selection Only', 1 => 'On', }, Unknown => 1 }, # CSa11a
9713
9724
  24 => { Name => 'DynamicAreaAFAssist', PrintConv => { 0 => 'Focus Point Only',1 => 'Focus and Surrounding Points',}, Unknown => 1 }, # CSa11b
9714
9725
  25 => { Name => 'AF-AssistIlluminator', PrintConv => \%offOn }, # CSa12
9715
- 26 => { Name => 'ManualFocusRingInAFMode', PrintConv => \%offOn }, # CSa14
9726
+ 26 => { Name => 'ManualFocusRingInAFMode', PrintConv => \%offOn }, # CSa15
9716
9727
  27 => { Name => 'ExposureControlStepSize', PrintConv => \%thirdHalfFull }, # CSb2
9717
9728
  29 => { # CSb3
9718
9729
  Name => 'EasyExposureCompensation',
@@ -9770,7 +9781,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9770
9781
  2 => 'On (Burst Mode)',
9771
9782
  },
9772
9783
  },
9773
- 43 => { # CSc3-a
9784
+ 43 => { # CSc2-a
9774
9785
  Name => 'SelfTimerTime',
9775
9786
  PrintConv => {
9776
9787
  0 => '2 s',
@@ -9779,8 +9790,8 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9779
9790
  3 => '20 s',
9780
9791
  },
9781
9792
  },
9782
- 45 => { Name => 'SelfTimerShotCount', }, # CSc3-b 1-9
9783
- 49 => { # CSc3-c
9793
+ 45 => { Name => 'SelfTimerShotCount', }, # CSc2-b 1-9
9794
+ 49 => { # CSc2-c
9784
9795
  Name => 'SelfTimerShotInterval',
9785
9796
  PrintConv => {
9786
9797
  0 => '0.5 s',
@@ -9789,15 +9800,15 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9789
9800
  3 => '3 s',
9790
9801
  },
9791
9802
  },
9792
- 51 => { Name => 'PlaybackMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-a
9793
- 53 => { Name => 'MenuMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-b
9794
- 55 => { Name => 'ShootingInfoMonitorOffTime',%powerOffDelayTimesZ9 }, # CSc4-c
9795
- 57 => { Name => 'ImageReviewMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-d
9803
+ 51 => { Name => 'PlaybackMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc3-a
9804
+ 53 => { Name => 'MenuMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc3-b
9805
+ 55 => { Name => 'ShootingInfoMonitorOffTime',%powerOffDelayTimesZ9 }, # CSc3-c
9806
+ 57 => { Name => 'ImageReviewMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc3-d
9796
9807
  59 => { Name => 'CLModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1b
9797
9808
  61 => { # CSd2 # values: 1-200 & 'No Limit'
9798
9809
  Name => 'MaxContinuousRelease',
9799
9810
  Format => 'int16s',
9800
- ValueConv => '($val = -1 ? \'No Limit\' : $val ) ',
9811
+ ValueConv => '($val eq -1 ? \'No Limit\' : $val ) ',
9801
9812
  },
9802
9813
  65 => { Name => 'SyncReleaseMode', PrintConv => { 0 => 'No Sync', 1 => 'Sync' }, Unknown => 1 }, # CSd4
9803
9814
  69 => { Name => 'LimitSelectableImageAreaDX', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-1
@@ -9823,6 +9834,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9823
9834
  3 => 'White',
9824
9835
  },
9825
9836
  },
9837
+
9826
9838
  81 => { Name => 'ContinuousModeDisplay', PrintConv => \%offOn }, # CSd12
9827
9839
  83 => { # CSe1-a Previous cameras reported this with HighSpeedSync indicator appended as '(Auto FP)'. Z9 separated the 2 fields.
9828
9840
  Name => 'FlashSyncSpeed',
@@ -9871,19 +9883,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9871
9883
  },
9872
9884
  97 => { Name => 'AutoBracketOrder', PrintConv => { 0 => '0,-,+',1 => '-,0,+' } }, # CSe7
9873
9885
  99 => { Name => 'Func1Button', %buttonsZ9}, # CSf2-a
9874
- #101 Func1Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-a
9875
- #103 Func1Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-a
9876
- #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
9877
- #109 Func1Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-a
9878
- #111 Func1Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-a
9879
- #113 Func1Button & Func1ButtonPlayback submenu: Rating # CSf2-a & CSf3a 0=>'Candidate For Deletion' 6=>''None'
9880
9886
  115 => { Name => 'Func2Button', %buttonsZ9}, # CSf2-b
9881
- #117 Func2Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-b
9882
- #119 Func2Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-b
9883
- #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
9884
- #125 Func2Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-b
9885
- #127 Func2Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-b
9886
- #129 Func2Button & Func2ButtonPlayback submenu: Rating # CSf2-b & CSf3b 0=>'Candidate For Deletion' 6=>''None'
9887
9887
  131 => { Name => 'AFOnButton', %buttonsZ9}, # CSf2-c
9888
9888
  143 => { Name => 'SubSelector', %buttonsZ9, Unknown => 1}, # CSf2-g
9889
9889
  155 => { Name => 'AssignMovieRecordButton', %buttonsZ9, Unknown => 1}, # CSf2-m
@@ -9926,6 +9926,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9926
9926
  193 => { Name => 'ReverseIndicators', PrintConv => { 0 => '+ 0 -', 1 => '- 0 +' }, Unknown => 1 }, # CSf7
9927
9927
  195 => { Name => 'MovieFunc1Button', %buttonsZ9}, # CSg2-a
9928
9928
  199 => { Name => 'MovieFunc2Button', %buttonsZ9}, # CSg2-b
9929
+
9929
9930
  203 => { Name => 'MovieAF-OnButton', %buttonsZ9}, # CSg2-f
9930
9931
  215 => { # CSg2-z
9931
9932
  Name => 'MovieLensControlRing',
@@ -9958,54 +9959,27 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9958
9959
  261 => { Name => 'FocusPointPersistence', PrintConv => {0 => 'Auto', 1 => 'Off'} }, # CSa7
9959
9960
  263 => { Name => 'AutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
9960
9961
  267 => { Name => 'CHModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1a
9961
- 269.1 => { Name => 'LimitReleaseModeSelCL', Mask => 0x02, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-a
9962
- 269.2 => { Name => 'LimitReleaseModeSelCH', Mask => 0x04, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-b
9963
- 269.3 => { Name => 'LimitReleaseModeSelC30', Mask => 0x10, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-e
9964
- 269.4 => { Name => 'LimitReleaseModeSelC120', Mask => 0x40, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-c
9965
- 269.5 => { Name => 'LimitReleaseModeSelSelf', Mask => 0x80, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-d
9966
9962
  273 => { Name => 'FlashBurstPriority', PrintConv => { 0 => 'Frame Rate',1 => 'Exposure'}, Unknown => 1 }, # CSe8
9967
- 277 => { Name => 'VerticalFuncButton', %buttonsZ9}, # CSf2-c
9968
- 281 => { Name => 'Func3Button', %buttonsZ9}, # CSf2-c
9969
- 285 => { Name => 'VerticalAFOnButton', %buttonsZ9}, # CSf2-l
9970
- 293 => { Name => 'VerticalMultiSelectorPlaybackMode', PrintConv => { 0 => 'Image Scroll L/R', 1 => 'Image Scroll Up/Down' }, Unknown => 1}, # CSf3-j
9971
- 295 => { Name => 'MovieFunc3Button', %buttonsZ9}, # CSg2-c
9972
9963
  335 => { Name => 'LimitAF-AreaModeSelDynamic_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9973
9964
  336 => { Name => 'LimitAF-AreaModeSelDynamic_M', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9974
9965
  337 => { Name => 'LimitAF-AreaModeSelDynamic_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9975
9966
  339 => { Name => 'LimitAF-AreaModeSel3DTracking', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9976
- 341 => { Name => 'PlaybackFlickUp', PrintConv => \%flicksZ9, Unknown => 1}, # CSf11-a
9977
- 345 => { Name => 'PlaybackFlickDown', PrintConv => \%flicksZ9, Unknown => 1}, # CSf11-b
9967
+ 341 => { Name => 'PlaybackFlickUp', PrintConv => \%flicksZ9, Unknown => 1}, # CSf12-a
9968
+ 345 => { Name => 'PlaybackFlickDown', PrintConv => \%flicksZ9, Unknown => 1}, # CSf12-b
9978
9969
  349 => { Name => 'ISOStepSize', PrintConv => \%thirdHalfFull }, # CSb1
9979
9970
  355 => { Name => 'ReverseFocusRing', PrintConv => { 0 => 'Not Reversed', 1 => 'Reversed' } }, # CSf8
9980
9971
  356 => { Name => 'EVFImageFrame', PrintConv => \%offOn, Unknown => 1 }, # CSd14
9981
9972
  357 => { Name => 'EVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSd15
9982
9973
  359 => { Name => 'VirtualHorizonStyle', PrintConv => {0 => 'Type A (Cockpit)', 1 => 'Type B (Sides)' }, Unknown => 1}, #CSd16
9983
- 373 => { Name => 'Func4Button', %buttonsZ9, Unknown => 1}, # CSf2-e
9984
- 379 => { Name => 'AudioButton', %buttonsZ9, Unknown => 1}, # CSf2-i
9985
- 381 => { Name => 'QualityButton', %buttonsZ9, Unknown => 1}, # CSf2-j
9986
- 399 => { Name => 'VerticalMultiSelector', %buttonsZ9, Unknown => 1}, # CSf2-k
9987
9974
  421 => { Name => 'Func1ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-a
9988
9975
  423 => { Name => 'Func2ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-b
9989
- 425 => { Name => 'Func3ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-c
9990
- 431 => { Name => 'Func4ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-e
9991
9976
  437 => { Name => 'MovieRecordButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-m
9992
- 439 => { Name => 'VerticalFuncButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-d
9993
- 441 => { Name => 'AudioButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-g
9994
- 447 => { Name => 'QualityButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-h
9995
9977
  467 => { Name => 'FocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
9996
- 453 => { Name => 'WhiteBalanceButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-i
9997
9978
  459 => { Name => 'CommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-k
9998
9979
  463 => { Name => 'SubCommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-l
9999
9980
  469 => { Name => 'ControlRingResponse', PrintConv => { 0 => 'High', 1 => 'Low' } }, # CSf10
10000
- 481 => { Name => 'VerticalMovieFuncButton', %buttonsZ9, Unknown => 1}, # CSg2-d
10001
- 505 => { Name => 'VerticalMovieAFOnButton', %buttonsZ9, Unknown => 1}, # CSg2-l
9981
+
10002
9982
  515 => { Name => 'MovieAFAreaMode', %buttonsZ9, Unknown => 1}, # CSg2-e
10003
- #521 => { Name => 'MovieLimitAF-AreaModeSelWideAF_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-a
10004
- #522 => { Name => 'MovieLimitAF-AreaModeSelWideAF_W', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-b
10005
- #523 => { Name => 'MovieLimitAF-AreaModeSelSubjectTrack', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-c
10006
- #524 => { Name => 'MovieLimitAFAreaModeSelAuto', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-d
10007
- #525 => { Name => 'MovieAutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
10008
- 527 => { Name => 'HDMIViewAssist', PrintConv => \%offOn, Unknown => 1 }, # CSg8
10009
9983
  529 => { # CSg9-a
10010
9984
  Name => 'ZebraPatternToneRange',
10011
9985
  Unknown => 1,
@@ -10016,11 +9990,10 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
10016
9990
  2 => 'Midtones',
10017
9991
  },
10018
9992
  },
10019
- 531 => { Name => 'MovieZebraPattern', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} != 0', PrintConv => {0 => 'Pattern 1', 1 => 'Pattern 2'}, Unknown => 1}, # CSg9-b
10020
- 533 => { Name => 'MovieHighlightDisplayThreshold', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 1', Unknown => 1 }, # CSg9-c 120-25 when highlights are the selected tone range
10021
- 535 => { Name => 'MovieMidtoneDisplayValue', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', Unknown => 1 }, # CSg9-d1 when midtones are the selected tone range
10022
- 537 => { Name => 'MovieMidtoneDisplayRange', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', PrintConv => '"+/-$val"', Unknown => 1 }, # CSg9-d1 when midtones are the selected tone range
10023
- #539 CS g-10 LimitZebraPatternToneRange 0=>'No Restrictions', 1=> 'Highlights', 2=> 'Midtones'
9993
+ 531 => { Name => 'MovieZebraPattern', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} != 0', PrintConv => {0 => 'Pattern 1', 1 => 'Pattern 2'}, Unknown => 1}, # CSg12-b
9994
+ 533 => { Name => 'MovieHighlightDisplayThreshold', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 1', Unknown => 1 }, # CSg12-c 120-25 when highlights are the selected tone range
9995
+ 535 => { Name => 'MovieMidtoneDisplayValue', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', Unknown => 1 }, # CSg12-d1 when midtones are the selected tone range
9996
+ 537 => { Name => 'MovieMidtoneDisplayRange', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', PrintConv => '"+/-$val"', Unknown => 1 }, # CSg12-d1 when midtones are the selected tone range
10024
9997
  541 => { Name => 'MovieEVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSg11
10025
9998
  549 => { Name => 'MovieShutterSpeedLock', PrintConv => \%offOn, Unknown => 1}, # CSg4-a
10026
9999
  550 => { Name => 'MovieFocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
@@ -10035,7 +10008,6 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
10035
10008
  2 => 'ISO',
10036
10009
  },
10037
10010
  },
10038
- #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.
10039
10011
  585 => { Name => 'StarlightView', PrintConv => \%offOn, Unknown => 1 }, # CSd9
10040
10012
  587 => { # CSd10-a
10041
10013
  Name => 'EVFWarmDisplayMode',
@@ -10063,8 +10035,847 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
10063
10035
  },
10064
10036
  601 => { Name => 'MovieApertureLock', PrintConv => \%offOn, Unknown => 1 }, # CSg4-b
10065
10037
  607 => { Name => 'FlickAdvanceDirection', PrintConv => { 0 => 'Left to Right', 1 => 'Right to Left' }, Unknown => 1 }, # CSf11-c
10038
+ 647 => { #CSd4-a
10039
+ Name => 'PreReleaseBurstLength',
10040
+ PrintConv => {
10041
+ 0 => 'None',
10042
+ 1 => '0.3 Sec',
10043
+ 2 => '0.5 Sec',
10044
+ 3 => '1 Sec',
10045
+ },
10046
+ },
10047
+ 649 => { #CSd4-b
10048
+ Name => 'PostReleaseBurstLength',
10049
+ PrintConv => {
10050
+ 0 => '1 Sec',
10051
+ 1 => '2 Sec',
10052
+ 2 => '3 Sec',
10053
+ 3 => 'Max',
10054
+ },
10055
+ },
10056
+ 681 => { Name => 'ViewModeShowEffectsOfSettings', PrintConv => { 0=>'Always', 1=> 'Only When Flash Not Used'}, Unknown => 1 }, #CS8-a
10057
+ 683 => { Name => 'DispButton', %buttonsZ9}, #CSf2
10066
10058
  );
10067
10059
 
10060
+ # Z9 custom settings (ref 1) #base at offset26 + 1035 (firmware 1.0.0)
10061
+ %Image::ExifTool::NikonCustom::SettingsZ9 = (
10062
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
10063
+ WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
10064
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
10065
+ DATAMEMBER => [ 185, 529 ],
10066
+ WRITABLE => 1,
10067
+ FIRST_ENTRY => 0,
10068
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
10069
+ NOTES => 'Custom settings for the Z9.',
10070
+ 1 => {
10071
+ Name => 'CustomSettingsBank',
10072
+ PrintConv => {
10073
+ 0 => 'A',
10074
+ 1 => 'B',
10075
+ 2 => 'C',
10076
+ 3 => 'D',
10077
+ },
10078
+ },
10079
+ 3 => { # CSa1
10080
+ Name => 'AF-CPrioritySelection',
10081
+ PrintConv => {
10082
+ 0 => 'Release',
10083
+ 1 => 'Release + Focus',
10084
+ 3 => 'Focus',
10085
+ },
10086
+ },
10087
+ 5 => { Name => 'AF-SPrioritySelection', PrintConv => {0 => 'Release',1 => 'Focus'}}, #CSa2
10088
+ 7 => { # CSa3-a #when AFAreaMode is 3D-tracking, blocked shot response will be 3, regardless of this setting
10089
+ Name => 'BlockShotAFResponse',
10090
+ PrintConv => {
10091
+ 1 => '1 (Quick)',
10092
+ 2 => '2',
10093
+ 3 => '3 (Normal)',
10094
+ 4 => '4',
10095
+ 5 => '5 (Delayed)',
10096
+ },
10097
+ },
10098
+ 11 => {Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
10099
+ 13 => { # CSa5
10100
+ Name => 'StoreByOrientation',
10101
+ PrintConv => {
10102
+ 0 => 'Off',
10103
+ 1 => 'Focus Point',
10104
+ 2 => 'Focus Point and AF-area mode',
10105
+ },
10106
+ },
10107
+ 15 => { Name => 'AFActivation', PrintConv => {0 => 'AF-On Only', 1 => 'Shutter/AF-On'}}, # CSa6-a
10108
+ 16 => { Name => 'AF-OnOutOfFocusRelease', PrintConv => {0 => 'Disable', 1 => 'Enable'}, Unknown => 1}, # CSa6-b
10109
+ 17 => { Name => 'LimitAF-AreaModeSelPinpoint', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10110
+ 19 => { Name => 'LimitAF-AreaModeSelWideAF_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10111
+ 20 => { Name => 'LimitAF-AreaModeSelWideAF_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10112
+ 21 => { Name => 'LimitAFAreaModeSelAuto', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8 #left out hypen to retain compatibility with tag name in NikonSettings
10113
+ 22 => { Name => 'FocusPointWrap', PrintConv => { 0 => 'No Wrap', 1 => 'Wrap' }, Unknown => 1 }, # CSa10
10114
+ 23 => { Name => 'ManualFocusPointIllumination', PrintConv => {0 => 'On During Focus Point Selection Only', 1 => 'On', }, Unknown => 1 }, # CSa11a
10115
+ 24 => { Name => 'DynamicAreaAFAssist', PrintConv => { 0 => 'Focus Point Only',1 => 'Focus and Surrounding Points',}, Unknown => 1 }, # CSa11b
10116
+ 25 => { Name => 'AF-AssistIlluminator', PrintConv => \%offOn }, # CSa12
10117
+ 26 => { Name => 'ManualFocusRingInAFMode', PrintConv => \%offOn }, # CSa14
10118
+ 27 => { Name => 'ExposureControlStepSize', PrintConv => \%thirdHalfFull }, # CSb2
10119
+ 29 => { # CSb3
10120
+ Name => 'EasyExposureCompensation',
10121
+ PrintConv => {
10122
+ 0 => 'Off',
10123
+ 1 => 'On',
10124
+ 2 => 'On (auto reset)',
10125
+ },
10126
+ },
10127
+ 31 => { # CSb5
10128
+ Name => 'CenterWeightedAreaSize',
10129
+ PrintConv => {
10130
+ 0 => '8 mm',
10131
+ 1 => '12 mm',
10132
+ 4 => 'Average',
10133
+ },
10134
+ },
10135
+ 33 => { # CSb6-a
10136
+ Name => 'FineTuneOptMatrixMetering',
10137
+ Format => 'int8s',
10138
+ ValueConv => '$val / 6',
10139
+ ValueConvInv => 'int($val*6)',
10140
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
10141
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
10142
+ },
10143
+ 35 => { # CSb6-b
10144
+ Name => 'FineTuneOptCenterWeighted',
10145
+ Format => 'int8s',
10146
+ ValueConv => '$val / 6',
10147
+ ValueConvInv => 'int($val*6)',
10148
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
10149
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
10150
+ },
10151
+ 37 => { # CSb6-c
10152
+ Name => 'FineTuneOptSpotMetering',
10153
+ Format => 'int8s',
10154
+ ValueConv => '$val / 6',
10155
+ ValueConvInv => 'int($val*6)',
10156
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
10157
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
10158
+ },
10159
+ 39 => { # CSb6-d
10160
+ Name => 'FineTuneOptHighlightWeighted',
10161
+ Format => 'int8s',
10162
+ ValueConv => '$val / 6',
10163
+ ValueConvInv => 'int($val*6)',
10164
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
10165
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
10166
+ },
10167
+ 41 => { # CSc1
10168
+ Name => 'ShutterReleaseButtonAE-L',
10169
+ PrintConv => {
10170
+ 0 => 'Off',
10171
+ 1 => 'On (Half Press)',
10172
+ 2 => 'On (Burst Mode)',
10173
+ },
10174
+ },
10175
+ 43 => { # CSc3-a
10176
+ Name => 'SelfTimerTime',
10177
+ PrintConv => {
10178
+ 0 => '2 s',
10179
+ 1 => '5 s',
10180
+ 2 => '10 s',
10181
+ 3 => '20 s',
10182
+ },
10183
+ },
10184
+ 45 => { Name => 'SelfTimerShotCount', }, # CSc3-b 1-9
10185
+ 49 => { # CSc3-c
10186
+ Name => 'SelfTimerShotInterval',
10187
+ PrintConv => {
10188
+ 0 => '0.5 s',
10189
+ 1 => '1 s',
10190
+ 2 => '2 s',
10191
+ 3 => '3 s',
10192
+ },
10193
+ },
10194
+ 51 => { Name => 'PlaybackMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-a
10195
+ 53 => { Name => 'MenuMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-b
10196
+ 55 => { Name => 'ShootingInfoMonitorOffTime',%powerOffDelayTimesZ9 }, # CSc4-c
10197
+ 57 => { Name => 'ImageReviewMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-d
10198
+ 59 => { Name => 'CLModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1b
10199
+ 61 => { # CSd2 # values: 1-200 & 'No Limit'
10200
+ Name => 'MaxContinuousRelease',
10201
+ Format => 'int16s',
10202
+ ValueConv => '($val eq -1 ? \'No Limit\' : $val ) ',
10203
+ },
10204
+ 65 => { Name => 'SyncReleaseMode', PrintConv => { 0 => 'No Sync', 1 => 'Sync' }, Unknown => 1 }, # CSd4
10205
+ 69 => { Name => 'LimitSelectableImageAreaDX', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-1
10206
+ 70 => { Name => 'LimitSelectableImageArea1To1', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-2
10207
+ 71 => { Name => 'LimitSelectableImageArea16To9', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-3
10208
+ 72 => { Name => 'FileNumberSequence', PrintConv => \%offOn }, # CSd7
10209
+ 73 => { #CSa13b
10210
+ Name => 'FocusPeakingLevel',
10211
+ Unknown => 1,
10212
+ PrintConv => {
10213
+ 0 => 'High Sensitivity',
10214
+ 1 => 'Standard Sensitivity',
10215
+ 2 => 'Low Sensitivity',
10216
+ },
10217
+ },
10218
+ 75 => { #CSa13c
10219
+ Name => 'FocusPeakingHighlightColor',
10220
+ Unknown => 1,
10221
+ PrintConv => {
10222
+ 0 => 'Red',
10223
+ 1 => 'Yellow',
10224
+ 2 => 'Blue',
10225
+ 3 => 'White',
10226
+ },
10227
+ },
10228
+ 81 => { Name => 'ContinuousModeDisplay', PrintConv => \%offOn }, # CSd12
10229
+ 83 => { # CSe1-a Previous cameras reported this with HighSpeedSync indicator appended as '(Auto FP)'. Z9 separated the 2 fields.
10230
+ Name => 'FlashSyncSpeed',
10231
+ ValueConv => '($val-144)/8',
10232
+ PrintConv => {
10233
+ 0 => '1/60 s',
10234
+ 1 => '1/80 s',
10235
+ 2 => '1/100 s',
10236
+ 3 => '1/125 s',
10237
+ 4 => '1/160 s',
10238
+ 5 => '1/200 s',
10239
+ 6 => '1/250 s',
10240
+ },
10241
+ },
10242
+ 85 => { Name => 'HighSpeedSync', PrintConv => \%offOn }, # CSe1-b
10243
+ 87 => { # CSe2
10244
+ Name => 'FlashShutterSpeed',
10245
+ ValueConv => 'my $t = ($val - 16) % 24; $t ? $val / 24 : 2 + ($val - 16) / 24', #unusual decode perhaps due to need to accomodate 4 new values?
10246
+ PrintConv => {
10247
+ 0 => '1 s',
10248
+ 1 => '1/2 s',
10249
+ 2 => '1/4 s',
10250
+ 3 => '1/8 s',
10251
+ 4 => '1/15 s',
10252
+ 5 => '1/30 s',
10253
+ 6 => '1/60 s',
10254
+ 7 => '30 s',
10255
+ 8 => '15 s',
10256
+ 9 => '8 s',
10257
+ 10 => '4 s',
10258
+ 11 => '2 s',
10259
+ },
10260
+ },
10261
+ 89 => { Name => 'FlashExposureCompArea', PrintConv => { 0 => 'Entire Frame', 1 => 'Background Only' } }, # CSe3
10262
+ 91 => { Name => 'AutoFlashISOSensitivity', PrintConv => { 0 => 'Subject and Background',1 => 'Subject Only'} }, # CSe4
10263
+ 93 => { Name => 'ModelingFlash', PrintConv => \%offOn }, # CSe5
10264
+ 95 => { # CSe6
10265
+ Name => 'AutoBracketModeM',
10266
+ PrintConv => {
10267
+ 0 => 'Flash/Speed',
10268
+ 1 => 'Flash/Speed/Aperture',
10269
+ 2 => 'Flash/Aperture',
10270
+ 3 => 'Flash Only',
10271
+ 4 => 'Flash/ISO',
10272
+ },
10273
+ },
10274
+ 97 => { Name => 'AutoBracketOrder', PrintConv => { 0 => '0,-,+',1 => '-,0,+' } }, # CSe7
10275
+ 99 => { Name => 'Func1Button', %buttonsZ9}, # CSf2-a
10276
+ #101 Func1Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-a
10277
+ #103 Func1Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-a
10278
+ #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
10279
+ #109 Func1Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-a
10280
+ #111 Func1Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-a
10281
+ #113 Func1Button & Func1ButtonPlayback submenu: Rating # CSf2-a & CSf3a 0=>'Candidate For Deletion' 6=>''None'
10282
+ 115 => { Name => 'Func2Button', %buttonsZ9}, # CSf2-b
10283
+ #117 Func2Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-b
10284
+ #119 Func2Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-b
10285
+ #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
10286
+ #125 Func2Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-b
10287
+ #127 Func2Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-b
10288
+ #129 Func2Button & Func2ButtonPlayback submenu: Rating # CSf2-b & CSf3b 0=>'Candidate For Deletion' 6=>''None'
10289
+ 131 => { Name => 'AFOnButton', %buttonsZ9}, # CSf2-c
10290
+ 143 => { Name => 'SubSelector', %buttonsZ9, Unknown => 1}, # CSf2-g
10291
+ 155 => { Name => 'AssignMovieRecordButton', %buttonsZ9, Unknown => 1}, # CSf2-m
10292
+ 159 => { Name => 'LensFunc1Button', %buttonsZ9}, # CSf2-o
10293
+ 167 => { Name => 'LensFunc2Button', %buttonsZ9}, # CSf2-p
10294
+ 173 => { # CSf2-q
10295
+ Name => 'LensControlRing',
10296
+ PrintConv => {
10297
+ 0 => 'None (Disabled)',
10298
+ 1 => 'Focus (M/A)',
10299
+ 2 => 'ISO Sensitivity',
10300
+ 3 => 'Exposure Compensation',
10301
+ 4 => 'Aperture',
10302
+ },
10303
+ },
10304
+ 175 => { Name => 'MultiSelectorShootMode', %buttonsZ9}, # CSf2-h called the OK button in camera, tag name retained for compatibility
10305
+ 179 => { Name => 'MultiSelectorPlaybackMode', %buttonsZ9}, # CSf3f
10306
+ 183 => { Name => 'ShutterSpeedLock', PrintConv => \%offOn }, # CSf4-a
10307
+ 184 => { Name => 'ApertureLock', PrintConv => \%offOn }, # CSf4-b
10308
+ 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
10309
+ Name => 'CmdDialsReverseRotExposureComp',
10310
+ RawConv => '$$self{CmdDialsReverseRotExposureComp} = $val',
10311
+ Hidden => 1,
10312
+ },
10313
+ 186 => [{ # CSf5-a (continued from above)
10314
+ Name => 'CmdDialsReverseRotation',
10315
+ Condition => '$$self{CmdDialsReverseRotExposureComp} == 0',
10316
+ PrintConv => {
10317
+ 0 => 'No',
10318
+ 1 => 'Shutter Speed & Aperture',
10319
+ },
10320
+ },{
10321
+ Name => 'CmdDialsReverseRotation',
10322
+ PrintConv => {
10323
+ 0 => 'Exposure Compensation',
10324
+ 1 => 'Exposure Compensation, Shutter Speed & Aperture',
10325
+ },
10326
+ }],
10327
+ 191 => { Name => 'UseDialWithoutHold', PrintConv => \%offOn, Unknown => 1 }, # CSf6
10328
+ 193 => { Name => 'ReverseIndicators', PrintConv => { 0 => '+ 0 -', 1 => '- 0 +' }, Unknown => 1 }, # CSf7
10329
+ 195 => { Name => 'MovieFunc1Button', %buttonsZ9}, # CSg2-a
10330
+ 199 => { Name => 'MovieFunc2Button', %buttonsZ9}, # CSg2-b
10331
+ 203 => { Name => 'MovieAF-OnButton', %buttonsZ9}, # CSg2-f
10332
+ 207 => { Name => 'MovieMultiSelector', %buttonsZ9, Unknown => 1}, # CSg2-h
10333
+ 215 => { # CSg2-z
10334
+ Name => 'MovieLensControlRing',
10335
+ PrintConv => {
10336
+ 0 => 'None (Disabled)',
10337
+ 2 => 'ISO Sensitivity',
10338
+ 3 => 'Exposure Compensation',
10339
+ 4 => 'Power Aperture',
10340
+ 5 => 'Hi-Res Zoom',
10341
+ },
10342
+ },
10343
+ 221 => { Name => 'MovieAFSpeed', ValueConv => '$val - 5', ValueConvInv => '$val + 5' }, # CSg6-a
10344
+ 223 => { Name => 'MovieAFSpeedApply', PrintConv => {0 => 'Always', 1 => 'Only During Recording'},}, # CSg6-b
10345
+ 225 => { # CSg7
10346
+ Name => 'MovieAFTrackingSensitivity',
10347
+ PrintConv => {
10348
+ 0 => '1 (High)',
10349
+ 1 => '2',
10350
+ 2 => '3',
10351
+ 3 => '4 (Normal)',
10352
+ 4 => '5',
10353
+ 5 => '6',
10354
+ 6 => '7 (Low)',
10355
+ },
10356
+ },
10357
+ 257 => { Name => 'LCDIllumination', PrintConv => \%offOn, Unknown => 1 }, # CSd11
10358
+ 258 => { Name => 'ExtendedShutterSpeeds', PrintConv => \%offOn }, # CSd5
10359
+ 259 => { Name => 'SubjectMotion', PrintConv => {0 => 'Erratic', 1 => 'Steady'} }, # CSa3-b
10360
+ 261 => { Name => 'FocusPointPersistence', PrintConv => {0 => 'Auto', 1 => 'Off'} }, # CSa7
10361
+ 263 => { Name => 'AutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
10362
+ 267 => { Name => 'CHModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1a
10363
+ 269.1 => { Name => 'LimitReleaseModeSelCL', Mask => 0x02, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-a
10364
+ 269.2 => { Name => 'LimitReleaseModeSelCH', Mask => 0x04, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-b
10365
+ 269.3 => { Name => 'LimitReleaseModeSelC30', Mask => 0x10, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-e
10366
+ 269.4 => { Name => 'LimitReleaseModeSelC120', Mask => 0x40, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-c
10367
+ 269.5 => { Name => 'LimitReleaseModeSelSelf', Mask => 0x80, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-d
10368
+ 273 => { Name => 'FlashBurstPriority', PrintConv => { 0 => 'Frame Rate',1 => 'Exposure'}, Unknown => 1 }, # CSe8
10369
+ 277 => { Name => 'VerticalFuncButton', %buttonsZ9}, # CSf2-c
10370
+ 281 => { Name => 'Func3Button', %buttonsZ9}, # CSf2-c
10371
+ 285 => { Name => 'VerticalAFOnButton', %buttonsZ9}, # CSf2-l
10372
+ 293 => { Name => 'VerticalMultiSelectorPlaybackMode', PrintConv => { 0 => 'Image Scroll L/R', 1 => 'Image Scroll Up/Down' }, Unknown => 1}, # CSf3-j
10373
+ 295 => { Name => 'MovieFunc3Button', %buttonsZ9}, # CSg2-c
10374
+ 335 => { Name => 'LimitAF-AreaModeSelDynamic_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10375
+ 336 => { Name => 'LimitAF-AreaModeSelDynamic_M', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10376
+ 337 => { Name => 'LimitAF-AreaModeSelDynamic_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10377
+ 339 => { Name => 'LimitAF-AreaModeSel3DTracking', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10378
+ 341 => { Name => 'PlaybackFlickUp', PrintConv => \%flicksZ9, Unknown => 1}, # CSf11-a
10379
+ 345 => { Name => 'PlaybackFlickDown', PrintConv => \%flicksZ9, Unknown => 1}, # CSf11-b
10380
+ 349 => { Name => 'ISOStepSize', PrintConv => \%thirdHalfFull }, # CSb1
10381
+ 355 => { Name => 'ReverseFocusRing', PrintConv => { 0 => 'Not Reversed', 1 => 'Reversed' } }, # CSf8
10382
+ 356 => { Name => 'EVFImageFrame', PrintConv => \%offOn, Unknown => 1 }, # CSd14
10383
+ 357 => { Name => 'EVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSd15
10384
+ 359 => { Name => 'VirtualHorizonStyle', PrintConv => {0 => 'Type A (Cockpit)', 1 => 'Type B (Sides)' }, Unknown => 1}, #CSd16
10385
+ 373 => { Name => 'Func4Button', %buttonsZ9, Unknown => 1}, # CSf2-e
10386
+ 379 => { Name => 'AudioButton', %buttonsZ9, Unknown => 1}, # CSf2-i
10387
+ 381 => { Name => 'QualityButton', %buttonsZ9, Unknown => 1}, # CSf2-j
10388
+ 399 => { Name => 'VerticalMultiSelector', %buttonsZ9, Unknown => 1}, # CSf2-k
10389
+ 421 => { Name => 'Func1ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-a
10390
+ 423 => { Name => 'Func2ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-b
10391
+ 425 => { Name => 'Func3ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-c
10392
+ 431 => { Name => 'Func4ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-e
10393
+ 437 => { Name => 'MovieRecordButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-m
10394
+ 439 => { Name => 'VerticalFuncButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-d
10395
+ 441 => { Name => 'AudioButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-g
10396
+ 447 => { Name => 'QualityButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-h
10397
+ 467 => { Name => 'FocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
10398
+ 453 => { Name => 'WhiteBalanceButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-i
10399
+ 459 => { Name => 'CommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-k
10400
+ 463 => { Name => 'SubCommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-l
10401
+ 469 => { Name => 'ControlRingResponse', PrintConv => { 0 => 'High', 1 => 'Low' } }, # CSf10
10402
+ 481 => { Name => 'VerticalMovieFuncButton', %buttonsZ9, Unknown => 1}, # CSg2-d
10403
+ 505 => { Name => 'VerticalMovieAFOnButton', %buttonsZ9, Unknown => 1}, # CSg2-l
10404
+ 515 => { Name => 'MovieAFAreaMode', %buttonsZ9, Unknown => 1}, # CSg2-e
10405
+ #521 => { Name => 'MovieLimitAF-AreaModeSelWideAF_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-a
10406
+ #522 => { Name => 'MovieLimitAF-AreaModeSelWideAF_W', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-b
10407
+ #523 => { Name => 'MovieLimitAF-AreaModeSelSubjectTrack', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-c
10408
+ #524 => { Name => 'MovieLimitAFAreaModeSelAuto', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-d
10409
+ #525 => { Name => 'MovieAutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
10410
+ 527 => { Name => 'HDMIViewAssist', PrintConv => \%offOn, Unknown => 1 }, # CSg8
10411
+ 529 => { # CSg9-a
10412
+ Name => 'ZebraPatternToneRange',
10413
+ Unknown => 1,
10414
+ RawConv => '$$self{ZebraPatternToneRange} = $val',
10415
+ PrintConv => {
10416
+ 0 => 'Off',
10417
+ 1 => 'Highlights',
10418
+ 2 => 'Midtones',
10419
+ },
10420
+ },
10421
+ 531 => { Name => 'MovieZebraPattern', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} != 0', PrintConv => {0 => 'Pattern 1', 1 => 'Pattern 2'}, Unknown => 1}, # CSg9-b
10422
+ 533 => { Name => 'MovieHighlightDisplayThreshold', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 1', Unknown => 1 }, # CSg9-c 120-25 when highlights are the selected tone range
10423
+ 535 => { Name => 'MovieMidtoneDisplayValue', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', Unknown => 1 }, # CSg9-d1 when midtones are the selected tone range
10424
+ 537 => { Name => 'MovieMidtoneDisplayRange', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', PrintConv => '"+/-$val"', Unknown => 1 }, # CSg9-d1 when midtones are the selected tone range
10425
+ #539 CS g-10 LimitZebraPatternToneRange 0=>'No Restrictions', 1=> 'Highlights', 2=> 'Midtones'
10426
+ 541 => { Name => 'MovieEVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSg11
10427
+ 549 => { Name => 'MovieShutterSpeedLock', PrintConv => \%offOn, Unknown => 1}, # CSg4-a
10428
+ 550 => { Name => 'MovieFocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
10429
+ 563 => { Name => 'MatrixMetering', PrintConv => { 0 => 'Face Detection Off', 1 => 'Face Detection On' }, Unknown => 1 }, # CSb4
10430
+ 564 => { Name => 'AF-CFocusDisplay', PrintConv => \%offOn }, # CSa11c
10431
+ 565 => { Name => 'FocusPeakingDisplay', PrintConv => \%offOn, Unknown => 1}, # CSa13a
10432
+ 567 => { # CSb7
10433
+ Name => 'KeepExposure',
10434
+ PrintConv => {
10435
+ 0 => 'Off',
10436
+ 1 => 'Shutter Speed',
10437
+ 2 => 'ISO',
10438
+ },
10439
+ },
10440
+ #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.
10441
+ 585 => { Name => 'StarlightView', PrintConv => \%offOn, Unknown => 1 }, # CSd9
10442
+ 587 => { # CSd10-a
10443
+ Name => 'EVFWarmDisplayMode',
10444
+ Unknown => 1,
10445
+ PrintConv => {
10446
+ 0 => 'Off',
10447
+ 1 => 'Mode 1',
10448
+ 2 => 'Mode 2',
10449
+ },
10450
+ },
10451
+ 589 => { # CSd10-b values in range -3 to +3
10452
+ Name => 'EVFWarmDisplayBrightness',
10453
+ Format => 'int8s',
10454
+ Unknown => 1,
10455
+ },
10456
+ 591 => { #CSd13
10457
+ Name => 'EVFReleaseIndicator',
10458
+ Unknown => 1,
10459
+ PrintConv => {
10460
+ 0 => 'Off',
10461
+ 1 => 'Type A (Dark)',
10462
+ 2 => 'Type B (Border)',
10463
+ 3 => 'Type C (Sides)',
10464
+ },
10465
+ },
10466
+ 601 => { Name => 'MovieApertureLock', PrintConv => \%offOn, Unknown => 1 }, # CSg4-b
10467
+ 607 => { Name => 'FlickAdvanceDirection', PrintConv => { 0 => 'Left to Right', 1 => 'Right to Left' }, Unknown => 1 }, # CSf11-c
10468
+ );
10469
+
10470
+ # Z9 custom settings (ref 1) #base at offset26 + 1095 (firmware 4.0)
10471
+ %Image::ExifTool::NikonCustom::SettingsZ9v4 = (
10472
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
10473
+ WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
10474
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
10475
+ DATAMEMBER => [ 185, 553 ],
10476
+ WRITABLE => 1,
10477
+ FIRST_ENTRY => 0,
10478
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
10479
+ NOTES => 'Custom settings for the Z9.',
10480
+ 1 => {
10481
+ Name => 'CustomSettingsBank',
10482
+ PrintConv => {
10483
+ 0 => 'A',
10484
+ 1 => 'B',
10485
+ 2 => 'C',
10486
+ 3 => 'D',
10487
+ },
10488
+ },
10489
+ 3 => { # CSa1
10490
+ Name => 'AF-CPrioritySelection',
10491
+ PrintConv => {
10492
+ 0 => 'Release',
10493
+ 1 => 'Release + Focus',
10494
+ 3 => 'Focus',
10495
+ },
10496
+ },
10497
+ 5 => { Name => 'AF-SPrioritySelection', PrintConv => {0 => 'Release',1 => 'Focus'}}, #CSa2
10498
+ 7 => { # CSa3-a #when AFAreaMode is 3D-tracking, blocked shot response will be 3, regardless of this setting
10499
+ Name => 'BlockShotAFResponse',
10500
+ PrintConv => {
10501
+ 1 => '1 (Quick)',
10502
+ 2 => '2',
10503
+ 3 => '3 (Normal)',
10504
+ 4 => '4',
10505
+ 5 => '5 (Delayed)',
10506
+ },
10507
+ },
10508
+ 11 => {Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
10509
+ 13 => { # CSa5
10510
+ Name => 'StoreByOrientation',
10511
+ PrintConv => {
10512
+ 0 => 'Off',
10513
+ 1 => 'Focus Point',
10514
+ 2 => 'Focus Point and AF-area mode',
10515
+ },
10516
+ },
10517
+ 15 => { Name => 'AFActivation', PrintConv => {0 => 'AF-On Only', 1 => 'Shutter/AF-On'}}, # CSa6-a
10518
+ 16 => { Name => 'AF-OnOutOfFocusRelease', PrintConv => {0 => 'Disable', 1 => 'Enable'}, Unknown => 1}, # CSa6-b
10519
+ 17 => { Name => 'LimitAF-AreaModeSelPinpoint', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10520
+ 19 => { Name => 'LimitAF-AreaModeSelWideAF_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10521
+ 20 => { Name => 'LimitAF-AreaModeSelWideAF_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10522
+ 21 => { Name => 'LimitAFAreaModeSelAuto', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8 #left out hypen to retain compatibility with tag name in NikonSettings
10523
+ 22 => { Name => 'FocusPointWrap', PrintConv => { 0 => 'No Wrap', 1 => 'Wrap' }, Unknown => 1 }, # CSa10
10524
+ 23 => { Name => 'ManualFocusPointIllumination', PrintConv => {0 => 'On During Focus Point Selection Only', 1 => 'On', }, Unknown => 1 }, # CSa11a
10525
+ 24 => { Name => 'DynamicAreaAFAssist', PrintConv => { 0 => 'Focus Point Only',1 => 'Focus and Surrounding Points',}, Unknown => 1 }, # CSa11b
10526
+ 25 => { Name => 'AF-AssistIlluminator', PrintConv => \%offOn }, # CSa12
10527
+ 26 => { Name => 'ManualFocusRingInAFMode', PrintConv => \%offOn }, # CSa14
10528
+ 27 => { Name => 'ExposureControlStepSize', PrintConv => \%thirdHalfFull }, # CSb2
10529
+ 29 => { # CSb3
10530
+ Name => 'EasyExposureCompensation',
10531
+ PrintConv => {
10532
+ 0 => 'Off',
10533
+ 1 => 'On',
10534
+ 2 => 'On (auto reset)',
10535
+ },
10536
+ },
10537
+ 31 => { # CSb5
10538
+ Name => 'CenterWeightedAreaSize',
10539
+ PrintConv => {
10540
+ 0 => '8 mm',
10541
+ 1 => '12 mm',
10542
+ 4 => 'Average',
10543
+ },
10544
+ },
10545
+ 33 => { # CSb6-a
10546
+ Name => 'FineTuneOptMatrixMetering',
10547
+ Format => 'int8s',
10548
+ ValueConv => '$val / 6',
10549
+ ValueConvInv => 'int($val*6)',
10550
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
10551
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
10552
+ },
10553
+ 35 => { # CSb6-b
10554
+ Name => 'FineTuneOptCenterWeighted',
10555
+ Format => 'int8s',
10556
+ ValueConv => '$val / 6',
10557
+ ValueConvInv => 'int($val*6)',
10558
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
10559
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
10560
+ },
10561
+ 37 => { # CSb6-c
10562
+ Name => 'FineTuneOptSpotMetering',
10563
+ Format => 'int8s',
10564
+ ValueConv => '$val / 6',
10565
+ ValueConvInv => 'int($val*6)',
10566
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
10567
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
10568
+ },
10569
+ 39 => { # CSb6-d
10570
+ Name => 'FineTuneOptHighlightWeighted',
10571
+ Format => 'int8s',
10572
+ ValueConv => '$val / 6',
10573
+ ValueConvInv => 'int($val*6)',
10574
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
10575
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
10576
+ },
10577
+ 41 => { # CSc1
10578
+ Name => 'ShutterReleaseButtonAE-L',
10579
+ PrintConv => {
10580
+ 0 => 'Off',
10581
+ 1 => 'On (Half Press)',
10582
+ 2 => 'On (Burst Mode)',
10583
+ },
10584
+ },
10585
+ 43 => { # CSc3-a
10586
+ Name => 'SelfTimerTime',
10587
+ PrintConv => {
10588
+ 0 => '2 s',
10589
+ 1 => '5 s',
10590
+ 2 => '10 s',
10591
+ 3 => '20 s',
10592
+ },
10593
+ },
10594
+ 45 => { Name => 'SelfTimerShotCount', }, # CSc3-b 1-9
10595
+ 49 => { # CSc3-c
10596
+ Name => 'SelfTimerShotInterval',
10597
+ PrintConv => {
10598
+ 0 => '0.5 s',
10599
+ 1 => '1 s',
10600
+ 2 => '2 s',
10601
+ 3 => '3 s',
10602
+ },
10603
+ },
10604
+ 51 => { Name => 'PlaybackMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-a
10605
+ 53 => { Name => 'MenuMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-b
10606
+ 55 => { Name => 'ShootingInfoMonitorOffTime',%powerOffDelayTimesZ9 }, # CSc4-c
10607
+ 57 => { Name => 'ImageReviewMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-d
10608
+ 59 => { Name => 'CLModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1b
10609
+ 61 => { # CSd2 # values: 1-200 & 'No Limit'
10610
+ Name => 'MaxContinuousRelease',
10611
+ Format => 'int16s',
10612
+ ValueConv => '($val eq -1 ? \'No Limit\' : $val ) ',
10613
+ },
10614
+ 65 => { Name => 'SyncReleaseMode', PrintConv => { 0 => 'No Sync', 1 => 'Sync' }, Unknown => 1 }, # CSd4
10615
+ 69 => { Name => 'LimitSelectableImageAreaDX', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-1
10616
+ 70 => { Name => 'LimitSelectableImageArea1To1', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-2
10617
+ 71 => { Name => 'LimitSelectableImageArea16To9', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-3
10618
+ 72 => { Name => 'FileNumberSequence', PrintConv => \%offOn }, # CSd7
10619
+ 73 => { #CSa13b
10620
+ Name => 'FocusPeakingLevel',
10621
+ Unknown => 1,
10622
+ PrintConv => {
10623
+ 0 => 'High Sensitivity',
10624
+ 1 => 'Standard Sensitivity',
10625
+ 2 => 'Low Sensitivity',
10626
+ },
10627
+ },
10628
+ 75 => { #CSa13c
10629
+ Name => 'FocusPeakingHighlightColor',
10630
+ Unknown => 1,
10631
+ PrintConv => {
10632
+ 0 => 'Red',
10633
+ 1 => 'Yellow',
10634
+ 2 => 'Blue',
10635
+ 3 => 'White',
10636
+ },
10637
+ },
10638
+ 81 => { Name => 'ContinuousModeDisplay', PrintConv => \%offOn }, # CSd12
10639
+ 83 => { # CSe1-a Previous cameras reported this with HighSpeedSync indicator appended as '(Auto FP)'. Z9 separated the 2 fields.
10640
+ Name => 'FlashSyncSpeed',
10641
+ ValueConv => '($val-144)/8',
10642
+ PrintConv => {
10643
+ 0 => '1/60 s',
10644
+ 1 => '1/80 s',
10645
+ 2 => '1/100 s',
10646
+ 3 => '1/125 s',
10647
+ 4 => '1/160 s',
10648
+ 5 => '1/200 s',
10649
+ 6 => '1/250 s',
10650
+ },
10651
+ },
10652
+ 85 => { Name => 'HighSpeedSync', PrintConv => \%offOn }, # CSe1-b
10653
+ 87 => { # CSe2
10654
+ Name => 'FlashShutterSpeed',
10655
+ ValueConv => 'my $t = ($val - 16) % 24; $t ? $val / 24 : 2 + ($val - 16) / 24', #unusual decode perhaps due to need to accomodate 4 new values?
10656
+ PrintConv => {
10657
+ 0 => '1 s',
10658
+ 1 => '1/2 s',
10659
+ 2 => '1/4 s',
10660
+ 3 => '1/8 s',
10661
+ 4 => '1/15 s',
10662
+ 5 => '1/30 s',
10663
+ 6 => '1/60 s',
10664
+ 7 => '30 s',
10665
+ 8 => '15 s',
10666
+ 9 => '8 s',
10667
+ 10 => '4 s',
10668
+ 11 => '2 s',
10669
+ },
10670
+ },
10671
+ 89 => { Name => 'FlashExposureCompArea', PrintConv => { 0 => 'Entire Frame', 1 => 'Background Only' } }, # CSe3
10672
+ 91 => { Name => 'AutoFlashISOSensitivity', PrintConv => { 0 => 'Subject and Background',1 => 'Subject Only'} }, # CSe4
10673
+ 93 => { Name => 'ModelingFlash', PrintConv => \%offOn }, # CSe5
10674
+ 95 => { # CSe6
10675
+ Name => 'AutoBracketModeM',
10676
+ PrintConv => {
10677
+ 0 => 'Flash/Speed',
10678
+ 1 => 'Flash/Speed/Aperture',
10679
+ 2 => 'Flash/Aperture',
10680
+ 3 => 'Flash Only',
10681
+ 4 => 'Flash/ISO',
10682
+ },
10683
+ },
10684
+ 97 => { Name => 'AutoBracketOrder', PrintConv => { 0 => '0,-,+',1 => '-,0,+' } }, # CSe7
10685
+ 99 => { Name => 'Func1Button', %buttonsZ9}, # CSf2-a
10686
+ #101 Func1Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-a
10687
+ #103 Func1Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-a
10688
+ #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
10689
+ #109 Func1Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-a
10690
+ #111 Func1Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-a
10691
+ #113 Func1Button & Func1ButtonPlayback submenu: Rating # CSf2-a & CSf3a 0=>'Candidate For Deletion' 6=>''None'
10692
+ 115 => { Name => 'Func2Button', %buttonsZ9}, # CSf2-b
10693
+ #117 Func2Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-b
10694
+ #119 Func2Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-b
10695
+ #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
10696
+ #125 Func2Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-b
10697
+ #127 Func2Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-b
10698
+ #129 Func2Button & Func2ButtonPlayback submenu: Rating # CSf2-b & CSf3b 0=>'Candidate For Deletion' 6=>''None'
10699
+ 131 => { Name => 'AFOnButton', %buttonsZ9}, # CSf2-c
10700
+ 143 => { Name => 'SubSelector', %buttonsZ9, Unknown => 1}, # CSf2-g
10701
+ 155 => { Name => 'AssignMovieRecordButton', %buttonsZ9, Unknown => 1}, # CSf2-m
10702
+ 159 => { Name => 'LensFunc1Button', %buttonsZ9}, # CSf2-o
10703
+ 167 => { Name => 'LensFunc2Button', %buttonsZ9}, # CSf2-p
10704
+ 173 => { # CSf2-q
10705
+ Name => 'LensControlRing',
10706
+ PrintConv => {
10707
+ 0 => 'None (Disabled)',
10708
+ 1 => 'Focus (M/A)',
10709
+ 2 => 'ISO Sensitivity',
10710
+ 3 => 'Exposure Compensation',
10711
+ 4 => 'Aperture',
10712
+ },
10713
+ },
10714
+ 175 => { Name => 'MultiSelectorShootMode', %buttonsZ9}, # CSf2-h called the OK button in camera, tag name retained for compatibility
10715
+ 179 => { Name => 'MultiSelectorPlaybackMode', %buttonsZ9}, # CSf3f
10716
+ 183 => { Name => 'ShutterSpeedLock', PrintConv => \%offOn }, # CSf4-a
10717
+ 184 => { Name => 'ApertureLock', PrintConv => \%offOn }, # CSf4-b
10718
+ 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
10719
+ Name => 'CmdDialsReverseRotExposureComp',
10720
+ RawConv => '$$self{CmdDialsReverseRotExposureComp} = $val',
10721
+ Hidden => 1,
10722
+ },
10723
+ 186 => [{ # CSf5-a (continued from above)
10724
+ Name => 'CmdDialsReverseRotation',
10725
+ Condition => '$$self{CmdDialsReverseRotExposureComp} == 0',
10726
+ PrintConv => {
10727
+ 0 => 'No',
10728
+ 1 => 'Shutter Speed & Aperture',
10729
+ },
10730
+ },{
10731
+ Name => 'CmdDialsReverseRotation',
10732
+ PrintConv => {
10733
+ 0 => 'Exposure Compensation',
10734
+ 1 => 'Exposure Compensation, Shutter Speed & Aperture',
10735
+ },
10736
+ }],
10737
+ 191 => { Name => 'UseDialWithoutHold', PrintConv => \%offOn, Unknown => 1 }, # CSf6
10738
+ 193 => { Name => 'ReverseIndicators', PrintConv => { 0 => '+ 0 -', 1 => '- 0 +' }, Unknown => 1 }, # CSf7
10739
+ 195 => { Name => 'MovieFunc1Button', %buttonsZ9}, # CSg2-a
10740
+ 199 => { Name => 'MovieFunc2Button', %buttonsZ9}, # CSg2-b
10741
+ 203 => { Name => 'MovieAF-OnButton', %buttonsZ9}, # CSg2-f
10742
+ 207 => { Name => 'MovieMultiSelector', %buttonsZ9, Unknown => 1}, # CSg2-h
10743
+ 215 => { # CSg2-z
10744
+ Name => 'MovieLensControlRing',
10745
+ PrintConv => {
10746
+ 0 => 'None (Disabled)',
10747
+ 2 => 'ISO Sensitivity',
10748
+ 3 => 'Exposure Compensation',
10749
+ 4 => 'Power Aperture',
10750
+ 5 => 'Hi-Res Zoom',
10751
+ },
10752
+ },
10753
+ 221 => { Name => 'MovieAFSpeed', ValueConv => '$val - 5', ValueConvInv => '$val + 5' }, # CSg6-a
10754
+ 223 => { Name => 'MovieAFSpeedApply', PrintConv => {0 => 'Always', 1 => 'Only During Recording'},}, # CSg6-b
10755
+ 225 => { # CSg7
10756
+ Name => 'MovieAFTrackingSensitivity',
10757
+ PrintConv => {
10758
+ 0 => '1 (High)',
10759
+ 1 => '2',
10760
+ 2 => '3',
10761
+ 3 => '4 (Normal)',
10762
+ 4 => '5',
10763
+ 5 => '6',
10764
+ 6 => '7 (Low)',
10765
+ },
10766
+ },
10767
+ 279 => { Name => 'LCDIllumination', PrintConv => \%offOn, Unknown => 1 }, # CSd11
10768
+ 280 => { Name => 'ExtendedShutterSpeeds', PrintConv => \%offOn }, # CSd5
10769
+ 281 => { Name => 'SubjectMotion', PrintConv => {0 => 'Erratic', 1 => 'Steady'} }, # CSa3-b
10770
+ 283 => { Name => 'FocusPointPersistence', PrintConv => {0 => 'Auto', 1 => 'Off'} }, # CSa7
10771
+ 285 => { Name => 'AutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
10772
+ 289 => { Name => 'CHModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1a
10773
+ 293.1 => { Name => 'LimitReleaseModeSelCL', Mask => 0x02, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-a
10774
+ 293.2 => { Name => 'LimitReleaseModeSelCH', Mask => 0x04, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-b
10775
+ 293.3 => { Name => 'LimitReleaseModeSelC30', Mask => 0x10, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-e
10776
+ 293.4 => { Name => 'LimitReleaseModeSelC120', Mask => 0x40, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-c
10777
+ 293.5 => { Name => 'LimitReleaseModeSelSelf', Mask => 0x80, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-d
10778
+ 297 => { Name => 'FlashBurstPriority', PrintConv => { 0 => 'Frame Rate',1 => 'Exposure'}, Unknown => 1 }, # CSe8
10779
+ 301 => { Name => 'VerticalFuncButton', %buttonsZ9}, # CSf2-c
10780
+ 305 => { Name => 'Func3Button', %buttonsZ9}, # CSf2-c
10781
+ 309 => { Name => 'VerticalAFOnButton', %buttonsZ9}, # CSf2-l
10782
+ 317 => { Name => 'VerticalMultiSelectorPlaybackMode', PrintConv => { 0 => 'Image Scroll L/R', 1 => 'Image Scroll Up/Down' }, Unknown => 1}, # CSf3-j
10783
+ 319 => { Name => 'MovieFunc3Button', %buttonsZ9}, # CSg2-c
10784
+ 359 => { Name => 'LimitAF-AreaModeSelDynamic_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10785
+ 360 => { Name => 'LimitAF-AreaModeSelDynamic_M', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10786
+ 361 => { Name => 'LimitAF-AreaModeSelDynamic_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10787
+ 363 => { Name => 'LimitAF-AreaModeSel3DTracking', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10788
+ 365 => { Name => 'PlaybackFlickUp', PrintConv => \%flicksZ9, Unknown => 1}, # CSf11-a
10789
+ 369 => { Name => 'PlaybackFlickDown', PrintConv => \%flicksZ9, Unknown => 1}, # CSf11-b
10790
+ 373 => { Name => 'ISOStepSize', PrintConv => \%thirdHalfFull }, # CSb1
10791
+ 379 => { Name => 'ReverseFocusRing', PrintConv => { 0 => 'Not Reversed', 1 => 'Reversed' } }, # CSf8
10792
+ 380 => { Name => 'EVFImageFrame', PrintConv => \%offOn, Unknown => 1 }, # CSd14
10793
+ 381 => { Name => 'EVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSd15
10794
+ 383 => { Name => 'VirtualHorizonStyle', PrintConv => {0 => 'Type A (Cockpit)', 1 => 'Type B (Sides)' }, Unknown => 1}, #CSd16
10795
+ 397 => { Name => 'Func4Button', %buttonsZ9, Unknown => 1}, # CSf2-e
10796
+ 403 => { Name => 'AudioButton', %buttonsZ9, Unknown => 1}, # CSf2-i
10797
+ 405 => { Name => 'QualityButton', %buttonsZ9, Unknown => 1}, # CSf2-j
10798
+ 423 => { Name => 'VerticalMultiSelector', %buttonsZ9, Unknown => 1}, # CSf2-k
10799
+ 445 => { Name => 'Func1ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-a
10800
+ 447 => { Name => 'Func2ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-b
10801
+ 449 => { Name => 'Func3ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-c
10802
+ 455 => { Name => 'Func4ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-e
10803
+ 461 => { Name => 'MovieRecordButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-m
10804
+ 463 => { Name => 'VerticalFuncButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-d
10805
+ 465 => { Name => 'AudioButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-g
10806
+ 471 => { Name => 'QualityButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-h
10807
+ 477 => { Name => 'WhiteBalanceButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-i
10808
+ 483 => { Name => 'CommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-k
10809
+ 487 => { Name => 'SubCommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-l
10810
+ 491 => { Name => 'FocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
10811
+ 493 => { Name => 'ControlRingResponse', PrintConv => { 0 => 'High', 1 => 'Low' } }, # CSf10
10812
+ 505 => { Name => 'VerticalMovieFuncButton', %buttonsZ9, Unknown => 1}, # CSg2-d
10813
+ 529 => { Name => 'VerticalMovieAFOnButton', %buttonsZ9, Unknown => 1}, # CSg2-l
10814
+ 539 => { Name => 'MovieAFAreaMode', %buttonsZ9, Unknown => 1}, # CSg2-e
10815
+ #545 => { Name => 'MovieLimitAF-AreaModeSelWideAF_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-a
10816
+ #546 => { Name => 'MovieLimitAF-AreaModeSelWideAF_W', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-b
10817
+ #547 => { Name => 'MovieLimitAF-AreaModeSelSubjectTrack', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-c
10818
+ #548 => { Name => 'MovieLimitAFAreaModeSelAuto', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-d
10819
+ #549 => { Name => 'MovieAutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
10820
+ 551 => { Name => 'HDMIViewAssist', PrintConv => \%offOn, Unknown => 1 }, # CSg12
10821
+ 553 => { # CSg13-a
10822
+ Name => 'ZebraPatternToneRange',
10823
+ Unknown => 1,
10824
+ RawConv => '$$self{ZebraPatternToneRange} = $val',
10825
+ PrintConv => {
10826
+ 0 => 'Off',
10827
+ 1 => 'Highlights',
10828
+ 2 => 'Midtones',
10829
+ },
10830
+ },
10831
+ 555 => { Name => 'MovieZebraPattern', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} != 0', PrintConv => {0 => 'Pattern 1', 1 => 'Pattern 2'}, Unknown => 1}, # CSg13-b
10832
+ 557 => { Name => 'MovieHighlightDisplayThreshold', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 1', Unknown => 1 }, # CSg13-c 120-25 when highlights are the selected tone range
10833
+ 559 => { Name => 'MovieMidtoneDisplayValue', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', Unknown => 1 }, # CSg13-d1 when midtones are the selected tone range
10834
+ 561 => { Name => 'MovieMidtoneDisplayRange', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', PrintConv => '"+/-$val"', Unknown => 1 }, # CSg13-d2 when midtones are the selected tone range
10835
+ #563 CS g-14 LimitZebraPatternToneRange 0=>'No Restrictions', 1=> 'Highlights', 2=> 'Midtones'
10836
+ 565 => { Name => 'MovieEVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSg15
10837
+ 573 => { Name => 'MovieShutterSpeedLock', PrintConv => \%offOn, Unknown => 1}, # CSg3-a
10838
+ 574 => { Name => 'MovieFocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSg3-c
10839
+ 587 => { Name => 'MatrixMetering', PrintConv => { 0 => 'Face Detection Off', 1 => 'Face Detection On' }, Unknown => 1 }, # CSb4
10840
+ 588 => { Name => 'AF-CFocusDisplay', PrintConv => \%offOn }, # CSa11c
10841
+ 589 => { Name => 'FocusPeakingDisplay', PrintConv => \%offOn, Unknown => 1}, # CSa13a
10842
+ 591 => { # CSb7
10843
+ Name => 'KeepExposure',
10844
+ PrintConv => {
10845
+ 0 => 'Off',
10846
+ 1 => 'Shutter Speed',
10847
+ 2 => 'ISO',
10848
+ },
10849
+ },
10850
+ #593 CSd (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.
10851
+ 609 => { Name => 'StarlightView', PrintConv => \%offOn, Unknown => 1 }, # CSd11
10852
+ 611 => { # CSd12-a
10853
+ Name => 'EVFWarmDisplayMode',
10854
+ Unknown => 1,
10855
+ PrintConv => {
10856
+ 0 => 'Off',
10857
+ 1 => 'Mode 1',
10858
+ 2 => 'Mode 2',
10859
+ },
10860
+ },
10861
+ 613 => { # CSd12-b values in range -3 to +3
10862
+ Name => 'EVFWarmDisplayBrightness',
10863
+ Format => 'int8s',
10864
+ Unknown => 1,
10865
+ },
10866
+ 615 => { #CSd15
10867
+ Name => 'EVFReleaseIndicator',
10868
+ Unknown => 1,
10869
+ PrintConv => {
10870
+ 0 => 'Off',
10871
+ 1 => 'Type A (Dark)',
10872
+ 2 => 'Type B (Border)',
10873
+ 3 => 'Type C (Sides)',
10874
+ },
10875
+ },
10876
+ 625 => { Name => 'MovieApertureLock', PrintConv => \%offOn, Unknown => 1 }, # CSg3-b
10877
+ 631 => { Name => 'FlickAdvanceDirection', PrintConv => { 0 => 'Left to Right', 1 => 'Right to Left' }, Unknown => 1 }, # CSf13-c
10878
+ );
10068
10879
  1; # end
10069
10880
 
10070
10881
  __END__