exiftool_vendored 12.64.1 → 12.65.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.
@@ -15,7 +15,7 @@ package Image::ExifTool::NikonCustom;
15
15
  use strict;
16
16
  use vars qw($VERSION @ISA @EXPORT_OK %buttonsZ9);
17
17
 
18
- $VERSION = '1.23';
18
+ $VERSION = '1.24';
19
19
 
20
20
  @ISA = qw(Exporter);
21
21
  @EXPORT_OK = qw(%buttonsZ9);
@@ -117,6 +117,7 @@ my %dialsZ9 = (
117
117
  6 => 'Videos Only',
118
118
  7 => 'Rating',
119
119
  8 => 'Page',
120
+ 9 => 'Skip To First Shot In Series',
120
121
  );
121
122
  my %evfGridsZ9 = (
122
123
  0 => '3x3',
@@ -9665,8 +9666,8 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9665
9666
  },
9666
9667
  );
9667
9668
 
9668
- # Z9 custom settings (ref 1) #base at offset26 + 1035 (firmware 1.0.0)
9669
- %Image::ExifTool::NikonCustom::SettingsZ9 = (
9669
+ # Z8 custom settings (ref 1) #base at offset26 + 1195 (firmware 1.0.0)
9670
+ %Image::ExifTool::NikonCustom::SettingsZ8 = (
9670
9671
  PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
9671
9672
  WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
9672
9673
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
@@ -9674,7 +9675,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9674
9675
  WRITABLE => 1,
9675
9676
  FIRST_ENTRY => 0,
9676
9677
  GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
9677
- NOTES => 'Custom settings for the Z9.',
9678
+ NOTES => 'Custom settings for the Z8.',
9678
9679
  1 => {
9679
9680
  Name => 'CustomSettingsBank',
9680
9681
  PrintConv => {
@@ -9722,7 +9723,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9722
9723
  23 => { Name => 'ManualFocusPointIllumination', PrintConv => {0 => 'On During Focus Point Selection Only', 1 => 'On', }, Unknown => 1 }, # CSa11a
9723
9724
  24 => { Name => 'DynamicAreaAFAssist', PrintConv => { 0 => 'Focus Point Only',1 => 'Focus and Surrounding Points',}, Unknown => 1 }, # CSa11b
9724
9725
  25 => { Name => 'AF-AssistIlluminator', PrintConv => \%offOn }, # CSa12
9725
- 26 => { Name => 'ManualFocusRingInAFMode', PrintConv => \%offOn }, # CSa14
9726
+ 26 => { Name => 'ManualFocusRingInAFMode', PrintConv => \%offOn }, # CSa15
9726
9727
  27 => { Name => 'ExposureControlStepSize', PrintConv => \%thirdHalfFull }, # CSb2
9727
9728
  29 => { # CSb3
9728
9729
  Name => 'EasyExposureCompensation',
@@ -9780,7 +9781,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9780
9781
  2 => 'On (Burst Mode)',
9781
9782
  },
9782
9783
  },
9783
- 43 => { # CSc3-a
9784
+ 43 => { # CSc2-a
9784
9785
  Name => 'SelfTimerTime',
9785
9786
  PrintConv => {
9786
9787
  0 => '2 s',
@@ -9789,8 +9790,8 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9789
9790
  3 => '20 s',
9790
9791
  },
9791
9792
  },
9792
- 45 => { Name => 'SelfTimerShotCount', }, # CSc3-b 1-9
9793
- 49 => { # CSc3-c
9793
+ 45 => { Name => 'SelfTimerShotCount', }, # CSc2-b 1-9
9794
+ 49 => { # CSc2-c
9794
9795
  Name => 'SelfTimerShotInterval',
9795
9796
  PrintConv => {
9796
9797
  0 => '0.5 s',
@@ -9799,15 +9800,15 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9799
9800
  3 => '3 s',
9800
9801
  },
9801
9802
  },
9802
- 51 => { Name => 'PlaybackMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-a
9803
- 53 => { Name => 'MenuMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-b
9804
- 55 => { Name => 'ShootingInfoMonitorOffTime',%powerOffDelayTimesZ9 }, # CSc4-c
9805
- 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
9806
9807
  59 => { Name => 'CLModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1b
9807
9808
  61 => { # CSd2 # values: 1-200 & 'No Limit'
9808
9809
  Name => 'MaxContinuousRelease',
9809
9810
  Format => 'int16s',
9810
- ValueConv => '($val = -1 ? \'No Limit\' : $val ) ',
9811
+ ValueConv => '($val eq -1 ? \'No Limit\' : $val ) ',
9811
9812
  },
9812
9813
  65 => { Name => 'SyncReleaseMode', PrintConv => { 0 => 'No Sync', 1 => 'Sync' }, Unknown => 1 }, # CSd4
9813
9814
  69 => { Name => 'LimitSelectableImageAreaDX', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-1
@@ -9833,6 +9834,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9833
9834
  3 => 'White',
9834
9835
  },
9835
9836
  },
9837
+
9836
9838
  81 => { Name => 'ContinuousModeDisplay', PrintConv => \%offOn }, # CSd12
9837
9839
  83 => { # CSe1-a Previous cameras reported this with HighSpeedSync indicator appended as '(Auto FP)'. Z9 separated the 2 fields.
9838
9840
  Name => 'FlashSyncSpeed',
@@ -9881,19 +9883,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9881
9883
  },
9882
9884
  97 => { Name => 'AutoBracketOrder', PrintConv => { 0 => '0,-,+',1 => '-,0,+' } }, # CSe7
9883
9885
  99 => { Name => 'Func1Button', %buttonsZ9}, # CSf2-a
9884
- #101 Func1Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-a
9885
- #103 Func1Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-a
9886
- #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
9887
- #109 Func1Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-a
9888
- #111 Func1Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-a
9889
- #113 Func1Button & Func1ButtonPlayback submenu: Rating # CSf2-a & CSf3a 0=>'Candidate For Deletion' 6=>''None'
9890
9886
  115 => { Name => 'Func2Button', %buttonsZ9}, # CSf2-b
9891
- #117 Func2Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-b
9892
- #119 Func2Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-b
9893
- #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
9894
- #125 Func2Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-b
9895
- #127 Func2Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-b
9896
- #129 Func2Button & Func2ButtonPlayback submenu: Rating # CSf2-b & CSf3b 0=>'Candidate For Deletion' 6=>''None'
9897
9887
  131 => { Name => 'AFOnButton', %buttonsZ9}, # CSf2-c
9898
9888
  143 => { Name => 'SubSelector', %buttonsZ9, Unknown => 1}, # CSf2-g
9899
9889
  155 => { Name => 'AssignMovieRecordButton', %buttonsZ9, Unknown => 1}, # CSf2-m
@@ -9936,6 +9926,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9936
9926
  193 => { Name => 'ReverseIndicators', PrintConv => { 0 => '+ 0 -', 1 => '- 0 +' }, Unknown => 1 }, # CSf7
9937
9927
  195 => { Name => 'MovieFunc1Button', %buttonsZ9}, # CSg2-a
9938
9928
  199 => { Name => 'MovieFunc2Button', %buttonsZ9}, # CSg2-b
9929
+
9939
9930
  203 => { Name => 'MovieAF-OnButton', %buttonsZ9}, # CSg2-f
9940
9931
  215 => { # CSg2-z
9941
9932
  Name => 'MovieLensControlRing',
@@ -9968,54 +9959,27 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9968
9959
  261 => { Name => 'FocusPointPersistence', PrintConv => {0 => 'Auto', 1 => 'Off'} }, # CSa7
9969
9960
  263 => { Name => 'AutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
9970
9961
  267 => { Name => 'CHModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1a
9971
- 269.1 => { Name => 'LimitReleaseModeSelCL', Mask => 0x02, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-a
9972
- 269.2 => { Name => 'LimitReleaseModeSelCH', Mask => 0x04, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-b
9973
- 269.3 => { Name => 'LimitReleaseModeSelC30', Mask => 0x10, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-e
9974
- 269.4 => { Name => 'LimitReleaseModeSelC120', Mask => 0x40, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-c
9975
- 269.5 => { Name => 'LimitReleaseModeSelSelf', Mask => 0x80, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-d
9976
9962
  273 => { Name => 'FlashBurstPriority', PrintConv => { 0 => 'Frame Rate',1 => 'Exposure'}, Unknown => 1 }, # CSe8
9977
- 277 => { Name => 'VerticalFuncButton', %buttonsZ9}, # CSf2-c
9978
- 281 => { Name => 'Func3Button', %buttonsZ9}, # CSf2-c
9979
- 285 => { Name => 'VerticalAFOnButton', %buttonsZ9}, # CSf2-l
9980
- 293 => { Name => 'VerticalMultiSelectorPlaybackMode', PrintConv => { 0 => 'Image Scroll L/R', 1 => 'Image Scroll Up/Down' }, Unknown => 1}, # CSf3-j
9981
- 295 => { Name => 'MovieFunc3Button', %buttonsZ9}, # CSg2-c
9982
9963
  335 => { Name => 'LimitAF-AreaModeSelDynamic_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9983
9964
  336 => { Name => 'LimitAF-AreaModeSelDynamic_M', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9984
9965
  337 => { Name => 'LimitAF-AreaModeSelDynamic_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9985
9966
  339 => { Name => 'LimitAF-AreaModeSel3DTracking', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9986
- 341 => { Name => 'PlaybackFlickUp', PrintConv => \%flicksZ9, Unknown => 1}, # CSf11-a
9987
- 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
9988
9969
  349 => { Name => 'ISOStepSize', PrintConv => \%thirdHalfFull }, # CSb1
9989
9970
  355 => { Name => 'ReverseFocusRing', PrintConv => { 0 => 'Not Reversed', 1 => 'Reversed' } }, # CSf8
9990
9971
  356 => { Name => 'EVFImageFrame', PrintConv => \%offOn, Unknown => 1 }, # CSd14
9991
9972
  357 => { Name => 'EVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSd15
9992
9973
  359 => { Name => 'VirtualHorizonStyle', PrintConv => {0 => 'Type A (Cockpit)', 1 => 'Type B (Sides)' }, Unknown => 1}, #CSd16
9993
- 373 => { Name => 'Func4Button', %buttonsZ9, Unknown => 1}, # CSf2-e
9994
- 379 => { Name => 'AudioButton', %buttonsZ9, Unknown => 1}, # CSf2-i
9995
- 381 => { Name => 'QualityButton', %buttonsZ9, Unknown => 1}, # CSf2-j
9996
- 399 => { Name => 'VerticalMultiSelector', %buttonsZ9, Unknown => 1}, # CSf2-k
9997
9974
  421 => { Name => 'Func1ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-a
9998
9975
  423 => { Name => 'Func2ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-b
9999
- 425 => { Name => 'Func3ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-c
10000
- 431 => { Name => 'Func4ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-e
10001
9976
  437 => { Name => 'MovieRecordButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-m
10002
- 439 => { Name => 'VerticalFuncButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-d
10003
- 441 => { Name => 'AudioButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-g
10004
- 447 => { Name => 'QualityButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-h
10005
9977
  467 => { Name => 'FocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
10006
- 453 => { Name => 'WhiteBalanceButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-i
10007
9978
  459 => { Name => 'CommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-k
10008
9979
  463 => { Name => 'SubCommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-l
10009
9980
  469 => { Name => 'ControlRingResponse', PrintConv => { 0 => 'High', 1 => 'Low' } }, # CSf10
10010
- 481 => { Name => 'VerticalMovieFuncButton', %buttonsZ9, Unknown => 1}, # CSg2-d
10011
- 505 => { Name => 'VerticalMovieAFOnButton', %buttonsZ9, Unknown => 1}, # CSg2-l
9981
+
10012
9982
  515 => { Name => 'MovieAFAreaMode', %buttonsZ9, Unknown => 1}, # CSg2-e
10013
- #521 => { Name => 'MovieLimitAF-AreaModeSelWideAF_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-a
10014
- #522 => { Name => 'MovieLimitAF-AreaModeSelWideAF_W', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-b
10015
- #523 => { Name => 'MovieLimitAF-AreaModeSelSubjectTrack', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-c
10016
- #524 => { Name => 'MovieLimitAFAreaModeSelAuto', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-d
10017
- #525 => { Name => 'MovieAutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
10018
- 527 => { Name => 'HDMIViewAssist', PrintConv => \%offOn, Unknown => 1 }, # CSg8
10019
9983
  529 => { # CSg9-a
10020
9984
  Name => 'ZebraPatternToneRange',
10021
9985
  Unknown => 1,
@@ -10026,11 +9990,10 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
10026
9990
  2 => 'Midtones',
10027
9991
  },
10028
9992
  },
10029
- 531 => { Name => 'MovieZebraPattern', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} != 0', PrintConv => {0 => 'Pattern 1', 1 => 'Pattern 2'}, Unknown => 1}, # CSg9-b
10030
- 533 => { Name => 'MovieHighlightDisplayThreshold', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 1', Unknown => 1 }, # CSg9-c 120-25 when highlights are the selected tone range
10031
- 535 => { Name => 'MovieMidtoneDisplayValue', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', Unknown => 1 }, # CSg9-d1 when midtones are the selected tone range
10032
- 537 => { Name => 'MovieMidtoneDisplayRange', Condition => '$$self{ZebraPatternToneRange} and $$self{ZebraPatternToneRange} == 2', PrintConv => '"+/-$val"', Unknown => 1 }, # CSg9-d1 when midtones are the selected tone range
10033
- #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
10034
9997
  541 => { Name => 'MovieEVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSg11
10035
9998
  549 => { Name => 'MovieShutterSpeedLock', PrintConv => \%offOn, Unknown => 1}, # CSg4-a
10036
9999
  550 => { Name => 'MovieFocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
@@ -10045,7 +10008,6 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
10045
10008
  2 => 'ISO',
10046
10009
  },
10047
10010
  },
10048
- #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.
10049
10011
  585 => { Name => 'StarlightView', PrintConv => \%offOn, Unknown => 1 }, # CSd9
10050
10012
  587 => { # CSd10-a
10051
10013
  Name => 'EVFWarmDisplayMode',
@@ -10073,8 +10035,847 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
10073
10035
  },
10074
10036
  601 => { Name => 'MovieApertureLock', PrintConv => \%offOn, Unknown => 1 }, # CSg4-b
10075
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
10076
10058
  );
10077
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
+ );
10078
10879
  1; # end
10079
10880
 
10080
10881
  __END__