diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala
index 3752bdd34..f73df46a7 100644
--- a/rtdata/languages/Catala
+++ b/rtdata/languages/Catala
@@ -1381,7 +1381,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: -
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1863,7 +1863,6 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: -
!TP_RGBCURVES_LUMAMODE_TOOLTIP;Luminosity mode allows to vary the contribution of R, G and B channels to the luminosity of the image, without altering image color.
!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter
!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_WAVELET_1;Level 1
!TP_WAVELET_2;Level 2
!TP_WAVELET_3;Level 3
diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified)
index 81226c2bf..72753272c 100644
--- a/rtdata/languages/Chinese (Simplified)
+++ b/rtdata/languages/Chinese (Simplified)
@@ -1319,7 +1319,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: -
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1829,7 +1829,6 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: -
!TP_RETINEX_VIEW_TRAN;Transmission - Auto
!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed
!TP_RETINEX_VIEW_UNSHARP;Unsharp mask
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
!TP_SHARPENMICRO_UNIFORMITY;Uniformity
diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional)
index 49ef3bc77..a8101c373 100644
--- a/rtdata/languages/Chinese (Traditional)
+++ b/rtdata/languages/Chinese (Traditional)
@@ -1125,7 +1125,7 @@ TP_WBALANCE_TEMPERATURE;色溫
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1804,7 +1804,6 @@ TP_WBALANCE_TEMPERATURE;色溫
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk
index 3a008127b..43f10eacd 100644
--- a/rtdata/languages/Dansk
+++ b/rtdata/languages/Dansk
@@ -1123,7 +1123,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1803,7 +1803,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK)
index 4b7e2979f..083b4247e 100644
--- a/rtdata/languages/English (UK)
+++ b/rtdata/languages/English (UK)
@@ -1027,7 +1027,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!PREFERENCES_FLUOF11;Fluorescent F11
!PREFERENCES_FORIMAGE;For non-raw photos
!PREFERENCES_FORRAW;For raw photos
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GIMPPATH;GIMP installation directory
!PREFERENCES_GREY;Output device's Yb luminance (%)
@@ -1794,7 +1794,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!TP_SHARPENING_RLD_DAMPING;Damping
!TP_SHARPENING_RLD_ITERATIONS;Iterations
!TP_SHARPENING_THRESHOLD;Threshold
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENING_USM;Unsharp Mask
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US)
index 3691fc6d4..de97d7721 100644
--- a/rtdata/languages/English (US)
+++ b/rtdata/languages/English (US)
@@ -958,7 +958,7 @@
!PREFERENCES_FLUOF11;Fluorescent F11
!PREFERENCES_FORIMAGE;For non-raw photos
!PREFERENCES_FORRAW;For raw photos
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GIMPPATH;GIMP installation directory
!PREFERENCES_GREY;Output device's Yb luminance (%)
@@ -1785,7 +1785,6 @@
!TP_SHARPENING_RLD_DAMPING;Damping
!TP_SHARPENING_RLD_ITERATIONS;Iterations
!TP_SHARPENING_THRESHOLD;Threshold
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENING_USM;Unsharp Mask
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol
index 24bd6c21d..54a2fde5b 100644
--- a/rtdata/languages/Espanol
+++ b/rtdata/languages/Espanol
@@ -1736,7 +1736,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: -
!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4
!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two.
!PREFERENCES_EXPAUT;Expert
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREYSC;Scene Yb luminance (%)
!PREFERENCES_GREYSC18;Yb=18 CIE L#50
diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara
index 8399eb268..7ebb655f5 100644
--- a/rtdata/languages/Euskara
+++ b/rtdata/languages/Euskara
@@ -1123,7 +1123,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1803,7 +1803,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek
index 5adbda9f6..4cb598b53 100644
--- a/rtdata/languages/Greek
+++ b/rtdata/languages/Greek
@@ -1122,7 +1122,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1802,7 +1802,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew
index a8a387782..89e7c0eae 100644
--- a/rtdata/languages/Hebrew
+++ b/rtdata/languages/Hebrew
@@ -1123,7 +1123,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1803,7 +1803,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano
index f6241e8dd..70739f62d 100644
--- a/rtdata/languages/Italiano
+++ b/rtdata/languages/Italiano
@@ -1607,7 +1607,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: -
!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two.
!PREFERENCES_EXPAUT;Expert
!PREFERENCES_FILMSIMULATION;Film Simulation
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREYSC;Scene Yb luminance (%)
!PREFERENCES_GREYSC18;Yb=18 CIE L#50
diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian
index c756e6741..a3022fab7 100644
--- a/rtdata/languages/Latvian
+++ b/rtdata/languages/Latvian
@@ -1123,7 +1123,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1803,7 +1803,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar
index 7d6f6be3a..c102d9423 100644
--- a/rtdata/languages/Magyar
+++ b/rtdata/languages/Magyar
@@ -1317,7 +1317,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés -
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1856,7 +1856,6 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés -
!TP_RGBCURVES_LUMAMODE_TOOLTIP;Luminosity mode allows to vary the contribution of R, G and B channels to the luminosity of the image, without altering image color.
!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter
!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH
!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones
!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple
diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM
index 166edeff1..6b2901927 100644
--- a/rtdata/languages/Norsk BM
+++ b/rtdata/languages/Norsk BM
@@ -1122,7 +1122,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1802,7 +1802,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish
index e0bad2dff..0b3bbe5f0 100644
--- a/rtdata/languages/Polish
+++ b/rtdata/languages/Polish
@@ -1684,7 +1684,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: -
!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4
!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two.
!PREFERENCES_EXPAUT;Expert
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREYSC;Scene Yb luminance (%)
!PREFERENCES_GREYSC18;Yb=18 CIE L#50
diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters)
index a3675ab7b..e4bd5fc83 100644
--- a/rtdata/languages/Polish (Latin Characters)
+++ b/rtdata/languages/Polish (Latin Characters)
@@ -1684,7 +1684,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: -
!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4
!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two.
!PREFERENCES_EXPAUT;Expert
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREYSC;Scene Yb luminance (%)
!PREFERENCES_GREYSC18;Yb=18 CIE L#50
diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil)
index d7a4af77d..f12205c7e 100644
--- a/rtdata/languages/Portugues (Brasil)
+++ b/rtdata/languages/Portugues (Brasil)
@@ -1123,7 +1123,7 @@ TP_WBALANCE_TEMPERATURE;Temperatura
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1803,7 +1803,6 @@ TP_WBALANCE_TEMPERATURE;Temperatura
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian
index c42c45e44..139d87b49 100644
--- a/rtdata/languages/Russian
+++ b/rtdata/languages/Russian
@@ -1561,7 +1561,7 @@ ZOOMPANEL_ZOOMOUT;Удалить -
!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two.
!PREFERENCES_EXPAUT;Expert
!PREFERENCES_FILMSIMULATION;Film Simulation
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREYSC;Scene Yb luminance (%)
!PREFERENCES_GREYSC18;Yb=18 CIE L#50
diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters)
index 4540da0b3..89707bca4 100644
--- a/rtdata/languages/Serbian (Cyrilic Characters)
+++ b/rtdata/languages/Serbian (Cyrilic Characters)
@@ -1727,7 +1727,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике -
!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two.
!PREFERENCES_EXPAUT;Expert
!PREFERENCES_FILMSIMULATION;Film Simulation
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREYSC;Scene Yb luminance (%)
!PREFERENCES_GREYSC18;Yb=18 CIE L#50
diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters)
index e469a3cd7..c40fb9577 100644
--- a/rtdata/languages/Serbian (Latin Characters)
+++ b/rtdata/languages/Serbian (Latin Characters)
@@ -1727,7 +1727,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike -
!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two.
!PREFERENCES_EXPAUT;Expert
!PREFERENCES_FILMSIMULATION;Film Simulation
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREYSC;Scene Yb luminance (%)
!PREFERENCES_GREYSC18;Yb=18 CIE L#50
diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak
index 98b726e42..fc119da9b 100644
--- a/rtdata/languages/Slovak
+++ b/rtdata/languages/Slovak
@@ -1173,7 +1173,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť -
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1811,7 +1811,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť -
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi
index 6f5d0ed27..e86128dbd 100644
--- a/rtdata/languages/Suomi
+++ b/rtdata/languages/Suomi
@@ -1124,7 +1124,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1803,7 +1803,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish
index efb0a6d9f..3003f459f 100644
--- a/rtdata/languages/Turkish
+++ b/rtdata/languages/Turkish
@@ -1123,7 +1123,7 @@ TP_WBALANCE_TEMPERATURE;Isı
!PREFERENCES_FLUOF2;Fluorescent F2
!PREFERENCES_FLUOF7;Fluorescent F7
!PREFERENCES_FLUOF11;Fluorescent F11
-!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Editor's panel and the File Browser
+!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser
!PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser.
!PREFERENCES_GREY;Output device's Yb luminance (%)
!PREFERENCES_GREY05;Yb=05 CIE L#30
@@ -1802,7 +1802,6 @@ TP_WBALANCE_TEMPERATURE;Isı
!TP_SHARPENEDGE_LABEL;Edges
!TP_SHARPENEDGE_PASSES;Iterations
!TP_SHARPENEDGE_THREE;Luminance only
-!TP_SHARPENING_TOOLTIP;Expect a slightly different effect when using with CIECAM02. If difference is observed, adjust to taste.
!TP_SHARPENMICRO_AMOUNT;Quantity
!TP_SHARPENMICRO_LABEL;Microcontrast
!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5
diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt
index 1f4f3375f..477ccecae 100644
--- a/rtengine/CMakeLists.txt
+++ b/rtengine/CMakeLists.txt
@@ -14,7 +14,7 @@ set (RTENGINESOURCEFILES colortemp.cc curves.cc flatcurves.cc diagonalcurves.cc
stdimagesource.cc myfile.cc iccjpeg.cc improccoordinator.cc pipettebuffer.cc coord.cc
processingjob.cc rtthumbnail.cc utils.cc labimage.cc slicer.cc cieimage.cc
iplab2rgb.cc ipsharpen.cc iptransform.cc ipresize.cc ipvibrance.cc
- imagedimensions.cc jpeg_memsrc.cc jdatasrc.cc iimage.cc
+ imagedimensions.cc jpeg_ijg/jpeg_memsrc.cc jdatasrc.cc iimage.cc
EdgePreservingDecomposition.cc cplx_wavelet_dec.cc FTblockDN.cc
PF_correct_RT.cc previewimage.cc ipwavelet.cc
dirpyr_equalizer.cc
diff --git a/rtengine/jpeg_ijg/README b/rtengine/jpeg_ijg/README
new file mode 100644
index 000000000..4c8e82e9b
--- /dev/null
+++ b/rtengine/jpeg_ijg/README
@@ -0,0 +1,375 @@
+The Independent JPEG Group's JPEG software
+==========================================
+
+README for release 9b of 17-Jan-2016
+====================================
+
+This distribution contains the ninth public release of the Independent JPEG
+Group's free JPEG software. You are welcome to redistribute this software and
+to use it for any purpose, subject to the conditions under LEGAL ISSUES, below.
+
+This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone,
+Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson,
+Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers,
+and other members of the Independent JPEG Group.
+
+IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee
+(previously known as JPEG, together with ITU-T SG16).
+
+
+DOCUMENTATION ROADMAP
+=====================
+
+This file contains the following sections:
+
+OVERVIEW General description of JPEG and the IJG software.
+LEGAL ISSUES Copyright, lack of warranty, terms of distribution.
+REFERENCES Where to learn more about JPEG.
+ARCHIVE LOCATIONS Where to find newer versions of this software.
+ACKNOWLEDGMENTS Special thanks.
+FILE FORMAT WARS Software *not* to get.
+TO DO Plans for future IJG releases.
+
+Other documentation files in the distribution are:
+
+User documentation:
+ install.txt How to configure and install the IJG software.
+ usage.txt Usage instructions for cjpeg, djpeg, jpegtran,
+ rdjpgcom, and wrjpgcom.
+ *.1 Unix-style man pages for programs (same info as usage.txt).
+ wizard.txt Advanced usage instructions for JPEG wizards only.
+ change.log Version-to-version change highlights.
+Programmer and internal documentation:
+ libjpeg.txt How to use the JPEG library in your own programs.
+ example.c Sample code for calling the JPEG library.
+ structure.txt Overview of the JPEG library's internal structure.
+ filelist.txt Road map of IJG files.
+ coderules.txt Coding style rules --- please read if you contribute code.
+
+Please read at least the files install.txt and usage.txt. Some information
+can also be found in the JPEG FAQ (Frequently Asked Questions) article. See
+ARCHIVE LOCATIONS below to find out where to obtain the FAQ article.
+
+If you want to understand how the JPEG code works, we suggest reading one or
+more of the REFERENCES, then looking at the documentation files (in roughly
+the order listed) before diving into the code.
+
+
+OVERVIEW
+========
+
+This package contains C software to implement JPEG image encoding, decoding,
+and transcoding. JPEG (pronounced "jay-peg") is a standardized compression
+method for full-color and grayscale images.
+
+This software implements JPEG baseline, extended-sequential, and progressive
+compression processes. Provision is made for supporting all variants of these
+processes, although some uncommon parameter settings aren't implemented yet.
+We have made no provision for supporting the hierarchical or lossless
+processes defined in the standard.
+
+We provide a set of library routines for reading and writing JPEG image files,
+plus two sample applications "cjpeg" and "djpeg", which use the library to
+perform conversion between JPEG and some other popular image file formats.
+The library is intended to be reused in other applications.
+
+In order to support file conversion and viewing software, we have included
+considerable functionality beyond the bare JPEG coding/decoding capability;
+for example, the color quantization modules are not strictly part of JPEG
+decoding, but they are essential for output to colormapped file formats or
+colormapped displays. These extra functions can be compiled out of the
+library if not required for a particular application.
+
+We have also included "jpegtran", a utility for lossless transcoding between
+different JPEG processes, and "rdjpgcom" and "wrjpgcom", two simple
+applications for inserting and extracting textual comments in JFIF files.
+
+The emphasis in designing this software has been on achieving portability and
+flexibility, while also making it fast enough to be useful. In particular,
+the software is not intended to be read as a tutorial on JPEG. (See the
+REFERENCES section for introductory material.) Rather, it is intended to
+be reliable, portable, industrial-strength code. We do not claim to have
+achieved that goal in every aspect of the software, but we strive for it.
+
+We welcome the use of this software as a component of commercial products.
+No royalty is required, but we do ask for an acknowledgement in product
+documentation, as described under LEGAL ISSUES.
+
+
+LEGAL ISSUES
+============
+
+In plain English:
+
+1. We don't promise that this software works. (But if you find any bugs,
+ please let us know!)
+2. You can use this software for whatever you want. You don't have to pay us.
+3. You may not pretend that you wrote this software. If you use it in a
+ program, you must acknowledge somewhere in your documentation that
+ you've used the IJG code.
+
+In legalese:
+
+The authors make NO WARRANTY or representation, either express or implied,
+with respect to this software, its quality, accuracy, merchantability, or
+fitness for a particular purpose. This software is provided "AS IS", and you,
+its user, assume the entire risk as to its quality and accuracy.
+
+This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding.
+All Rights Reserved except as specified below.
+
+Permission is hereby granted to use, copy, modify, and distribute this
+software (or portions thereof) for any purpose, without fee, subject to these
+conditions:
+(1) If any part of the source code for this software is distributed, then this
+README file must be included, with this copyright and no-warranty notice
+unaltered; and any additions, deletions, or changes to the original files
+must be clearly indicated in accompanying documentation.
+(2) If only executable code is distributed, then the accompanying
+documentation must state that "this software is based in part on the work of
+the Independent JPEG Group".
+(3) Permission for use of this software is granted only if the user accepts
+full responsibility for any undesirable consequences; the authors accept
+NO LIABILITY for damages of any kind.
+
+These conditions apply to any software derived from or based on the IJG code,
+not just to the unmodified library. If you use our work, you ought to
+acknowledge us.
+
+Permission is NOT granted for the use of any IJG author's name or company name
+in advertising or publicity relating to this software or products derived from
+it. This software may be referred to only as "the Independent JPEG Group's
+software".
+
+We specifically permit and encourage the use of this software as the basis of
+commercial products, provided that all warranty or liability claims are
+assumed by the product vendor.
+
+
+The Unix configuration script "configure" was produced with GNU Autoconf.
+It is copyright by the Free Software Foundation but is freely distributable.
+The same holds for its supporting scripts (config.guess, config.sub,
+ltmain.sh). Another support script, install-sh, is copyright by X Consortium
+but is also freely distributable.
+
+The IJG distribution formerly included code to read and write GIF files.
+To avoid entanglement with the Unisys LZW patent (now expired), GIF reading
+support has been removed altogether, and the GIF writer has been simplified
+to produce "uncompressed GIFs". This technique does not use the LZW
+algorithm; the resulting GIF files are larger than usual, but are readable
+by all standard GIF decoders.
+
+
+REFERENCES
+==========
+
+We recommend reading one or more of these references before trying to
+understand the innards of the JPEG software.
+
+The best short technical introduction to the JPEG compression algorithm is
+ Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
+ Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.
+(Adjacent articles in that issue discuss MPEG motion picture compression,
+applications of JPEG, and related topics.) If you don't have the CACM issue
+handy, a PDF file containing a revised version of Wallace's article is
+available at http://www.ijg.org/files/Wallace.JPEG.pdf. The file (actually
+a preprint for an article that appeared in IEEE Trans. Consumer Electronics)
+omits the sample images that appeared in CACM, but it includes corrections
+and some added material. Note: the Wallace article is copyright ACM and IEEE,
+and it may not be used for commercial purposes.
+
+A somewhat less technical, more leisurely introduction to JPEG can be found in
+"The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by
+M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides
+good explanations and example C code for a multitude of compression methods
+including JPEG. It is an excellent source if you are comfortable reading C
+code but don't know much about data compression in general. The book's JPEG
+sample code is far from industrial-strength, but when you are ready to look
+at a full implementation, you've got one here...
+
+The best currently available description of JPEG is the textbook "JPEG Still
+Image Data Compression Standard" by William B. Pennebaker and Joan L.
+Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1.
+Price US$59.95, 638 pp. The book includes the complete text of the ISO JPEG
+standards (DIS 10918-1 and draft DIS 10918-2).
+Although this is by far the most detailed and comprehensive exposition of
+JPEG publicly available, we point out that it is still missing an explanation
+of the most essential properties and algorithms of the underlying DCT
+technology.
+If you think that you know about DCT-based JPEG after reading this book,
+then you are in delusion. The real fundamentals and corresponding potential
+of DCT-based JPEG are not publicly known so far, and that is the reason for
+all the mistaken developments taking place in the image coding domain.
+
+The original JPEG standard is divided into two parts, Part 1 being the actual
+specification, while Part 2 covers compliance testing methods. Part 1 is
+titled "Digital Compression and Coding of Continuous-tone Still Images,
+Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS
+10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of
+Continuous-tone Still Images, Part 2: Compliance testing" and has document
+numbers ISO/IEC IS 10918-2, ITU-T T.83.
+IJG JPEG 8 introduced an implementation of the JPEG SmartScale extension
+which is specified in two documents: A contributed document at ITU and ISO
+with title "ITU-T JPEG-Plus Proposal for Extending ITU-T T.81 for Advanced
+Image Coding", April 2006, Geneva, Switzerland. The latest version of this
+document is Revision 3. And a contributed document ISO/IEC JTC1/SC29/WG1 N
+5799 with title "Evolution of JPEG", June/July 2011, Berlin, Germany.
+IJG JPEG 9 introduces a reversible color transform for improved lossless
+compression which is described in a contributed document ISO/IEC JTC1/SC29/
+WG1 N 6080 with title "JPEG 9 Lossless Coding", June/July 2012, Paris,
+France.
+
+The JPEG standard does not specify all details of an interchangeable file
+format. For the omitted details we follow the "JFIF" conventions, version 2.
+JFIF version 1 has been adopted as Recommendation ITU-T T.871 (05/2011) :
+Information technology - Digital compression and coding of continuous-tone
+still images: JPEG File Interchange Format (JFIF). It is available as a
+free download in PDF file format from http://www.itu.int/rec/T-REC-T.871.
+A PDF file of the older JFIF document is available at
+http://www.w3.org/Graphics/JPEG/jfif3.pdf.
+
+The TIFF 6.0 file format specification can be obtained by FTP from
+ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme
+found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems.
+IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6).
+Instead, we recommend the JPEG design proposed by TIFF Technical Note #2
+(Compression tag 7). Copies of this Note can be obtained from
+http://www.ijg.org/files/. It is expected that the next revision
+of the TIFF spec will replace the 6.0 JPEG design with the Note's design.
+Although IJG's own code does not support TIFF/JPEG, the free libtiff library
+uses our library to implement TIFF/JPEG per the Note.
+
+
+ARCHIVE LOCATIONS
+=================
+
+The "official" archive site for this software is www.ijg.org.
+The most recent released version can always be found there in
+directory "files". This particular version will be archived as
+http://www.ijg.org/files/jpegsrc.v9b.tar.gz, and in Windows-compatible
+"zip" archive format as http://www.ijg.org/files/jpegsr9b.zip.
+
+The JPEG FAQ (Frequently Asked Questions) article is a source of some
+general information about JPEG.
+It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq/
+and other news.answers archive sites, including the official news.answers
+archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/.
+If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu
+with body
+ send usenet/news.answers/jpeg-faq/part1
+ send usenet/news.answers/jpeg-faq/part2
+
+
+ACKNOWLEDGMENTS
+===============
+
+Thank to Juergen Bruder for providing me with a copy of the common DCT
+algorithm article, only to find out that I had come to the same result
+in a more direct and comprehensible way with a more generative approach.
+
+Thank to Istvan Sebestyen and Joan L. Mitchell for inviting me to the
+ITU JPEG (Study Group 16) meeting in Geneva, Switzerland.
+
+Thank to Thomas Wiegand and Gary Sullivan for inviting me to the
+Joint Video Team (MPEG & ITU) meeting in Geneva, Switzerland.
+
+Thank to Thomas Richter and Daniel Lee for inviting me to the
+ISO/IEC JTC1/SC29/WG1 (previously known as JPEG, together with ITU-T SG16)
+meeting in Berlin, Germany.
+
+Thank to John Korejwa and Massimo Ballerini for inviting me to
+fruitful consultations in Boston, MA and Milan, Italy.
+
+Thank to Hendrik Elstner, Roland Fassauer, Simone Zuck, Guenther
+Maier-Gerber, Walter Stoeber, Fred Schmitz, and Norbert Braunagel
+for corresponding business development.
+
+Thank to Nico Zschach and Dirk Stelling of the technical support team
+at the Digital Images company in Halle for providing me with extra
+equipment for configuration tests.
+
+Thank to Richard F. Lyon (then of Foveon Inc.) for fruitful
+communication about JPEG configuration in Sigma Photo Pro software.
+
+Thank to Andrew Finkenstadt for hosting the ijg.org site.
+
+Last but not least special thank to Thomas G. Lane for the original
+design and development of this singular software package.
+
+
+FILE FORMAT WARS
+================
+
+The ISO/IEC JTC1/SC29/WG1 standards committee (previously known as JPEG,
+together with ITU-T SG16) currently promotes different formats containing
+the name "JPEG" which is misleading because these formats are incompatible
+with original DCT-based JPEG and are based on faulty technologies.
+IJG therefore does not and will not support such momentary mistakes
+(see REFERENCES).
+There exist also distributions under the name "OpenJPEG" promoting such
+kind of formats which is misleading because they don't support original
+JPEG images.
+We have no sympathy for the promotion of inferior formats. Indeed, one of
+the original reasons for developing this free software was to help force
+convergence on common, interoperable format standards for JPEG files.
+Don't use an incompatible file format!
+(In any case, our decoder will remain capable of reading existing JPEG
+image files indefinitely.)
+
+The ISO committee pretends to be "responsible for the popular JPEG" in their
+public reports which is not true because they don't respond to actual
+requirements for the maintenance of the original JPEG specification.
+Furthermore, the ISO committee pretends to "ensure interoperability" with
+their standards which is not true because their "standards" support only
+application-specific and proprietary use cases and contain mathematically
+incorrect code.
+
+There are currently different distributions in circulation containing the
+name "libjpeg" which is misleading because they don't have the features and
+are incompatible with formats supported by actual IJG libjpeg distributions.
+One of those fakes is released by members of the ISO committee and just uses
+the name of libjpeg for misdirection of people, similar to the abuse of the
+name JPEG as described above, while having nothing in common with actual IJG
+libjpeg distributions and containing mathematically incorrect code.
+The other one claims to be a "derivative" or "fork" of the original libjpeg,
+but violates the license conditions as described under LEGAL ISSUES above
+and violates basic C programming properties.
+We have no sympathy for the release of misleading, incorrect and illegal
+distributions derived from obsolete code bases.
+Don't use an obsolete code base!
+
+According to the UCC (Uniform Commercial Code) law, IJG has the lawful and
+legal right to foreclose on certain standardization bodies and other
+institutions or corporations that knowingly perform substantial and
+systematic deceptive acts and practices, fraud, theft, and damaging of the
+value of the people of this planet without their knowing, willing and
+intentional consent.
+The titles, ownership, and rights of these institutions and all their assets
+are now duly secured and held in trust for the free people of this planet.
+People of the planet, on every country, may have a financial interest in
+the assets of these former principals, agents, and beneficiaries of the
+foreclosed institutions and corporations.
+IJG asserts what is: that each man, woman, and child has unalienable value
+and rights granted and deposited in them by the Creator and not any one of
+the people is subordinate to any artificial principality, corporate fiction
+or the special interest of another without their appropriate knowing,
+willing and intentional consent made by contract or accommodation agreement.
+IJG expresses that which already was.
+The people have already determined and demanded that public administration
+entities, national governments, and their supporting judicial systems must
+be fully transparent, accountable, and liable.
+IJG has secured the value for all concerned free people of the planet.
+
+A partial list of foreclosed institutions and corporations ("Hall of Shame")
+is currently prepared and will be published later.
+
+
+TO DO
+=====
+
+Version 9 is the second release of a new generation JPEG standard
+to overcome the limitations of the original JPEG specification,
+and is the first true source reference JPEG codec.
+More features are being prepared for coming releases...
+
+Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org.
diff --git a/rtengine/jpeg_memsrc.cc b/rtengine/jpeg_ijg/jpeg_memsrc.cc
similarity index 99%
rename from rtengine/jpeg_memsrc.cc
rename to rtengine/jpeg_ijg/jpeg_memsrc.cc
index 5459af8b6..3e245b87e 100644
--- a/rtengine/jpeg_memsrc.cc
+++ b/rtengine/jpeg_ijg/jpeg_memsrc.cc
@@ -22,7 +22,7 @@
#include
#include
#include
-#include "jpeg.h"
+#include "../jpeg.h"
/* Expanded data source object for memory input */
diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc
index 77e260985..af42ce8b0 100644
--- a/rtengine/rtthumbnail.cc
+++ b/rtengine/rtthumbnail.cc
@@ -55,7 +55,7 @@ namespace
? raw_image.get_thumbWidth() * raw_image.get_thumbHeight() * (raw_image.get_thumbBPS() / 8) * 3
: raw_image.get_thumbLength();
- return raw_image.get_thumbOffset() + length < raw_image.get_file()->size;
+ return raw_image.get_thumbOffset() + length <= raw_image.get_file()->size;
}
}
diff --git a/rtexif/nikonattribs.cc b/rtexif/nikonattribs.cc
index 01b825882..9bbeee8ce 100644
--- a/rtexif/nikonattribs.cc
+++ b/rtexif/nikonattribs.cc
@@ -322,526 +322,9 @@ NAAFInfoInterpreter naAFInfoInterpreter;
class NALensDataInterpreter : public Interpreter
{
- std::map lenses;
+ static const std::map lenses;
+
public:
- NALensDataInterpreter ()
- {
- /* The key is a composite string made of 8 HEX bytes
- * LensIDNumber LensFStops MinFocalLength MaxFocalLength MaxApertureAtMinFocal MaxApertureAtMaxFocal MCUVersion and LensType */
- lenses["00 00 00 00 00 00 00 01"] = "Manual Lens No CPU";
- lenses["00 00 00 00 00 00 E1 12"] = "TC-17E II";
- lenses["00 00 00 00 00 00 F1 0C"] = "TC-14E [II] or Sigma APO Tele Converter 1.4x EX DG or Kenko Teleplus PRO 300 DG 1.4x";
- lenses["00 00 00 00 00 00 F2 18"] = "TC-20E [II] or Sigma APO Tele Converter 2x EX DG or Kenko Teleplus PRO 300 DG 2.0x";
- lenses["00 00 48 48 53 53 00 01"] = "Loreo 40mm f/11-22 3D Lens in a Cap 9005";
- lenses["00 36 1C 2D 34 3C 00 06"] = "Tamron SP AF 11-18mm f/4.5-5.6 Di II LD Aspherical (IF) (A13)";
- lenses["00 3C 1F 37 30 30 00 06"] = "Tokina AT-X 124 AF PRO DX (AF 12-24mm f/4)";
- lenses["00 3C 2B 44 30 30 00 06"] = "Tokina AT-X 17-35 f/4 PRO FX (AF 17-35mm f/4)";
- lenses["00 3C 5C 80 30 30 00 0E"] = "Tokina AT-X 70-200 f/4 FX VCM-S (AF 70-200mm f/4)";
- lenses["00 3E 80 A0 38 3F 00 02"] = "Tamron SP AF 200-500mm f/5-6.3 Di LD (IF) (A08)";
- lenses["00 3F 2D 80 2B 40 00 06"] = "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical (IF) (A14)";
- lenses["00 3F 2D 80 2C 40 00 06"] = "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical (IF) Macro (A14)";
- lenses["00 3F 80 A0 38 3F 00 02"] = "Tamron SP AF 200-500mm f/5-6.3 Di (A08)";
- lenses["00 40 11 11 2C 2C 00 00"] = "Samyang 8mm f/3.5 Fish-Eye";
- lenses["00 40 18 2B 2C 34 00 06"] = "Tokina AT-X 107 AF DX Fisheye (AF 10-17mm f/3.5-4.5)";
- lenses["00 40 2A 72 2C 3C 00 06"] = "Tokina AT-X 16.5-135 DX (AF 16.5-135mm f/3.5-5.6)";
- lenses["00 40 2B 2B 2C 2C 00 02"] = "Tokina AT-X 17 AF PRO (AF 17mm f/3.5)";
- lenses["00 40 2D 2D 2C 2C 00 00"] = "Carl Zeiss Distagon T* 3.5/18 ZF.2";
- lenses["00 40 2D 80 2C 40 00 06"] = "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical (IF) Macro (A14NII)";
- lenses["00 40 2D 88 2C 40 00 06"] = "Tamron AF 18-250mm f/3.5-6.3 Di II LD Aspherical (IF) Macro (A18NII)";
- lenses["00 40 2D 88 2C 40 62 06"] = "Tamron AF 18-250mm f/3.5-6.3 Di II LD Aspherical (IF) Macro (A18)";
- lenses["00 40 31 31 2C 2C 00 00"] = "Voigtlander Color Skopar 20mm f/3.5 SLII Aspherical";
- lenses["00 40 37 80 2C 3C 00 02"] = "Tokina AT-X 242 AF (AF 24-200mm f/3.5-5.6)";
- lenses["00 40 64 64 2C 2C 00 00"] = "Voigtlander APO-Lanthar 90mm f/3.5 SLII Close Focus";
- lenses["00 44 60 98 34 3C 00 02"] = "Tokina AT-X 840 D (AF 80-400mm f/4.5-5.6)";
- lenses["00 47 10 10 24 24 00 00"] = "Fisheye Nikkor 8mm f/2.8 AiS";
- lenses["00 47 25 25 24 24 00 02"] = "Tamron SP AF 14mm f/2.8 Aspherical (IF) (69E)";
- lenses["00 47 3C 3C 24 24 00 00"] = "Nikkor 28mm f/2.8 AiS";
- lenses["00 47 44 44 24 24 00 06"] = "Tokina AT-X M35 PRO DX (AF 35mm f/2.8 Macro)";
- lenses["00 47 53 80 30 3C 00 06"] = "Tamron AF 55-200mm f/4-5.6 Di II LD (A15)";
- lenses["00 48 1C 29 24 24 00 06"] = "Tokina AT-X 116 PRO DX (AF 11-16mm f/2.8)";
- lenses["00 48 29 3C 24 24 00 06"] = "Tokina AT-X 16-28 AF PRO FX (AF 16-28mm f/2.8)";
- lenses["00 48 29 50 24 24 00 06"] = "Tokina AT-X 165 PRO DX (AF 16-50mm f/2.8)";
- lenses["00 48 32 32 24 24 00 00"] = "Carl Zeiss Distagon T* 2.8/21 ZF.2";
- lenses["00 48 37 5C 24 24 00 06"] = "Tokina AT-X 24-70 f/2.8 PRO FX (AF 24-70mm f/2.8)";
- lenses["00 48 3C 3C 24 24 00 00"] = "Voigtlander Color Skopar 28mm f/2.8 SL II";
- lenses["00 48 3C 60 24 24 00 02"] = "Tokina AT-X 280 AF PRO (AF 28-80mm f/2.8)";
- lenses["00 48 3C 6A 24 24 00 02"] = "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF (176D)";
- lenses["00 48 50 50 18 18 00 00"] = "Nikkor H 50mm f/2";
- lenses["00 48 50 72 24 24 00 06"] = "Tokina AT-X 535 PRO DX (AF 50-135mm f/2.8)";
- lenses["00 48 5C 80 30 30 00 0E"] = "Tokina AT-X 70-200 f/4 FX VCM-S (AF 70-200mm f/4)";
- lenses["00 48 5C 8E 30 3C 00 06"] = "Tamron AF 70-300mm f/4-5.6 Di LD Macro 1:2 (A17NII)";
- lenses["00 48 68 68 24 24 00 00"] = "Series E 100mm f/2.8";
- lenses["00 48 80 80 30 30 00 00"] = "Nikkor 200mm f/4 AiS";
- lenses["00 49 30 48 22 2B 00 02"] = "Tamron SP AF 20-40mm f/2.7-3.5 (166D)";
- lenses["00 4C 6A 6A 20 20 00 00"] = "Nikkor 105mm f/2.5 AiS";
- lenses["00 4C 7C 7C 2C 2C 00 02"] = "Tamron SP AF 180mm f/3.5 Di Model (B01)";
- lenses["00 53 2B 50 24 24 00 06"] = "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF) (A16)";
- lenses["00 54 2B 50 24 24 00 06"] = "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF) (A16NII)";
- lenses["00 54 3C 3C 18 18 00 00"] = "Carl Zeiss Distagon T* 2/28 ZF.2";
- lenses["00 54 44 44 0C 0C 00 00"] = "Carl Zeiss Distagon T* 1.4/35 ZF.2";
- lenses["00 54 44 44 18 18 00 00"] = "Carl Zeiss Distagon T* 2/35 ZF.2";
- lenses["00 54 48 48 18 18 00 00"] = "Voigtlander Ultron 40mm f/2 SLII Aspherical";
- lenses["00 54 50 50 0C 0C 00 00"] = "Carl Zeiss Planar T* 1.4/50 ZF.2";
- lenses["00 54 50 50 18 18 00 00"] = "Carl Zeiss Makro-Planar T* 2/50 ZF.2";
- lenses["00 54 53 53 0C 0C 00 00"] = "Zeiss Otus 1.4/55";
- lenses["00 54 55 55 0C 0C 00 00"] = "Voigtlander Nokton 58mm f/1.4 SLII";
- lenses["00 54 56 56 30 30 00 00"] = "Coastal Optical Systems 60mm 1:4 UV-VIS-IR Macro Apo";
- lenses["00 54 62 62 0C 0C 00 00"] = "Carl Zeiss Planar T* 1.4/85 ZF.2";
- lenses["00 54 68 68 18 18 00 00"] = "Carl Zeiss Makro-Planar T* 2/100 ZF.2";
- lenses["00 54 68 68 24 24 00 02"] = "Tokina AT-X M100 AF PRO D (AF 100mm f/2.8 Macro)";
- lenses["00 54 72 72 18 18 00 00"] = "Carl Zeiss Apo Sonnar T* 2/135 ZF.2";
- lenses["00 54 8E 8E 24 24 00 02"] = "Tokina AT-X 300 AF PRO (AF 300mm f/2.8)";
- lenses["00 57 50 50 14 14 00 00"] = "Nikkor 50mm f/1.8 AI";
- lenses["00 58 64 64 20 20 00 00"] = "Soligor C/D Macro MC 90mm f/2.5";
- lenses["01 00 00 00 00 00 02 00"] = "TC-16A";
- lenses["01 00 00 00 00 00 08 00"] = "TC-16A";
- lenses["01 54 62 62 0C 0C 00 00"] = "Zeiss Otus 1.4/85";
- lenses["01 58 50 50 14 14 02 00"] = "AF Nikkor 50mm f/1.8";
- lenses["01 58 50 50 14 14 05 00"] = "AF Nikkor 50mm f/1.8";
- lenses["02 2F 98 98 3D 3D 02 00"] = "Sigma APO 400mm f/5.6";
- lenses["02 34 A0 A0 44 44 02 00"] = "Sigma APO 500mm f/7.2";
- lenses["02 37 5E 8E 35 3D 02 00"] = "Sigma 75-300mm f/4.5-5.6 APO";
- lenses["02 37 A0 A0 34 34 02 00"] = "Sigma APO 500mm f/4.5";
- lenses["02 3A 37 50 31 3D 02 00"] = "Sigma 24-50mm f/4-5.6 UC";
- lenses["02 3A 5E 8E 32 3D 02 00"] = "Sigma 75-300mm f/4.0-5.6";
- lenses["02 3B 44 61 30 3D 02 00"] = "Sigma 35-80mm f/4-5.6";
- lenses["02 3C B0 B0 3C 3C 02 00"] = "Sigma APO 800mm f/5.6";
- lenses["02 3F 24 24 2C 2C 02 00"] = "Sigma 14mm f/3.5";
- lenses["02 3F 3C 5C 2D 35 02 00"] = "Sigma 28-70mm f/3.5-4.5 UC";
- lenses["02 40 44 5C 2C 34 02 00"] = "Exakta AF 35-70mm 1:3.5-4.5 MC";
- lenses["02 40 44 73 2B 36 02 00"] = "Sigma 35-135mm f/3.5-4.5 a";
- lenses["02 40 5C 82 2C 35 02 00"] = "Sigma APO 70-210mm f/3.5-4.5";
- lenses["02 42 44 5C 2A 34 02 00"] = "AF Zoom-Nikkor 35-70mm f/3.3-4.5";
- lenses["02 42 44 5C 2A 34 08 00"] = "AF Zoom-Nikkor 35-70mm f/3.3-4.5";
- lenses["02 46 37 37 25 25 02 00"] = "Sigma 24mm f/2.8 Super Wide II Macro";
- lenses["02 46 3C 5C 25 25 02 00"] = "Sigma 28-70mm f/2.8";
- lenses["02 46 5C 82 25 25 02 00"] = "Sigma 70-210mm f/2.8 APO";
- lenses["02 48 50 50 24 24 02 00"] = "Sigma Macro 50mm f/2.8";
- lenses["02 48 65 65 24 24 02 00"] = "Sigma Macro 90mm f/2.8";
- lenses["03 43 5C 81 35 35 02 00"] = "Soligor AF C/D Zoom UMCS 70-210mm 1:4.5";
- lenses["03 48 5C 81 30 30 02 00"] = "AF Zoom-Nikkor 70-210mm f/4";
- lenses["04 48 3C 3C 24 24 03 00"] = "AF Nikkor 28mm f/2.8";
- lenses["05 54 50 50 0C 0C 04 00"] = "AF Nikkor 50mm f/1.4";
- lenses["06 3F 68 68 2C 2C 06 00"] = "Cosina AF 100mm f/3.5 Macro";
- lenses["06 54 53 53 24 24 06 00"] = "AF Micro-Nikkor 55mm f/2.8";
- lenses["07 36 3D 5F 2C 3C 03 00"] = "Cosina AF Zoom 28-80mm f/3.5-5.6 MC Macro";
- lenses["07 3E 30 43 2D 35 03 00"] = "Soligor AF Zoom 19-35mm 1:3.5-4.5 MC";
- lenses["07 40 2F 44 2C 34 03 02"] = "Tamron AF 19-35mm f/3.5-4.5 (A10)";
- lenses["07 40 30 45 2D 35 03 02"] = "Tamron AF 19-35mm f/3.5-4.5 (A10)";
- lenses["07 40 3C 5C 2C 35 03 00"] = "Tokina AF 270 II (AF 28-70mm f/3.5-4.5)";
- lenses["07 40 3C 62 2C 34 03 00"] = "AF Zoom-Nikkor 28-85mm f/3.5-4.5";
- lenses["07 46 2B 44 24 30 03 02"] = "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical (IF) (A05)";
- lenses["07 46 3D 6A 25 2F 03 00"] = "Cosina AF Zoom 28-105mm f/2.8-3.8 MC";
- lenses["07 47 3C 5C 25 35 03 00"] = "Tokina AF 287 SD (AF 28-70mm f/2.8-4.5)";
- lenses["07 48 3C 5C 24 24 03 00"] = "Tokina AT-X 287 AF (AF 28-70mm f/2.8)";
- lenses["08 40 44 6A 2C 34 04 00"] = "AF Zoom-Nikkor 35-105mm f/3.5-4.5";
- lenses["09 48 37 37 24 24 04 00"] = "AF Nikkor 24mm f/2.8";
- lenses["0A 48 8E 8E 24 24 03 00"] = "AF Nikkor 300mm f/2.8 IF-ED";
- lenses["0A 48 8E 8E 24 24 05 00"] = "AF Nikkor 300mm f/2.8 IF-ED N";
- lenses["0B 3E 3D 7F 2F 3D 0E 00"] = "Tamron AF 28-200mm f/3.8-5.6 (71D)";
- lenses["0B 3E 3D 7F 2F 3D 0E 02"] = "Tamron AF 28-200mm f/3.8-5.6D (171D)";
- lenses["0B 48 7C 7C 24 24 05 00"] = "AF Nikkor 180mm f/2.8 IF-ED";
- lenses["0D 40 44 72 2C 34 07 00"] = "AF Zoom-Nikkor 35-135mm f/3.5-4.5";
- lenses["0E 48 5C 81 30 30 05 00"] = "AF Zoom-Nikkor 70-210mm f/4";
- lenses["0E 4A 31 48 23 2D 0E 02"] = "Tamron SP AF 20-40mm f/2.7-3.5 (166D)";
- lenses["0F 58 50 50 14 14 05 00"] = "AF Nikkor 50mm f/1.8 N";
- lenses["10 3D 3C 60 2C 3C D2 02"] = "Tamron AF 28-80mm f/3.5-5.6 Aspherical (177D)";
- lenses["10 48 8E 8E 30 30 08 00"] = "AF Nikkor 300mm f/4 IF-ED";
- lenses["11 48 44 5C 24 24 08 00"] = "AF Zoom-Nikkor 35-70mm f/2.8";
- lenses["12 36 5C 81 35 3D 09 00"] = "Cosina AF Zoom 70-210mm f/4.5-5.6 MC Macro";
- lenses["12 36 69 97 35 42 09 00"] = "Soligor AF Zoom 100-400mm 1:4.5-6.7 MC";
- lenses["12 38 69 97 35 42 09 02"] = "Promaster Spectrum 7 100-400mm f/4.5-6.7";
- lenses["12 39 5C 8E 34 3D 08 02"] = "Cosina AF Zoom 70-300mm f/4.5-5.6 MC Macro";
- lenses["12 3B 68 8D 3D 43 09 02"] = "Cosina AF Zoom 100-300mm f/5.6-6.7 MC Macro";
- lenses["12 3B 98 98 3D 3D 09 00"] = "Tokina AT-X 400 AF SD (AF 400mm f/5.6)";
- lenses["12 3D 3C 80 2E 3C DF 02"] = "Tamron AF 28-200mm f/3.8-5.6 AF Aspherical LD (IF) (271D)";
- lenses["12 44 5E 8E 34 3C 09 00"] = "Tokina AF 730 (AF 75-300mm f/4.5-5.6)";
- lenses["12 48 5C 81 30 3C 09 00"] = "AF Nikkor 70-210mm f/4-5.6";
- lenses["12 4A 5C 81 31 3D 09 00"] = "Soligor AF C/D Auto Zoom+Macro 70-210mm 1:4-5.6 UMCS";
- lenses["13 42 37 50 2A 34 0B 00"] = "AF Zoom-Nikkor 24-50mm f/3.3-4.5";
- lenses["14 48 60 80 24 24 0B 00"] = "AF Zoom-Nikkor 80-200mm f/2.8 ED";
- lenses["14 48 68 8E 30 30 0B 00"] = "Tokina AT-X 340 AF (AF 100-300mm f/4)";
- lenses["14 54 60 80 24 24 0B 00"] = "Tokina AT-X 828 AF (AF 80-200mm f/2.8)";
- lenses["15 4C 62 62 14 14 0C 00"] = "AF Nikkor 85mm f/1.8";
- lenses["17 3C A0 A0 30 30 0F 00"] = "Nikkor 500mm f/4 P ED IF";
- lenses["17 3C A0 A0 30 30 11 00"] = "Nikkor 500mm f/4 P ED IF";
- lenses["18 40 44 72 2C 34 0E 00"] = "AF Zoom-Nikkor 35-135mm f/3.5-4.5 N";
- lenses["1A 54 44 44 18 18 11 00"] = "AF Nikkor 35mm f/2";
- lenses["1B 44 5E 8E 34 3C 10 00"] = "AF Zoom-Nikkor 75-300mm f/4.5-5.6";
- lenses["1C 48 30 30 24 24 12 00"] = "AF Nikkor 20mm f/2.8";
- lenses["1D 42 44 5C 2A 34 12 00"] = "AF Zoom-Nikkor 35-70mm f/3.3-4.5 N";
- lenses["1E 54 56 56 24 24 13 00"] = "AF Micro-Nikkor 60mm f/2.8";
- lenses["1E 5D 64 64 20 20 13 00"] = "Tamron SP AF 90mm f/2.5 (52E)";
- lenses["1F 54 6A 6A 24 24 14 00"] = "AF Micro-Nikkor 105mm f/2.8";
- lenses["20 3C 80 98 3D 3D 1E 02"] = "Tamron AF 200-400mm f/5.6 LD IF (75D)";
- lenses["20 48 60 80 24 24 15 00"] = "AF Zoom-Nikkor 80-200mm f/2.8 ED";
- lenses["20 5A 64 64 20 20 14 00"] = "Tamron SP AF 90mm f/2.5 Macro (152E)";
- lenses["21 40 3C 5C 2C 34 16 00"] = "AF Zoom-Nikkor 28-70mm f/3.5-4.5";
- lenses["21 56 8E 8E 24 24 14 00"] = "Tamron SP AF 300mm f/2.8 LD-IF (60E)";
- lenses["22 48 72 72 18 18 16 00"] = "AF DC-Nikkor 135mm f/2";
- lenses["22 53 64 64 24 24 E0 02"] = "Tamron SP AF 90mm f/2.8 Macro 1:1 (72E)";
- lenses["23 30 BE CA 3C 48 17 00"] = "Zoom-Nikkor 1200-1700mm f/5.6-8 P ED IF";
- lenses["24 44 60 98 34 3C 1A 02"] = "Tokina AT-X 840 AF-II (AF 80-400mm f/4.5-5.6)";
- lenses["24 48 60 80 24 24 1A 02"] = "AF Zoom-Nikkor 80-200mm f/2.8D ED";
- lenses["24 54 60 80 24 24 1A 02"] = "Tokina AT-X 828 AF PRO (AF 80-200mm f/2.8)";
- lenses["25 44 44 8E 34 42 1B 02"] = "Tokina AF 353 (AF 35-300mm f/4.5-6.7)";
- lenses["25 48 3C 5C 24 24 1B 02"] = "Tokina AT-X 270 AF PRO II (AF 28-70mm f/2.6-2.8)";
- lenses["25 48 3C 5C 24 24 1B 02"] = "Tokina AT-X 287 AF PRO SV (AF 28-70mm f/2.8)";
- lenses["25 48 44 5C 24 24 1B 02"] = "AF Zoom-Nikkor 35-70mm f/2.8D";
- lenses["25 48 44 5C 24 24 3A 02"] = "AF Zoom-Nikkor 35-70mm f/2.8D";
- lenses["25 48 44 5C 24 24 52 02"] = "AF Zoom-Nikkor 35-70mm f/2.8D";
- lenses["26 3C 54 80 30 3C 1C 06"] = "Sigma 55-200mm f/4-5.6 DC";
- lenses["26 3C 5C 82 30 3C 1C 02"] = "Sigma 70-210mm f/4-5.6 UC-II";
- lenses["26 3C 5C 8E 30 3C 1C 02"] = "Sigma 70-300mm f/4-5.6 DG Macro";
- lenses["26 3C 98 98 3C 3C 1C 02"] = "Sigma APO Tele Macro 400mm f/5.6";
- lenses["26 3D 3C 80 2F 3D 1C 02"] = "Sigma 28-300mm f/3.8-5.6 Aspherical";
- lenses["26 3E 3C 6A 2E 3C 1C 02"] = "Sigma 28-105mm f/3.8-5.6 UC-III Aspherical IF";
- lenses["26 40 27 3F 2C 34 1C 02"] = "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical DF";
- lenses["26 40 2D 44 2B 34 1C 02"] = "Sigma 18-35mm f/3.5-4.5 Aspherical";
- lenses["26 40 2D 50 2C 3C 1C 06"] = "Sigma 18-50mm f/3.5-5.6 DC";
- lenses["26 40 2D 70 2B 3C 1C 06"] = "Sigma 18-125mm f/3.5-5.6 DC";
- lenses["26 40 2D 80 2C 40 1C 06"] = "Sigma 18-200mm f/3.5-6.3 DC";
- lenses["26 40 37 5C 2C 3C 1C 02"] = "Sigma 24-70mm f/3.5-5.6 Aspherical HF";
- lenses["26 40 3C 5C 2C 34 1C 02"] = "AF Zoom-Nikkor 28-70mm f/3.5-4.5D";
- lenses["26 40 3C 60 2C 3C 1C 02"] = "Sigma 28-80mm f/3.5-5.6 Mini Zoom Macro II Aspherical";
- lenses["26 40 3C 65 2C 3C 1C 02"] = "Sigma 28-90mm f/3.5-5.6 Macro";
- lenses["26 40 3C 80 2B 3C 1C 02"] = "Sigma 28-200mm f/3.5-5.6 Compact Aspherical Hyperzoom Macro";
- lenses["26 40 3C 80 2C 3C 1C 02"] = "Sigma 28-200mm f/3.5-5.6 Compact Aspherical Hyperzoom Macro";
- lenses["26 40 3C 8E 2C 40 1C 02"] = "Sigma 28-300mm f/3.5-6.3 Macro";
- lenses["26 40 7B A0 34 40 1C 02"] = "Sigma APO 170-500mm f/5-6.3 Aspherical RF";
- lenses["26 41 3C 8E 2C 40 1C 02"] = "Sigma 28-300mm f/3.5-6.3 DG Macro";
- lenses["26 44 73 98 34 3C 1C 02"] = "Sigma 135-400mm f/4.5-5.6 APO Aspherical";
- lenses["26 48 11 11 30 30 1C 02"] = "Sigma 8mm f/4 EX Circular Fisheye";
- lenses["26 48 27 27 24 24 1C 02"] = "Sigma 15mm f/2.8 EX Diagonal Fisheye";
- lenses["26 48 2D 50 24 24 1C 06"] = "Sigma 18-50mm f/2.8 EX DC";
- lenses["26 48 31 49 24 24 1C 02"] = "Sigma 20-40mm f/2.8";
- lenses["26 48 37 56 24 24 1C 02"] = "Sigma 24-60mm f/2.8 EX DG";
- lenses["26 48 3C 5C 24 24 1C 06"] = "Sigma 28-70mm f/2.8 EX DG";
- lenses["26 48 3C 5C 24 30 1C 02"] = "Sigma 28-70mm f/2.8-4 DG";
- lenses["26 48 3C 6A 24 30 1C 02"] = "Sigma 28-105mm f/2.8-4 Aspherical";
- lenses["26 48 8E 8E 30 30 1C 02"] = "Sigma APO Tele Macro 300mm f/4";
- lenses["26 54 2B 44 24 30 1C 02"] = "Sigma 17-35mm f/2.8-4 EX Aspherical";
- lenses["26 54 37 5C 24 24 1C 02"] = "Sigma 24-70mm f/2.8 EX DG Macro";
- lenses["26 54 37 73 24 34 1C 02"] = "Sigma 24-135mm f/2.8-4.5";
- lenses["26 54 3C 5C 24 24 1C 02"] = "Sigma 28-70mm f/2.8 EX";
- lenses["26 58 31 31 14 14 1C 02"] = "Sigma 20mm f/1.8 EX DG Aspherical RF";
- lenses["26 58 37 37 14 14 1C 02"] = "Sigma 24mm f/1.8 EX DG Aspherical Macro";
- lenses["26 58 3C 3C 14 14 1C 02"] = "Sigma 28mm f/1.8 EX DG Aspherical Macro";
- lenses["27 48 8E 8E 24 24 1D 02"] = "AF-I Nikkor 300mm f/2.8D IF-ED";
- lenses["27 48 8E 8E 24 24 E1 02"] = "AF-I Nikkor 300mm f/2.8D IF-ED + TC-17E";
- lenses["27 48 8E 8E 24 24 F1 02"] = "AF-I Nikkor 300mm f/2.8D IF-ED + TC-14E";
- lenses["27 48 8E 8E 24 24 F2 02"] = "AF-I Nikkor 300mm f/2.8D IF-ED + TC-20E";
- lenses["27 48 8E 8E 30 30 1D 02"] = "Tokina AT-X 304 AF (AF 300mm f/4.0)";
- lenses["27 54 8E 8E 24 24 1D 02"] = "Tamron SP AF 300mm f/2.8 LD-IF (360E)";
- lenses["28 3C A6 A6 30 30 1D 02"] = "AF-I Nikkor 600mm f/4D IF-ED";
- lenses["28 3C A6 A6 30 30 E1 02"] = "AF-I Nikkor 600mm f/4D IF-ED + TC-17E";
- lenses["28 3C A6 A6 30 30 F1 02"] = "AF-I Nikkor 600mm f/4D IF-ED + TC-14E";
- lenses["28 3C A6 A6 30 30 F2 02"] = "AF-I Nikkor 600mm f/4D IF-ED + TC-20E";
- lenses["2A 54 3C 3C 0C 0C 26 02"] = "AF Nikkor 28mm f/1.4D";
- lenses["2B 3C 44 60 30 3C 1F 02"] = "AF Zoom-Nikkor 35-80mm f/4-5.6D";
- lenses["2C 48 6A 6A 18 18 27 02"] = "AF DC-Nikkor 105mm f/2D";
- lenses["2D 48 80 80 30 30 21 02"] = "AF Micro-Nikkor 200mm f/4D IF-ED";
- lenses["2E 48 5C 82 30 3C 22 02"] = "AF Nikkor 70-210mm f/4-5.6D";
- lenses["2E 48 5C 82 30 3C 28 02"] = "AF Nikkor 70-210mm f/4-5.6D";
- lenses["2F 40 30 44 2C 34 29 02"] = "Tokina AF 235 II (AF 20-35mm f/3.5-4.5)";
- lenses["2F 40 30 44 2C 34 29 02"] = "Tokina AF 193 (AF 19-35mm f/3.5-4.5)";
- lenses["2F 48 30 44 24 24 29 02"] = "AF Zoom-Nikkor 20-35mm f/2.8D IF";
- lenses["2F 48 30 44 24 24 29 02"] = "Tokina AT-X 235 AF PRO (AF 20-35mm f/2.8)";
- lenses["30 48 98 98 24 24 24 02"] = "AF-I Nikkor 400mm f/2.8D IF-ED";
- lenses["30 48 98 98 24 24 E1 02"] = "AF-I Nikkor 400mm f/2.8D IF-ED + TC-17E";
- lenses["30 48 98 98 24 24 F1 02"] = "AF-I Nikkor 400mm f/2.8D IF-ED + TC-14E";
- lenses["30 48 98 98 24 24 F2 02"] = "AF-I Nikkor 400mm f/2.8D IF-ED + TC-20E";
- lenses["31 54 56 56 24 24 25 02"] = "AF Micro-Nikkor 60mm f/2.8D";
- lenses["32 53 64 64 24 24 35 02"] = "Tamron SP AF 90mm f/2.8 [Di] Macro 1:1 (172E/272E)";
- lenses["32 54 50 50 24 24 35 02"] = "Sigma Macro 50mm f/2.8 EX DG";
- lenses["32 54 6A 6A 24 24 35 02"] = "AF Micro-Nikkor 105mm f/2.8D";
- lenses["32 54 6A 6A 24 24 35 02"] = "Sigma Macro 105mm f/2.8 EX DG";
- lenses["33 48 2D 2D 24 24 31 02"] = "AF Nikkor 18mm f/2.8D";
- lenses["33 54 3C 5E 24 24 62 02"] = "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical (IF) Macro (A09)";
- lenses["34 48 29 29 24 24 32 02"] = "AF Fisheye Nikkor 16mm f/2.8D";
- lenses["35 3C A0 A0 30 30 33 02"] = "AF-I Nikkor 500mm f/4D IF-ED";
- lenses["35 3C A0 A0 30 30 E1 02"] = "AF-I Nikkor 500mm f/4D IF-ED + TC-17E";
- lenses["35 3C A0 A0 30 30 F1 02"] = "AF-I Nikkor 500mm f/4D IF-ED + TC-14E";
- lenses["35 3C A0 A0 30 30 F2 02"] = "AF-I Nikkor 500mm f/4D IF-ED + TC-20E";
- lenses["36 48 37 37 24 24 34 02"] = "AF Nikkor 24mm f/2.8D";
- lenses["37 48 30 30 24 24 36 02"] = "AF Nikkor 20mm f/2.8D";
- lenses["38 4C 62 62 14 14 37 02"] = "AF Nikkor 85mm f/1.8D";
- lenses["3A 40 3C 5C 2C 34 39 02"] = "AF Zoom-Nikkor 28-70mm f/3.5-4.5D";
- lenses["3B 48 44 5C 24 24 3A 02"] = "AF Zoom-Nikkor 35-70mm f/2.8D N";
- lenses["3C 48 60 80 24 24 3B 02"] = "AF Zoom-Nikkor 80-200mm f/2.8D ED";
- lenses["3D 3C 44 60 30 3C 3E 02"] = "AF Zoom-Nikkor 35-80mm f/4-5.6D";
- lenses["3E 48 3C 3C 24 24 3D 02"] = "AF Nikkor 28mm f/2.8D";
- lenses["3F 40 44 6A 2C 34 45 02"] = "AF Zoom-Nikkor 35-105mm f/3.5-4.5D";
- lenses["41 48 7C 7C 24 24 43 02"] = "AF Nikkor 180mm f/2.8D IF-ED";
- lenses["42 54 44 44 18 18 44 02"] = "AF Nikkor 35mm f/2D";
- lenses["43 54 50 50 0C 0C 46 02"] = "AF Nikkor 50mm f/1.4D";
- lenses["44 44 60 80 34 3C 47 02"] = "AF Zoom-Nikkor 80-200mm f/4.5-5.6D";
- lenses["45 3D 3C 60 2C 3C 48 02"] = "Tamron AF 28-80mm f/3.5-5.6 Aspherical (177D)";
- lenses["45 40 3C 60 2C 3C 48 02"] = "AF Zoom-Nikkor 28-80mm f/3.5-5.6D";
- lenses["45 41 37 72 2C 3C 48 02"] = "Tamron SP AF 24-135mm f/3.5-5.6 AD Aspherical (IF) Macro (190D)";
- lenses["46 3C 44 60 30 3C 49 02"] = "AF Zoom-Nikkor 35-80mm f/4-5.6D N";
- lenses["47 42 37 50 2A 34 4A 02"] = "AF Zoom-Nikkor 24-50mm f/3.3-4.5D";
- lenses["48 38 1F 37 34 3C 4B 06"] = "Sigma 12-24mm f/4.5-5.6 EX DG Aspherical HSM";
- lenses["48 3C 19 31 30 3C 4B 06"] = "Sigma 10-20mm f/4-5.6 EX DC HSM";
- lenses["48 3C 50 A0 30 40 4B 02"] = "Sigma 50-500mm f/4-6.3 EX APO RF HSM";
- lenses["48 3C 8E B0 3C 3C 4B 02"] = "Sigma APO 300-800mm f/5.6 EX DG HSM";
- lenses["48 3C B0 B0 3C 3C 4B 02"] = "Sigma APO 800mm f/5.6 EX HSM";
- lenses["48 44 A0 A0 34 34 4B 02"] = "Sigma APO 500mm f/4.5 EX HSM";
- lenses["48 48 24 24 24 24 4B 02"] = "Sigma 14mm f/2.8 EX Aspherical HSM";
- lenses["48 48 2B 44 24 30 4B 06"] = "Sigma 17-35mm f/2.8-4 EX DG Aspherical HSM";
- lenses["48 48 68 8E 30 30 4B 02"] = "Sigma APO 100-300mm f/4 EX IF HSM";
- lenses["48 48 76 76 24 24 4B 06"] = "Sigma APO Macro 150mm f/2.8 EX DG HSM";
- lenses["48 48 8E 8E 24 24 4B 02"] = "AF-S Nikkor 300mm f/2.8D IF-ED";
- lenses["48 48 8E 8E 24 24 E1 02"] = "AF-S Nikkor 300mm f/2.8D IF-ED + TC-17E";
- lenses["48 48 8E 8E 24 24 F1 02"] = "AF-S Nikkor 300mm f/2.8D IF-ED + TC-14E";
- lenses["48 48 8E 8E 24 24 F2 02"] = "AF-S Nikkor 300mm f/2.8D IF-ED + TC-20E";
- lenses["48 4C 7C 7C 2C 2C 4B 02"] = "Sigma APO Macro 180mm f/3.5 EX DG HSM";
- lenses["48 4C 7D 7D 2C 2C 4B 02"] = "Sigma APO Macro 180mm f/3.5 EX DG HSM";
- lenses["48 54 3E 3E 0C 0C 4B 06"] = "Sigma 30mm f/1.4 EX DC HSM";
- lenses["48 54 5C 80 24 24 4B 02"] = "Sigma 70-200mm f/2.8 EX APO IF HSM";
- lenses["48 54 6F 8E 24 24 4B 02"] = "Sigma APO 120-300mm f/2.8 EX DG HSM";
- lenses["48 54 8E 8E 24 24 4B 02"] = "Sigma APO 300mm f/2.8 EX DG HSM";
- lenses["49 3C A6 A6 30 30 4C 02"] = "AF-S Nikkor 600mm f/4D IF-ED";
- lenses["49 3C A6 A6 30 30 E1 02"] = "AF-S Nikkor 600mm f/4D IF-ED + TC-17E";
- lenses["49 3C A6 A6 30 30 F1 02"] = "AF-S Nikkor 600mm f/4D IF-ED + TC-14E";
- lenses["49 3C A6 A6 30 30 F2 02"] = "AF-S Nikkor 600mm f/4D IF-ED + TC-20E";
- lenses["4A 40 11 11 2C 0C 4D 02"] = "Samyang 8mm f/3.5 Fish-Eye CS";
- lenses["4A 48 1E 1E 24 0C 4D 02"] = "Samyang 12mm f/2.8 ED AS NCS Fish-Eye";
- lenses["4A 48 24 24 24 0C 4D 02"] = "Samyang AE 14mm f/2.8 ED AS IF UMC";
- lenses["4A 54 29 29 18 0C 4D 02"] = "Samyang 16mm f/2.0 ED AS UMC CS";
- lenses["4A 54 62 62 0C 0C 4D 02"] = "AF Nikkor 85mm f/1.4D IF";
- lenses["4A 60 44 44 0C 0C 4D 02"] = "Samyang 35mm f/1.4 AS UMC";
- lenses["4A 60 62 62 0C 0C 4D 02"] = "Samyang AE 85mm f/1.4 AS IF UMC";
- lenses["4B 3C A0 A0 30 30 4E 02"] = "AF-S Nikkor 500mm f/4D IF-ED";
- lenses["4B 3C A0 A0 30 30 E1 02"] = "AF-S Nikkor 500mm f/4D IF-ED + TC-17E";
- lenses["4B 3C A0 A0 30 30 F1 02"] = "AF-S Nikkor 500mm f/4D IF-ED + TC-14E";
- lenses["4B 3C A0 A0 30 30 F2 02"] = "AF-S Nikkor 500mm f/4D IF-ED + TC-20E";
- lenses["4C 40 37 6E 2C 3C 4F 02"] = "AF Zoom-Nikkor 24-120mm f/3.5-5.6D IF";
- lenses["4D 3E 3C 80 2E 3C 62 02"] = "Tamron AF 28-200mm f/3.8-5.6 XR Aspherical (IF) Macro (A03N)";
- lenses["4D 40 3C 80 2C 3C 62 02"] = "AF Zoom-Nikkor 28-200mm f/3.5-5.6D IF";
- lenses["4D 41 3C 8E 2B 40 62 02"] = "Tamron AF 28-300mm f/3.5-6.3 XR Di LD Aspherical (IF) (A061)";
- lenses["4D 41 3C 8E 2C 40 62 02"] = "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical (IF) (185D)";
- lenses["4E 48 72 72 18 18 51 02"] = "AF DC-Nikkor 135mm f/2D";
- lenses["4F 40 37 5C 2C 3C 53 06"] = "IX-Nikkor 24-70mm f/3.5-5.6";
- lenses["50 48 56 7C 30 3C 54 06"] = "IX-Nikkor 60-180mm f/4-5.6";
- lenses["52 54 44 44 18 18 00 00"] = "Zeiss Milvus 35mm f/2";
- lenses["53 48 60 80 24 24 57 02"] = "AF Zoom-Nikkor 80-200mm f/2.8D ED";
- lenses["53 48 60 80 24 24 60 02"] = "AF Zoom-Nikkor 80-200mm f/2.8D ED";
- lenses["53 54 50 50 0C 0C 00 00"] = "Zeiss Milvus 50mm f/1.4";
- lenses["54 44 5C 7C 34 3C 58 02"] = "AF Zoom-Micro Nikkor 70-180mm f/4.5-5.6D ED";
- lenses["54 44 5C 7C 34 3C 61 02"] = "AF Zoom-Micro Nikkor 70-180mm f/4.5-5.6D ED";
- lenses["54 54 50 50 18 18 00 00"] = "Zeiss Milvus 50mm f/2 Macro";
- lenses["55 54 62 62 0C 0C 00 00"] = "Zeiss Milvus 85mm f/1.4";
- lenses["56 3C 5C 8E 30 3C 1C 02"] = "Sigma 70-300mm f/4-5.6 APO Macro Super II";
- lenses["56 48 5C 8E 30 3C 5A 02"] = "AF Zoom-Nikkor 70-300mm f/4-5.6D ED";
- lenses["56 54 68 68 18 18 00 00"] = "Zeiss Milvus 100mm f/2 Macro";
- lenses["59 48 98 98 24 24 5D 02"] = "AF-S Nikkor 400mm f/2.8D IF-ED";
- lenses["59 48 98 98 24 24 E1 02"] = "AF-S Nikkor 400mm f/2.8D IF-ED + TC-17E";
- lenses["59 48 98 98 24 24 F1 02"] = "AF-S Nikkor 400mm f/2.8D IF-ED + TC-14E";
- lenses["59 48 98 98 24 24 F2 02"] = "AF-S Nikkor 400mm f/2.8D IF-ED + TC-20E";
- lenses["5A 3C 3E 56 30 3C 5E 06"] = "IX-Nikkor 30-60mm f/4-5.6";
- lenses["5B 44 56 7C 34 3C 5F 06"] = "IX-Nikkor 60-180mm f/4.5-5.6";
- lenses["5D 48 3C 5C 24 24 63 02"] = "AF-S Zoom-Nikkor 28-70mm f/2.8D IF-ED";
- lenses["5E 48 60 80 24 24 64 02"] = "AF-S Zoom-Nikkor 80-200mm f/2.8D IF-ED";
- lenses["5F 40 3C 6A 2C 34 65 02"] = "AF Zoom-Nikkor 28-105mm f/3.5-4.5D IF";
- lenses["60 40 3C 60 2C 3C 66 02"] = "AF Zoom-Nikkor 28-80mm f/3.5-5.6D";
- lenses["61 44 5E 86 34 3C 67 02"] = "AF Zoom-Nikkor 75-240mm f/4.5-5.6D";
- lenses["63 48 2B 44 24 24 68 02"] = "AF-S Nikkor 17-35mm f/2.8D IF-ED";
- lenses["64 00 62 62 24 24 6A 02"] = "PC Micro-Nikkor 85mm f/2.8D";
- lenses["65 44 60 98 34 3C 6B 0A"] = "AF VR Zoom-Nikkor 80-400mm f/4.5-5.6D ED";
- lenses["66 40 2D 44 2C 34 6C 02"] = "AF Zoom-Nikkor 18-35mm f/3.5-4.5D IF-ED";
- lenses["67 48 37 62 24 30 6D 02"] = "AF Zoom-Nikkor 24-85mm f/2.8-4D IF";
- lenses["67 54 37 5C 24 24 1C 02"] = "Sigma 24-70mm f/2.8 EX DG Macro";
- lenses["68 42 3C 60 2A 3C 6E 06"] = "AF Zoom-Nikkor 28-80mm f/3.3-5.6G";
- lenses["69 47 5C 8E 30 3C 00 02"] = "Tamron AF 70-300mm f/4-5.6 Di LD Macro 1:2 (A17N)";
- lenses["69 48 5C 8E 30 3C 6F 02"] = "Tamron AF 70-300mm f/4-5.6 LD Macro 1:2 (572D/772D)";
- lenses["69 48 5C 8E 30 3C 6F 06"] = "AF Zoom-Nikkor 70-300mm f/4-5.6G";
- lenses["6A 48 8E 8E 30 30 70 02"] = "AF-S Nikkor 300mm f/4D IF-ED";
- lenses["6B 48 24 24 24 24 71 02"] = "AF Nikkor ED 14mm f/2.8D";
- lenses["6D 48 8E 8E 24 24 73 02"] = "AF-S Nikkor 300mm f/2.8D IF-ED II";
- lenses["6E 48 98 98 24 24 74 02"] = "AF-S Nikkor 400mm f/2.8D IF-ED II";
- lenses["6F 3C A0 A0 30 30 75 02"] = "AF-S Nikkor 500mm f/4D IF-ED II";
- lenses["70 3C A6 A6 30 30 76 02"] = "AF-S Nikkor 600mm f/4D IF-ED II";
- lenses["72 48 4C 4C 24 24 77 00"] = "Nikkor 45mm f/2.8 P";
- lenses["74 40 37 62 2C 34 78 06"] = "AF-S Zoom-Nikkor 24-85mm f/3.5-4.5G IF-ED";
- lenses["75 40 3C 68 2C 3C 79 06"] = "AF Zoom-Nikkor 28-100mm f/3.5-5.6G";
- lenses["76 58 50 50 14 14 7A 02"] = "AF Nikkor 50mm f/1.8D";
- lenses["77 44 61 98 34 3C 7B 0E"] = "Sigma 80-400mm f/4.5-5.6 EX OS";
- lenses["77 48 5C 80 24 24 7B 0E"] = "AF-S VR Zoom-Nikkor 70-200mm f/2.8G IF-ED";
- lenses["78 40 37 6E 2C 3C 7C 0E"] = "AF-S VR Zoom-Nikkor 24-120mm f/3.5-5.6G IF-ED";
- lenses["79 40 11 11 2C 2C 1C 06"] = "Sigma 8mm f/3.5 EX Circular Fisheye";
- lenses["79 40 3C 80 2C 3C 7F 06"] = "AF Zoom-Nikkor 28-200mm f/3.5-5.6G IF-ED";
- lenses["79 48 3C 5C 24 24 1C 06"] = "Sigma 28-70mm f/2.8 EX DG";
- lenses["79 48 5C 5C 24 24 1C 06"] = "Sigma Macro 70mm f/2.8 EX DG";
- lenses["7A 3B 53 80 30 3C 4B 06"] = "Sigma 55-200mm f/4-5.6 DC HSM";
- lenses["7A 3C 1F 37 30 30 7E 06"] = "AF-S DX Zoom-Nikkor 12-24mm f/4G IF-ED";
- lenses["7A 3C 1F 37 30 30 7E 06"] = "Tokina AT-X 124 AF PRO DX II (AF 12-24mm f/4)";
- lenses["7A 3C 1F 3C 30 30 7E 06"] = "Tokina AT-X 12-28 PRO DX (AF 12-28mm f/4)";
- lenses["7A 40 2D 50 2C 3C 4B 06"] = "Sigma 18-50mm f/3.5-5.6 DC HSM";
- lenses["7A 40 2D 80 2C 40 4B 0E"] = "Sigma 18-200mm f/3.5-6.3 DC OS HSM";
- lenses["7A 47 2B 5C 24 34 4B 06"] = "Sigma 17-70mm f/2.8-4.5 DC Macro Asp. IF HSM";
- lenses["7A 47 50 76 24 24 4B 06"] = "Sigma 50-150mm f/2.8 EX APO DC HSM";
- lenses["7A 48 1C 29 24 24 7E 06"] = "Tokina AT-X 116 PRO DX II (AF 11-16mm f/2.8)";
- lenses["7A 48 1C 30 24 24 7E 06"] = "Tokina AT-X 11-20 f/2.8 PRO DX (AF 11-20mm f/2.8)";
- lenses["7A 48 2B 5C 24 34 4B 06"] = "Sigma 17-70mm f/2.8-4.5 DC Macro Asp. IF HSM";
- lenses["7A 48 2D 50 24 24 4B 06"] = "Sigma 18-50mm f/2.8 EX DC Macro";
- lenses["7A 48 5C 80 24 24 4B 06"] = "Sigma 70-200mm f/2.8 EX APO DG Macro HSM II";
- lenses["7A 54 6E 8E 24 24 4B 02"] = "Sigma APO 120-300mm f/2.8 EX DG HSM";
- lenses["7B 48 80 98 30 30 80 0E"] = "AF-S VR Zoom-Nikkor 200-400mm f/4G IF-ED";
- lenses["7D 48 2B 53 24 24 82 06"] = "AF-S DX Zoom-Nikkor 17-55mm f/2.8G IF-ED";
- lenses["7F 40 2D 5C 2C 34 84 06"] = "AF-S DX Zoom-Nikkor 18-70mm f/3.5-4.5G IF-ED";
- lenses["7F 48 2B 5C 24 34 1C 06"] = "Sigma 17-70mm f/2.8-4.5 DC Macro Asp. IF";
- lenses["7F 48 2D 50 24 24 1C 06"] = "Sigma 18-50mm f/2.8 EX DC Macro";
- lenses["80 48 1A 1A 24 24 85 06"] = "AF DX Fisheye-Nikkor 10.5mm f/2.8G ED";
- lenses["81 34 76 A6 38 40 4B 0E"] = "Sigma 150-600mm f/5-6.3 DG OS HSM | S";
- lenses["81 54 80 80 18 18 86 0E"] = "AF-S VR Nikkor 200mm f/2G IF-ED";
- lenses["82 34 76 A6 38 40 4B 0E"] = "Sigma 150-600mm f/5-6.3 DG OS HSM | C";
- lenses["82 48 8E 8E 24 24 87 0E"] = "AF-S VR Nikkor 300mm f/2.8G IF-ED";
- lenses["83 00 B0 B0 5A 5A 88 04"] = "FSA-L2, EDG 65, 800mm f/13 G";
- lenses["88 54 50 50 0C 0C 4B 06"] = "Sigma 50mm f/1.4 DG HSM | A";
- lenses["89 3C 53 80 30 3C 8B 06"] = "AF-S DX Zoom-Nikkor 55-200mm f/4-5.6G ED";
- lenses["8A 3C 37 6A 30 30 4B 0E"] = "Sigma 24-105mm f/4 DG OS HSM";
- lenses["8A 54 6A 6A 24 24 8C 0E"] = "AF-S VR Micro-Nikkor 105mm f/2.8G IF-ED";
- lenses["8B 40 2D 80 2C 3C 8D 0E"] = "AF-S DX VR Zoom-Nikkor 18-200mm f/3.5-5.6G IF-ED";
- lenses["8B 40 2D 80 2C 3C FD 0E"] = "AF-S DX VR Zoom-Nikkor 18-200mm f/3.5-5.6G IF-ED [II]";
- lenses["8B 4C 2D 44 14 14 4B 06"] = "Sigma 18-35mm f/1.8 DC HSM";
- lenses["8C 40 2D 53 2C 3C 8E 06"] = "AF-S DX Zoom-Nikkor 18-55mm f/3.5-5.6G ED";
- lenses["8D 44 5C 8E 34 3C 8F 0E"] = "AF-S VR Zoom-Nikkor 70-300mm f/4.5-5.6G IF-ED";
- lenses["8E 3C 2B 5C 24 30 4B 0E"] = "Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C";
- lenses["8F 40 2D 72 2C 3C 91 06"] = "AF-S DX Zoom-Nikkor 18-135mm f/3.5-5.6G IF-ED";
- lenses["8F 48 2B 50 24 24 4B 0E"] = "Sigma 17-50mm f/2.8 EX DC OS HSM";
- lenses["90 3B 53 80 30 3C 92 0E"] = "AF-S DX VR Zoom-Nikkor 55-200mm f/4-5.6G IF-ED";
- lenses["90 40 2D 80 2C 40 4B 0E"] = "Sigma 18-200mm f/3.5-6.3 II DC OS HSM";
- lenses["91 54 44 44 0C 0C 4B 06"] = "Sigma 35mm f/1.4 DG HSM";
- lenses["92 2C 2D 88 2C 40 4B 0E"] = "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM";
- lenses["92 48 24 37 24 24 94 06"] = "AF-S Zoom-Nikkor 14-24mm f/2.8G ED";
- lenses["93 48 37 5C 24 24 95 06"] = "AF-S Zoom-Nikkor 24-70mm f/2.8G ED";
- lenses["94 40 2D 53 2C 3C 96 06"] = "AF-S DX Zoom-Nikkor 18-55mm f/3.5-5.6G ED II";
- lenses["95 00 37 37 2C 2C 97 06"] = "PC-E Nikkor 24mm f/3.5D ED";
- lenses["95 4C 37 37 2C 2C 97 02"] = "PC-E Nikkor 24mm f/3.5D ED";
- lenses["96 38 1F 37 34 3C 4B 06"] = "Sigma 12-24mm f/4.5-5.6 II DG HSM";
- lenses["96 48 98 98 24 24 98 0E"] = "AF-S VR Nikkor 400mm f/2.8G ED";
- lenses["97 3C A0 A0 30 30 99 0E"] = "AF-S VR Nikkor 500mm f/4G ED";
- lenses["97 48 6A 6A 24 24 4B 0E"] = "Sigma Macro 105mm f/2.8 EX DG OS HSM";
- lenses["98 3C A6 A6 30 30 9A 0E"] = "AF-S VR Nikkor 600mm f/4G ED";
- lenses["98 48 50 76 24 24 4B 0E"] = "Sigma 50-150mm f/2.8 EX APO DC OS HSM";
- lenses["99 40 29 62 2C 3C 9B 0E"] = "AF-S DX VR Zoom-Nikkor 16-85mm f/3.5-5.6G ED";
- lenses["99 48 76 76 24 24 4B 0E"] = "Sigma APO Macro 150mm f/2.8 EX DG OS HSM";
- lenses["9A 40 2D 53 2C 3C 9C 0E"] = "AF-S DX VR Zoom-Nikkor 18-55mm f/3.5-5.6G";
- lenses["9B 00 4C 4C 24 24 9D 06"] = "PC-E Micro Nikkor 45mm f/2.8D ED";
- lenses["9B 54 4C 4C 24 24 9D 02"] = "PC-E Micro Nikkor 45mm f/2.8D ED";
- lenses["9B 54 62 62 0C 0C 4B 06"] = "Sigma 85mm f/1.4 EX DG HSM";
- lenses["9C 48 5C 80 24 24 4B 0E"] = "Sigma 70-200mm f/2.8 EX DG OS HSM";
- lenses["9C 54 56 56 24 24 9E 06"] = "AF-S Micro Nikkor 60mm f/2.8G ED";
- lenses["9D 00 62 62 24 24 9F 06"] = "PC-E Micro Nikkor 85mm f/2.8D";
- lenses["9D 48 2B 50 24 24 4B 0E"] = "Sigma 17-50mm f/2.8 EX DC OS HSM";
- lenses["9D 54 62 62 24 24 9F 02"] = "PC-E Micro Nikkor 85mm f/2.8D";
- lenses["9E 38 11 29 34 3C 4B 06"] = "Sigma 8-16mm f/4.5-5.6 DC HSM";
- lenses["9E 40 2D 6A 2C 3C A0 0E"] = "AF-S DX VR Zoom-Nikkor 18-105mm f/3.5-5.6G ED";
- lenses["9F 37 50 A0 34 40 4B 0E"] = "Sigma 50-500mm f/4.5-6.3 DG OS HSM";
- lenses["9F 58 44 44 14 14 A1 06"] = "AF-S DX Nikkor 35mm f/1.8G";
- lenses["A0 40 2D 74 2C 3C BB 0E"] = "AF-S DX Nikkor 18-140mm f/3.5-5.6G ED VR";
- lenses["A0 48 2A 5C 24 30 4B 0E"] = "Sigma 17-70mm f/2.8-4 DC Macro OS HSM";
- lenses["A0 54 50 50 0C 0C A2 06"] = "AF-S Nikkor 50mm f/1.4G";
- lenses["A1 40 18 37 2C 34 A3 06"] = "AF-S DX Nikkor 10-24mm f/3.5-4.5G ED";
- lenses["A1 41 19 31 2C 2C 4B 06"] = "Sigma 10-20mm f/3.5 EX DC HSM";
- lenses["A1 54 55 55 0C 0C BC 06"] = "AF-S Nikkor 58mm f/1.4G";
- lenses["A2 40 2D 53 2C 3C BD 0E"] = "AF-S DX Nikkor 18-55mm f/3.5-5.6G VR II";
- lenses["A2 48 5C 80 24 24 A4 0E"] = "AF-S Nikkor 70-200mm f/2.8G ED VR II";
- lenses["A3 3C 29 44 30 30 A5 0E"] = "AF-S Nikkor 16-35mm f/4G ED VR";
- lenses["A3 3C 5C 8E 30 3C 4B 0E"] = "Sigma 70-300mm f/4-5.6 DG OS";
- lenses["A4 40 2D 8E 2C 40 BF 0E"] = "AF-S DX Nikkor 18-300mm f/3.5-6.3G ED VR";
- lenses["A4 47 2D 50 24 34 4B 0E"] = "Sigma 18-50mm f/2.8-4.5 DC OS HSM";
- lenses["A4 54 37 37 0C 0C A6 06"] = "AF-S Nikkor 24mm f/1.4G ED";
- lenses["A5 40 2D 88 2C 40 4B 0E"] = "Sigma 18-250mm f/3.5-6.3 DC OS HSM";
- lenses["A5 40 3C 8E 2C 3C A7 0E"] = "AF-S Nikkor 28-300mm f/3.5-5.6G ED VR";
- lenses["A5 4C 44 44 14 14 C0 06"] = "AF-S Nikkor 35mm f/1.8G ED";
- lenses["A6 48 37 5C 24 24 4B 06"] = "Sigma 24-70mm f/2.8 IF EX DG HSM";
- lenses["A6 48 8E 8E 24 24 A8 0E"] = "AF-S VR Nikkor 300mm f/2.8G IF-ED II";
- lenses["A6 48 98 98 24 24 C1 0E"] = "AF-S Nikkor 400mm f/2.8E FL ED VR";
- lenses["A7 3C 53 80 30 3C C2 0E"] = "AF-S DX Nikkor 55-200mm f/4-5.6G ED VR II";
- lenses["A7 49 80 A0 24 24 4B 06"] = "Sigma APO 200-500mm f/2.8 EX DG";
- lenses["A7 4B 62 62 2C 2C A9 0E"] = "AF-S DX Micro Nikkor 85mm f/3.5G ED VR";
- lenses["A8 48 80 98 30 30 AA 0E"] = "AF-S VR Zoom-Nikkor 200-400mm f/4G IF-ED II";
- lenses["A8 48 8E 8E 30 30 C3 0E"] = "AF-S Nikkor 300mm f/4E PF ED VR";
- lenses["A8 48 8E 8E 30 30 C3 4E"] = "AF-S Nikkor 300mm f/4E PF ED VR";
- lenses["A9 4C 31 31 14 14 C4 06"] = "AF-S Nikkor 20mm f/1.8G ED";
- lenses["A9 54 80 80 18 18 AB 0E"] = "AF-S Nikkor 200mm f/2G ED VR II";
- lenses["AA 3C 37 6E 30 30 AC 0E"] = "AF-S Nikkor 24-120mm f/4G ED VR";
- lenses["AA 48 37 5C 24 24 C5 4E"] = "AF-S Nikkor 24-70mm f/2.8E ED VR";
- lenses["AB 3C A0 A0 30 30 C6 4E"] = "AF-S Nikkor 500mm f/4E FL ED VR";
- lenses["AC 38 53 8E 34 3C AE 0E"] = "AF-S DX VR Nikkor 55-300mm f/4.5-5.6G ED";
- lenses["AC 3C A6 A6 30 30 C7 4E"] = "AF-S Nikkor 600mm f/4E FL ED VR";
- lenses["AD 3C 2D 8E 2C 3C AF 0E"] = "AF-S DX Nikkor 18-300mm f/3.5-5.6G ED VR";
- lenses["AD 48 28 60 24 30 C8 0E"] = "AF-S DX Nikkor 16-80mm f/2.8-4E ED VR";
- lenses["AD 48 28 60 24 30 C8 4E"] = "AF-S DX Nikkor 16-80mm f/2.8-4E ED VR";
- lenses["AE 3C 80 A0 3C 3C C9 0E"] = "AF-S Nikkor 200-500mm f/5.6E ED VR";
- lenses["AE 3C 80 A0 3C 3C C9 4E"] = "AF-S Nikkor 200-500mm f/5.6E ED VR";
- lenses["AE 54 62 62 0C 0C B0 06"] = "AF-S Nikkor 85mm f/1.4G";
- lenses["AF 4C 37 37 14 14 CC 06"] = "AF-S Nikkor 24mm f/1.8G ED";
- lenses["AF 54 44 44 0C 0C B1 06"] = "AF-S Nikkor 35mm f/1.4G";
- lenses["B0 4C 50 50 14 14 B2 06"] = "AF-S Nikkor 50mm f/1.8G";
- lenses["B1 48 48 48 24 24 B3 06"] = "AF-S DX Micro Nikkor 40mm f/2.8G";
- lenses["B2 48 5C 80 30 30 B4 0E"] = "AF-S Nikkor 70-200mm f/4G ED VR";
- lenses["B3 4C 62 62 14 14 B5 06"] = "AF-S Nikkor 85mm f/1.8G";
- lenses["B4 40 37 62 2C 34 B6 0E"] = "AF-S VR Zoom-Nikkor 24-85mm f/3.5-4.5G IF-ED";
- lenses["B5 4C 3C 3C 14 14 B7 06"] = "AF-S Nikkor 28mm f/1.8G";
- lenses["B6 3C B0 B0 3C 3C B8 0E"] = "AF-S VR Nikkor 800mm f/5.6E FL ED";
- lenses["B6 48 37 56 24 24 1C 02"] = "Sigma 24-60mm f/2.8 EX DG";
- lenses["B7 44 60 98 34 3C B9 0E"] = "AF-S Nikkor 80-400mm f/4.5-5.6G ED VR";
- lenses["B8 40 2D 44 2C 34 BA 06"] = "AF-S Nikkor 18-35mm f/3.5-4.5G ED";
- lenses["CC 4C 50 68 14 14 4B 06"] = "Sigma 50-100mm f/1.8 DC HSM | A";
- lenses["CD 3D 2D 70 2E 3C 4B 0E"] = "Sigma 18-125mm f/3.8-5.6 DC OS HSM";
- lenses["CE 34 76 A0 38 40 4B 0E"] = "Sigma 150-500mm f/5-6.3 DG OS APO HSM";
- lenses["CF 38 6E 98 34 3C 4B 0E"] = "Sigma APO 120-400mm f/4.5-5.6 DG OS HSM";
- lenses["DC 48 19 19 24 24 4B 06"] = "Sigma 10mm f/2.8 EX DC HSM Fisheye";
- lenses["DE 54 50 50 0C 0C 4B 06"] = "Sigma 50mm f/1.4 EX DG HSM";
- lenses["E0 3C 5C 8E 30 3C 4B 06"] = "Sigma 70-300mm f/4-5.6 APO DG Macro HSM";
- lenses["E1 58 37 37 14 14 1C 02"] = "Sigma 24mm f/1.8 EX DG Aspherical Macro";
- lenses["E3 54 50 50 24 24 35 02"] = "Sigma Macro 50mm f/2.8 EX DG";
- lenses["E5 54 6A 6A 24 24 35 02"] = "Sigma Macro 105mm f/2.8 EX DG";
- lenses["E6 41 3C 8E 2C 40 1C 02"] = "Sigma 28-300mm f/3.5-6.3 DG Macro";
- lenses["E8 4C 44 44 14 14 DF 0E"] = "Tamron SP 35mm f/1.8 VC";
- lenses["E9 48 27 3E 24 24 DF 0E"] = "Tamron SP 15-30mm f/2.8 Di VC USD (A012)";
- lenses["E9 54 37 5C 24 24 1C 02"] = "Sigma 24-70mm f/2.8 EX DG Macro";
- lenses["EA 40 29 8E 2C 40 DF 0E"] = "Tamron AF 16-300mm f/3.5-6.3 Di II VC PZD (B016)";
- lenses["EA 48 27 27 24 24 1C 02"] = "Sigma 15mm f/2.8 EX Diagonal Fisheye";
- lenses["EB 40 76 A6 38 40 DF 0E"] = "Tamron SP AF 150-600mm f/5-6.3 VC USD (A011)";
- lenses["ED 40 2D 80 2C 40 4B 0E"] = "Sigma 18-200mm f/3.5-6.3 DC OS HSM";
- lenses["EE 48 5C 80 24 24 4B 06"] = "Sigma 70-200mm f/2.8 EX APO DG Macro HSM II";
- lenses["F0 38 1F 37 34 3C 4B 06"] = "Sigma 12-24mm f/4.5-5.6 EX DG Aspherical HSM";
- lenses["F0 3F 2D 8A 2C 40 DF 0E"] = "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD (B008)";
- lenses["F1 44 A0 A0 34 34 4B 02"] = "Sigma APO 500mm f/4.5 EX DG HSM";
- lenses["F1 47 5C 8E 30 3C DF 0E"] = "Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)";
- lenses["F3 48 68 8E 30 30 4B 02"] = "Sigma APO 100-300mm f/4 EX IF HSM";
- lenses["F3 54 2B 50 24 24 84 0E"] = "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical (IF) (B005)";
- lenses["F4 54 56 56 18 18 84 06"] = "Tamron SP AF 60mm f/2.0 Di II Macro 1:1 (G005)";
- lenses["F5 40 2C 8A 2C 40 40 0E"] = "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical (IF) Macro (B003)";
- lenses["F5 48 76 76 24 24 4B 06"] = "Sigma APO Macro 150mm f/2.8 EX DG HSM";
- lenses["F6 3F 18 37 2C 34 84 06"] = "Tamron SP AF 10-24mm f/3.5-4.5 Di II LD Aspherical (IF) (B001)";
- lenses["F6 3F 18 37 2C 34 DF 06"] = "Tamron SP AF 10-24mm f/3.5-4.5 Di II LD Aspherical (IF) (B001)";
- lenses["F6 48 2D 50 24 24 4B 06"] = "Sigma 18-50mm f/2.8 EX DC Macro";
- lenses["F7 53 5C 80 24 24 40 06"] = "Tamron SP AF 70-200mm f/2.8 Di LD (IF) Macro (A001)";
- lenses["F7 53 5C 80 24 24 84 06"] = "Tamron SP AF 70-200mm f/2.8 Di LD (IF) Macro (A001)";
- lenses["F8 54 3E 3E 0C 0C 4B 06"] = "Sigma 30mm f/1.4 EX DC HSM";
- lenses["F8 54 64 64 24 24 DF 06"] = "Tamron SP AF 90mm f/2.8 Di Macro 1:1 (272NII)";
- lenses["F8 55 64 64 24 24 84 06"] = "Tamron SP AF 90mm f/2.8 Di Macro 1:1 (272NII)";
- lenses["F9 3C 19 31 30 3C 4B 06"] = "Sigma 10-20mm f/4-5.6 EX DC HSM";
- lenses["F9 40 3C 8E 2C 40 40 0E"] = "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical (IF) Macro (A20)";
- lenses["FA 54 3C 5E 24 24 84 06"] = "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical (IF) Macro (A09NII)";
- lenses["FA 54 3C 5E 24 24 DF 06"] = "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical (IF) Macro (A09NII)";
- lenses["FA 54 6E 8E 24 24 4B 02"] = "Sigma APO 120-300mm f/2.8 EX DG HSM";
- lenses["FB 54 2B 50 24 24 84 06"] = "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF) (A16NII)";
- lenses["FB 54 8E 8E 24 24 4B 02"] = "Sigma APO 300mm f/2.8 EX DG HSM";
- lenses["FC 40 2D 80 2C 40 DF 06"] = "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical (IF) Macro (A14NII)";
- lenses["FD 47 50 76 24 24 4B 06"] = "Sigma 50-150mm f/2.8 EX APO DC HSM II";
- lenses["FE 47 00 00 24 24 4B 06"] = "Sigma 4.5mm f/2.8 EX DC HSM Circular Fisheye";
- lenses["FE 48 37 5C 24 24 DF 0E"] = "Tamron SP 24-70mm f/2.8 Di VC USD (A007)";
- lenses["FE 53 5C 80 24 24 84 06"] = "Tamron SP AF 70-200mm f/2.8 Di LD (IF) Macro (A001)";
- lenses["FE 54 5C 80 24 24 DF 0E"] = "Tamron SP 70-200mm f/2.8 Di VC USD (A009)";
- lenses["FE 54 64 64 24 24 DF 0E"] = "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1 (F004)";
- lenses["FF 40 2D 80 2C 40 4B 06"] = "Sigma 18-200mm f/3.5-6.3 DC";
- }
virtual std::string toString (Tag* t)
{
@@ -1066,7 +549,7 @@ public:
lid << std::setw(2) << std::setfill('0') << lenstype;
- std::map::iterator r = lenses.find (lid.str());
+ std::map::const_iterator r = lenses.find (lid.str());
if (r != lenses.end()) {
if(r == lenses.begin() && EffectiveMaxApertureString != "") { // first entry is for unchipped lenses
@@ -1083,6 +566,523 @@ public:
};
NALensDataInterpreter naLensDataInterpreter;
+const std::map NALensDataInterpreter::lenses = {
+ // The key is a composite string made of 8 HEX bytes
+ // LensIDNumber LensFStops MinFocalLength MaxFocalLength MaxApertureAtMinFocal MaxApertureAtMaxFocal MCUVersion and LensType
+ {"00 00 00 00 00 00 00 01", "Manual Lens No CPU"},
+ {"00 00 00 00 00 00 E1 12", "TC-17E II"},
+ {"00 00 00 00 00 00 F1 0C", "TC-14E [II] or Sigma APO Tele Converter 1.4x EX DG or Kenko Teleplus PRO 300 DG 1.4x"},
+ {"00 00 00 00 00 00 F2 18", "TC-20E [II] or Sigma APO Tele Converter 2x EX DG or Kenko Teleplus PRO 300 DG 2.0x"},
+ {"00 00 48 48 53 53 00 01", "Loreo 40mm f/11-22 3D Lens in a Cap 9005"},
+ {"00 36 1C 2D 34 3C 00 06", "Tamron SP AF 11-18mm f/4.5-5.6 Di II LD Aspherical (IF) (A13)"},
+ {"00 3C 1F 37 30 30 00 06", "Tokina AT-X 124 AF PRO DX (AF 12-24mm f/4)"},
+ {"00 3C 2B 44 30 30 00 06", "Tokina AT-X 17-35 f/4 PRO FX (AF 17-35mm f/4)"},
+ {"00 3C 5C 80 30 30 00 0E", "Tokina AT-X 70-200 f/4 FX VCM-S (AF 70-200mm f/4)"},
+ {"00 3E 80 A0 38 3F 00 02", "Tamron SP AF 200-500mm f/5-6.3 Di LD (IF) (A08)"},
+ {"00 3F 2D 80 2B 40 00 06", "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical (IF) (A14)"},
+ {"00 3F 2D 80 2C 40 00 06", "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical (IF) Macro (A14)"},
+ {"00 3F 80 A0 38 3F 00 02", "Tamron SP AF 200-500mm f/5-6.3 Di (A08)"},
+ {"00 40 11 11 2C 2C 00 00", "Samyang 8mm f/3.5 Fish-Eye"},
+ {"00 40 18 2B 2C 34 00 06", "Tokina AT-X 107 AF DX Fisheye (AF 10-17mm f/3.5-4.5)"},
+ {"00 40 2A 72 2C 3C 00 06", "Tokina AT-X 16.5-135 DX (AF 16.5-135mm f/3.5-5.6)"},
+ {"00 40 2B 2B 2C 2C 00 02", "Tokina AT-X 17 AF PRO (AF 17mm f/3.5)"},
+ {"00 40 2D 2D 2C 2C 00 00", "Carl Zeiss Distagon T* 3.5/18 ZF.2"},
+ {"00 40 2D 80 2C 40 00 06", "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical (IF) Macro (A14NII)"},
+ {"00 40 2D 88 2C 40 00 06", "Tamron AF 18-250mm f/3.5-6.3 Di II LD Aspherical (IF) Macro (A18NII)"},
+ {"00 40 2D 88 2C 40 62 06", "Tamron AF 18-250mm f/3.5-6.3 Di II LD Aspherical (IF) Macro (A18)"},
+ {"00 40 31 31 2C 2C 00 00", "Voigtlander Color Skopar 20mm f/3.5 SLII Aspherical"},
+ {"00 40 37 80 2C 3C 00 02", "Tokina AT-X 242 AF (AF 24-200mm f/3.5-5.6)"},
+ {"00 40 64 64 2C 2C 00 00", "Voigtlander APO-Lanthar 90mm f/3.5 SLII Close Focus"},
+ {"00 44 60 98 34 3C 00 02", "Tokina AT-X 840 D (AF 80-400mm f/4.5-5.6)"},
+ {"00 47 10 10 24 24 00 00", "Fisheye Nikkor 8mm f/2.8 AiS"},
+ {"00 47 25 25 24 24 00 02", "Tamron SP AF 14mm f/2.8 Aspherical (IF) (69E)"},
+ {"00 47 3C 3C 24 24 00 00", "Nikkor 28mm f/2.8 AiS"},
+ {"00 47 44 44 24 24 00 06", "Tokina AT-X M35 PRO DX (AF 35mm f/2.8 Macro)"},
+ {"00 47 53 80 30 3C 00 06", "Tamron AF 55-200mm f/4-5.6 Di II LD (A15)"},
+ {"00 48 1C 29 24 24 00 06", "Tokina AT-X 116 PRO DX (AF 11-16mm f/2.8)"},
+ {"00 48 29 3C 24 24 00 06", "Tokina AT-X 16-28 AF PRO FX (AF 16-28mm f/2.8)"},
+ {"00 48 29 50 24 24 00 06", "Tokina AT-X 165 PRO DX (AF 16-50mm f/2.8)"},
+ {"00 48 32 32 24 24 00 00", "Carl Zeiss Distagon T* 2.8/21 ZF.2"},
+ {"00 48 37 5C 24 24 00 06", "Tokina AT-X 24-70 f/2.8 PRO FX (AF 24-70mm f/2.8)"},
+ {"00 48 3C 3C 24 24 00 00", "Voigtlander Color Skopar 28mm f/2.8 SL II"},
+ {"00 48 3C 60 24 24 00 02", "Tokina AT-X 280 AF PRO (AF 28-80mm f/2.8)"},
+ {"00 48 3C 6A 24 24 00 02", "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF (176D)"},
+ {"00 48 50 50 18 18 00 00", "Nikkor H 50mm f/2"},
+ {"00 48 50 72 24 24 00 06", "Tokina AT-X 535 PRO DX (AF 50-135mm f/2.8)"},
+ {"00 48 5C 80 30 30 00 0E", "Tokina AT-X 70-200 f/4 FX VCM-S (AF 70-200mm f/4)"},
+ {"00 48 5C 8E 30 3C 00 06", "Tamron AF 70-300mm f/4-5.6 Di LD Macro 1:2 (A17NII)"},
+ {"00 48 68 68 24 24 00 00", "Series E 100mm f/2.8"},
+ {"00 48 80 80 30 30 00 00", "Nikkor 200mm f/4 AiS"},
+ {"00 49 30 48 22 2B 00 02", "Tamron SP AF 20-40mm f/2.7-3.5 (166D)"},
+ {"00 4C 6A 6A 20 20 00 00", "Nikkor 105mm f/2.5 AiS"},
+ {"00 4C 7C 7C 2C 2C 00 02", "Tamron SP AF 180mm f/3.5 Di Model (B01)"},
+ {"00 53 2B 50 24 24 00 06", "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF) (A16)"},
+ {"00 54 2B 50 24 24 00 06", "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF) (A16NII)"},
+ {"00 54 3C 3C 18 18 00 00", "Carl Zeiss Distagon T* 2/28 ZF.2"},
+ {"00 54 44 44 0C 0C 00 00", "Carl Zeiss Distagon T* 1.4/35 ZF.2"},
+ {"00 54 44 44 18 18 00 00", "Carl Zeiss Distagon T* 2/35 ZF.2"},
+ {"00 54 48 48 18 18 00 00", "Voigtlander Ultron 40mm f/2 SLII Aspherical"},
+ {"00 54 50 50 0C 0C 00 00", "Carl Zeiss Planar T* 1.4/50 ZF.2"},
+ {"00 54 50 50 18 18 00 00", "Carl Zeiss Makro-Planar T* 2/50 ZF.2"},
+ {"00 54 53 53 0C 0C 00 00", "Zeiss Otus 1.4/55"},
+ {"00 54 55 55 0C 0C 00 00", "Voigtlander Nokton 58mm f/1.4 SLII"},
+ {"00 54 56 56 30 30 00 00", "Coastal Optical Systems 60mm 1:4 UV-VIS-IR Macro Apo"},
+ {"00 54 62 62 0C 0C 00 00", "Carl Zeiss Planar T* 1.4/85 ZF.2"},
+ {"00 54 68 68 18 18 00 00", "Carl Zeiss Makro-Planar T* 2/100 ZF.2"},
+ {"00 54 68 68 24 24 00 02", "Tokina AT-X M100 AF PRO D (AF 100mm f/2.8 Macro)"},
+ {"00 54 72 72 18 18 00 00", "Carl Zeiss Apo Sonnar T* 2/135 ZF.2"},
+ {"00 54 8E 8E 24 24 00 02", "Tokina AT-X 300 AF PRO (AF 300mm f/2.8)"},
+ {"00 57 50 50 14 14 00 00", "Nikkor 50mm f/1.8 AI"},
+ {"00 58 64 64 20 20 00 00", "Soligor C/D Macro MC 90mm f/2.5"},
+ {"01 00 00 00 00 00 02 00", "TC-16A"},
+ {"01 00 00 00 00 00 08 00", "TC-16A"},
+ {"01 54 62 62 0C 0C 00 00", "Zeiss Otus 1.4/85"},
+ {"01 58 50 50 14 14 02 00", "AF Nikkor 50mm f/1.8"},
+ {"01 58 50 50 14 14 05 00", "AF Nikkor 50mm f/1.8"},
+ {"02 2F 98 98 3D 3D 02 00", "Sigma APO 400mm f/5.6"},
+ {"02 34 A0 A0 44 44 02 00", "Sigma APO 500mm f/7.2"},
+ {"02 37 5E 8E 35 3D 02 00", "Sigma 75-300mm f/4.5-5.6 APO"},
+ {"02 37 A0 A0 34 34 02 00", "Sigma APO 500mm f/4.5"},
+ {"02 3A 37 50 31 3D 02 00", "Sigma 24-50mm f/4-5.6 UC"},
+ {"02 3A 5E 8E 32 3D 02 00", "Sigma 75-300mm f/4.0-5.6"},
+ {"02 3B 44 61 30 3D 02 00", "Sigma 35-80mm f/4-5.6"},
+ {"02 3C B0 B0 3C 3C 02 00", "Sigma APO 800mm f/5.6"},
+ {"02 3F 24 24 2C 2C 02 00", "Sigma 14mm f/3.5"},
+ {"02 3F 3C 5C 2D 35 02 00", "Sigma 28-70mm f/3.5-4.5 UC"},
+ {"02 40 44 5C 2C 34 02 00", "Exakta AF 35-70mm 1:3.5-4.5 MC"},
+ {"02 40 44 73 2B 36 02 00", "Sigma 35-135mm f/3.5-4.5 a"},
+ {"02 40 5C 82 2C 35 02 00", "Sigma APO 70-210mm f/3.5-4.5"},
+ {"02 42 44 5C 2A 34 02 00", "AF Zoom-Nikkor 35-70mm f/3.3-4.5"},
+ {"02 42 44 5C 2A 34 08 00", "AF Zoom-Nikkor 35-70mm f/3.3-4.5"},
+ {"02 46 37 37 25 25 02 00", "Sigma 24mm f/2.8 Super Wide II Macro"},
+ {"02 46 3C 5C 25 25 02 00", "Sigma 28-70mm f/2.8"},
+ {"02 46 5C 82 25 25 02 00", "Sigma 70-210mm f/2.8 APO"},
+ {"02 48 50 50 24 24 02 00", "Sigma Macro 50mm f/2.8"},
+ {"02 48 65 65 24 24 02 00", "Sigma Macro 90mm f/2.8"},
+ {"03 43 5C 81 35 35 02 00", "Soligor AF C/D Zoom UMCS 70-210mm 1:4.5"},
+ {"03 48 5C 81 30 30 02 00", "AF Zoom-Nikkor 70-210mm f/4"},
+ {"04 48 3C 3C 24 24 03 00", "AF Nikkor 28mm f/2.8"},
+ {"05 54 50 50 0C 0C 04 00", "AF Nikkor 50mm f/1.4"},
+ {"06 3F 68 68 2C 2C 06 00", "Cosina AF 100mm f/3.5 Macro"},
+ {"06 54 53 53 24 24 06 00", "AF Micro-Nikkor 55mm f/2.8"},
+ {"07 36 3D 5F 2C 3C 03 00", "Cosina AF Zoom 28-80mm f/3.5-5.6 MC Macro"},
+ {"07 3E 30 43 2D 35 03 00", "Soligor AF Zoom 19-35mm 1:3.5-4.5 MC"},
+ {"07 40 2F 44 2C 34 03 02", "Tamron AF 19-35mm f/3.5-4.5 (A10)"},
+ {"07 40 30 45 2D 35 03 02", "Tamron AF 19-35mm f/3.5-4.5 (A10)"},
+ {"07 40 3C 5C 2C 35 03 00", "Tokina AF 270 II (AF 28-70mm f/3.5-4.5)"},
+ {"07 40 3C 62 2C 34 03 00", "AF Zoom-Nikkor 28-85mm f/3.5-4.5"},
+ {"07 46 2B 44 24 30 03 02", "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical (IF) (A05)"},
+ {"07 46 3D 6A 25 2F 03 00", "Cosina AF Zoom 28-105mm f/2.8-3.8 MC"},
+ {"07 47 3C 5C 25 35 03 00", "Tokina AF 287 SD (AF 28-70mm f/2.8-4.5)"},
+ {"07 48 3C 5C 24 24 03 00", "Tokina AT-X 287 AF (AF 28-70mm f/2.8)"},
+ {"08 40 44 6A 2C 34 04 00", "AF Zoom-Nikkor 35-105mm f/3.5-4.5"},
+ {"09 48 37 37 24 24 04 00", "AF Nikkor 24mm f/2.8"},
+ {"0A 48 8E 8E 24 24 03 00", "AF Nikkor 300mm f/2.8 IF-ED"},
+ {"0A 48 8E 8E 24 24 05 00", "AF Nikkor 300mm f/2.8 IF-ED N"},
+ {"0B 3E 3D 7F 2F 3D 0E 00", "Tamron AF 28-200mm f/3.8-5.6 (71D)"},
+ {"0B 3E 3D 7F 2F 3D 0E 02", "Tamron AF 28-200mm f/3.8-5.6D (171D)"},
+ {"0B 48 7C 7C 24 24 05 00", "AF Nikkor 180mm f/2.8 IF-ED"},
+ {"0D 40 44 72 2C 34 07 00", "AF Zoom-Nikkor 35-135mm f/3.5-4.5"},
+ {"0E 48 5C 81 30 30 05 00", "AF Zoom-Nikkor 70-210mm f/4"},
+ {"0E 4A 31 48 23 2D 0E 02", "Tamron SP AF 20-40mm f/2.7-3.5 (166D)"},
+ {"0F 58 50 50 14 14 05 00", "AF Nikkor 50mm f/1.8 N"},
+ {"10 3D 3C 60 2C 3C D2 02", "Tamron AF 28-80mm f/3.5-5.6 Aspherical (177D)"},
+ {"10 48 8E 8E 30 30 08 00", "AF Nikkor 300mm f/4 IF-ED"},
+ {"11 48 44 5C 24 24 08 00", "AF Zoom-Nikkor 35-70mm f/2.8"},
+ {"12 36 5C 81 35 3D 09 00", "Cosina AF Zoom 70-210mm f/4.5-5.6 MC Macro"},
+ {"12 36 69 97 35 42 09 00", "Soligor AF Zoom 100-400mm 1:4.5-6.7 MC"},
+ {"12 38 69 97 35 42 09 02", "Promaster Spectrum 7 100-400mm f/4.5-6.7"},
+ {"12 39 5C 8E 34 3D 08 02", "Cosina AF Zoom 70-300mm f/4.5-5.6 MC Macro"},
+ {"12 3B 68 8D 3D 43 09 02", "Cosina AF Zoom 100-300mm f/5.6-6.7 MC Macro"},
+ {"12 3B 98 98 3D 3D 09 00", "Tokina AT-X 400 AF SD (AF 400mm f/5.6)"},
+ {"12 3D 3C 80 2E 3C DF 02", "Tamron AF 28-200mm f/3.8-5.6 AF Aspherical LD (IF) (271D)"},
+ {"12 44 5E 8E 34 3C 09 00", "Tokina AF 730 (AF 75-300mm f/4.5-5.6)"},
+ {"12 48 5C 81 30 3C 09 00", "AF Nikkor 70-210mm f/4-5.6"},
+ {"12 4A 5C 81 31 3D 09 00", "Soligor AF C/D Auto Zoom+Macro 70-210mm 1:4-5.6 UMCS"},
+ {"13 42 37 50 2A 34 0B 00", "AF Zoom-Nikkor 24-50mm f/3.3-4.5"},
+ {"14 48 60 80 24 24 0B 00", "AF Zoom-Nikkor 80-200mm f/2.8 ED"},
+ {"14 48 68 8E 30 30 0B 00", "Tokina AT-X 340 AF (AF 100-300mm f/4)"},
+ {"14 54 60 80 24 24 0B 00", "Tokina AT-X 828 AF (AF 80-200mm f/2.8)"},
+ {"15 4C 62 62 14 14 0C 00", "AF Nikkor 85mm f/1.8"},
+ {"17 3C A0 A0 30 30 0F 00", "Nikkor 500mm f/4 P ED IF"},
+ {"17 3C A0 A0 30 30 11 00", "Nikkor 500mm f/4 P ED IF"},
+ {"18 40 44 72 2C 34 0E 00", "AF Zoom-Nikkor 35-135mm f/3.5-4.5 N"},
+ {"1A 54 44 44 18 18 11 00", "AF Nikkor 35mm f/2"},
+ {"1B 44 5E 8E 34 3C 10 00", "AF Zoom-Nikkor 75-300mm f/4.5-5.6"},
+ {"1C 48 30 30 24 24 12 00", "AF Nikkor 20mm f/2.8"},
+ {"1D 42 44 5C 2A 34 12 00", "AF Zoom-Nikkor 35-70mm f/3.3-4.5 N"},
+ {"1E 54 56 56 24 24 13 00", "AF Micro-Nikkor 60mm f/2.8"},
+ {"1E 5D 64 64 20 20 13 00", "Tamron SP AF 90mm f/2.5 (52E)"},
+ {"1F 54 6A 6A 24 24 14 00", "AF Micro-Nikkor 105mm f/2.8"},
+ {"20 3C 80 98 3D 3D 1E 02", "Tamron AF 200-400mm f/5.6 LD IF (75D)"},
+ {"20 48 60 80 24 24 15 00", "AF Zoom-Nikkor 80-200mm f/2.8 ED"},
+ {"20 5A 64 64 20 20 14 00", "Tamron SP AF 90mm f/2.5 Macro (152E)"},
+ {"21 40 3C 5C 2C 34 16 00", "AF Zoom-Nikkor 28-70mm f/3.5-4.5"},
+ {"21 56 8E 8E 24 24 14 00", "Tamron SP AF 300mm f/2.8 LD-IF (60E)"},
+ {"22 48 72 72 18 18 16 00", "AF DC-Nikkor 135mm f/2"},
+ {"22 53 64 64 24 24 E0 02", "Tamron SP AF 90mm f/2.8 Macro 1:1 (72E)"},
+ {"23 30 BE CA 3C 48 17 00", "Zoom-Nikkor 1200-1700mm f/5.6-8 P ED IF"},
+ {"24 44 60 98 34 3C 1A 02", "Tokina AT-X 840 AF-II (AF 80-400mm f/4.5-5.6)"},
+ {"24 48 60 80 24 24 1A 02", "AF Zoom-Nikkor 80-200mm f/2.8D ED"},
+ {"24 54 60 80 24 24 1A 02", "Tokina AT-X 828 AF PRO (AF 80-200mm f/2.8)"},
+ {"25 44 44 8E 34 42 1B 02", "Tokina AF 353 (AF 35-300mm f/4.5-6.7)"},
+ {"25 48 3C 5C 24 24 1B 02", "Tokina AT-X 270 AF PRO II (AF 28-70mm f/2.6-2.8)"},
+ {"25 48 3C 5C 24 24 1B 02", "Tokina AT-X 287 AF PRO SV (AF 28-70mm f/2.8)"},
+ {"25 48 44 5C 24 24 1B 02", "AF Zoom-Nikkor 35-70mm f/2.8D"},
+ {"25 48 44 5C 24 24 3A 02", "AF Zoom-Nikkor 35-70mm f/2.8D"},
+ {"25 48 44 5C 24 24 52 02", "AF Zoom-Nikkor 35-70mm f/2.8D"},
+ {"26 3C 54 80 30 3C 1C 06", "Sigma 55-200mm f/4-5.6 DC"},
+ {"26 3C 5C 82 30 3C 1C 02", "Sigma 70-210mm f/4-5.6 UC-II"},
+ {"26 3C 5C 8E 30 3C 1C 02", "Sigma 70-300mm f/4-5.6 DG Macro"},
+ {"26 3C 98 98 3C 3C 1C 02", "Sigma APO Tele Macro 400mm f/5.6"},
+ {"26 3D 3C 80 2F 3D 1C 02", "Sigma 28-300mm f/3.8-5.6 Aspherical"},
+ {"26 3E 3C 6A 2E 3C 1C 02", "Sigma 28-105mm f/3.8-5.6 UC-III Aspherical IF"},
+ {"26 40 27 3F 2C 34 1C 02", "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical DF"},
+ {"26 40 2D 44 2B 34 1C 02", "Sigma 18-35mm f/3.5-4.5 Aspherical"},
+ {"26 40 2D 50 2C 3C 1C 06", "Sigma 18-50mm f/3.5-5.6 DC"},
+ {"26 40 2D 70 2B 3C 1C 06", "Sigma 18-125mm f/3.5-5.6 DC"},
+ {"26 40 2D 80 2C 40 1C 06", "Sigma 18-200mm f/3.5-6.3 DC"},
+ {"26 40 37 5C 2C 3C 1C 02", "Sigma 24-70mm f/3.5-5.6 Aspherical HF"},
+ {"26 40 3C 5C 2C 34 1C 02", "AF Zoom-Nikkor 28-70mm f/3.5-4.5D"},
+ {"26 40 3C 60 2C 3C 1C 02", "Sigma 28-80mm f/3.5-5.6 Mini Zoom Macro II Aspherical"},
+ {"26 40 3C 65 2C 3C 1C 02", "Sigma 28-90mm f/3.5-5.6 Macro"},
+ {"26 40 3C 80 2B 3C 1C 02", "Sigma 28-200mm f/3.5-5.6 Compact Aspherical Hyperzoom Macro"},
+ {"26 40 3C 80 2C 3C 1C 02", "Sigma 28-200mm f/3.5-5.6 Compact Aspherical Hyperzoom Macro"},
+ {"26 40 3C 8E 2C 40 1C 02", "Sigma 28-300mm f/3.5-6.3 Macro"},
+ {"26 40 7B A0 34 40 1C 02", "Sigma APO 170-500mm f/5-6.3 Aspherical RF"},
+ {"26 41 3C 8E 2C 40 1C 02", "Sigma 28-300mm f/3.5-6.3 DG Macro"},
+ {"26 44 73 98 34 3C 1C 02", "Sigma 135-400mm f/4.5-5.6 APO Aspherical"},
+ {"26 48 11 11 30 30 1C 02", "Sigma 8mm f/4 EX Circular Fisheye"},
+ {"26 48 27 27 24 24 1C 02", "Sigma 15mm f/2.8 EX Diagonal Fisheye"},
+ {"26 48 2D 50 24 24 1C 06", "Sigma 18-50mm f/2.8 EX DC"},
+ {"26 48 31 49 24 24 1C 02", "Sigma 20-40mm f/2.8"},
+ {"26 48 37 56 24 24 1C 02", "Sigma 24-60mm f/2.8 EX DG"},
+ {"26 48 3C 5C 24 24 1C 06", "Sigma 28-70mm f/2.8 EX DG"},
+ {"26 48 3C 5C 24 30 1C 02", "Sigma 28-70mm f/2.8-4 DG"},
+ {"26 48 3C 6A 24 30 1C 02", "Sigma 28-105mm f/2.8-4 Aspherical"},
+ {"26 48 8E 8E 30 30 1C 02", "Sigma APO Tele Macro 300mm f/4"},
+ {"26 54 2B 44 24 30 1C 02", "Sigma 17-35mm f/2.8-4 EX Aspherical"},
+ {"26 54 37 5C 24 24 1C 02", "Sigma 24-70mm f/2.8 EX DG Macro"},
+ {"26 54 37 73 24 34 1C 02", "Sigma 24-135mm f/2.8-4.5"},
+ {"26 54 3C 5C 24 24 1C 02", "Sigma 28-70mm f/2.8 EX"},
+ {"26 58 31 31 14 14 1C 02", "Sigma 20mm f/1.8 EX DG Aspherical RF"},
+ {"26 58 37 37 14 14 1C 02", "Sigma 24mm f/1.8 EX DG Aspherical Macro"},
+ {"26 58 3C 3C 14 14 1C 02", "Sigma 28mm f/1.8 EX DG Aspherical Macro"},
+ {"27 48 8E 8E 24 24 1D 02", "AF-I Nikkor 300mm f/2.8D IF-ED"},
+ {"27 48 8E 8E 24 24 E1 02", "AF-I Nikkor 300mm f/2.8D IF-ED + TC-17E"},
+ {"27 48 8E 8E 24 24 F1 02", "AF-I Nikkor 300mm f/2.8D IF-ED + TC-14E"},
+ {"27 48 8E 8E 24 24 F2 02", "AF-I Nikkor 300mm f/2.8D IF-ED + TC-20E"},
+ {"27 48 8E 8E 30 30 1D 02", "Tokina AT-X 304 AF (AF 300mm f/4.0)"},
+ {"27 54 8E 8E 24 24 1D 02", "Tamron SP AF 300mm f/2.8 LD-IF (360E)"},
+ {"28 3C A6 A6 30 30 1D 02", "AF-I Nikkor 600mm f/4D IF-ED"},
+ {"28 3C A6 A6 30 30 E1 02", "AF-I Nikkor 600mm f/4D IF-ED + TC-17E"},
+ {"28 3C A6 A6 30 30 F1 02", "AF-I Nikkor 600mm f/4D IF-ED + TC-14E"},
+ {"28 3C A6 A6 30 30 F2 02", "AF-I Nikkor 600mm f/4D IF-ED + TC-20E"},
+ {"2A 54 3C 3C 0C 0C 26 02", "AF Nikkor 28mm f/1.4D"},
+ {"2B 3C 44 60 30 3C 1F 02", "AF Zoom-Nikkor 35-80mm f/4-5.6D"},
+ {"2C 48 6A 6A 18 18 27 02", "AF DC-Nikkor 105mm f/2D"},
+ {"2D 48 80 80 30 30 21 02", "AF Micro-Nikkor 200mm f/4D IF-ED"},
+ {"2E 48 5C 82 30 3C 22 02", "AF Nikkor 70-210mm f/4-5.6D"},
+ {"2E 48 5C 82 30 3C 28 02", "AF Nikkor 70-210mm f/4-5.6D"},
+ {"2F 40 30 44 2C 34 29 02", "Tokina AF 235 II (AF 20-35mm f/3.5-4.5)"},
+ {"2F 40 30 44 2C 34 29 02", "Tokina AF 193 (AF 19-35mm f/3.5-4.5)"},
+ {"2F 48 30 44 24 24 29 02", "AF Zoom-Nikkor 20-35mm f/2.8D IF"},
+ {"2F 48 30 44 24 24 29 02", "Tokina AT-X 235 AF PRO (AF 20-35mm f/2.8)"},
+ {"30 48 98 98 24 24 24 02", "AF-I Nikkor 400mm f/2.8D IF-ED"},
+ {"30 48 98 98 24 24 E1 02", "AF-I Nikkor 400mm f/2.8D IF-ED + TC-17E"},
+ {"30 48 98 98 24 24 F1 02", "AF-I Nikkor 400mm f/2.8D IF-ED + TC-14E"},
+ {"30 48 98 98 24 24 F2 02", "AF-I Nikkor 400mm f/2.8D IF-ED + TC-20E"},
+ {"31 54 56 56 24 24 25 02", "AF Micro-Nikkor 60mm f/2.8D"},
+ {"32 53 64 64 24 24 35 02", "Tamron SP AF 90mm f/2.8 [Di] Macro 1:1 (172E/272E)"},
+ {"32 54 50 50 24 24 35 02", "Sigma Macro 50mm f/2.8 EX DG"},
+ {"32 54 6A 6A 24 24 35 02", "AF Micro-Nikkor 105mm f/2.8D"},
+ {"32 54 6A 6A 24 24 35 02", "Sigma Macro 105mm f/2.8 EX DG"},
+ {"33 48 2D 2D 24 24 31 02", "AF Nikkor 18mm f/2.8D"},
+ {"33 54 3C 5E 24 24 62 02", "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical (IF) Macro (A09)"},
+ {"34 48 29 29 24 24 32 02", "AF Fisheye Nikkor 16mm f/2.8D"},
+ {"35 3C A0 A0 30 30 33 02", "AF-I Nikkor 500mm f/4D IF-ED"},
+ {"35 3C A0 A0 30 30 E1 02", "AF-I Nikkor 500mm f/4D IF-ED + TC-17E"},
+ {"35 3C A0 A0 30 30 F1 02", "AF-I Nikkor 500mm f/4D IF-ED + TC-14E"},
+ {"35 3C A0 A0 30 30 F2 02", "AF-I Nikkor 500mm f/4D IF-ED + TC-20E"},
+ {"36 48 37 37 24 24 34 02", "AF Nikkor 24mm f/2.8D"},
+ {"37 48 30 30 24 24 36 02", "AF Nikkor 20mm f/2.8D"},
+ {"38 4C 62 62 14 14 37 02", "AF Nikkor 85mm f/1.8D"},
+ {"3A 40 3C 5C 2C 34 39 02", "AF Zoom-Nikkor 28-70mm f/3.5-4.5D"},
+ {"3B 48 44 5C 24 24 3A 02", "AF Zoom-Nikkor 35-70mm f/2.8D N"},
+ {"3C 48 60 80 24 24 3B 02", "AF Zoom-Nikkor 80-200mm f/2.8D ED"},
+ {"3D 3C 44 60 30 3C 3E 02", "AF Zoom-Nikkor 35-80mm f/4-5.6D"},
+ {"3E 48 3C 3C 24 24 3D 02", "AF Nikkor 28mm f/2.8D"},
+ {"3F 40 44 6A 2C 34 45 02", "AF Zoom-Nikkor 35-105mm f/3.5-4.5D"},
+ {"41 48 7C 7C 24 24 43 02", "AF Nikkor 180mm f/2.8D IF-ED"},
+ {"42 54 44 44 18 18 44 02", "AF Nikkor 35mm f/2D"},
+ {"43 54 50 50 0C 0C 46 02", "AF Nikkor 50mm f/1.4D"},
+ {"44 44 60 80 34 3C 47 02", "AF Zoom-Nikkor 80-200mm f/4.5-5.6D"},
+ {"45 3D 3C 60 2C 3C 48 02", "Tamron AF 28-80mm f/3.5-5.6 Aspherical (177D)"},
+ {"45 40 3C 60 2C 3C 48 02", "AF Zoom-Nikkor 28-80mm f/3.5-5.6D"},
+ {"45 41 37 72 2C 3C 48 02", "Tamron SP AF 24-135mm f/3.5-5.6 AD Aspherical (IF) Macro (190D)"},
+ {"46 3C 44 60 30 3C 49 02", "AF Zoom-Nikkor 35-80mm f/4-5.6D N"},
+ {"47 42 37 50 2A 34 4A 02", "AF Zoom-Nikkor 24-50mm f/3.3-4.5D"},
+ {"48 38 1F 37 34 3C 4B 06", "Sigma 12-24mm f/4.5-5.6 EX DG Aspherical HSM"},
+ {"48 3C 19 31 30 3C 4B 06", "Sigma 10-20mm f/4-5.6 EX DC HSM"},
+ {"48 3C 50 A0 30 40 4B 02", "Sigma 50-500mm f/4-6.3 EX APO RF HSM"},
+ {"48 3C 8E B0 3C 3C 4B 02", "Sigma APO 300-800mm f/5.6 EX DG HSM"},
+ {"48 3C B0 B0 3C 3C 4B 02", "Sigma APO 800mm f/5.6 EX HSM"},
+ {"48 44 A0 A0 34 34 4B 02", "Sigma APO 500mm f/4.5 EX HSM"},
+ {"48 48 24 24 24 24 4B 02", "Sigma 14mm f/2.8 EX Aspherical HSM"},
+ {"48 48 2B 44 24 30 4B 06", "Sigma 17-35mm f/2.8-4 EX DG Aspherical HSM"},
+ {"48 48 68 8E 30 30 4B 02", "Sigma APO 100-300mm f/4 EX IF HSM"},
+ {"48 48 76 76 24 24 4B 06", "Sigma APO Macro 150mm f/2.8 EX DG HSM"},
+ {"48 48 8E 8E 24 24 4B 02", "AF-S Nikkor 300mm f/2.8D IF-ED"},
+ {"48 48 8E 8E 24 24 E1 02", "AF-S Nikkor 300mm f/2.8D IF-ED + TC-17E"},
+ {"48 48 8E 8E 24 24 F1 02", "AF-S Nikkor 300mm f/2.8D IF-ED + TC-14E"},
+ {"48 48 8E 8E 24 24 F2 02", "AF-S Nikkor 300mm f/2.8D IF-ED + TC-20E"},
+ {"48 4C 7C 7C 2C 2C 4B 02", "Sigma APO Macro 180mm f/3.5 EX DG HSM"},
+ {"48 4C 7D 7D 2C 2C 4B 02", "Sigma APO Macro 180mm f/3.5 EX DG HSM"},
+ {"48 54 3E 3E 0C 0C 4B 06", "Sigma 30mm f/1.4 EX DC HSM"},
+ {"48 54 5C 80 24 24 4B 02", "Sigma 70-200mm f/2.8 EX APO IF HSM"},
+ {"48 54 6F 8E 24 24 4B 02", "Sigma APO 120-300mm f/2.8 EX DG HSM"},
+ {"48 54 8E 8E 24 24 4B 02", "Sigma APO 300mm f/2.8 EX DG HSM"},
+ {"49 3C A6 A6 30 30 4C 02", "AF-S Nikkor 600mm f/4D IF-ED"},
+ {"49 3C A6 A6 30 30 E1 02", "AF-S Nikkor 600mm f/4D IF-ED + TC-17E"},
+ {"49 3C A6 A6 30 30 F1 02", "AF-S Nikkor 600mm f/4D IF-ED + TC-14E"},
+ {"49 3C A6 A6 30 30 F2 02", "AF-S Nikkor 600mm f/4D IF-ED + TC-20E"},
+ {"4A 40 11 11 2C 0C 4D 02", "Samyang 8mm f/3.5 Fish-Eye CS"},
+ {"4A 48 1E 1E 24 0C 4D 02", "Samyang 12mm f/2.8 ED AS NCS Fish-Eye"},
+ {"4A 48 24 24 24 0C 4D 02", "Samyang AE 14mm f/2.8 ED AS IF UMC"},
+ {"4A 54 29 29 18 0C 4D 02", "Samyang 16mm f/2.0 ED AS UMC CS"},
+ {"4A 54 62 62 0C 0C 4D 02", "AF Nikkor 85mm f/1.4D IF"},
+ {"4A 60 44 44 0C 0C 4D 02", "Samyang 35mm f/1.4 AS UMC"},
+ {"4A 60 62 62 0C 0C 4D 02", "Samyang AE 85mm f/1.4 AS IF UMC"},
+ {"4B 3C A0 A0 30 30 4E 02", "AF-S Nikkor 500mm f/4D IF-ED"},
+ {"4B 3C A0 A0 30 30 E1 02", "AF-S Nikkor 500mm f/4D IF-ED + TC-17E"},
+ {"4B 3C A0 A0 30 30 F1 02", "AF-S Nikkor 500mm f/4D IF-ED + TC-14E"},
+ {"4B 3C A0 A0 30 30 F2 02", "AF-S Nikkor 500mm f/4D IF-ED + TC-20E"},
+ {"4C 40 37 6E 2C 3C 4F 02", "AF Zoom-Nikkor 24-120mm f/3.5-5.6D IF"},
+ {"4D 3E 3C 80 2E 3C 62 02", "Tamron AF 28-200mm f/3.8-5.6 XR Aspherical (IF) Macro (A03N)"},
+ {"4D 40 3C 80 2C 3C 62 02", "AF Zoom-Nikkor 28-200mm f/3.5-5.6D IF"},
+ {"4D 41 3C 8E 2B 40 62 02", "Tamron AF 28-300mm f/3.5-6.3 XR Di LD Aspherical (IF) (A061)"},
+ {"4D 41 3C 8E 2C 40 62 02", "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical (IF) (185D)"},
+ {"4E 48 72 72 18 18 51 02", "AF DC-Nikkor 135mm f/2D"},
+ {"4F 40 37 5C 2C 3C 53 06", "IX-Nikkor 24-70mm f/3.5-5.6"},
+ {"50 48 56 7C 30 3C 54 06", "IX-Nikkor 60-180mm f/4-5.6"},
+ {"52 54 44 44 18 18 00 00", "Zeiss Milvus 35mm f/2"},
+ {"53 48 60 80 24 24 57 02", "AF Zoom-Nikkor 80-200mm f/2.8D ED"},
+ {"53 48 60 80 24 24 60 02", "AF Zoom-Nikkor 80-200mm f/2.8D ED"},
+ {"53 54 50 50 0C 0C 00 00", "Zeiss Milvus 50mm f/1.4"},
+ {"54 44 5C 7C 34 3C 58 02", "AF Zoom-Micro Nikkor 70-180mm f/4.5-5.6D ED"},
+ {"54 44 5C 7C 34 3C 61 02", "AF Zoom-Micro Nikkor 70-180mm f/4.5-5.6D ED"},
+ {"54 54 50 50 18 18 00 00", "Zeiss Milvus 50mm f/2 Macro"},
+ {"55 54 62 62 0C 0C 00 00", "Zeiss Milvus 85mm f/1.4"},
+ {"56 3C 5C 8E 30 3C 1C 02", "Sigma 70-300mm f/4-5.6 APO Macro Super II"},
+ {"56 48 5C 8E 30 3C 5A 02", "AF Zoom-Nikkor 70-300mm f/4-5.6D ED"},
+ {"56 54 68 68 18 18 00 00", "Zeiss Milvus 100mm f/2 Macro"},
+ {"59 48 98 98 24 24 5D 02", "AF-S Nikkor 400mm f/2.8D IF-ED"},
+ {"59 48 98 98 24 24 E1 02", "AF-S Nikkor 400mm f/2.8D IF-ED + TC-17E"},
+ {"59 48 98 98 24 24 F1 02", "AF-S Nikkor 400mm f/2.8D IF-ED + TC-14E"},
+ {"59 48 98 98 24 24 F2 02", "AF-S Nikkor 400mm f/2.8D IF-ED + TC-20E"},
+ {"5A 3C 3E 56 30 3C 5E 06", "IX-Nikkor 30-60mm f/4-5.6"},
+ {"5B 44 56 7C 34 3C 5F 06", "IX-Nikkor 60-180mm f/4.5-5.6"},
+ {"5D 48 3C 5C 24 24 63 02", "AF-S Zoom-Nikkor 28-70mm f/2.8D IF-ED"},
+ {"5E 48 60 80 24 24 64 02", "AF-S Zoom-Nikkor 80-200mm f/2.8D IF-ED"},
+ {"5F 40 3C 6A 2C 34 65 02", "AF Zoom-Nikkor 28-105mm f/3.5-4.5D IF"},
+ {"60 40 3C 60 2C 3C 66 02", "AF Zoom-Nikkor 28-80mm f/3.5-5.6D"},
+ {"61 44 5E 86 34 3C 67 02", "AF Zoom-Nikkor 75-240mm f/4.5-5.6D"},
+ {"63 48 2B 44 24 24 68 02", "AF-S Nikkor 17-35mm f/2.8D IF-ED"},
+ {"64 00 62 62 24 24 6A 02", "PC Micro-Nikkor 85mm f/2.8D"},
+ {"65 44 60 98 34 3C 6B 0A", "AF VR Zoom-Nikkor 80-400mm f/4.5-5.6D ED"},
+ {"66 40 2D 44 2C 34 6C 02", "AF Zoom-Nikkor 18-35mm f/3.5-4.5D IF-ED"},
+ {"67 48 37 62 24 30 6D 02", "AF Zoom-Nikkor 24-85mm f/2.8-4D IF"},
+ {"67 54 37 5C 24 24 1C 02", "Sigma 24-70mm f/2.8 EX DG Macro"},
+ {"68 42 3C 60 2A 3C 6E 06", "AF Zoom-Nikkor 28-80mm f/3.3-5.6G"},
+ {"69 47 5C 8E 30 3C 00 02", "Tamron AF 70-300mm f/4-5.6 Di LD Macro 1:2 (A17N)"},
+ {"69 48 5C 8E 30 3C 6F 02", "Tamron AF 70-300mm f/4-5.6 LD Macro 1:2 (572D/772D)"},
+ {"69 48 5C 8E 30 3C 6F 06", "AF Zoom-Nikkor 70-300mm f/4-5.6G"},
+ {"6A 48 8E 8E 30 30 70 02", "AF-S Nikkor 300mm f/4D IF-ED"},
+ {"6B 48 24 24 24 24 71 02", "AF Nikkor ED 14mm f/2.8D"},
+ {"6D 48 8E 8E 24 24 73 02", "AF-S Nikkor 300mm f/2.8D IF-ED II"},
+ {"6E 48 98 98 24 24 74 02", "AF-S Nikkor 400mm f/2.8D IF-ED II"},
+ {"6F 3C A0 A0 30 30 75 02", "AF-S Nikkor 500mm f/4D IF-ED II"},
+ {"70 3C A6 A6 30 30 76 02", "AF-S Nikkor 600mm f/4D IF-ED II"},
+ {"72 48 4C 4C 24 24 77 00", "Nikkor 45mm f/2.8 P"},
+ {"74 40 37 62 2C 34 78 06", "AF-S Zoom-Nikkor 24-85mm f/3.5-4.5G IF-ED"},
+ {"75 40 3C 68 2C 3C 79 06", "AF Zoom-Nikkor 28-100mm f/3.5-5.6G"},
+ {"76 58 50 50 14 14 7A 02", "AF Nikkor 50mm f/1.8D"},
+ {"77 44 61 98 34 3C 7B 0E", "Sigma 80-400mm f/4.5-5.6 EX OS"},
+ {"77 48 5C 80 24 24 7B 0E", "AF-S VR Zoom-Nikkor 70-200mm f/2.8G IF-ED"},
+ {"78 40 37 6E 2C 3C 7C 0E", "AF-S VR Zoom-Nikkor 24-120mm f/3.5-5.6G IF-ED"},
+ {"79 40 11 11 2C 2C 1C 06", "Sigma 8mm f/3.5 EX Circular Fisheye"},
+ {"79 40 3C 80 2C 3C 7F 06", "AF Zoom-Nikkor 28-200mm f/3.5-5.6G IF-ED"},
+ {"79 48 3C 5C 24 24 1C 06", "Sigma 28-70mm f/2.8 EX DG"},
+ {"79 48 5C 5C 24 24 1C 06", "Sigma Macro 70mm f/2.8 EX DG"},
+ {"7A 3B 53 80 30 3C 4B 06", "Sigma 55-200mm f/4-5.6 DC HSM"},
+ {"7A 3C 1F 37 30 30 7E 06", "AF-S DX Zoom-Nikkor 12-24mm f/4G IF-ED"},
+ {"7A 3C 1F 37 30 30 7E 06", "Tokina AT-X 124 AF PRO DX II (AF 12-24mm f/4)"},
+ {"7A 3C 1F 3C 30 30 7E 06", "Tokina AT-X 12-28 PRO DX (AF 12-28mm f/4)"},
+ {"7A 40 2D 50 2C 3C 4B 06", "Sigma 18-50mm f/3.5-5.6 DC HSM"},
+ {"7A 40 2D 80 2C 40 4B 0E", "Sigma 18-200mm f/3.5-6.3 DC OS HSM"},
+ {"7A 47 2B 5C 24 34 4B 06", "Sigma 17-70mm f/2.8-4.5 DC Macro Asp. IF HSM"},
+ {"7A 47 50 76 24 24 4B 06", "Sigma 50-150mm f/2.8 EX APO DC HSM"},
+ {"7A 48 1C 29 24 24 7E 06", "Tokina AT-X 116 PRO DX II (AF 11-16mm f/2.8)"},
+ {"7A 48 1C 30 24 24 7E 06", "Tokina AT-X 11-20 f/2.8 PRO DX (AF 11-20mm f/2.8)"},
+ {"7A 48 2B 5C 24 34 4B 06", "Sigma 17-70mm f/2.8-4.5 DC Macro Asp. IF HSM"},
+ {"7A 48 2D 50 24 24 4B 06", "Sigma 18-50mm f/2.8 EX DC Macro"},
+ {"7A 48 5C 80 24 24 4B 06", "Sigma 70-200mm f/2.8 EX APO DG Macro HSM II"},
+ {"7A 54 6E 8E 24 24 4B 02", "Sigma APO 120-300mm f/2.8 EX DG HSM"},
+ {"7B 48 80 98 30 30 80 0E", "AF-S VR Zoom-Nikkor 200-400mm f/4G IF-ED"},
+ {"7D 48 2B 53 24 24 82 06", "AF-S DX Zoom-Nikkor 17-55mm f/2.8G IF-ED"},
+ {"7F 40 2D 5C 2C 34 84 06", "AF-S DX Zoom-Nikkor 18-70mm f/3.5-4.5G IF-ED"},
+ {"7F 48 2B 5C 24 34 1C 06", "Sigma 17-70mm f/2.8-4.5 DC Macro Asp. IF"},
+ {"7F 48 2D 50 24 24 1C 06", "Sigma 18-50mm f/2.8 EX DC Macro"},
+ {"80 48 1A 1A 24 24 85 06", "AF DX Fisheye-Nikkor 10.5mm f/2.8G ED"},
+ {"81 34 76 A6 38 40 4B 0E", "Sigma 150-600mm f/5-6.3 DG OS HSM | S"},
+ {"81 54 80 80 18 18 86 0E", "AF-S VR Nikkor 200mm f/2G IF-ED"},
+ {"82 34 76 A6 38 40 4B 0E", "Sigma 150-600mm f/5-6.3 DG OS HSM | C"},
+ {"82 48 8E 8E 24 24 87 0E", "AF-S VR Nikkor 300mm f/2.8G IF-ED"},
+ {"83 00 B0 B0 5A 5A 88 04", "FSA-L2, EDG 65, 800mm f/13 G"},
+ {"88 54 50 50 0C 0C 4B 06", "Sigma 50mm f/1.4 DG HSM | A"},
+ {"89 3C 53 80 30 3C 8B 06", "AF-S DX Zoom-Nikkor 55-200mm f/4-5.6G ED"},
+ {"8A 3C 37 6A 30 30 4B 0E", "Sigma 24-105mm f/4 DG OS HSM"},
+ {"8A 54 6A 6A 24 24 8C 0E", "AF-S VR Micro-Nikkor 105mm f/2.8G IF-ED"},
+ {"8B 40 2D 80 2C 3C 8D 0E", "AF-S DX VR Zoom-Nikkor 18-200mm f/3.5-5.6G IF-ED"},
+ {"8B 40 2D 80 2C 3C FD 0E", "AF-S DX VR Zoom-Nikkor 18-200mm f/3.5-5.6G IF-ED [II]"},
+ {"8B 4C 2D 44 14 14 4B 06", "Sigma 18-35mm f/1.8 DC HSM"},
+ {"8C 40 2D 53 2C 3C 8E 06", "AF-S DX Zoom-Nikkor 18-55mm f/3.5-5.6G ED"},
+ {"8D 44 5C 8E 34 3C 8F 0E", "AF-S VR Zoom-Nikkor 70-300mm f/4.5-5.6G IF-ED"},
+ {"8E 3C 2B 5C 24 30 4B 0E", "Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C"},
+ {"8F 40 2D 72 2C 3C 91 06", "AF-S DX Zoom-Nikkor 18-135mm f/3.5-5.6G IF-ED"},
+ {"8F 48 2B 50 24 24 4B 0E", "Sigma 17-50mm f/2.8 EX DC OS HSM"},
+ {"90 3B 53 80 30 3C 92 0E", "AF-S DX VR Zoom-Nikkor 55-200mm f/4-5.6G IF-ED"},
+ {"90 40 2D 80 2C 40 4B 0E", "Sigma 18-200mm f/3.5-6.3 II DC OS HSM"},
+ {"91 54 44 44 0C 0C 4B 06", "Sigma 35mm f/1.4 DG HSM"},
+ {"92 2C 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC Macro OS HSM"},
+ {"92 48 24 37 24 24 94 06", "AF-S Zoom-Nikkor 14-24mm f/2.8G ED"},
+ {"93 48 37 5C 24 24 95 06", "AF-S Zoom-Nikkor 24-70mm f/2.8G ED"},
+ {"94 40 2D 53 2C 3C 96 06", "AF-S DX Zoom-Nikkor 18-55mm f/3.5-5.6G ED II"},
+ {"95 00 37 37 2C 2C 97 06", "PC-E Nikkor 24mm f/3.5D ED"},
+ {"95 4C 37 37 2C 2C 97 02", "PC-E Nikkor 24mm f/3.5D ED"},
+ {"96 38 1F 37 34 3C 4B 06", "Sigma 12-24mm f/4.5-5.6 II DG HSM"},
+ {"96 48 98 98 24 24 98 0E", "AF-S VR Nikkor 400mm f/2.8G ED"},
+ {"97 3C A0 A0 30 30 99 0E", "AF-S VR Nikkor 500mm f/4G ED"},
+ {"97 48 6A 6A 24 24 4B 0E", "Sigma Macro 105mm f/2.8 EX DG OS HSM"},
+ {"98 3C A6 A6 30 30 9A 0E", "AF-S VR Nikkor 600mm f/4G ED"},
+ {"98 48 50 76 24 24 4B 0E", "Sigma 50-150mm f/2.8 EX APO DC OS HSM"},
+ {"99 40 29 62 2C 3C 9B 0E", "AF-S DX VR Zoom-Nikkor 16-85mm f/3.5-5.6G ED"},
+ {"99 48 76 76 24 24 4B 0E", "Sigma APO Macro 150mm f/2.8 EX DG OS HSM"},
+ {"9A 40 2D 53 2C 3C 9C 0E", "AF-S DX VR Zoom-Nikkor 18-55mm f/3.5-5.6G"},
+ {"9B 00 4C 4C 24 24 9D 06", "PC-E Micro Nikkor 45mm f/2.8D ED"},
+ {"9B 54 4C 4C 24 24 9D 02", "PC-E Micro Nikkor 45mm f/2.8D ED"},
+ {"9B 54 62 62 0C 0C 4B 06", "Sigma 85mm f/1.4 EX DG HSM"},
+ {"9C 48 5C 80 24 24 4B 0E", "Sigma 70-200mm f/2.8 EX DG OS HSM"},
+ {"9C 54 56 56 24 24 9E 06", "AF-S Micro Nikkor 60mm f/2.8G ED"},
+ {"9D 00 62 62 24 24 9F 06", "PC-E Micro Nikkor 85mm f/2.8D"},
+ {"9D 48 2B 50 24 24 4B 0E", "Sigma 17-50mm f/2.8 EX DC OS HSM"},
+ {"9D 54 62 62 24 24 9F 02", "PC-E Micro Nikkor 85mm f/2.8D"},
+ {"9E 38 11 29 34 3C 4B 06", "Sigma 8-16mm f/4.5-5.6 DC HSM"},
+ {"9E 40 2D 6A 2C 3C A0 0E", "AF-S DX VR Zoom-Nikkor 18-105mm f/3.5-5.6G ED"},
+ {"9F 37 50 A0 34 40 4B 0E", "Sigma 50-500mm f/4.5-6.3 DG OS HSM"},
+ {"9F 58 44 44 14 14 A1 06", "AF-S DX Nikkor 35mm f/1.8G"},
+ {"A0 40 2D 74 2C 3C BB 0E", "AF-S DX Nikkor 18-140mm f/3.5-5.6G ED VR"},
+ {"A0 48 2A 5C 24 30 4B 0E", "Sigma 17-70mm f/2.8-4 DC Macro OS HSM"},
+ {"A0 54 50 50 0C 0C A2 06", "AF-S Nikkor 50mm f/1.4G"},
+ {"A1 40 18 37 2C 34 A3 06", "AF-S DX Nikkor 10-24mm f/3.5-4.5G ED"},
+ {"A1 41 19 31 2C 2C 4B 06", "Sigma 10-20mm f/3.5 EX DC HSM"},
+ {"A1 54 55 55 0C 0C BC 06", "AF-S Nikkor 58mm f/1.4G"},
+ {"A2 40 2D 53 2C 3C BD 0E", "AF-S DX Nikkor 18-55mm f/3.5-5.6G VR II"},
+ {"A2 48 5C 80 24 24 A4 0E", "AF-S Nikkor 70-200mm f/2.8G ED VR II"},
+ {"A3 3C 29 44 30 30 A5 0E", "AF-S Nikkor 16-35mm f/4G ED VR"},
+ {"A3 3C 5C 8E 30 3C 4B 0E", "Sigma 70-300mm f/4-5.6 DG OS"},
+ {"A4 40 2D 8E 2C 40 BF 0E", "AF-S DX Nikkor 18-300mm f/3.5-6.3G ED VR"},
+ {"A4 47 2D 50 24 34 4B 0E", "Sigma 18-50mm f/2.8-4.5 DC OS HSM"},
+ {"A4 54 37 37 0C 0C A6 06", "AF-S Nikkor 24mm f/1.4G ED"},
+ {"A5 40 2D 88 2C 40 4B 0E", "Sigma 18-250mm f/3.5-6.3 DC OS HSM"},
+ {"A5 40 3C 8E 2C 3C A7 0E", "AF-S Nikkor 28-300mm f/3.5-5.6G ED VR"},
+ {"A5 4C 44 44 14 14 C0 06", "AF-S Nikkor 35mm f/1.8G ED"},
+ {"A6 48 37 5C 24 24 4B 06", "Sigma 24-70mm f/2.8 IF EX DG HSM"},
+ {"A6 48 8E 8E 24 24 A8 0E", "AF-S VR Nikkor 300mm f/2.8G IF-ED II"},
+ {"A6 48 98 98 24 24 C1 0E", "AF-S Nikkor 400mm f/2.8E FL ED VR"},
+ {"A7 3C 53 80 30 3C C2 0E", "AF-S DX Nikkor 55-200mm f/4-5.6G ED VR II"},
+ {"A7 49 80 A0 24 24 4B 06", "Sigma APO 200-500mm f/2.8 EX DG"},
+ {"A7 4B 62 62 2C 2C A9 0E", "AF-S DX Micro Nikkor 85mm f/3.5G ED VR"},
+ {"A8 48 80 98 30 30 AA 0E", "AF-S VR Zoom-Nikkor 200-400mm f/4G IF-ED II"},
+ {"A8 48 8E 8E 30 30 C3 0E", "AF-S Nikkor 300mm f/4E PF ED VR"},
+ {"A8 48 8E 8E 30 30 C3 4E", "AF-S Nikkor 300mm f/4E PF ED VR"},
+ {"A9 4C 31 31 14 14 C4 06", "AF-S Nikkor 20mm f/1.8G ED"},
+ {"A9 54 80 80 18 18 AB 0E", "AF-S Nikkor 200mm f/2G ED VR II"},
+ {"AA 3C 37 6E 30 30 AC 0E", "AF-S Nikkor 24-120mm f/4G ED VR"},
+ {"AA 48 37 5C 24 24 C5 4E", "AF-S Nikkor 24-70mm f/2.8E ED VR"},
+ {"AB 3C A0 A0 30 30 C6 4E", "AF-S Nikkor 500mm f/4E FL ED VR"},
+ {"AC 38 53 8E 34 3C AE 0E", "AF-S DX VR Nikkor 55-300mm f/4.5-5.6G ED"},
+ {"AC 3C A6 A6 30 30 C7 4E", "AF-S Nikkor 600mm f/4E FL ED VR"},
+ {"AD 3C 2D 8E 2C 3C AF 0E", "AF-S DX Nikkor 18-300mm f/3.5-5.6G ED VR"},
+ {"AD 48 28 60 24 30 C8 0E", "AF-S DX Nikkor 16-80mm f/2.8-4E ED VR"},
+ {"AD 48 28 60 24 30 C8 4E", "AF-S DX Nikkor 16-80mm f/2.8-4E ED VR"},
+ {"AE 3C 80 A0 3C 3C C9 0E", "AF-S Nikkor 200-500mm f/5.6E ED VR"},
+ {"AE 3C 80 A0 3C 3C C9 4E", "AF-S Nikkor 200-500mm f/5.6E ED VR"},
+ {"AE 54 62 62 0C 0C B0 06", "AF-S Nikkor 85mm f/1.4G"},
+ {"AF 4C 37 37 14 14 CC 06", "AF-S Nikkor 24mm f/1.8G ED"},
+ {"AF 54 44 44 0C 0C B1 06", "AF-S Nikkor 35mm f/1.4G"},
+ {"B0 4C 50 50 14 14 B2 06", "AF-S Nikkor 50mm f/1.8G"},
+ {"B1 48 48 48 24 24 B3 06", "AF-S DX Micro Nikkor 40mm f/2.8G"},
+ {"B2 48 5C 80 30 30 B4 0E", "AF-S Nikkor 70-200mm f/4G ED VR"},
+ {"B3 4C 62 62 14 14 B5 06", "AF-S Nikkor 85mm f/1.8G"},
+ {"B4 40 37 62 2C 34 B6 0E", "AF-S VR Zoom-Nikkor 24-85mm f/3.5-4.5G IF-ED"},
+ {"B5 4C 3C 3C 14 14 B7 06", "AF-S Nikkor 28mm f/1.8G"},
+ {"B6 3C B0 B0 3C 3C B8 0E", "AF-S VR Nikkor 800mm f/5.6E FL ED"},
+ {"B6 48 37 56 24 24 1C 02", "Sigma 24-60mm f/2.8 EX DG"},
+ {"B7 44 60 98 34 3C B9 0E", "AF-S Nikkor 80-400mm f/4.5-5.6G ED VR"},
+ {"B8 40 2D 44 2C 34 BA 06", "AF-S Nikkor 18-35mm f/3.5-4.5G ED"},
+ {"CC 4C 50 68 14 14 4B 06", "Sigma 50-100mm f/1.8 DC HSM | A"},
+ {"CD 3D 2D 70 2E 3C 4B 0E", "Sigma 18-125mm f/3.8-5.6 DC OS HSM"},
+ {"CE 34 76 A0 38 40 4B 0E", "Sigma 150-500mm f/5-6.3 DG OS APO HSM"},
+ {"CF 38 6E 98 34 3C 4B 0E", "Sigma APO 120-400mm f/4.5-5.6 DG OS HSM"},
+ {"DC 48 19 19 24 24 4B 06", "Sigma 10mm f/2.8 EX DC HSM Fisheye"},
+ {"DE 54 50 50 0C 0C 4B 06", "Sigma 50mm f/1.4 EX DG HSM"},
+ {"E0 3C 5C 8E 30 3C 4B 06", "Sigma 70-300mm f/4-5.6 APO DG Macro HSM"},
+ {"E1 58 37 37 14 14 1C 02", "Sigma 24mm f/1.8 EX DG Aspherical Macro"},
+ {"E3 54 50 50 24 24 35 02", "Sigma Macro 50mm f/2.8 EX DG"},
+ {"E5 54 6A 6A 24 24 35 02", "Sigma Macro 105mm f/2.8 EX DG"},
+ {"E6 41 3C 8E 2C 40 1C 02", "Sigma 28-300mm f/3.5-6.3 DG Macro"},
+ {"E8 4C 44 44 14 14 DF 0E", "Tamron SP 35mm f/1.8 VC"},
+ {"E9 48 27 3E 24 24 DF 0E", "Tamron SP 15-30mm f/2.8 Di VC USD (A012)"},
+ {"E9 54 37 5C 24 24 1C 02", "Sigma 24-70mm f/2.8 EX DG Macro"},
+ {"EA 40 29 8E 2C 40 DF 0E", "Tamron AF 16-300mm f/3.5-6.3 Di II VC PZD (B016)"},
+ {"EA 48 27 27 24 24 1C 02", "Sigma 15mm f/2.8 EX Diagonal Fisheye"},
+ {"EB 40 76 A6 38 40 DF 0E", "Tamron SP AF 150-600mm f/5-6.3 VC USD (A011)"},
+ {"ED 40 2D 80 2C 40 4B 0E", "Sigma 18-200mm f/3.5-6.3 DC OS HSM"},
+ {"EE 48 5C 80 24 24 4B 06", "Sigma 70-200mm f/2.8 EX APO DG Macro HSM II"},
+ {"F0 38 1F 37 34 3C 4B 06", "Sigma 12-24mm f/4.5-5.6 EX DG Aspherical HSM"},
+ {"F0 3F 2D 8A 2C 40 DF 0E", "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD (B008)"},
+ {"F1 44 A0 A0 34 34 4B 02", "Sigma APO 500mm f/4.5 EX DG HSM"},
+ {"F1 47 5C 8E 30 3C DF 0E", "Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)"},
+ {"F3 48 68 8E 30 30 4B 02", "Sigma APO 100-300mm f/4 EX IF HSM"},
+ {"F3 54 2B 50 24 24 84 0E", "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical (IF) (B005)"},
+ {"F4 54 56 56 18 18 84 06", "Tamron SP AF 60mm f/2.0 Di II Macro 1:1 (G005)"},
+ {"F5 40 2C 8A 2C 40 40 0E", "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical (IF) Macro (B003)"},
+ {"F5 48 76 76 24 24 4B 06", "Sigma APO Macro 150mm f/2.8 EX DG HSM"},
+ {"F6 3F 18 37 2C 34 84 06", "Tamron SP AF 10-24mm f/3.5-4.5 Di II LD Aspherical (IF) (B001)"},
+ {"F6 3F 18 37 2C 34 DF 06", "Tamron SP AF 10-24mm f/3.5-4.5 Di II LD Aspherical (IF) (B001)"},
+ {"F6 48 2D 50 24 24 4B 06", "Sigma 18-50mm f/2.8 EX DC Macro"},
+ {"F7 53 5C 80 24 24 40 06", "Tamron SP AF 70-200mm f/2.8 Di LD (IF) Macro (A001)"},
+ {"F7 53 5C 80 24 24 84 06", "Tamron SP AF 70-200mm f/2.8 Di LD (IF) Macro (A001)"},
+ {"F8 54 3E 3E 0C 0C 4B 06", "Sigma 30mm f/1.4 EX DC HSM"},
+ {"F8 54 64 64 24 24 DF 06", "Tamron SP AF 90mm f/2.8 Di Macro 1:1 (272NII)"},
+ {"F8 55 64 64 24 24 84 06", "Tamron SP AF 90mm f/2.8 Di Macro 1:1 (272NII)"},
+ {"F9 3C 19 31 30 3C 4B 06", "Sigma 10-20mm f/4-5.6 EX DC HSM"},
+ {"F9 40 3C 8E 2C 40 40 0E", "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical (IF) Macro (A20)"},
+ {"FA 54 3C 5E 24 24 84 06", "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical (IF) Macro (A09NII)"},
+ {"FA 54 3C 5E 24 24 DF 06", "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical (IF) Macro (A09NII)"},
+ {"FA 54 6E 8E 24 24 4B 02", "Sigma APO 120-300mm f/2.8 EX DG HSM"},
+ {"FB 54 2B 50 24 24 84 06", "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF) (A16NII)"},
+ {"FB 54 8E 8E 24 24 4B 02", "Sigma APO 300mm f/2.8 EX DG HSM"},
+ {"FC 40 2D 80 2C 40 DF 06", "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical (IF) Macro (A14NII)"},
+ {"FD 47 50 76 24 24 4B 06", "Sigma 50-150mm f/2.8 EX APO DC HSM II"},
+ {"FE 47 00 00 24 24 4B 06", "Sigma 4.5mm f/2.8 EX DC HSM Circular Fisheye"},
+ {"FE 48 37 5C 24 24 DF 0E", "Tamron SP 24-70mm f/2.8 Di VC USD (A007)"},
+ {"FE 53 5C 80 24 24 84 06", "Tamron SP AF 70-200mm f/2.8 Di LD (IF) Macro (A001)"},
+ {"FE 54 5C 80 24 24 DF 0E", "Tamron SP 70-200mm f/2.8 Di VC USD (A009)"},
+ {"FE 54 64 64 24 24 DF 0E", "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1 (F004)"},
+ {"FF 40 2D 80 2C 40 4B 06", "Sigma 18-200mm f/3.5-6.3 DC"}
+};
const TagAttrib nikonISOInfoAttribs[] = {
{0, AC_WRITE, 0, nullptr, 0x0000, AUTO, "ISO", &naISOInfoISOInterpreter},
diff --git a/rtexif/sonyminoltaattribs.cc b/rtexif/sonyminoltaattribs.cc
index adb19c969..a559969bf 100644
--- a/rtexif/sonyminoltaattribs.cc
+++ b/rtexif/sonyminoltaattribs.cc
@@ -541,513 +541,515 @@ public:
};
SAAntiBlurInterpreter saAntiBlurInterpreter;
-class SALensIDInterpreter : public IntLensInterpreter< int >
+class SALensIDInterpreter : public IntLensInterpreter
{
public:
SALensIDInterpreter ()
{
- choices.insert(p_t(0, "Minolta AF 28-85mm f/3.5-4.5 New"));
- choices.insert(p_t(1, "Minolta AF 80-200mm f/2.8 HS-APO G"));
- choices.insert(p_t(2, "Minolta AF 28-70mm f/2.8 G"));
- choices.insert(p_t(3, "Minolta AF 28-80mm f/4-5.6"));
- choices.insert(p_t(4, "Minolta AF 85mm f/1.4G"));
- choices.insert(p_t(5, "Minolta AF 35-70mm f/3.5-4.5 [II]"));
- choices.insert(p_t(6, "Minolta AF 24-85mm f/3.5-4.5 [New]"));
- choices.insert(p_t(7, "Minolta AF 100-300mm f/4.5-5.6 APO [New] or 100-400mm or Sigma Lens"));
- choices.insert(p_t(7, "Minolta AF 100-400mm f/4.5-6.7 APO"));
- choices.insert(p_t(7, "Sigma AF 100-300mm f/4 EX DG IF"));
- choices.insert(p_t(8, "Minolta AF 70-210mm f/4.5-5.6 [II]"));
- choices.insert(p_t(9, "Minolta AF 50mm f/3.5 Macro"));
- choices.insert(p_t(10, "Minolta AF 28-105mm f/3.5-4.5 [New]"));
- choices.insert(p_t(11, "Minolta AF 300mm f/4 HS-APO G"));
- choices.insert(p_t(12, "Minolta AF 100mm f/2.8 Soft Focus"));
- choices.insert(p_t(13, "Minolta AF 75-300mm f/4.5-5.6 (New or II)"));
- choices.insert(p_t(14, "Minolta AF 100-400mm f/4.5-6.7 APO"));
- choices.insert(p_t(15, "Minolta AF 400mm f/4.5 HS-APO G"));
- choices.insert(p_t(16, "Minolta AF 17-35mm f/3.5 G"));
- choices.insert(p_t(17, "Minolta AF 20-35mm f/3.5-4.5"));
- choices.insert(p_t(18, "Minolta AF 28-80mm f/3.5-5.6 II"));
- choices.insert(p_t(19, "Minolta AF 35mm f/1.4 G"));
- choices.insert(p_t(20, "Minolta/Sony 135mm f/2.8 [T4.5] STF"));
- choices.insert(p_t(22, "Minolta AF 35-80mm f/4-5.6 II"));
- choices.insert(p_t(23, "Minolta AF 200mm f/4 Macro APO G"));
- choices.insert(p_t(24, "Minolta/Sony AF 24-105mm f/3.5-4.5 (D) or Sigma or Tamron Lens"));
- choices.insert(p_t(24, "Sigma 18-50mm f/2.8"));
- choices.insert(p_t(24, "Sigma 17-70mm f/2.8-4.5 (D)"));
- choices.insert(p_t(24, "Sigma 20-40mm f/2.8 EX DG Aspherical IF"));
- choices.insert(p_t(24, "Sigma 18-200mm f/3.5-6.3 DC"));
- choices.insert(p_t(24, "Sigma DC 18-125mm f/4-5,6 D"));
- choices.insert(p_t(24, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"));
- choices.insert(p_t(25, "Minolta AF 100-300mm f/4.5-5.6 APO (D) or Sigma Lens"));
- choices.insert(p_t(25, "Sigma 100-300mm f/4 EX (APO (D) or D IF)"));
- choices.insert(p_t(25, "Sigma 70mm f/2.8 EX DG Macro"));
- choices.insert(p_t(25, "Sigma 20mm f/1.8 EX DG Aspherical RF"));
- choices.insert(p_t(25, "Sigma 30mm f/1.4 EX DC"));
- choices.insert(p_t(25, "Sigma 24mm f/1.8 EX DG ASP Macro"));
- choices.insert(p_t(27, "Minolta AF 85mm f/1.4 G (D)"));
- choices.insert(p_t(28, "Minolta/Sony AF 100mm f/2.8 Macro (D) or Tamron Lens"));
- choices.insert(p_t(28, "Tamron SP AF 90mm f/2.8 Di Macro"));
- choices.insert(p_t(28, "Tamron SP AF 180mm f/3.5 Di LD [IF] Macro"));
- choices.insert(p_t(29, "Minolta/Sony AF 75-300mm f/4.5-5.6 (D)"));
- choices.insert(p_t(30, "Minolta AF 28-80mm f/3.5-5.6 (D) or Sigma Lens"));
- choices.insert(p_t(30, "Sigma AF 10-20mm f/4-5.6 EX DC"));
- choices.insert(p_t(30, "Sigma AF 12-24mm f/4.5-5.6 EX DG"));
- choices.insert(p_t(30, "Sigma 28-70mm EX DG f/2.8"));
- choices.insert(p_t(30, "Sigma 55-200mm f/4-5.6 DC"));
- choices.insert(p_t(31, "Minolta/Sony AF 50mm f/2.8 Macro (D) or f/3.5"));
- choices.insert(p_t(31, "Minolta/Sony AF 50mm f/3.5 Macro"));
- choices.insert(p_t(32, "Minolta/Sony AF 300mm f/2.8 G or 1.5x Teleconverter"));
- choices.insert(p_t(33, "Minolta/Sony AF 70-200mm f/2.8 G"));
- choices.insert(p_t(35, "Minolta AF 85mm f/1.4 G (D) Limited"));
- choices.insert(p_t(36, "Minolta AF 28-100mm f/3.5-5.6 (D)"));
- choices.insert(p_t(38, "Minolta AF 17-35mm f/2.8-4 (D)"));
- choices.insert(p_t(39, "Minolta AF 28-75mm f/2.8 (D)"));
- choices.insert(p_t(40, "Minolta/Sony AF DT 18-70mm f/3.5-5.6 (D)"));
- choices.insert(p_t(41, "Minolta/Sony AF DT 11-18mm f/4.5-5.6 (D) or Tamron Lens"));
- choices.insert(p_t(41, "Tamron SP AF 11-18mm f/4.5-5.6 Di II LD Aspherical IF"));
- choices.insert(p_t(42, "Minolta/Sony AF DT 18-200mm f/3.5-6.3 (D)"));
- choices.insert(p_t(43, "Sony 35mm f/1.4 G (SAL35F14G)"));
- choices.insert(p_t(44, "Sony 50mm f/1.4 (SAL50F14)"));
- choices.insert(p_t(45, "Carl Zeiss Planar T* 85mm f/1.4 ZA (SAL85F14Z)"));
- choices.insert(p_t(46, "Carl Zeiss Vario-Sonnar T* DT 16-80mm f/3.5-4.5 ZA (SAL1680Z)"));
- choices.insert(p_t(47, "Carl Zeiss Sonnar T* 135mm f/1.8 ZA (SAL135F18Z)"));
- choices.insert(p_t(48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM (SAL2470Z) or ZA SSM II"));
- choices.insert(p_t(48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM II (SAL2470Z2)"));
- choices.insert(p_t(49, "Sony DT 55-200mm f/4-5.6 (SAL55200)"));
- choices.insert(p_t(50, "Sony DT 18-250mm f/3.5-6.3 (SAL18250)"));
- choices.insert(p_t(51, "Sony DT 16-105mm f/3.5-5.6 (SAL16105)"));
- choices.insert(p_t(52, "Sony 70-300mm f/4.5-5.6 G SSM (SAL70300G) or G SSM II or Tamron Lens"));
- choices.insert(p_t(52, "Sony 70-300mm f/4.5-5.6 G SSM II (SAL70300G2)"));
- choices.insert(p_t(52, "Tamron SP 70-300mm f/4-5.6 Di USD"));
- choices.insert(p_t(53, "Sony 70-400mm f/4-5.6 G SSM (SAL70400G)"));
- choices.insert(p_t(54, "Carl Zeiss Vario-Sonnar T* 16-35mm f/2.8 ZA SSM (SAL1635Z) or ZA SSM II"));
- choices.insert(p_t(54, "Carl Zeiss Vario-Sonnar T* 16-35mm f/2.8 ZA SSM II (SAL1635Z2)"));
- choices.insert(p_t(55, "Sony DT 18-55mm f/3.5-5.6 SAM (SAL1855) or SAM II"));
- choices.insert(p_t(55, "Sony DT 18-55mm f/3.5-5.6 SAM II (SAL18552)"));
- choices.insert(p_t(56, "Sony DT 55-200mm f/4-5.6 SAM (SAL55200-2)"));
- choices.insert(p_t(57, "Sony DT 50mm f/1.8 SAM (SAL50F18) or Tamron Lens or Commlite CM-EF-NEX adapter"));
- choices.insert(p_t(57, "Tamron SP AF 60mm f/2 Di II LD [IF] Macro 1:1"));
- choices.insert(p_t(57, "Tamron 18-270mm f/3.5-6.3 Di II PZD"));
- choices.insert(p_t(58, "Sony DT 30mm f/2.8 Macro SAM (SAL30M28)"));
- choices.insert(p_t(59, "Sony 28-75mm f/2.8 SAM (SAL2875)"));
- choices.insert(p_t(60, "Carl Zeiss Distagon T* 24mm f/2 ZA SSM (SAL24F20Z)"));
- choices.insert(p_t(61, "Sony 85mm f/2.8 SAM (SAL85F28)"));
- choices.insert(p_t(62, "Sony DT 35mm f/1.8 SAM (SAL35F18)"));
- choices.insert(p_t(63, "Sony DT 16-50mm f/2.8 SSM (SAL1650)"));
- choices.insert(p_t(64, "Sony 500mm f/4 G SSM (SAL500F40G)"));
- choices.insert(p_t(65, "Sony DT 18-135mm f/3.5-5.6 SAM (SAL18135)"));
- choices.insert(p_t(66, "Sony 300mm f/2.8 G SSM II (SAL300F28G2)"));
- choices.insert(p_t(67, "Sony 70-200mm f/2.8 G SSM II (SAL70200G2)"));
- choices.insert(p_t(68, "Sony DT 55-300mm f/4.5-5.6 SAM (SAL55300)"));
- choices.insert(p_t(69, "Sony 70-400mm f/4-5.6 G SSM II (SAL70400G2)"));
- choices.insert(p_t(70, "Carl Zeiss Planar T* 50mm f/1.4 ZA SSM (SAL50F14Z)"));
- choices.insert(p_t(128, "Tamron or Sigma Lens (128)"));
- choices.insert(p_t(128, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro"));
- choices.insert(p_t(128, "Tamron AF 28-300mm f/3.5-6.3 XR Di LD Aspherical [IF] Macro"));
- choices.insert(p_t(128, "Tamron 80-300mm f/3.5-6.3"));
- choices.insert(p_t(128, "Tamron AF 28-200mm f/3.8-5.6 XR Di Aspherical [IF] Macro"));
- choices.insert(p_t(128, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"));
- choices.insert(p_t(128, "Sigma AF 50-150mm f/2.8 EX DC APO HSM II"));
- choices.insert(p_t(128, "Sigma 10-20mm f/3.5 EX DC HSM"));
- choices.insert(p_t(128, "Sigma 70-200mm f/2.8 II EX DG APO MACRO HSM"));
- choices.insert(p_t(128, "Sigma 10mm f/2.8 EX DC HSM Fisheye"));
- choices.insert(p_t(128, "Sigma 50mm f/1.4 EX DG HSM"));
- choices.insert(p_t(128, "Sigma 85mm f/1.4 EX DG HSM"));
- choices.insert(p_t(128, "Sigma 24-70mm f/2.8 IF EX DG HSM"));
- choices.insert(p_t(128, "Sigma 18-250mm f/3.5-6.3 DC OS HSM"));
- choices.insert(p_t(128, "Sigma 17-50mm f/2.8 EX DC HSM"));
- choices.insert(p_t(128, "Sigma 17-70mm f/2.8-4 DC Macro HSM"));
- choices.insert(p_t(128, "Sigma 150mm f/2.8 EX DG OS HSM APO Macro"));
- choices.insert(p_t(128, "Sigma 150-500mm f/5-6.3 APO DG OS HSM"));
- choices.insert(p_t(128, "Tamron AF 28-105mm f/4-5.6 [IF]"));
- choices.insert(p_t(128, "Sigma 35mm f/1.4 DG HSM"));
- choices.insert(p_t(128, "Sigma 18-35mm f/1.8 DC HSM"));
- choices.insert(p_t(128, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM"));
- choices.insert(p_t(129, "Tamron Lens (129)"));
- choices.insert(p_t(129, "Tamron 200-400mm f/5.6 LD"));
- choices.insert(p_t(129, "Tamron 70-300mm f/4-5.6 LD"));
- choices.insert(p_t(131, "Tamron 20-40mm f/2.7-3.5 SP Aspherical IF"));
- choices.insert(p_t(135, "Vivitar 28-210mm f/3.5-5.6"));
- choices.insert(p_t(136, "Tokina EMZ M100 AF 100mm f/3.5"));
- choices.insert(p_t(137, "Cosina 70-210mm f/2.8-4 AF"));
- choices.insert(p_t(138, "Soligor 19-35mm f/3.5-4.5"));
- choices.insert(p_t(139, "Tokina AF 28-300mm f/4-6.3"));
- choices.insert(p_t(142, "Voigtlander 70-300mm f/4.5-5.6"));
- choices.insert(p_t(146, "Voigtlander Macro APO-Lanthar 125mm f/2.5 SL"));
- choices.insert(p_t(194, "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical [IF]"));
- choices.insert(p_t(203, "Tamron SP 70-200mm f/2.8 Di USD"));
- choices.insert(p_t(204, "Tamron SP 24-70mm f/2.8 Di USD"));
- choices.insert(p_t(213, "Tamron 16-300mm f/3.5-6.3 Di II PZD"));
- choices.insert(p_t(214, "Tamron SP 150-600mm f/5-6.3 Di USD"));
- choices.insert(p_t(224, "Tamron SP 90mm f/2.8 Di Macro 1:1 USD"));
- choices.insert(p_t(255, "Tamron Lens (255)"));
- choices.insert(p_t(255, "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical"));
- choices.insert(p_t(255, "Tamron AF 18-250mm f/3.5-6.3 XR Di II LD"));
- choices.insert(p_t(255, "Tamron AF 55-200mm f/4-5.6 Di II LD Macro"));
- choices.insert(p_t(255, "Tamron AF 70-300mm f/4-5.6 Di LD Macro 1:2"));
- choices.insert(p_t(255, "Tamron SP AF 200-500mm f/5.0-6.3 Di LD IF"));
- choices.insert(p_t(255, "Tamron SP AF 10-24mm f/3.5-4.5 Di II LD Aspherical IF"));
- choices.insert(p_t(255, "Tamron SP AF 70-200mm f/2.8 Di LD IF Macro"));
- choices.insert(p_t(255, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical IF"));
- choices.insert(p_t(255, "Tamron AF 90-300mm f/4.5-5.6 Telemacro"));
- choices.insert(p_t(1868, "Sigma MC-11 Adapter"));
- choices.insert(p_t(2550, "Minolta AF 50mm f/1.7"));
- choices.insert(p_t(2551, "Minolta AF 35-70mm f/4 or Other Lens"));
- choices.insert(p_t(2551, "Sigma UC AF 28-70mm f/3.5-4.5"));
- choices.insert(p_t(2551, "Sigma AF 28-70mm f/2.8"));
- choices.insert(p_t(2551, "Sigma M-AF 70-200mm f/2.8 EX Aspherical"));
- choices.insert(p_t(2551, "Quantaray M-AF 35-80mm f/4-5.6"));
- choices.insert(p_t(2551, "Tokina 28-70mm f/2.8-4.5 AF"));
- choices.insert(p_t(2552, "Minolta AF 28-85mm f/3.5-4.5 or Other Lens"));
- choices.insert(p_t(2552, "Tokina 19-35mm f/3.5-4.5"));
- choices.insert(p_t(2552, "Tokina 28-70mm f/2.8 AT-X"));
- choices.insert(p_t(2552, "Tokina 80-400mm f/4.5-5.6 AT-X AF II 840"));
- choices.insert(p_t(2552, "Tokina AF PRO 28-80mm f/2.8 AT-X 280"));
- choices.insert(p_t(2552, "Tokina AT-X PRO [II] AF 28-70mm f/2.6-2.8 270"));
- choices.insert(p_t(2552, "Tamron AF 19-35mm f/3.5-4.5"));
- choices.insert(p_t(2552, "Angenieux AF 28-70mm f/2.6"));
- choices.insert(p_t(2552, "Tokina AT-X 17 AF 17mm f/3.5"));
- choices.insert(p_t(2552, "Tokina 20-35mm f/3.5-4.5 II AF"));
- choices.insert(p_t(2553, "Minolta AF 28-135mm f/4-4.5 or Sigma Lens"));
- choices.insert(p_t(2553, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"));
- choices.insert(p_t(2553, "Sigma 28-105mm f/2.8-4 Aspherical"));
- choices.insert(p_t(2553, "Sigma 28-105mm f/4-5.6 UC"));
- choices.insert(p_t(2554, "Minolta AF 35-105mm f/3.5-4.5"));
- choices.insert(p_t(2555, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"));
- choices.insert(p_t(2555, "Sigma 70-210mm f/4-5.6 APO"));
- choices.insert(p_t(2555, "Sigma M-AF 70-200mm f/2.8 EX APO"));
- choices.insert(p_t(2555, "Sigma 75-200mm f/2.8-3.5"));
- choices.insert(p_t(2556, "Minolta AF 135mm f/2.8"));
- choices.insert(p_t(2557, "Minolta/Sony AF 28mm f/2.8"));
- choices.insert(p_t(2558, "Minolta AF 24-50mm f/4"));
- choices.insert(p_t(2560, "Minolta AF 100-200mm f/4.5"));
- choices.insert(p_t(2561, "Minolta AF 75-300mm f/4.5-5.6 or Sigma Lens"));
- choices.insert(p_t(2561, "Sigma 70-300mm f/4-5.6 DL Macro"));
- choices.insert(p_t(2561, "Sigma 300mm f/4 APO Macro"));
- choices.insert(p_t(2561, "Sigma AF 500mm f/4.5 APO"));
- choices.insert(p_t(2561, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"));
- choices.insert(p_t(2561, "Tokina AT-X AF 300mm f/4"));
- choices.insert(p_t(2561, "Tokina AT-X AF 400mm f/5.6 SD"));
- choices.insert(p_t(2561, "Tokina AF 730 II 75-300mm f/4.5-5.6"));
- choices.insert(p_t(2561, "Sigma 800mm f/5.6 APO"));
- choices.insert(p_t(2561, "Sigma AF 400mm f/5.6 APO Macro"));
- choices.insert(p_t(2562, "Minolta AF 50mm f/1.4 [New]"));
- choices.insert(p_t(2563, "Minolta AF 300mm f/2.8 APO or Sigma Lens"));
- choices.insert(p_t(2563, "Sigma AF 50-500mm f/4-6.3 EX DG APO"));
- choices.insert(p_t(2563, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"));
- choices.insert(p_t(2563, "Sigma AF 500mm f/4.5 EX DG APO"));
- choices.insert(p_t(2563, "Sigma 400mm f/5.6 APO"));
- choices.insert(p_t(2564, "Minolta AF 50mm f/2.8 Macro or Sigma Lens"));
- choices.insert(p_t(2564, "Sigma 50mm f/2.8 EX Macro"));
- choices.insert(p_t(2565, "Minolta AF 600mm f/4 APO"));
- choices.insert(p_t(2566, "Minolta AF 24mm f/2.8 or Sigma Lens"));
- choices.insert(p_t(2566, "Sigma 17-35mm f/2.8-4 EX Aspherical"));
- choices.insert(p_t(2572, "Minolta/Sony AF 500mm f/8 Reflex"));
- choices.insert(p_t(2578, "Minolta/Sony AF 16mm f/2.8 Fisheye or Sigma Lens"));
- choices.insert(p_t(2578, "Sigma 8mm f/4 EX [DG] Fisheye"));
- choices.insert(p_t(2578, "Sigma 14mm f/3.5"));
- choices.insert(p_t(2578, "Sigma 15mm f/2.8 Fisheye"));
- choices.insert(p_t(2579, "Minolta/Sony AF 20mm f/2.8 or Tokina Lens"));
- choices.insert(p_t(2579, "Tokina AT-X Pro DX 11-16mm f/2.8"));
- choices.insert(p_t(2581, "Minolta AF 100mm f/2.8 Macro [New] or Sigma or Tamron Lens"));
- choices.insert(p_t(2581, "Sigma AF 90mm f/2.8 Macro"));
- choices.insert(p_t(2581, "Sigma AF 105mm f/2.8 EX [DG] Macro"));
- choices.insert(p_t(2581, "Sigma 180mm f/5.6 Macro"));
- choices.insert(p_t(2581, "Sigma 180mm f/3.5 EX DG Macro"));
- choices.insert(p_t(2581, "Tamron 90mm f/2.8 Macro"));
- choices.insert(p_t(2585, "Minolta AF 35-105mm f/3.5-4.5 New or Tamron Lens"));
- choices.insert(p_t(2585, "Beroflex 35-135mm f/3.5-4.5"));
- choices.insert(p_t(2585, "Tamron 24-135mm f/3.5-5.6"));
- choices.insert(p_t(2588, "Minolta AF 70-210mm f/3.5-4.5"));
- choices.insert(p_t(2589, "Minolta AF 80-200mm f/2.8 APO or Tokina Lens"));
- choices.insert(p_t(2589, "Tokina 80-200mm f/2.8"));
- choices.insert(p_t(2590, "Minolta AF 200mm f/2.8 G APO + Minolta AF 1.4x APO or Other Lens + 1.4x"));
- choices.insert(p_t(2590, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 1.4x APO"));
- choices.insert(p_t(2591, "Minolta AF 35mm f/1.4"));
- choices.insert(p_t(2592, "Minolta AF 85mm f/1.4 G (D)"));
- choices.insert(p_t(2593, "Minolta AF 200mm f/2.8 APO"));
- choices.insert(p_t(2594, "Minolta AF 3x-1x f/1.7-2.8 Macro"));
- choices.insert(p_t(2596, "Minolta AF 28mm f/2"));
- choices.insert(p_t(2597, "Minolta AF 35mm f/2 [New]"));
- choices.insert(p_t(2598, "Minolta AF 100mm f/2"));
- choices.insert(p_t(2601, "Minolta AF 200mm f/2.8 G APO + Minolta AF 2x APO or Other Lens + 2x"));
- choices.insert(p_t(2601, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 2x APO"));
- choices.insert(p_t(2604, "Minolta AF 80-200mm f/4.5-5.6"));
- choices.insert(p_t(2605, "Minolta AF 35-80mm f/4-5.6"));
- choices.insert(p_t(2606, "Minolta AF 100-300mm f/4.5-5.6"));
- choices.insert(p_t(2607, "Minolta AF 35-80mm f/4-5.6"));
- choices.insert(p_t(2608, "Minolta AF 300mm f/2.8 HS-APO G"));
- choices.insert(p_t(2609, "Minolta AF 600mm f/4 HS-APO G"));
- choices.insert(p_t(2612, "Minolta AF 200mm f/2.8 HS-APO G"));
- choices.insert(p_t(2613, "Minolta AF 50mm f/1.7 New"));
- choices.insert(p_t(2615, "Minolta AF 28-105mm f/3.5-4.5 xi"));
- choices.insert(p_t(2616, "Minolta AF 35-200mm f/4.5-5.6 xi"));
- choices.insert(p_t(2618, "Minolta AF 28-80mm f/4-5.6 xi"));
- choices.insert(p_t(2619, "Minolta AF 80-200mm f/4.5-5.6 xi"));
- choices.insert(p_t(2620, "Minolta AF 28-70mm f/2.8 G"));
- choices.insert(p_t(2621, "Minolta AF 100-300mm f/4.5-5.6 xi"));
- choices.insert(p_t(2624, "Minolta AF 35-80mm f/4-5.6 Power Zoom"));
- choices.insert(p_t(2628, "Minolta AF 80-200mm f/2.8 HS-APO G"));
- choices.insert(p_t(2629, "Minolta AF 85mm f/1.4 New"));
- choices.insert(p_t(2631, "Minolta/Sony AF 100-300mm f/4.5-5.6 APO"));
- choices.insert(p_t(2632, "Minolta AF 24-50mm f/4 New"));
- choices.insert(p_t(2638, "Minolta AF 50mm f/2.8 Macro New"));
- choices.insert(p_t(2639, "Minolta AF 100mm f/2.8 Macro"));
- choices.insert(p_t(2641, "Minolta/Sony AF 20mm f/2.8 New"));
- choices.insert(p_t(2642, "Minolta AF 24mm f/2.8 New"));
- choices.insert(p_t(2644, "Minolta AF 100-400mm f/4.5-6.7 APO"));
- choices.insert(p_t(2662, "Minolta AF 50mm f/1.4 New"));
- choices.insert(p_t(2667, "Minolta AF 35mm f/2 New"));
- choices.insert(p_t(2668, "Minolta AF 28mm f/2 New"));
- choices.insert(p_t(2672, "Minolta AF 24-105mm f/3.5-4.5 (D)"));
- choices.insert(p_t(3046, "Metabones Canon EF Speed Booster"));
- choices.insert(p_t(4567, "Tokina 70-210mm f/4-5.6"));
- choices.insert(p_t(4571, "Vivitar 70-210mm f/4.5-5.6"));
- choices.insert(p_t(4574, "2x Teleconverter or Tamron or Tokina Lens"));
- choices.insert(p_t(4574, "Tamron SP AF 90mm f/2.5"));
- choices.insert(p_t(4574, "Tokina RF 500mm f/8.0 x2"));
- choices.insert(p_t(4574, "Tokina 300mm f/2.8 x2"));
- choices.insert(p_t(4575, "1.4x Teleconverter"));
- choices.insert(p_t(4585, "Tamron SP AF 300mm f/2.8 LD IF"));
- choices.insert(p_t(4586, "Tamron SP AF 35-105mm f/2.8 LD Aspherical IF"));
- choices.insert(p_t(4587, "Tamron AF 70-210mm f/2.8 SP LD"));
- choices.insert(p_t(4812, "Metabones Canon EF Speed Booster Ultra"));
- choices.insert(p_t(6118, "Canon EF Adapter"));
- choices.insert(p_t(6553, "E-Mount, T-Mount, Other Lens or no lens"));
- choices.insert(p_t(6553, "Sony E 16mm f/2.8"));
- choices.insert(p_t(6553, "Sony E 18-55mm f/3.5-5.6 OSS"));
- choices.insert(p_t(6553, "Sony E 55-210mm f/4.5-6.3 OSS"));
- choices.insert(p_t(6553, "Sony E 18-200mm f/3.5-6.3 OSS"));
- choices.insert(p_t(6553, "Sony E 30mm f/3.5 Macro"));
- choices.insert(p_t(6553, "Sony E 24mm f/1.8 ZA"));
- choices.insert(p_t(6553, "Sony E 50mm f/1.8 OSS"));
- choices.insert(p_t(6553, "Sony E 16-70mm f/4 ZA OSS"));
- choices.insert(p_t(6553, "Sony E 10-18mm f/4 OSS"));
- choices.insert(p_t(6553, "Sony E PZ 16-50mm f/3.5-5.6 OSS"));
- choices.insert(p_t(6553, "Sony FE 35mm f/2.8 ZA"));
- choices.insert(p_t(6553, "Sony FE 24-70mm f/4 ZA OSS"));
- choices.insert(p_t(6553, "Sony E 18-200mm f/3.5-6.3 OSS LE"));
- choices.insert(p_t(6553, "Sony E 20mm f/2.8"));
- choices.insert(p_t(6553, "Sony E 35mm f/1.8 OSS"));
- choices.insert(p_t(6553, "Sony E PZ 18-105mm f/4 G OSS"));
- choices.insert(p_t(6553, "Sony FE 90mm f/2.8 Macro G OSS"));
- choices.insert(p_t(6553, "Sony E 18-50mm f/4-5.6"));
- choices.insert(p_t(6553, "Sony E PZ 18-200mm f/3.5-6.3 OSS"));
- choices.insert(p_t(6553, "Sony FE 55mm f/1.8 ZA"));
- choices.insert(p_t(6553, "Sony FE 70-200mm f/4 G OSS"));
- choices.insert(p_t(6553, "Sony FE 16-35mm f/4 ZA OSS"));
- choices.insert(p_t(6553, "Sony FE 28-70mm f/3.5-5.6 OSS"));
- choices.insert(p_t(6553, "Sony FE 35mm f/1.4 ZA"));
- choices.insert(p_t(6553, "Sony FE 24-240mm f/3.5-6.3 OSS"));
- choices.insert(p_t(6553, "Sony FE 28mm f/2"));
- choices.insert(p_t(6553, "Sony FE PZ 28-135mm f/4 G OSS"));
- choices.insert(p_t(6553, "Sony FE 24-70mm f/2.8 GM"));
- choices.insert(p_t(6553, "Sony FE 85mm f/1.4 GM"));
- choices.insert(p_t(6553, "Sony FE 50mm f/1.8"));
- choices.insert(p_t(6553, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"));
- choices.insert(p_t(6553, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"));
- choices.insert(p_t(6553, "Sony FE 70-300mm f/4.5-5.6 G OSS"));
- choices.insert(p_t(6553, "Sony FE 70-200mm f/2.8 GM OSS"));
- choices.insert(p_t(6553, "Sigma 19mm f/2.8 [EX] DN"));
- choices.insert(p_t(6553, "Sigma 30mm f/2.8 [EX] DN"));
- choices.insert(p_t(6553, "Sigma 60mm f/2.8 DN"));
- choices.insert(p_t(6553, "Sigma 30mm f/1.4 DC DN | C"));
- choices.insert(p_t(6553, "Tamron 18-200mm f/3.5-6.3 Di III VC"));
- choices.insert(p_t(6553, "Zeiss Batis 25mm f/2"));
- choices.insert(p_t(6553, "Zeiss Batis 85mm f/1.8"));
- choices.insert(p_t(6553, "Zeiss Batis 18mm f/2.8"));
- choices.insert(p_t(6553, "Zeiss Loxia 21mm f/2.8"));
- choices.insert(p_t(6553, "Zeiss Loxia 35mm f/2"));
- choices.insert(p_t(6553, "Zeiss Loxia 50mm f/2"));
- choices.insert(p_t(6553, "Zeiss Touit 12mm f/2.8"));
- choices.insert(p_t(6553, "Zeiss Touit 32mm f/1.8"));
- choices.insert(p_t(6553, "Zeiss Touit 50mm f/2.8 Macro"));
- choices.insert(p_t(6553, "Arax MC 35mm f/2.8 Tilt+Shift"));
- choices.insert(p_t(6553, "Arax MC 80mm f/2.8 Tilt+Shift"));
- choices.insert(p_t(6553, "Zenitar MF 16mm f/2.8 Fisheye M42"));
- choices.insert(p_t(6553, "Samyang 500mm Mirror f/8.0"));
- choices.insert(p_t(6553, "Pentacon Auto 135mm f/2.8"));
- choices.insert(p_t(6553, "Pentacon Auto 29mm f/2.8"));
- choices.insert(p_t(6553, "Helios 44-2 58mm f/2.0"));
- choices.insert(p_t(18688, "Sigma MC-11 Adapter"));
- choices.insert(p_t(25501, "Minolta AF 50mm f/1.7"));
- choices.insert(p_t(25511, "Minolta AF 35-70mm f/4 or Other Lens"));
- choices.insert(p_t(25511, "Sigma UC AF 28-70mm f/3.5-4.5"));
- choices.insert(p_t(25511, "Sigma AF 28-70mm f/2.8"));
- choices.insert(p_t(25511, "Sigma M-AF 70-200mm f/2.8 EX Aspherical"));
- choices.insert(p_t(25511, "Quantaray M-AF 35-80mm f/4-5.6"));
- choices.insert(p_t(25511, "Tokina 28-70mm f/2.8-4.5 AF"));
- choices.insert(p_t(25521, "Minolta AF 28-85mm f/3.5-4.5 or Other Lens"));
- choices.insert(p_t(25521, "Tokina 19-35mm f/3.5-4.5"));
- choices.insert(p_t(25521, "Tokina 28-70mm f/2.8 AT-X"));
- choices.insert(p_t(25521, "Tokina 80-400mm f/4.5-5.6 AT-X AF II 840"));
- choices.insert(p_t(25521, "Tokina AF PRO 28-80mm f/2.8 AT-X 280"));
- choices.insert(p_t(25521, "Tokina AT-X PRO [II] AF 28-70mm f/2.6-2.8 270"));
- choices.insert(p_t(25521, "Tamron AF 19-35mm f/3.5-4.5"));
- choices.insert(p_t(25521, "Angenieux AF 28-70mm f/2.6"));
- choices.insert(p_t(25521, "Tokina AT-X 17 AF 17mm f/3.5"));
- choices.insert(p_t(25521, "Tokina 20-35mm f/3.5-4.5 II AF"));
- choices.insert(p_t(25531, "Minolta AF 28-135mm f/4-4.5 or Sigma Lens"));
- choices.insert(p_t(25531, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"));
- choices.insert(p_t(25531, "Sigma 28-105mm f/2.8-4 Aspherical"));
- choices.insert(p_t(25531, "Sigma 28-105mm f/4-5.6 UC"));
- choices.insert(p_t(25541, "Minolta AF 35-105mm f/3.5-4.5"));
- choices.insert(p_t(25551, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"));
- choices.insert(p_t(25551, "Sigma 70-210mm f/4-5.6 APO"));
- choices.insert(p_t(25551, "Sigma M-AF 70-200mm f/2.8 EX APO"));
- choices.insert(p_t(25551, "Sigma 75-200mm f/2.8-3.5"));
- choices.insert(p_t(25561, "Minolta AF 135mm f/2.8"));
- choices.insert(p_t(25571, "Minolta/Sony AF 28mm f/2.8"));
- choices.insert(p_t(25581, "Minolta AF 24-50mm f/4"));
- choices.insert(p_t(25601, "Minolta AF 100-200mm f/4.5"));
- choices.insert(p_t(25611, "Minolta AF 75-300mm f/4.5-5.6 or Sigma Lens"));
- choices.insert(p_t(25611, "Sigma 70-300mm f/4-5.6 DL Macro"));
- choices.insert(p_t(25611, "Sigma 300mm f/4 APO Macro"));
- choices.insert(p_t(25611, "Sigma AF 500mm f/4.5 APO"));
- choices.insert(p_t(25611, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"));
- choices.insert(p_t(25611, "Tokina AT-X AF 300mm f/4"));
- choices.insert(p_t(25611, "Tokina AT-X AF 400mm f/5.6 SD"));
- choices.insert(p_t(25611, "Tokina AF 730 II 75-300mm f/4.5-5.6"));
- choices.insert(p_t(25611, "Sigma 800mm f/5.6 APO"));
- choices.insert(p_t(25611, "Sigma AF 400mm f/5.6 APO Macro"));
- choices.insert(p_t(25621, "Minolta AF 50mm f/1.4 [New]"));
- choices.insert(p_t(25631, "Minolta AF 300mm f/2.8 APO or Sigma Lens"));
- choices.insert(p_t(25631, "Sigma AF 50-500mm f/4-6.3 EX DG APO"));
- choices.insert(p_t(25631, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"));
- choices.insert(p_t(25631, "Sigma AF 500mm f/4.5 EX DG APO"));
- choices.insert(p_t(25631, "Sigma 400mm f/5.6 APO"));
- choices.insert(p_t(25641, "Minolta AF 50mm f/2.8 Macro or Sigma Lens"));
- choices.insert(p_t(25641, "Sigma 50mm f/2.8 EX Macro"));
- choices.insert(p_t(25651, "Minolta AF 600mm f/4 APO"));
- choices.insert(p_t(25661, "Minolta AF 24mm f/2.8 or Sigma Lens"));
- choices.insert(p_t(25661, "Sigma 17-35mm f/2.8-4 EX Aspherical"));
- choices.insert(p_t(25721, "Minolta/Sony AF 500mm f/8 Reflex"));
- choices.insert(p_t(25781, "Minolta/Sony AF 16mm f/2.8 Fisheye or Sigma Lens"));
- choices.insert(p_t(25781, "Sigma 8mm f/4 EX [DG] Fisheye"));
- choices.insert(p_t(25781, "Sigma 14mm f/3.5"));
- choices.insert(p_t(25781, "Sigma 15mm f/2.8 Fisheye"));
- choices.insert(p_t(25791, "Minolta/Sony AF 20mm f/2.8 or Tokina Lens"));
- choices.insert(p_t(25791, "Tokina AT-X Pro DX 11-16mm f/2.8"));
- choices.insert(p_t(25811, "Minolta AF 100mm f/2.8 Macro [New] or Sigma or Tamron Lens"));
- choices.insert(p_t(25811, "Sigma AF 90mm f/2.8 Macro"));
- choices.insert(p_t(25811, "Sigma AF 105mm f/2.8 EX [DG] Macro"));
- choices.insert(p_t(25811, "Sigma 180mm f/5.6 Macro"));
- choices.insert(p_t(25811, "Sigma 180mm f/3.5 EX DG Macro"));
- choices.insert(p_t(25811, "Tamron 90mm f/2.8 Macro"));
- choices.insert(p_t(25851, "Beroflex 35-135mm f/3.5-4.5"));
- choices.insert(p_t(25858, "Minolta AF 35-105mm f/3.5-4.5 New or Tamron Lens"));
- choices.insert(p_t(25858, "Tamron 24-135mm f/3.5-5.6"));
- choices.insert(p_t(25881, "Minolta AF 70-210mm f/3.5-4.5"));
- choices.insert(p_t(25891, "Minolta AF 80-200mm f/2.8 APO or Tokina Lens"));
- choices.insert(p_t(25891, "Tokina 80-200mm f/2.8"));
- choices.insert(p_t(25901, "Minolta AF 200mm f/2.8 G APO + Minolta AF 1.4x APO or Other Lens + 1.4x"));
- choices.insert(p_t(25901, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 1.4x APO"));
- choices.insert(p_t(25911, "Minolta AF 35mm f/1.4"));
- choices.insert(p_t(25921, "Minolta AF 85mm f/1.4 G (D)"));
- choices.insert(p_t(25931, "Minolta AF 200mm f/2.8 APO"));
- choices.insert(p_t(25941, "Minolta AF 3x-1x f/1.7-2.8 Macro"));
- choices.insert(p_t(25961, "Minolta AF 28mm f/2"));
- choices.insert(p_t(25971, "Minolta AF 35mm f/2 [New]"));
- choices.insert(p_t(25981, "Minolta AF 100mm f/2"));
- choices.insert(p_t(26011, "Minolta AF 200mm f/2.8 G APO + Minolta AF 2x APO or Other Lens + 2x"));
- choices.insert(p_t(26011, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 2x APO"));
- choices.insert(p_t(26041, "Minolta AF 80-200mm f/4.5-5.6"));
- choices.insert(p_t(26051, "Minolta AF 35-80mm f/4-5.6"));
- choices.insert(p_t(26061, "Minolta AF 100-300mm f/4.5-5.6"));
- choices.insert(p_t(26071, "Minolta AF 35-80mm f/4-5.6"));
- choices.insert(p_t(26081, "Minolta AF 300mm f/2.8 HS-APO G"));
- choices.insert(p_t(26091, "Minolta AF 600mm f/4 HS-APO G"));
- choices.insert(p_t(26121, "Minolta AF 200mm f/2.8 HS-APO G"));
- choices.insert(p_t(26131, "Minolta AF 50mm f/1.7 New"));
- choices.insert(p_t(26151, "Minolta AF 28-105mm f/3.5-4.5 xi"));
- choices.insert(p_t(26161, "Minolta AF 35-200mm f/4.5-5.6 xi"));
- choices.insert(p_t(26181, "Minolta AF 28-80mm f/4-5.6 xi"));
- choices.insert(p_t(26191, "Minolta AF 80-200mm f/4.5-5.6 xi"));
- choices.insert(p_t(26201, "Minolta AF 28-70mm f/2.8 G"));
- choices.insert(p_t(26211, "Minolta AF 100-300mm f/4.5-5.6 xi"));
- choices.insert(p_t(26241, "Minolta AF 35-80mm f/4-5.6 Power Zoom"));
- choices.insert(p_t(26281, "Minolta AF 80-200mm f/2.8 HS-APO G"));
- choices.insert(p_t(26291, "Minolta AF 85mm f/1.4 New"));
- choices.insert(p_t(26311, "Minolta/Sony AF 100-300mm f/4.5-5.6 APO"));
- choices.insert(p_t(26321, "Minolta AF 24-50mm f/4 New"));
- choices.insert(p_t(26381, "Minolta AF 50mm f/2.8 Macro New"));
- choices.insert(p_t(26391, "Minolta AF 100mm f/2.8 Macro"));
- choices.insert(p_t(26411, "Minolta/Sony AF 20mm f/2.8 New"));
- choices.insert(p_t(26421, "Minolta AF 24mm f/2.8 New"));
- choices.insert(p_t(26441, "Minolta AF 100-400mm f/4.5-6.7 APO"));
- choices.insert(p_t(26621, "Minolta AF 50mm f/1.4 New"));
- choices.insert(p_t(26671, "Minolta AF 35mm f/2 New"));
- choices.insert(p_t(26681, "Minolta AF 28mm f/2 New"));
- choices.insert(p_t(26721, "Minolta AF 24-105mm f/3.5-4.5 (D)"));
- choices.insert(p_t(30464, "Metabones Canon EF Speed Booster"));
- choices.insert(p_t(45671, "Tokina 70-210mm f/4-5.6"));
- choices.insert(p_t(45711, "Vivitar 70-210mm f/4.5-5.6"));
- choices.insert(p_t(45741, "2x Teleconverter or Tamron or Tokina Lens"));
- choices.insert(p_t(45741, "Tamron SP AF 90mm f/2.5"));
- choices.insert(p_t(45741, "Tokina RF 500mm f/8.0 x2"));
- choices.insert(p_t(45741, "Tokina 300mm f/2.8 x2"));
- choices.insert(p_t(45751, "1.4x Teleconverter"));
- choices.insert(p_t(45851, "Tamron SP AF 300mm f/2.8 LD IF"));
- choices.insert(p_t(45861, "Tamron SP AF 35-105mm f/2.8 LD Aspherical IF"));
- choices.insert(p_t(45871, "Tamron AF 70-210mm f/2.8 SP LD"));
- choices.insert(p_t(48128, "Metabones Canon EF Speed Booster Ultra"));
- choices.insert(p_t(61184, "Canon EF Adapter"));
- choices.insert(p_t(65535, "E-Mount, T-Mount, Other Lens or no lens"));
- choices.insert(p_t(65535, "Sony E 16mm f/2.8"));
- choices.insert(p_t(65535, "Sony E 18-55mm f/3.5-5.6 OSS"));
- choices.insert(p_t(65535, "Sony E 55-210mm f/4.5-6.3 OSS"));
- choices.insert(p_t(65535, "Sony E 18-200mm f/3.5-6.3 OSS"));
- choices.insert(p_t(65535, "Sony E 30mm f/3.5 Macro"));
- choices.insert(p_t(65535, "Sony E 24mm f/1.8 ZA"));
- choices.insert(p_t(65535, "Sony E 50mm f/1.8 OSS"));
- choices.insert(p_t(65535, "Sony E 16-70mm f/4 ZA OSS"));
- choices.insert(p_t(65535, "Sony E 10-18mm f/4 OSS"));
- choices.insert(p_t(65535, "Sony E PZ 16-50mm f/3.5-5.6 OSS"));
- choices.insert(p_t(65535, "Sony FE 35mm f/2.8 ZA"));
- choices.insert(p_t(65535, "Sony FE 24-70mm f/4 ZA OSS"));
- choices.insert(p_t(65535, "Sony E 18-200mm f/3.5-6.3 OSS LE"));
- choices.insert(p_t(65535, "Sony E 20mm f/2.8"));
- choices.insert(p_t(65535, "Sony E 35mm f/1.8 OSS"));
- choices.insert(p_t(65535, "Sony E PZ 18-105mm f/4 G OSS"));
- choices.insert(p_t(65535, "Sony FE 90mm f/2.8 Macro G OSS"));
- choices.insert(p_t(65535, "Sony E 18-50mm f/4-5.6"));
- choices.insert(p_t(65535, "Sony E PZ 18-200mm f/3.5-6.3 OSS"));
- choices.insert(p_t(65535, "Sony FE 55mm f/1.8 ZA"));
- choices.insert(p_t(65535, "Sony FE 70-200mm f/4 G OSS"));
- choices.insert(p_t(65535, "Sony FE 16-35mm f/4 ZA OSS"));
- choices.insert(p_t(65535, "Sony FE 28-70mm f/3.5-5.6 OSS"));
- choices.insert(p_t(65535, "Sony FE 35mm f/1.4 ZA"));
- choices.insert(p_t(65535, "Sony FE 24-240mm f/3.5-6.3 OSS"));
- choices.insert(p_t(65535, "Sony FE 28mm f/2"));
- choices.insert(p_t(65535, "Sony FE PZ 28-135mm f/4 G OSS"));
- choices.insert(p_t(65535, "Sony FE 24-70mm f/2.8 GM"));
- choices.insert(p_t(65535, "Sony FE 85mm f/1.4 GM"));
- choices.insert(p_t(65535, "Sony FE 50mm f/1.8"));
- choices.insert(p_t(65535, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"));
- choices.insert(p_t(65535, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"));
- choices.insert(p_t(65535, "Sony FE 70-300mm f/4.5-5.6 G OSS"));
- choices.insert(p_t(65535, "Sony FE 70-200mm f/2.8 GM OSS"));
- choices.insert(p_t(65535, "Sigma 19mm f/2.8 [EX] DN"));
- choices.insert(p_t(65535, "Sigma 30mm f/2.8 [EX] DN"));
- choices.insert(p_t(65535, "Sigma 60mm f/2.8 DN"));
- choices.insert(p_t(65535, "Sigma 30mm f/1.4 DC DN | C"));
- choices.insert(p_t(65535, "Tamron 18-200mm f/3.5-6.3 Di III VC"));
- choices.insert(p_t(65535, "Zeiss Batis 25mm f/2"));
- choices.insert(p_t(65535, "Zeiss Batis 85mm f/1.8"));
- choices.insert(p_t(65535, "Zeiss Batis 18mm f/2.8"));
- choices.insert(p_t(65535, "Zeiss Loxia 21mm f/2.8"));
- choices.insert(p_t(65535, "Zeiss Loxia 35mm f/2"));
- choices.insert(p_t(65535, "Zeiss Loxia 50mm f/2"));
- choices.insert(p_t(65535, "Zeiss Touit 12mm f/2.8"));
- choices.insert(p_t(65535, "Zeiss Touit 32mm f/1.8"));
- choices.insert(p_t(65535, "Zeiss Touit 50mm f/2.8 Macro"));
- choices.insert(p_t(65535, "Arax MC 35mm f/2.8 Tilt+Shift"));
- choices.insert(p_t(65535, "Arax MC 80mm f/2.8 Tilt+Shift"));
- choices.insert(p_t(65535, "Zenitar MF 16mm f/2.8 Fisheye M42"));
- choices.insert(p_t(65535, "Samyang 500mm Mirror f/8.0"));
- choices.insert(p_t(65535, "Pentacon Auto 135mm f/2.8"));
- choices.insert(p_t(65535, "Pentacon Auto 29mm f/2.8"));
- choices.insert(p_t(65535, "Helios 44-2 58mm f/2.0"));
+ choices = {
+ {0, "Minolta AF 28-85mm f/3.5-4.5 New"},
+ {1, "Minolta AF 80-200mm f/2.8 HS-APO G"},
+ {2, "Minolta AF 28-70mm f/2.8 G"},
+ {3, "Minolta AF 28-80mm f/4-5.6"},
+ {4, "Minolta AF 85mm f/1.4G"},
+ {5, "Minolta AF 35-70mm f/3.5-4.5 [II]"},
+ {6, "Minolta AF 24-85mm f/3.5-4.5 [New]"},
+ {7, "Minolta AF 100-300mm f/4.5-5.6 APO [New] or 100-400mm or Sigma Lens"},
+ {7, "Minolta AF 100-400mm f/4.5-6.7 APO"},
+ {7, "Sigma AF 100-300mm f/4 EX DG IF"},
+ {8, "Minolta AF 70-210mm f/4.5-5.6 [II]"},
+ {9, "Minolta AF 50mm f/3.5 Macro"},
+ {10, "Minolta AF 28-105mm f/3.5-4.5 [New]"},
+ {11, "Minolta AF 300mm f/4 HS-APO G"},
+ {12, "Minolta AF 100mm f/2.8 Soft Focus"},
+ {13, "Minolta AF 75-300mm f/4.5-5.6 (New or II)"},
+ {14, "Minolta AF 100-400mm f/4.5-6.7 APO"},
+ {15, "Minolta AF 400mm f/4.5 HS-APO G"},
+ {16, "Minolta AF 17-35mm f/3.5 G"},
+ {17, "Minolta AF 20-35mm f/3.5-4.5"},
+ {18, "Minolta AF 28-80mm f/3.5-5.6 II"},
+ {19, "Minolta AF 35mm f/1.4 G"},
+ {20, "Minolta/Sony 135mm f/2.8 [T4.5] STF"},
+ {22, "Minolta AF 35-80mm f/4-5.6 II"},
+ {23, "Minolta AF 200mm f/4 Macro APO G"},
+ {24, "Minolta/Sony AF 24-105mm f/3.5-4.5 (D) or Sigma or Tamron Lens"},
+ {24, "Sigma 18-50mm f/2.8"},
+ {24, "Sigma 17-70mm f/2.8-4.5 (D)"},
+ {24, "Sigma 20-40mm f/2.8 EX DG Aspherical IF"},
+ {24, "Sigma 18-200mm f/3.5-6.3 DC"},
+ {24, "Sigma DC 18-125mm f/4-5,6 D"},
+ {24, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"},
+ {25, "Minolta AF 100-300mm f/4.5-5.6 APO (D) or Sigma Lens"},
+ {25, "Sigma 100-300mm f/4 EX (APO (D) or D IF)"},
+ {25, "Sigma 70mm f/2.8 EX DG Macro"},
+ {25, "Sigma 20mm f/1.8 EX DG Aspherical RF"},
+ {25, "Sigma 30mm f/1.4 EX DC"},
+ {25, "Sigma 24mm f/1.8 EX DG ASP Macro"},
+ {27, "Minolta AF 85mm f/1.4 G (D)"},
+ {28, "Minolta/Sony AF 100mm f/2.8 Macro (D) or Tamron Lens"},
+ {28, "Tamron SP AF 90mm f/2.8 Di Macro"},
+ {28, "Tamron SP AF 180mm f/3.5 Di LD [IF] Macro"},
+ {29, "Minolta/Sony AF 75-300mm f/4.5-5.6 (D)"},
+ {30, "Minolta AF 28-80mm f/3.5-5.6 (D) or Sigma Lens"},
+ {30, "Sigma AF 10-20mm f/4-5.6 EX DC"},
+ {30, "Sigma AF 12-24mm f/4.5-5.6 EX DG"},
+ {30, "Sigma 28-70mm EX DG f/2.8"},
+ {30, "Sigma 55-200mm f/4-5.6 DC"},
+ {31, "Minolta/Sony AF 50mm f/2.8 Macro (D) or f/3.5"},
+ {31, "Minolta/Sony AF 50mm f/3.5 Macro"},
+ {32, "Minolta/Sony AF 300mm f/2.8 G or 1.5x Teleconverter"},
+ {33, "Minolta/Sony AF 70-200mm f/2.8 G"},
+ {35, "Minolta AF 85mm f/1.4 G (D) Limited"},
+ {36, "Minolta AF 28-100mm f/3.5-5.6 (D)"},
+ {38, "Minolta AF 17-35mm f/2.8-4 (D)"},
+ {39, "Minolta AF 28-75mm f/2.8 (D)"},
+ {40, "Minolta/Sony AF DT 18-70mm f/3.5-5.6 (D)"},
+ {41, "Minolta/Sony AF DT 11-18mm f/4.5-5.6 (D) or Tamron Lens"},
+ {41, "Tamron SP AF 11-18mm f/4.5-5.6 Di II LD Aspherical IF"},
+ {42, "Minolta/Sony AF DT 18-200mm f/3.5-6.3 (D)"},
+ {43, "Sony 35mm f/1.4 G (SAL35F14G)"},
+ {44, "Sony 50mm f/1.4 (SAL50F14)"},
+ {45, "Carl Zeiss Planar T* 85mm f/1.4 ZA (SAL85F14Z)"},
+ {46, "Carl Zeiss Vario-Sonnar T* DT 16-80mm f/3.5-4.5 ZA (SAL1680Z)"},
+ {47, "Carl Zeiss Sonnar T* 135mm f/1.8 ZA (SAL135F18Z)"},
+ {48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM (SAL2470Z) or ZA SSM II"},
+ {48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM II (SAL2470Z2)"},
+ {49, "Sony DT 55-200mm f/4-5.6 (SAL55200)"},
+ {50, "Sony DT 18-250mm f/3.5-6.3 (SAL18250)"},
+ {51, "Sony DT 16-105mm f/3.5-5.6 (SAL16105)"},
+ {52, "Sony 70-300mm f/4.5-5.6 G SSM (SAL70300G) or G SSM II or Tamron Lens"},
+ {52, "Sony 70-300mm f/4.5-5.6 G SSM II (SAL70300G2)"},
+ {52, "Tamron SP 70-300mm f/4-5.6 Di USD"},
+ {53, "Sony 70-400mm f/4-5.6 G SSM (SAL70400G)"},
+ {54, "Carl Zeiss Vario-Sonnar T* 16-35mm f/2.8 ZA SSM (SAL1635Z) or ZA SSM II"},
+ {54, "Carl Zeiss Vario-Sonnar T* 16-35mm f/2.8 ZA SSM II (SAL1635Z2)"},
+ {55, "Sony DT 18-55mm f/3.5-5.6 SAM (SAL1855) or SAM II"},
+ {55, "Sony DT 18-55mm f/3.5-5.6 SAM II (SAL18552)"},
+ {56, "Sony DT 55-200mm f/4-5.6 SAM (SAL55200-2)"},
+ {57, "Sony DT 50mm f/1.8 SAM (SAL50F18) or Tamron Lens or Commlite CM-EF-NEX adapter"},
+ {57, "Tamron SP AF 60mm f/2 Di II LD [IF] Macro 1:1"},
+ {57, "Tamron 18-270mm f/3.5-6.3 Di II PZD"},
+ {58, "Sony DT 30mm f/2.8 Macro SAM (SAL30M28)"},
+ {59, "Sony 28-75mm f/2.8 SAM (SAL2875)"},
+ {60, "Carl Zeiss Distagon T* 24mm f/2 ZA SSM (SAL24F20Z)"},
+ {61, "Sony 85mm f/2.8 SAM (SAL85F28)"},
+ {62, "Sony DT 35mm f/1.8 SAM (SAL35F18)"},
+ {63, "Sony DT 16-50mm f/2.8 SSM (SAL1650)"},
+ {64, "Sony 500mm f/4 G SSM (SAL500F40G)"},
+ {65, "Sony DT 18-135mm f/3.5-5.6 SAM (SAL18135)"},
+ {66, "Sony 300mm f/2.8 G SSM II (SAL300F28G2)"},
+ {67, "Sony 70-200mm f/2.8 G SSM II (SAL70200G2)"},
+ {68, "Sony DT 55-300mm f/4.5-5.6 SAM (SAL55300)"},
+ {69, "Sony 70-400mm f/4-5.6 G SSM II (SAL70400G2)"},
+ {70, "Carl Zeiss Planar T* 50mm f/1.4 ZA SSM (SAL50F14Z)"},
+ {128, "Tamron or Sigma Lens (128)"},
+ {128, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro"},
+ {128, "Tamron AF 28-300mm f/3.5-6.3 XR Di LD Aspherical [IF] Macro"},
+ {128, "Tamron 80-300mm f/3.5-6.3"},
+ {128, "Tamron AF 28-200mm f/3.8-5.6 XR Di Aspherical [IF] Macro"},
+ {128, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"},
+ {128, "Sigma AF 50-150mm f/2.8 EX DC APO HSM II"},
+ {128, "Sigma 10-20mm f/3.5 EX DC HSM"},
+ {128, "Sigma 70-200mm f/2.8 II EX DG APO MACRO HSM"},
+ {128, "Sigma 10mm f/2.8 EX DC HSM Fisheye"},
+ {128, "Sigma 50mm f/1.4 EX DG HSM"},
+ {128, "Sigma 85mm f/1.4 EX DG HSM"},
+ {128, "Sigma 24-70mm f/2.8 IF EX DG HSM"},
+ {128, "Sigma 18-250mm f/3.5-6.3 DC OS HSM"},
+ {128, "Sigma 17-50mm f/2.8 EX DC HSM"},
+ {128, "Sigma 17-70mm f/2.8-4 DC Macro HSM"},
+ {128, "Sigma 150mm f/2.8 EX DG OS HSM APO Macro"},
+ {128, "Sigma 150-500mm f/5-6.3 APO DG OS HSM"},
+ {128, "Tamron AF 28-105mm f/4-5.6 [IF]"},
+ {128, "Sigma 35mm f/1.4 DG HSM"},
+ {128, "Sigma 18-35mm f/1.8 DC HSM"},
+ {128, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM"},
+ {129, "Tamron Lens (129)"},
+ {129, "Tamron 200-400mm f/5.6 LD"},
+ {129, "Tamron 70-300mm f/4-5.6 LD"},
+ {131, "Tamron 20-40mm f/2.7-3.5 SP Aspherical IF"},
+ {135, "Vivitar 28-210mm f/3.5-5.6"},
+ {136, "Tokina EMZ M100 AF 100mm f/3.5"},
+ {137, "Cosina 70-210mm f/2.8-4 AF"},
+ {138, "Soligor 19-35mm f/3.5-4.5"},
+ {139, "Tokina AF 28-300mm f/4-6.3"},
+ {142, "Voigtlander 70-300mm f/4.5-5.6"},
+ {146, "Voigtlander Macro APO-Lanthar 125mm f/2.5 SL"},
+ {194, "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical [IF]"},
+ {203, "Tamron SP 70-200mm f/2.8 Di USD"},
+ {204, "Tamron SP 24-70mm f/2.8 Di USD"},
+ {213, "Tamron 16-300mm f/3.5-6.3 Di II PZD"},
+ {214, "Tamron SP 150-600mm f/5-6.3 Di USD"},
+ {224, "Tamron SP 90mm f/2.8 Di Macro 1:1 USD"},
+ {255, "Tamron Lens (255)"},
+ {255, "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical"},
+ {255, "Tamron AF 18-250mm f/3.5-6.3 XR Di II LD"},
+ {255, "Tamron AF 55-200mm f/4-5.6 Di II LD Macro"},
+ {255, "Tamron AF 70-300mm f/4-5.6 Di LD Macro 1:2"},
+ {255, "Tamron SP AF 200-500mm f/5.0-6.3 Di LD IF"},
+ {255, "Tamron SP AF 10-24mm f/3.5-4.5 Di II LD Aspherical IF"},
+ {255, "Tamron SP AF 70-200mm f/2.8 Di LD IF Macro"},
+ {255, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical IF"},
+ {255, "Tamron AF 90-300mm f/4.5-5.6 Telemacro"},
+ {1868, "Sigma MC-11 Adapter"},
+ {2550, "Minolta AF 50mm f/1.7"},
+ {2551, "Minolta AF 35-70mm f/4 or Other Lens"},
+ {2551, "Sigma UC AF 28-70mm f/3.5-4.5"},
+ {2551, "Sigma AF 28-70mm f/2.8"},
+ {2551, "Sigma M-AF 70-200mm f/2.8 EX Aspherical"},
+ {2551, "Quantaray M-AF 35-80mm f/4-5.6"},
+ {2551, "Tokina 28-70mm f/2.8-4.5 AF"},
+ {2552, "Minolta AF 28-85mm f/3.5-4.5 or Other Lens"},
+ {2552, "Tokina 19-35mm f/3.5-4.5"},
+ {2552, "Tokina 28-70mm f/2.8 AT-X"},
+ {2552, "Tokina 80-400mm f/4.5-5.6 AT-X AF II 840"},
+ {2552, "Tokina AF PRO 28-80mm f/2.8 AT-X 280"},
+ {2552, "Tokina AT-X PRO [II] AF 28-70mm f/2.6-2.8 270"},
+ {2552, "Tamron AF 19-35mm f/3.5-4.5"},
+ {2552, "Angenieux AF 28-70mm f/2.6"},
+ {2552, "Tokina AT-X 17 AF 17mm f/3.5"},
+ {2552, "Tokina 20-35mm f/3.5-4.5 II AF"},
+ {2553, "Minolta AF 28-135mm f/4-4.5 or Sigma Lens"},
+ {2553, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"},
+ {2553, "Sigma 28-105mm f/2.8-4 Aspherical"},
+ {2553, "Sigma 28-105mm f/4-5.6 UC"},
+ {2554, "Minolta AF 35-105mm f/3.5-4.5"},
+ {2555, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"},
+ {2555, "Sigma 70-210mm f/4-5.6 APO"},
+ {2555, "Sigma M-AF 70-200mm f/2.8 EX APO"},
+ {2555, "Sigma 75-200mm f/2.8-3.5"},
+ {2556, "Minolta AF 135mm f/2.8"},
+ {2557, "Minolta/Sony AF 28mm f/2.8"},
+ {2558, "Minolta AF 24-50mm f/4"},
+ {2560, "Minolta AF 100-200mm f/4.5"},
+ {2561, "Minolta AF 75-300mm f/4.5-5.6 or Sigma Lens"},
+ {2561, "Sigma 70-300mm f/4-5.6 DL Macro"},
+ {2561, "Sigma 300mm f/4 APO Macro"},
+ {2561, "Sigma AF 500mm f/4.5 APO"},
+ {2561, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"},
+ {2561, "Tokina AT-X AF 300mm f/4"},
+ {2561, "Tokina AT-X AF 400mm f/5.6 SD"},
+ {2561, "Tokina AF 730 II 75-300mm f/4.5-5.6"},
+ {2561, "Sigma 800mm f/5.6 APO"},
+ {2561, "Sigma AF 400mm f/5.6 APO Macro"},
+ {2562, "Minolta AF 50mm f/1.4 [New]"},
+ {2563, "Minolta AF 300mm f/2.8 APO or Sigma Lens"},
+ {2563, "Sigma AF 50-500mm f/4-6.3 EX DG APO"},
+ {2563, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"},
+ {2563, "Sigma AF 500mm f/4.5 EX DG APO"},
+ {2563, "Sigma 400mm f/5.6 APO"},
+ {2564, "Minolta AF 50mm f/2.8 Macro or Sigma Lens"},
+ {2564, "Sigma 50mm f/2.8 EX Macro"},
+ {2565, "Minolta AF 600mm f/4 APO"},
+ {2566, "Minolta AF 24mm f/2.8 or Sigma Lens"},
+ {2566, "Sigma 17-35mm f/2.8-4 EX Aspherical"},
+ {2572, "Minolta/Sony AF 500mm f/8 Reflex"},
+ {2578, "Minolta/Sony AF 16mm f/2.8 Fisheye or Sigma Lens"},
+ {2578, "Sigma 8mm f/4 EX [DG] Fisheye"},
+ {2578, "Sigma 14mm f/3.5"},
+ {2578, "Sigma 15mm f/2.8 Fisheye"},
+ {2579, "Minolta/Sony AF 20mm f/2.8 or Tokina Lens"},
+ {2579, "Tokina AT-X Pro DX 11-16mm f/2.8"},
+ {2581, "Minolta AF 100mm f/2.8 Macro [New] or Sigma or Tamron Lens"},
+ {2581, "Sigma AF 90mm f/2.8 Macro"},
+ {2581, "Sigma AF 105mm f/2.8 EX [DG] Macro"},
+ {2581, "Sigma 180mm f/5.6 Macro"},
+ {2581, "Sigma 180mm f/3.5 EX DG Macro"},
+ {2581, "Tamron 90mm f/2.8 Macro"},
+ {2585, "Minolta AF 35-105mm f/3.5-4.5 New or Tamron Lens"},
+ {2585, "Beroflex 35-135mm f/3.5-4.5"},
+ {2585, "Tamron 24-135mm f/3.5-5.6"},
+ {2588, "Minolta AF 70-210mm f/3.5-4.5"},
+ {2589, "Minolta AF 80-200mm f/2.8 APO or Tokina Lens"},
+ {2589, "Tokina 80-200mm f/2.8"},
+ {2590, "Minolta AF 200mm f/2.8 G APO + Minolta AF 1.4x APO or Other Lens + 1.4x"},
+ {2590, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 1.4x APO"},
+ {2591, "Minolta AF 35mm f/1.4"},
+ {2592, "Minolta AF 85mm f/1.4 G (D)"},
+ {2593, "Minolta AF 200mm f/2.8 APO"},
+ {2594, "Minolta AF 3x-1x f/1.7-2.8 Macro"},
+ {2596, "Minolta AF 28mm f/2"},
+ {2597, "Minolta AF 35mm f/2 [New]"},
+ {2598, "Minolta AF 100mm f/2"},
+ {2601, "Minolta AF 200mm f/2.8 G APO + Minolta AF 2x APO or Other Lens + 2x"},
+ {2601, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 2x APO"},
+ {2604, "Minolta AF 80-200mm f/4.5-5.6"},
+ {2605, "Minolta AF 35-80mm f/4-5.6"},
+ {2606, "Minolta AF 100-300mm f/4.5-5.6"},
+ {2607, "Minolta AF 35-80mm f/4-5.6"},
+ {2608, "Minolta AF 300mm f/2.8 HS-APO G"},
+ {2609, "Minolta AF 600mm f/4 HS-APO G"},
+ {2612, "Minolta AF 200mm f/2.8 HS-APO G"},
+ {2613, "Minolta AF 50mm f/1.7 New"},
+ {2615, "Minolta AF 28-105mm f/3.5-4.5 xi"},
+ {2616, "Minolta AF 35-200mm f/4.5-5.6 xi"},
+ {2618, "Minolta AF 28-80mm f/4-5.6 xi"},
+ {2619, "Minolta AF 80-200mm f/4.5-5.6 xi"},
+ {2620, "Minolta AF 28-70mm f/2.8 G"},
+ {2621, "Minolta AF 100-300mm f/4.5-5.6 xi"},
+ {2624, "Minolta AF 35-80mm f/4-5.6 Power Zoom"},
+ {2628, "Minolta AF 80-200mm f/2.8 HS-APO G"},
+ {2629, "Minolta AF 85mm f/1.4 New"},
+ {2631, "Minolta/Sony AF 100-300mm f/4.5-5.6 APO"},
+ {2632, "Minolta AF 24-50mm f/4 New"},
+ {2638, "Minolta AF 50mm f/2.8 Macro New"},
+ {2639, "Minolta AF 100mm f/2.8 Macro"},
+ {2641, "Minolta/Sony AF 20mm f/2.8 New"},
+ {2642, "Minolta AF 24mm f/2.8 New"},
+ {2644, "Minolta AF 100-400mm f/4.5-6.7 APO"},
+ {2662, "Minolta AF 50mm f/1.4 New"},
+ {2667, "Minolta AF 35mm f/2 New"},
+ {2668, "Minolta AF 28mm f/2 New"},
+ {2672, "Minolta AF 24-105mm f/3.5-4.5 (D)"},
+ {3046, "Metabones Canon EF Speed Booster"},
+ {4567, "Tokina 70-210mm f/4-5.6"},
+ {4571, "Vivitar 70-210mm f/4.5-5.6"},
+ {4574, "2x Teleconverter or Tamron or Tokina Lens"},
+ {4574, "Tamron SP AF 90mm f/2.5"},
+ {4574, "Tokina RF 500mm f/8.0 x2"},
+ {4574, "Tokina 300mm f/2.8 x2"},
+ {4575, "1.4x Teleconverter"},
+ {4585, "Tamron SP AF 300mm f/2.8 LD IF"},
+ {4586, "Tamron SP AF 35-105mm f/2.8 LD Aspherical IF"},
+ {4587, "Tamron AF 70-210mm f/2.8 SP LD"},
+ {4812, "Metabones Canon EF Speed Booster Ultra"},
+ {6118, "Canon EF Adapter"},
+ {6553, "E-Mount, T-Mount, Other Lens or no lens"},
+ {6553, "Sony E 16mm f/2.8"},
+ {6553, "Sony E 18-55mm f/3.5-5.6 OSS"},
+ {6553, "Sony E 55-210mm f/4.5-6.3 OSS"},
+ {6553, "Sony E 18-200mm f/3.5-6.3 OSS"},
+ {6553, "Sony E 30mm f/3.5 Macro"},
+ {6553, "Sony E 24mm f/1.8 ZA"},
+ {6553, "Sony E 50mm f/1.8 OSS"},
+ {6553, "Sony E 16-70mm f/4 ZA OSS"},
+ {6553, "Sony E 10-18mm f/4 OSS"},
+ {6553, "Sony E PZ 16-50mm f/3.5-5.6 OSS"},
+ {6553, "Sony FE 35mm f/2.8 ZA"},
+ {6553, "Sony FE 24-70mm f/4 ZA OSS"},
+ {6553, "Sony E 18-200mm f/3.5-6.3 OSS LE"},
+ {6553, "Sony E 20mm f/2.8"},
+ {6553, "Sony E 35mm f/1.8 OSS"},
+ {6553, "Sony E PZ 18-105mm f/4 G OSS"},
+ {6553, "Sony FE 90mm f/2.8 Macro G OSS"},
+ {6553, "Sony E 18-50mm f/4-5.6"},
+ {6553, "Sony E PZ 18-200mm f/3.5-6.3 OSS"},
+ {6553, "Sony FE 55mm f/1.8 ZA"},
+ {6553, "Sony FE 70-200mm f/4 G OSS"},
+ {6553, "Sony FE 16-35mm f/4 ZA OSS"},
+ {6553, "Sony FE 28-70mm f/3.5-5.6 OSS"},
+ {6553, "Sony FE 35mm f/1.4 ZA"},
+ {6553, "Sony FE 24-240mm f/3.5-6.3 OSS"},
+ {6553, "Sony FE 28mm f/2"},
+ {6553, "Sony FE PZ 28-135mm f/4 G OSS"},
+ {6553, "Sony FE 24-70mm f/2.8 GM"},
+ {6553, "Sony FE 85mm f/1.4 GM"},
+ {6553, "Sony FE 50mm f/1.8"},
+ {6553, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"},
+ {6553, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"},
+ {6553, "Sony FE 70-300mm f/4.5-5.6 G OSS"},
+ {6553, "Sony FE 70-200mm f/2.8 GM OSS"},
+ {6553, "Sigma 19mm f/2.8 [EX] DN"},
+ {6553, "Sigma 30mm f/2.8 [EX] DN"},
+ {6553, "Sigma 60mm f/2.8 DN"},
+ {6553, "Sigma 30mm f/1.4 DC DN | C"},
+ {6553, "Tamron 18-200mm f/3.5-6.3 Di III VC"},
+ {6553, "Zeiss Batis 25mm f/2"},
+ {6553, "Zeiss Batis 85mm f/1.8"},
+ {6553, "Zeiss Batis 18mm f/2.8"},
+ {6553, "Zeiss Loxia 21mm f/2.8"},
+ {6553, "Zeiss Loxia 35mm f/2"},
+ {6553, "Zeiss Loxia 50mm f/2"},
+ {6553, "Zeiss Touit 12mm f/2.8"},
+ {6553, "Zeiss Touit 32mm f/1.8"},
+ {6553, "Zeiss Touit 50mm f/2.8 Macro"},
+ {6553, "Arax MC 35mm f/2.8 Tilt+Shift"},
+ {6553, "Arax MC 80mm f/2.8 Tilt+Shift"},
+ {6553, "Zenitar MF 16mm f/2.8 Fisheye M42"},
+ {6553, "Samyang 500mm Mirror f/8.0"},
+ {6553, "Pentacon Auto 135mm f/2.8"},
+ {6553, "Pentacon Auto 29mm f/2.8"},
+ {6553, "Helios 44-2 58mm f/2.0"},
+ {18688, "Sigma MC-11 Adapter"},
+ {25501, "Minolta AF 50mm f/1.7"},
+ {25511, "Minolta AF 35-70mm f/4 or Other Lens"},
+ {25511, "Sigma UC AF 28-70mm f/3.5-4.5"},
+ {25511, "Sigma AF 28-70mm f/2.8"},
+ {25511, "Sigma M-AF 70-200mm f/2.8 EX Aspherical"},
+ {25511, "Quantaray M-AF 35-80mm f/4-5.6"},
+ {25511, "Tokina 28-70mm f/2.8-4.5 AF"},
+ {25521, "Minolta AF 28-85mm f/3.5-4.5 or Other Lens"},
+ {25521, "Tokina 19-35mm f/3.5-4.5"},
+ {25521, "Tokina 28-70mm f/2.8 AT-X"},
+ {25521, "Tokina 80-400mm f/4.5-5.6 AT-X AF II 840"},
+ {25521, "Tokina AF PRO 28-80mm f/2.8 AT-X 280"},
+ {25521, "Tokina AT-X PRO [II] AF 28-70mm f/2.6-2.8 270"},
+ {25521, "Tamron AF 19-35mm f/3.5-4.5"},
+ {25521, "Angenieux AF 28-70mm f/2.6"},
+ {25521, "Tokina AT-X 17 AF 17mm f/3.5"},
+ {25521, "Tokina 20-35mm f/3.5-4.5 II AF"},
+ {25531, "Minolta AF 28-135mm f/4-4.5 or Sigma Lens"},
+ {25531, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"},
+ {25531, "Sigma 28-105mm f/2.8-4 Aspherical"},
+ {25531, "Sigma 28-105mm f/4-5.6 UC"},
+ {25541, "Minolta AF 35-105mm f/3.5-4.5"},
+ {25551, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"},
+ {25551, "Sigma 70-210mm f/4-5.6 APO"},
+ {25551, "Sigma M-AF 70-200mm f/2.8 EX APO"},
+ {25551, "Sigma 75-200mm f/2.8-3.5"},
+ {25561, "Minolta AF 135mm f/2.8"},
+ {25571, "Minolta/Sony AF 28mm f/2.8"},
+ {25581, "Minolta AF 24-50mm f/4"},
+ {25601, "Minolta AF 100-200mm f/4.5"},
+ {25611, "Minolta AF 75-300mm f/4.5-5.6 or Sigma Lens"},
+ {25611, "Sigma 70-300mm f/4-5.6 DL Macro"},
+ {25611, "Sigma 300mm f/4 APO Macro"},
+ {25611, "Sigma AF 500mm f/4.5 APO"},
+ {25611, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"},
+ {25611, "Tokina AT-X AF 300mm f/4"},
+ {25611, "Tokina AT-X AF 400mm f/5.6 SD"},
+ {25611, "Tokina AF 730 II 75-300mm f/4.5-5.6"},
+ {25611, "Sigma 800mm f/5.6 APO"},
+ {25611, "Sigma AF 400mm f/5.6 APO Macro"},
+ {25621, "Minolta AF 50mm f/1.4 [New]"},
+ {25631, "Minolta AF 300mm f/2.8 APO or Sigma Lens"},
+ {25631, "Sigma AF 50-500mm f/4-6.3 EX DG APO"},
+ {25631, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"},
+ {25631, "Sigma AF 500mm f/4.5 EX DG APO"},
+ {25631, "Sigma 400mm f/5.6 APO"},
+ {25641, "Minolta AF 50mm f/2.8 Macro or Sigma Lens"},
+ {25641, "Sigma 50mm f/2.8 EX Macro"},
+ {25651, "Minolta AF 600mm f/4 APO"},
+ {25661, "Minolta AF 24mm f/2.8 or Sigma Lens"},
+ {25661, "Sigma 17-35mm f/2.8-4 EX Aspherical"},
+ {25721, "Minolta/Sony AF 500mm f/8 Reflex"},
+ {25781, "Minolta/Sony AF 16mm f/2.8 Fisheye or Sigma Lens"},
+ {25781, "Sigma 8mm f/4 EX [DG] Fisheye"},
+ {25781, "Sigma 14mm f/3.5"},
+ {25781, "Sigma 15mm f/2.8 Fisheye"},
+ {25791, "Minolta/Sony AF 20mm f/2.8 or Tokina Lens"},
+ {25791, "Tokina AT-X Pro DX 11-16mm f/2.8"},
+ {25811, "Minolta AF 100mm f/2.8 Macro [New] or Sigma or Tamron Lens"},
+ {25811, "Sigma AF 90mm f/2.8 Macro"},
+ {25811, "Sigma AF 105mm f/2.8 EX [DG] Macro"},
+ {25811, "Sigma 180mm f/5.6 Macro"},
+ {25811, "Sigma 180mm f/3.5 EX DG Macro"},
+ {25811, "Tamron 90mm f/2.8 Macro"},
+ {25851, "Beroflex 35-135mm f/3.5-4.5"},
+ {25858, "Minolta AF 35-105mm f/3.5-4.5 New or Tamron Lens"},
+ {25858, "Tamron 24-135mm f/3.5-5.6"},
+ {25881, "Minolta AF 70-210mm f/3.5-4.5"},
+ {25891, "Minolta AF 80-200mm f/2.8 APO or Tokina Lens"},
+ {25891, "Tokina 80-200mm f/2.8"},
+ {25901, "Minolta AF 200mm f/2.8 G APO + Minolta AF 1.4x APO or Other Lens + 1.4x"},
+ {25901, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 1.4x APO"},
+ {25911, "Minolta AF 35mm f/1.4"},
+ {25921, "Minolta AF 85mm f/1.4 G (D)"},
+ {25931, "Minolta AF 200mm f/2.8 APO"},
+ {25941, "Minolta AF 3x-1x f/1.7-2.8 Macro"},
+ {25961, "Minolta AF 28mm f/2"},
+ {25971, "Minolta AF 35mm f/2 [New]"},
+ {25981, "Minolta AF 100mm f/2"},
+ {26011, "Minolta AF 200mm f/2.8 G APO + Minolta AF 2x APO or Other Lens + 2x"},
+ {26011, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 2x APO"},
+ {26041, "Minolta AF 80-200mm f/4.5-5.6"},
+ {26051, "Minolta AF 35-80mm f/4-5.6"},
+ {26061, "Minolta AF 100-300mm f/4.5-5.6"},
+ {26071, "Minolta AF 35-80mm f/4-5.6"},
+ {26081, "Minolta AF 300mm f/2.8 HS-APO G"},
+ {26091, "Minolta AF 600mm f/4 HS-APO G"},
+ {26121, "Minolta AF 200mm f/2.8 HS-APO G"},
+ {26131, "Minolta AF 50mm f/1.7 New"},
+ {26151, "Minolta AF 28-105mm f/3.5-4.5 xi"},
+ {26161, "Minolta AF 35-200mm f/4.5-5.6 xi"},
+ {26181, "Minolta AF 28-80mm f/4-5.6 xi"},
+ {26191, "Minolta AF 80-200mm f/4.5-5.6 xi"},
+ {26201, "Minolta AF 28-70mm f/2.8 G"},
+ {26211, "Minolta AF 100-300mm f/4.5-5.6 xi"},
+ {26241, "Minolta AF 35-80mm f/4-5.6 Power Zoom"},
+ {26281, "Minolta AF 80-200mm f/2.8 HS-APO G"},
+ {26291, "Minolta AF 85mm f/1.4 New"},
+ {26311, "Minolta/Sony AF 100-300mm f/4.5-5.6 APO"},
+ {26321, "Minolta AF 24-50mm f/4 New"},
+ {26381, "Minolta AF 50mm f/2.8 Macro New"},
+ {26391, "Minolta AF 100mm f/2.8 Macro"},
+ {26411, "Minolta/Sony AF 20mm f/2.8 New"},
+ {26421, "Minolta AF 24mm f/2.8 New"},
+ {26441, "Minolta AF 100-400mm f/4.5-6.7 APO"},
+ {26621, "Minolta AF 50mm f/1.4 New"},
+ {26671, "Minolta AF 35mm f/2 New"},
+ {26681, "Minolta AF 28mm f/2 New"},
+ {26721, "Minolta AF 24-105mm f/3.5-4.5 (D)"},
+ {30464, "Metabones Canon EF Speed Booster"},
+ {45671, "Tokina 70-210mm f/4-5.6"},
+ {45711, "Vivitar 70-210mm f/4.5-5.6"},
+ {45741, "2x Teleconverter or Tamron or Tokina Lens"},
+ {45741, "Tamron SP AF 90mm f/2.5"},
+ {45741, "Tokina RF 500mm f/8.0 x2"},
+ {45741, "Tokina 300mm f/2.8 x2"},
+ {45751, "1.4x Teleconverter"},
+ {45851, "Tamron SP AF 300mm f/2.8 LD IF"},
+ {45861, "Tamron SP AF 35-105mm f/2.8 LD Aspherical IF"},
+ {45871, "Tamron AF 70-210mm f/2.8 SP LD"},
+ {48128, "Metabones Canon EF Speed Booster Ultra"},
+ {61184, "Canon EF Adapter"},
+ {65535, "E-Mount, T-Mount, Other Lens or no lens"},
+ {65535, "Sony E 16mm f/2.8"},
+ {65535, "Sony E 18-55mm f/3.5-5.6 OSS"},
+ {65535, "Sony E 55-210mm f/4.5-6.3 OSS"},
+ {65535, "Sony E 18-200mm f/3.5-6.3 OSS"},
+ {65535, "Sony E 30mm f/3.5 Macro"},
+ {65535, "Sony E 24mm f/1.8 ZA"},
+ {65535, "Sony E 50mm f/1.8 OSS"},
+ {65535, "Sony E 16-70mm f/4 ZA OSS"},
+ {65535, "Sony E 10-18mm f/4 OSS"},
+ {65535, "Sony E PZ 16-50mm f/3.5-5.6 OSS"},
+ {65535, "Sony FE 35mm f/2.8 ZA"},
+ {65535, "Sony FE 24-70mm f/4 ZA OSS"},
+ {65535, "Sony E 18-200mm f/3.5-6.3 OSS LE"},
+ {65535, "Sony E 20mm f/2.8"},
+ {65535, "Sony E 35mm f/1.8 OSS"},
+ {65535, "Sony E PZ 18-105mm f/4 G OSS"},
+ {65535, "Sony FE 90mm f/2.8 Macro G OSS"},
+ {65535, "Sony E 18-50mm f/4-5.6"},
+ {65535, "Sony E PZ 18-200mm f/3.5-6.3 OSS"},
+ {65535, "Sony FE 55mm f/1.8 ZA"},
+ {65535, "Sony FE 70-200mm f/4 G OSS"},
+ {65535, "Sony FE 16-35mm f/4 ZA OSS"},
+ {65535, "Sony FE 28-70mm f/3.5-5.6 OSS"},
+ {65535, "Sony FE 35mm f/1.4 ZA"},
+ {65535, "Sony FE 24-240mm f/3.5-6.3 OSS"},
+ {65535, "Sony FE 28mm f/2"},
+ {65535, "Sony FE PZ 28-135mm f/4 G OSS"},
+ {65535, "Sony FE 24-70mm f/2.8 GM"},
+ {65535, "Sony FE 85mm f/1.4 GM"},
+ {65535, "Sony FE 50mm f/1.8"},
+ {65535, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"},
+ {65535, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"},
+ {65535, "Sony FE 70-300mm f/4.5-5.6 G OSS"},
+ {65535, "Sony FE 70-200mm f/2.8 GM OSS"},
+ {65535, "Sigma 19mm f/2.8 [EX] DN"},
+ {65535, "Sigma 30mm f/2.8 [EX] DN"},
+ {65535, "Sigma 60mm f/2.8 DN"},
+ {65535, "Sigma 30mm f/1.4 DC DN | C"},
+ {65535, "Tamron 18-200mm f/3.5-6.3 Di III VC"},
+ {65535, "Zeiss Batis 25mm f/2"},
+ {65535, "Zeiss Batis 85mm f/1.8"},
+ {65535, "Zeiss Batis 18mm f/2.8"},
+ {65535, "Zeiss Loxia 21mm f/2.8"},
+ {65535, "Zeiss Loxia 35mm f/2"},
+ {65535, "Zeiss Loxia 50mm f/2"},
+ {65535, "Zeiss Touit 12mm f/2.8"},
+ {65535, "Zeiss Touit 32mm f/1.8"},
+ {65535, "Zeiss Touit 50mm f/2.8 Macro"},
+ {65535, "Arax MC 35mm f/2.8 Tilt+Shift"},
+ {65535, "Arax MC 80mm f/2.8 Tilt+Shift"},
+ {65535, "Zenitar MF 16mm f/2.8 Fisheye M42"},
+ {65535, "Samyang 500mm Mirror f/8.0"},
+ {65535, "Pentacon Auto 135mm f/2.8"},
+ {65535, "Pentacon Auto 29mm f/2.8"},
+ {65535, "Helios 44-2 58mm f/2.0"}
+ };
}
virtual std::string toString (Tag* t)
diff --git a/rtgui/colortoning.cc b/rtgui/colortoning.cc
index ce595e90f..ceec0092f 100644
--- a/rtgui/colortoning.cc
+++ b/rtgui/colortoning.cc
@@ -40,7 +40,7 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR
colorCurveEditorG = new CurveEditorGroup (options.lastColorToningCurvesDir, M("TP_COLORTONING_COLOR"));
colorCurveEditorG->setCurveListener (this);
- colorShape = static_cast(colorCurveEditorG->addCurve(CT_Flat, "", nullptr, false));
+ colorShape = static_cast(colorCurveEditorG->addCurve(CT_Flat, "", nullptr, false, false));
colorShape->setCurveColorProvider(this, 1);
std::vector milestones;
@@ -89,7 +89,7 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR
opacityCurveEditorG->setCurveListener (this);
rtengine::ColorToningParams::getDefaultOpacityCurve(defaultCurve);
- opacityShape = static_cast(opacityCurveEditorG->addCurve(CT_Flat, "", nullptr, false));
+ opacityShape = static_cast(opacityCurveEditorG->addCurve(CT_Flat, "", nullptr, false, false));
opacityShape->setIdentityValue(0.);
opacityShape->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve);
opacityShape->setBottomBarBgGradient(milestones);
@@ -108,7 +108,7 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR
clCurveEditorG->setCurveListener (this);
rtengine::ColorToningParams::getDefaultCLCurve(defaultCurve);
- clshape = static_cast(clCurveEditorG->addCurve(CT_Diagonal, M("TP_COLORTONING_AB"), irg));
+ clshape = static_cast(clCurveEditorG->addCurve(CT_Diagonal, M("TP_COLORTONING_AB"), irg, false));
clshape->setResetCurve(DiagonalCurveType(defaultCurve.at(0)), defaultCurve);
clshape->setTooltip(M("TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP"));
@@ -128,7 +128,7 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR
cl2CurveEditorG->setCurveListener (this);
rtengine::ColorToningParams::getDefaultCL2Curve(defaultCurve);
- cl2shape = static_cast(cl2CurveEditorG->addCurve(CT_Diagonal, M("TP_COLORTONING_BY"), iby));
+ cl2shape = static_cast(cl2CurveEditorG->addCurve(CT_Diagonal, M("TP_COLORTONING_BY"), iby, false));
cl2shape->setResetCurve(DiagonalCurveType(defaultCurve.at(0)), defaultCurve);
cl2shape->setTooltip(M("TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP"));
diff --git a/rtgui/curveeditor.cc b/rtgui/curveeditor.cc
index 5428677c3..117051b2a 100644
--- a/rtgui/curveeditor.cc
+++ b/rtgui/curveeditor.cc
@@ -200,6 +200,7 @@ CurveEditor::CurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup, CurveEd
leftBarCP = nullptr;
curveCP = nullptr;
relatedWidget = nullptr;
+ expandRelatedWidget = true;
group = ceGroup;
subGroup = ceSubGroup;
diff --git a/rtgui/curveeditor.h b/rtgui/curveeditor.h
index a3ba68436..3f279ff05 100644
--- a/rtgui/curveeditor.h
+++ b/rtgui/curveeditor.h
@@ -66,6 +66,7 @@ protected:
CurveEditorGroup* group;
CurveEditorSubGroup* subGroup;
Gtk::Widget* relatedWidget;
+ bool expandRelatedWidget;
std::vector tempCurve;
sigc::connection typeconn;
diff --git a/rtgui/curveeditorgroup.cc b/rtgui/curveeditorgroup.cc
index b745642f0..13b319fed 100644
--- a/rtgui/curveeditorgroup.cc
+++ b/rtgui/curveeditorgroup.cc
@@ -73,7 +73,7 @@ void CurveEditorGroup::hideCurrentCurve()
* periodic: for FlatCurve only, ask the curve to be periodic (default: True)
*
*/
-CurveEditor* CurveEditorGroup::addCurve(CurveType cType, Glib::ustring curveLabel, Gtk::Widget *relatedWidget, bool periodic)
+CurveEditor* CurveEditorGroup::addCurve(CurveType cType, Glib::ustring curveLabel, Gtk::Widget *relatedWidget, bool expandRelatedWidget, bool periodic)
{
switch (cType) {
case (CT_Diagonal): {
@@ -84,6 +84,7 @@ CurveEditor* CurveEditorGroup::addCurve(CurveType cType, Glib::ustring curveLabe
// We add it to the curve editor list
DiagonalCurveEditor* newCE = diagonalSubGroup->addCurve(curveLabel);
newCE->relatedWidget = relatedWidget;
+ newCE->expandRelatedWidget = expandRelatedWidget;
curveEditors.push_back(newCE);
return (newCE);
}
@@ -96,6 +97,7 @@ CurveEditor* CurveEditorGroup::addCurve(CurveType cType, Glib::ustring curveLabe
// We add it to the curve editor list
FlatCurveEditor* newCE = flatSubGroup->addCurve(curveLabel, periodic);
newCE->relatedWidget = relatedWidget;
+ newCE->expandRelatedWidget = expandRelatedWidget;
curveEditors.push_back(newCE);
return (newCE);
}
@@ -131,12 +133,20 @@ void CurveEditorGroup::newLine()
int j = numberOfPackedCurve;
+ bool rwe = false;
+
+ for (int i = (int)(curveEditors.size()) - 1; i >= j; i--) {
+ if (curveEditors[i]->relatedWidget != nullptr && curveEditors[i]->expandRelatedWidget) {
+ rwe = true;
+ }
+ }
+
for (int i = (int)(curveEditors.size()) - 1; i >= j; i--) {
if (curveEditors[i]->relatedWidget != nullptr) {
- headerBox->pack_end (*curveEditors[i]->relatedWidget, Gtk::PACK_EXPAND_WIDGET, 2);
+ headerBox->pack_end (*curveEditors[i]->relatedWidget, curveEditors[i]->expandRelatedWidget ? Gtk::PACK_EXPAND_WIDGET : Gtk::PACK_SHRINK, 2);
}
- headerBox->pack_end (*curveEditors[i]->curveType->buttonGroup, /*hasRelatedWidget ? Gtk::PACK_SHRINK :*/ Gtk::PACK_EXPAND_WIDGET, 2);
+ headerBox->pack_end (*curveEditors[i]->curveType->buttonGroup, rwe ? Gtk::PACK_SHRINK : Gtk::PACK_EXPAND_WIDGET, 2);
numberOfPackedCurve++;
}
diff --git a/rtgui/curveeditorgroup.h b/rtgui/curveeditorgroup.h
index 4cecc498e..2824a9475 100644
--- a/rtgui/curveeditorgroup.h
+++ b/rtgui/curveeditorgroup.h
@@ -85,7 +85,7 @@ public:
return displayedCurve;
}
//void on_realize ();
- CurveEditor* addCurve(CurveType cType, Glib::ustring curveLabel, Gtk::Widget *relatedWidget = nullptr, bool periodic = true);
+ CurveEditor* addCurve(CurveType cType, Glib::ustring curveLabel, Gtk::Widget *relatedWidget = nullptr, bool expandRelatedWidget = true, bool periodic = true);
protected:
//void curveTypeToggled ();
diff --git a/rtgui/dirpyrdenoise.cc b/rtgui/dirpyrdenoise.cc
index 1871d4ab0..a5611cc45 100644
--- a/rtgui/dirpyrdenoise.cc
+++ b/rtgui/dirpyrdenoise.cc
@@ -62,7 +62,7 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP
//curveEditorG = new CurveEditorGroup (options.lastLabCurvesDir);
NoiscurveEditorG->setCurveListener (this);
rtengine::DirPyrDenoiseParams::getDefaultNoisCurve(defaultCurve);
- lshape = static_cast(NoiscurveEditorG->addCurve(CT_Flat, "", nullptr, false));
+ lshape = static_cast(NoiscurveEditorG->addCurve(CT_Flat, "", nullptr, false, false));
lshape->setIdentityValue(0.);
lshape->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve);
@@ -150,7 +150,7 @@ DirPyrDenoise::DirPyrDenoise () : FoldableToolPanel(this, "dirpyrdenoise", M("TP
CCcurveEditorG = new CurveEditorGroup (options.lastDenoiseCurvesDir, M("TP_DIRPYRDENOISE_CCCURVE"));
CCcurveEditorG->setCurveListener (this);
rtengine::DirPyrDenoiseParams::getDefaultCCCurve(defaultCurve);
- ccshape = static_cast(CCcurveEditorG->addCurve(CT_Flat, "", nullptr, false));
+ ccshape = static_cast(CCcurveEditorG->addCurve(CT_Flat, "", nullptr, false, false));
ccshape->setIdentityValue(0.);
ccshape->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve);
diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc
index d9ce927c0..69e14f511 100644
--- a/rtgui/editorpanel.cc
+++ b/rtgui/editorpanel.cc
@@ -1675,8 +1675,7 @@ void EditorPanel::saveAsPressed ()
fnameOut = saveAsDialog->getFileName ();
options.lastSaveAsPath = saveAsDialog->getDirectory ();
- options.saveAsDialogWidth = saveAsDialog->get_width ();
- options.saveAsDialogHeight = saveAsDialog->get_height ();
+ saveAsDialog->get_size(options.saveAsDialogWidth, options.saveAsDialogHeight);
options.autoSuffix = saveAsDialog->getAutoSuffix ();
options.saveMethodNum = saveAsDialog->getSaveMethodNum ();
lastSaveAsFileName = Glib::path_get_basename (removeExtension (fnameOut));
@@ -1745,6 +1744,8 @@ void EditorPanel::saveAsPressed ()
} while (!fnameOK);
saveAsDialog->hide();
+
+ delete saveAsDialog;
}
void EditorPanel::queueImgPressed ()
diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc
index 0812db593..f241f8e9e 100644
--- a/rtgui/preferences.cc
+++ b/rtgui/preferences.cc
@@ -101,8 +101,7 @@ Preferences::~Preferences ()
{
profileStore.removeListener(this);
- options.preferencesWidth = get_width();
- options.preferencesHeight = get_height();
+ get_size(options.preferencesWidth, options.preferencesHeight);
}
Gtk::Widget* Preferences::getBatchProcPanel ()
diff --git a/rtgui/retinex.cc b/rtgui/retinex.cc
index 2e8cba2b9..0970684ad 100644
--- a/rtgui/retinex.cc
+++ b/rtgui/retinex.cc
@@ -105,7 +105,7 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
std::vector defaultCurve;
rtengine::RetinexParams::getDefaulttransmissionCurve(defaultCurve);
- transmissionShape = static_cast(transmissionCurveEditorG->addCurve(CT_Flat, "", nullptr, false));
+ transmissionShape = static_cast(transmissionCurveEditorG->addCurve(CT_Flat, "", nullptr, false, false));
transmissionShape->setIdentityValue(0.);
transmissionShape->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve);
transmissionShape->setBottomBarBgGradient(milestones);
@@ -184,7 +184,7 @@ Retinex::Retinex () : FoldableToolPanel(this, "retinex", M("TP_RETINEX_LABEL"),
// std::vector defaultCurve;
rtengine::RetinexParams::getDefaultgaintransmissionCurve(defaultCurve);
- gaintransmissionShape = static_cast(gaintransmissionCurve->addCurve(CT_Flat, "", nullptr, false));
+ gaintransmissionShape = static_cast(gaintransmissionCurve->addCurve(CT_Flat, "", nullptr, false, false));
gaintransmissionShape->setIdentityValue(0.);
gaintransmissionShape->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve);
gaintransmissionShape->setBottomBarBgGradient(milestones);
diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc
index ebfbf5006..5bcfe2b85 100644
--- a/rtgui/rtwindow.cc
+++ b/rtgui/rtwindow.cc
@@ -687,8 +687,7 @@ bool RTWindow::on_delete_event(GdkEventAny* event)
ProfilePanel::cleanup();
if (!options.windowMaximized) {
- options.windowWidth = get_width();
- options.windowHeight = get_height();
+ get_size(options.windowWidth, options.windowHeight);
get_position (options.windowX, options.windowY);
}
diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc
index 1b2af6b8a..1fe46f133 100644
--- a/rtgui/wavelet.cc
+++ b/rtgui/wavelet.cc
@@ -27,109 +27,169 @@ using namespace rtengine;
using namespace rtengine::procparams;
extern Options options;
-Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"), true, true)
+namespace
+{
+
+ GradientMilestone makeHsvGm(double position, float h, float s, float v)
+ {
+ float r;
+ float g;
+ float b;
+ Color::hsv2rgb01(h, s, v, r, g, b);
+ return GradientMilestone(position, r, g, b);
+ }
+
+ std::vector makeWholeHueRange()
+ {
+ std::vector res;
+ res.reserve(7);
+
+ for (int i = 0; i < 7; ++i) {
+ const float x = static_cast(i) / 6.0f;
+ res.push_back(makeHsvGm(x, x, 0.5f, 0.5f));
+ }
+
+ return res;
+ }
+
+}
+
+Wavelet::Wavelet() :
+ FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"), true, true),
+ curveEditorG(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_CONTEDIT"))),
+ CCWcurveEditorG(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_CCURVE"))),
+ curveEditorRES(new CurveEditorGroup(options.lastWaveletCurvesDir)),
+ curveEditorGAM(new CurveEditorGroup(options.lastWaveletCurvesDir)),
+ separatorNeutral(Gtk::manage(new Gtk::HSeparator())),
+ separatoredge(Gtk::manage(new Gtk::HSeparator())),
+ opaCurveEditorG(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_COLORT"))),
+ opacityCurveEditorG(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_OPACITY"))),
+ opacityCurveEditorW(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_OPACITYW"))),
+ opacityCurveEditorWL(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_OPACITYWL"))),
+ median(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_MEDI")))),
+ medianlev(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_MEDILEV")))),
+ linkedg(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_LINKEDG")))),
+ cbenab(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_CBENAB")))),
+ lipst(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_LIPST")))),
+ avoid(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_AVOID")))),
+ tmr(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_BALCHRO")))),
+ neutralchButton(Gtk::manage(new Gtk::Button(M("TP_WAVELET_NEUTRAL")))),
+ rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), -100, 100, 1, 0))),
+ resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), -100, 100, 1, 0))),
+ reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))),
+ tmrs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0))),
+ gamma(Gtk::manage(new Adjuster(M("TP_WAVELET_COMPGAMMA"), 0.4, 2.0, 0.01, 1.0))),
+ sup(Gtk::manage(new Adjuster(M("TP_WAVELET_SUPE"), -100, 350, 1, 0))),
+ sky(Gtk::manage(new Adjuster(M("TP_WAVELET_SKY"), -100., 100.0, 1., 0.))),
+ thres(Gtk::manage(new Adjuster(M("TP_WAVELET_LEVELS"), 4, 9, 1, 7))),//3
+ chroma(Gtk::manage(new Adjuster(M("TP_WAVELET_CHRO"), 1, 9, 1, 5))),
+ chro(Gtk::manage(new Adjuster(M("TP_WAVELET_CHR"), 0., 100., 1., 0.))),
+ contrast(Gtk::manage(new Adjuster(M("TP_WAVELET_CONTRA"), -100, 100, 1, 0))),
+ thr(Gtk::manage(new Adjuster(M("TP_WAVELET_THR"), 0, 100, 1, 35))),
+ thrH(Gtk::manage(new Adjuster(M("TP_WAVELET_THRH"), 0, 100, 1, 65))),
+ skinprotect(Gtk::manage( new Adjuster(M("TP_WAVELET_SKIN"), -100, 100, 1, 0.) )),
+ edgrad(Gtk::manage( new Adjuster(M("TP_WAVELET_EDRAD"), 0, 100, 1, 15) )),
+ edgval(Gtk::manage( new Adjuster(M("TP_WAVELET_EDVAL"), 0, 100, 1, 0) )),
+ edgthresh(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGTHRESH"), -50, 100, 1, 10 ))),
+ strength(Gtk::manage(new Adjuster(M("TP_WAVELET_STRENGTH"), 0, 100, 1, 100))),
+ balance(Gtk::manage(new Adjuster(M("TP_WAVELET_BALANCE"), -30, 100, 1, 0))),
+ iter(Gtk::manage(new Adjuster(M("TP_WAVELET_ITER"), -3, 3, 1, 0))),
+ hueskin(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKIN"), -314., 314., -5., 25., 170., 120., 0, false))),
+ hueskin2(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKY"), -314., 314., -260., -250, -130., -140., 0, false))),
+ hllev(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HIGHLIGHT"), 0., 100., 50., 75., 100., 98., 0, false))),
+ bllev(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_LOWLIGHT"), 0., 100., 0., 2., 50., 25., 0, false))),
+ pastlev(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_PASTEL"), 0., 70., 0., 2., 30., 20., 0, false))),
+ satlev(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_SAT"), 0., 130., 30., 45., 130., 100., 0, false))),
+ edgcont(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_EDGCONT"), 0., 100., options.rtSettings.bot_left, options.rtSettings.top_left, options.rtSettings.bot_right, options.rtSettings.top_right, 0., false))),
+ level0noise(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_LEVZERO"), -30., 100., 0., M("TP_WAVELET_STREN"), 1., 0., 100., 0., M("TP_WAVELET_NOIS"), 1., nullptr, false))),
+ level1noise(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_LEVONE"), -30., 100., 0., M("TP_WAVELET_STREN"), 1., 0., 100., 0., M("TP_WAVELET_NOIS"), 1., nullptr, false))),
+ level2noise(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_LEVTWO"), -30., 100., 0., M("TP_WAVELET_STREN"), 1., 0., 100., 0., M("TP_WAVELET_NOIS"), 1., nullptr, false))),
+ level3noise(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_LEVTHRE"), -30., 100., 0., M("TP_WAVELET_STREN"), 1., 0., 100., 0., M("TP_WAVELET_NOIS"), 1., nullptr, false))),
+ threshold(Gtk::manage(new Adjuster(M("TP_WAVELET_THRESHOLD"), 1, 9, 1, 5))),
+ threshold2(Gtk::manage(new Adjuster(M("TP_WAVELET_THRESHOLD2"), 1, 9, 1, 4))),
+ edgedetect(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECT"), 0, 100, 1, 90))),
+ edgedetectthr(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECTTHR"), 0, 100, 1, 20))),
+ edgedetectthr2(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECTTHR2"), -10, 100, 1, 0))),
+ edgesensi(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGESENSI"), 0, 100, 1, 60))),
+ edgeampli(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEAMPLI"), 0, 100, 1, 10))),
+ Lmethod(Gtk::manage(new MyComboBoxText())),
+ CHmethod(Gtk::manage(new MyComboBoxText())),
+ CHSLmethod(Gtk::manage(new MyComboBoxText())),
+ EDmethod(Gtk::manage(new MyComboBoxText())),
+ BAmethod(Gtk::manage(new MyComboBoxText())),
+ NPmethod(Gtk::manage(new MyComboBoxText())),
+ TMmethod(Gtk::manage(new MyComboBoxText())),
+ HSmethod(Gtk::manage(new MyComboBoxText())),
+ CLmethod(Gtk::manage(new MyComboBoxText())),
+ Backmethod(Gtk::manage(new MyComboBoxText())),
+ Tilesmethod(Gtk::manage(new MyComboBoxText())),
+ daubcoeffmethod(Gtk::manage(new MyComboBoxText())),
+ Dirmethod(Gtk::manage(new MyComboBoxText())),
+ Medgreinf(Gtk::manage(new MyComboBoxText())),
+ chanMixerHLFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_HIGHLIGHT")))),
+ chanMixerMidFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_MIDTONES")))),
+ chanMixerShadowsFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_SHADOWS")))),
+ wavLabels(Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER))),
+ labmC(Gtk::manage(new Gtk::Label(M("TP_WAVELET_CTYPE") + ":"))),
+ labmNP(Gtk::manage(new Gtk::Label(M("TP_WAVELET_NPTYPE") + ":"))),
+ expchroma(new MyExpander(true, M("TP_WAVELET_LEVCH"))),
+ expcontrast(new MyExpander(true, M("TP_WAVELET_LEVF"))),
+ expedge(new MyExpander(true, M("TP_WAVELET_EDGE"))),
+ expfinal(new MyExpander(true, M("TP_WAVELET_FINAL"))),
+ expgamut(new MyExpander(false, M("TP_WAVELET_CONTR"))),
+ expnoise(new MyExpander(true, M("TP_WAVELET_NOISE"))),
+ expresid(new MyExpander(true, M("TP_WAVELET_RESID"))),
+ expsettings(new MyExpander(false, M("TP_WAVELET_SETTINGS"))),
+ exptoning(new MyExpander(true, M("TP_WAVELET_TON"))),
+ neutrHBox(Gtk::manage(new Gtk::HBox()))
{
- std::vector milestones;
CurveListener::setMulti(true);
nextnlevel = 7.;
- float r, g, b;
- //from -PI to +PI (radians) convert to hsv and draw bottombar
- Color::hsv2rgb01(0.4199, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.0 , r, g, b) ); // hsv: 0.4199 rad: -3.14
- Color::hsv2rgb01(0.5000, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.054 , r, g, b) ); // hsv: 0.5 rad: -2.8
- Color::hsv2rgb01(0.6000, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.1336, r, g, b) ); // hsv: 0.60 rad: -2.3
- Color::hsv2rgb01(0.7500, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.3567, r, g, b) ); // hsv: 0.75 rad: -0.9
- Color::hsv2rgb01(0.8560, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.4363, r, g, b) ); // hsv: 0.856 rad: -0.4
- Color::hsv2rgb01(0.9200, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.4841, r, g, b) ); // hsv: 0.92 rad: -0.1
- Color::hsv2rgb01(0.9300, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.5000, r, g, b) ); // hsv: 0.93 rad: 0
- Color::hsv2rgb01(0.9600, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.5366, r, g, b) ); // hsv: 0.96 rad: 0.25
- Color::hsv2rgb01(1.0000, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.5955, r, g, b) ); // hsv: 1. rad: 0.6
- Color::hsv2rgb01(0.0675, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.6911, r, g, b) ); // hsv: 0.0675 rad: 1.2
- Color::hsv2rgb01(0.0900, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.7229, r, g, b) ); // hsv: 0.09 rad: 1.4
- Color::hsv2rgb01(0.1700, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.7707, r, g, b) ); // hsv: 0.17 rad: 1.7
- Color::hsv2rgb01(0.2650, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.8503, r, g, b) ); // hsv: 0.265 rad: 2.1
- Color::hsv2rgb01(0.3240, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(0.8981, r, g, b) ); // hsv: 0.324 rad: 2.5
- Color::hsv2rgb01(0.4197, 0.5, 0.5, r, g, b);
- milestones.push_back( GradientMilestone(1. , r, g, b) ); // hsv: 0.419 rad: 3.14
- std::vector milestones2;
- milestones2.push_back( GradientMilestone(0.0, 0.0, 0.0, 0.0) );
- milestones2.push_back( GradientMilestone(1.0, 1.0, 1.0, 1.0) );
-
- std::vector defaultCurve;
-
- expsettings = new MyExpander (false, M("TP_WAVELET_SETTINGS"));
expsettings->signal_button_release_event().connect_notify( sigc::bind( sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings) );
- expcontrast = new MyExpander (true, M("TP_WAVELET_LEVF"));
expcontrast->signal_button_release_event().connect_notify( sigc::bind( sigc::mem_fun(this, &Wavelet::foldAllButMe), expcontrast) );
enableContrastConn = expcontrast->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expcontrast) );
- expchroma = new MyExpander (true, M("TP_WAVELET_LEVCH"));
expchroma->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expchroma) );
enableChromaConn = expchroma->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expchroma) );
- exptoning = new MyExpander (true, M("TP_WAVELET_TON"));
exptoning->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), exptoning) );
enableToningConn = exptoning->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), exptoning) );
- expnoise = new MyExpander (true, M("TP_WAVELET_NOISE"));
expnoise->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expnoise) );
enableNoiseConn = expnoise->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expnoise) );
- expedge = new MyExpander (true, M("TP_WAVELET_EDGE"));
expedge->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expedge) );
enableEdgeConn = expedge->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expedge) );
- expgamut = new MyExpander (false, M("TP_WAVELET_CONTR"));
expgamut->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expgamut) );
- expresid = new MyExpander (true, M("TP_WAVELET_RESID"));
expresid->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expresid) );
enableResidConn = expresid->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expresid) );
- expfinal = new MyExpander (true, M("TP_WAVELET_FINAL"));
expfinal->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expfinal) );
enableFinalConn = expfinal->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expfinal) );
// Wavelet Settings
- settingsVBox = Gtk::manage (new ToolParamBlock());
+ Gtk::VBox* const settingsVBox = Gtk::manage(new Gtk::VBox());
+ settingsVBox->set_spacing(2);
- strength = Gtk::manage (new Adjuster (M("TP_WAVELET_STRENGTH"), 0, 100, 1, 100));
strength->setAdjusterListener (this);
- thres = Gtk::manage (new Adjuster (M("TP_WAVELET_LEVELS"), 4, 9, 1, 7));//3
thres->set_tooltip_text (M("TP_WAVELET_LEVELS_TOOLTIP"));
thres->setAdjusterListener (this);
- tilesizeHBox = Gtk::manage (new Gtk::HBox());
- tilesizeLabel = Gtk::manage (new Gtk::Label (M("TP_WAVELET_TILESIZE") + ":"));
- //tilesizeLabel->set_alignment(Gtk::ALIGN_START);
- Tilesmethod = Gtk::manage (new MyComboBoxText ());
Tilesmethod->append (M("TP_WAVELET_TILESFULL"));
Tilesmethod->append (M("TP_WAVELET_TILESBIG"));
Tilesmethod->append (M("TP_WAVELET_TILESLIT"));
Tilesmethodconn = Tilesmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::TilesmethodChanged) );
Tilesmethod->set_tooltip_text (M("TP_WAVELET_TILES_TOOLTIP"));
+ Gtk::HBox* const tilesizeHBox = Gtk::manage(new Gtk::HBox());
+ Gtk::Label* const tilesizeLabel = Gtk::manage(new Gtk::Label(M("TP_WAVELET_TILESIZE") + ":"));
tilesizeHBox->pack_start(*tilesizeLabel, Gtk::PACK_SHRINK, 4);
tilesizeHBox->pack_start(*Tilesmethod);
- daubcoeffHBox = Gtk::manage (new Gtk::HBox());
- daubcoeffLabel = Gtk::manage (new Gtk::Label (M("TP_WAVELET_DAUB") + ":"));
- daubcoeffmethod = Gtk::manage (new MyComboBoxText ());
daubcoeffmethod->set_sensitive(true);
daubcoeffmethod->append (M("TP_WAVELET_DAUB2"));
daubcoeffmethod->append (M("TP_WAVELET_DAUB4"));
@@ -138,32 +198,30 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
daubcoeffmethod->append (M("TP_WAVELET_DAUB14"));
daubcoeffmethodconn = daubcoeffmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::daubcoeffmethodChanged) );
daubcoeffmethod->set_tooltip_text (M("TP_WAVELET_DAUB_TOOLTIP"));
+ Gtk::Label* const daubcoeffLabel = Gtk::manage(new Gtk::Label(M("TP_WAVELET_DAUB") + ":"));
+ Gtk::HBox* const daubcoeffHBox = Gtk::manage(new Gtk::HBox());
daubcoeffHBox->pack_start(*daubcoeffLabel, Gtk::PACK_SHRINK, 4);
daubcoeffHBox->pack_start(*daubcoeffmethod);
- backgroundHBox = Gtk::manage (new Gtk::HBox());
- Backmethod = Gtk::manage (new MyComboBoxText ());
Backmethod->append (M("TP_WAVELET_B0"));
Backmethod->append (M("TP_WAVELET_B1"));
Backmethod->append (M("TP_WAVELET_B2"));
Backmethodconn = Backmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::BackmethodChanged) );
- backgroundLabel = Gtk::manage (new Gtk::Label (M("TP_WAVELET_BACKGROUND") + ":"));
+ Gtk::HBox* const backgroundHBox = Gtk::manage(new Gtk::HBox());
+ Gtk::Label* const backgroundLabel = Gtk::manage(new Gtk::Label(M("TP_WAVELET_BACKGROUND") + ":"));
backgroundHBox->pack_start(*backgroundLabel, Gtk::PACK_SHRINK, 4);
backgroundHBox->pack_start(*Backmethod);
- levdirMainHBox = Gtk::manage (new Gtk::HBox());
- CLmethod = Gtk::manage (new MyComboBoxText ());
CLmethod->append (M("TP_WAVELET_LEVDIR_ONE"));
CLmethod->append (M("TP_WAVELET_LEVDIR_INF"));
CLmethod->append (M("TP_WAVELET_LEVDIR_SUP"));
CLmethod->append (M("TP_WAVELET_LEVDIR_ALL"));
CLmethodconn = CLmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::CLmethodChanged) );
- levdirMainLabel = Gtk::manage (new Gtk::Label (M("TP_WAVELET_PROC") + ":"));
+ Gtk::HBox* const levdirMainHBox = Gtk::manage(new Gtk::HBox());
+ Gtk::Label* const levdirMainLabel = Gtk::manage(new Gtk::Label(M("TP_WAVELET_PROC") + ":"));
levdirMainHBox->pack_start(*levdirMainLabel, Gtk::PACK_SHRINK, 4);
levdirMainHBox->pack_start(*CLmethod); //same
- levdirSubHBox = Gtk::manage (new Gtk::HBox());
- Lmethod = Gtk::manage (new MyComboBoxText ());
Lmethod->set_sensitive(false);
Lmethod->set_sensitive(false);
Lmethod->append (M("TP_WAVELET_1"));
@@ -178,7 +236,6 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
Lmethod->append (M("TP_WAVELET_SUPE"));
Lmethod->append (M("TP_WAVELET_RESID"));
Lmethod->set_active(0);
- Dirmethod = Gtk::manage (new MyComboBoxText ());
Dirmethod->set_sensitive(false);
Dirmethod->append (M("TP_WAVELET_DONE"));
Dirmethod->append (M("TP_WAVELET_DTWO"));
@@ -186,6 +243,7 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
Dirmethod->append (M("TP_WAVELET_DALL"));
Lmethodconn = Lmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::LmethodChanged) );
Dirmethodconn = Dirmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::DirmethodChanged) );
+ Gtk::HBox* const levdirSubHBox = Gtk::manage(new Gtk::HBox());
levdirSubHBox->pack_start(*Lmethod);
levdirSubHBox->pack_start(*Dirmethod, Gtk::PACK_EXPAND_WIDGET, 2); // same, but 2 not 4?
@@ -200,20 +258,18 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
// Contrast
Gtk::VBox * levBox = Gtk::manage (new ToolParamBlock());
-
- Gtk::HBox * buttonBox = Gtk::manage (new Gtk::HBox(true, 10));
- wavLabels = Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER));
+ Gtk::HBox* const buttonBox = Gtk::manage (new Gtk::HBox(true, 10));
levBox->pack_start(*buttonBox, Gtk::PACK_SHRINK, 2);
- Gtk::Button * contrastMinusButton = Gtk::manage (new Gtk::Button(M("TP_WAVELET_CONTRAST_MINUS")));
+ Gtk::Button* const contrastMinusButton = Gtk::manage (new Gtk::Button(M("TP_WAVELET_CONTRAST_MINUS")));
buttonBox->pack_start(*contrastMinusButton);
contrastMinusPressedConn = contrastMinusButton->signal_pressed().connect( sigc::mem_fun(*this, &Wavelet::contrastMinusPressed));
- Gtk::Button * neutralButton = Gtk::manage (new Gtk::Button(M("TP_WAVELET_NEUTRAL")));
+ Gtk::Button* const neutralButton = Gtk::manage (new Gtk::Button(M("TP_WAVELET_NEUTRAL")));
buttonBox->pack_start(*neutralButton);
neutralPressedConn = neutralButton->signal_pressed().connect( sigc::mem_fun(*this, &Wavelet::neutralPressed));
- Gtk::Button * contrastPlusButton = Gtk::manage (new Gtk::Button(M("TP_WAVELET_CONTRAST_PLUS")));
+ Gtk::Button* const contrastPlusButton = Gtk::manage (new Gtk::Button(M("TP_WAVELET_CONTRAST_PLUS")));
buttonBox->pack_start(*contrastPlusButton);
contrastPlusPressedConn = contrastPlusButton->signal_pressed().connect( sigc::mem_fun(*this, &Wavelet::contrastPlusPressed));
@@ -240,53 +296,51 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
levBox->pack_start(*correction[i]);
}
- sup = Gtk::manage (new Adjuster (M("TP_WAVELET_SUPE"), -100, 350, 1, 0));
levBox->pack_start(*sup);
sup->setAdjusterListener (this);
wavLabels->show();
levBox->pack_start (*wavLabels);
- contrastSHFrame = Gtk::manage (new Gtk::Frame (M("TP_WAVELET_APPLYTO")));
- contrastSHVBox = Gtk::manage (new Gtk::VBox);
+ Gtk::VBox* const contrastSHVBox = Gtk::manage(new Gtk::VBox);
contrastSHVBox->set_spacing(2);
- HSmethod = Gtk::manage (new MyComboBoxText ());
HSmethod->append (M("TP_WAVELET_HS1"));
HSmethod->append (M("TP_WAVELET_HS2"));
HSmethodconn = HSmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::HSmethodChanged) );
- hllev = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_HIGHLIGHT"), 0., 100., 50., 75., 100., 98., 0, false));
+ const std::vector milestones2 = {
+ GradientMilestone(0.0, 0.0, 0.0, 0.0),
+ GradientMilestone(1.0, 1.0, 1.0, 1.0)
+ };
+
hllev->setAdjusterListener (this);
hllev->setBgGradient(milestones2);
- threshold = Gtk::manage (new Adjuster (M("TP_WAVELET_THRESHOLD"), 1, 9, 1, 5));
threshold->setAdjusterListener (this);
threshold->set_tooltip_text (M("TP_WAVELET_THRESHOLD_TOOLTIP"));
- bllev = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_LOWLIGHT"), 0., 100., 0., 2., 50., 25., 0, false));
bllev->setAdjusterListener (this);
bllev->setBgGradient(milestones2);
- threshold2 = Gtk::manage (new Adjuster (M("TP_WAVELET_THRESHOLD2"), 1, 9, 1, 4));
threshold2->setAdjusterListener (this);
threshold2->set_tooltip_text (M("TP_WAVELET_THRESHOLD2_TOOLTIP"));
- contrastSHVBox->pack_start(*HSmethod); //remove 2?
+ contrastSHVBox->pack_start(*HSmethod);
contrastSHVBox->pack_start(*hllev);
contrastSHVBox->pack_start(*threshold);
contrastSHVBox->pack_start(*bllev);
contrastSHVBox->pack_start(*threshold2);
+ Gtk::Frame* const contrastSHFrame = Gtk::manage(new Gtk::Frame(M("TP_WAVELET_APPLYTO")));
contrastSHFrame->add(*contrastSHVBox);
levBox->pack_start(*contrastSHFrame);
// Chromaticity
Gtk::VBox * chBox = Gtk::manage (new ToolParamBlock());
- ctboxch = Gtk::manage (new Gtk::HBox ());
- labmch = Gtk::manage (new Gtk::Label (M("TP_WAVELET_CHTYPE") + ":"));
+ Gtk::Label* const labmch = Gtk::manage(new Gtk::Label(M("TP_WAVELET_CHTYPE") + ":"));
+ Gtk::HBox* const ctboxch = Gtk::manage(new Gtk::HBox());
ctboxch->pack_start (*labmch, Gtk::PACK_SHRINK, 1);
- CHmethod = Gtk::manage (new MyComboBoxText ());
CHmethod->append (M("TP_WAVELET_CH1"));
CHmethod->append (M("TP_WAVELET_CH2"));
CHmethod->append (M("TP_WAVELET_CH3"));
@@ -294,44 +348,36 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
ctboxch->pack_start(*CHmethod);
chBox->pack_start(*ctboxch);
- ctboxCH = Gtk::manage (new Gtk::HBox ());
- labmC = Gtk::manage (new Gtk::Label (M("TP_WAVELET_CTYPE") + ":"));
+ Gtk::HBox* const ctboxCH = Gtk::manage(new Gtk::HBox());
ctboxCH->pack_start (*labmC, Gtk::PACK_SHRINK, 1);
- CHSLmethod = Gtk::manage (new MyComboBoxText ());
CHSLmethod->append (M("TP_WAVELET_CHSL"));
CHSLmethod->append (M("TP_WAVELET_CHCU"));
CHSLmethodconn = CHSLmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::CHSLmethodChanged) );
ctboxCH->pack_start(*CHSLmethod);
- Gtk::HSeparator *separatorChromaMethod = Gtk::manage (new Gtk::HSeparator());
+ Gtk::HSeparator* const separatorChromaMethod = Gtk::manage (new Gtk::HSeparator());
chBox->pack_start(*separatorChromaMethod, Gtk::PACK_SHRINK, 2);
- chroma = Gtk::manage (new Adjuster (M("TP_WAVELET_CHRO"), 1, 9, 1, 5));
chroma->set_tooltip_text (M("TP_WAVELET_CHRO_TOOLTIP"));
chBox->pack_start(*chroma);
chroma->setAdjusterListener (this);
- satlev = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_SAT"), 0., 130., 30., 45., 130., 100., 0, false));
satlev->setAdjusterListener (this);
satlev->setBgGradient(milestones2);
- pastlev = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_PASTEL"), 0., 70., 0., 2., 30., 20., 0, false));
pastlev->setAdjusterListener (this);
pastlev->setBgGradient(milestones2);
chBox->pack_start(*pastlev);
chBox->pack_start(*satlev);
- chro = Gtk::manage (new Adjuster (M("TP_WAVELET_CHR"), 0., 100., 1., 0.));
chro->set_tooltip_text (M("TP_WAVELET_CHR_TOOLTIP"));
chBox->pack_start(*chro);
chro->setAdjusterListener (this);
- Gtk::HBox * buttonchBox = Gtk::manage (new Gtk::HBox(true, 10));
- neutralchButton = Gtk::manage (new Gtk::Button(M("TP_WAVELET_NEUTRAL")));
+ Gtk::HBox* const buttonchBox = Gtk::manage (new Gtk::HBox(true, 10));
neutralchPressedConn = neutralchButton->signal_pressed().connect( sigc::mem_fun(*this, &Wavelet::neutralchPressed));
- separatorNeutral = Gtk::manage (new Gtk::HSeparator());
chBox->pack_start(*separatorNeutral, Gtk::PACK_SHRINK, 2);
buttonchBox->pack_start(*neutralchButton);
buttonchBox->show_all_children();
@@ -361,11 +407,12 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
// Toning
Gtk::VBox * tonBox = Gtk::manage (new ToolParamBlock());
- opaCurveEditorG = new CurveEditorGroup (options.lastWaveletCurvesDir, M("TP_WAVELET_COLORT"));
opaCurveEditorG->setCurveListener (this);
+ std::vector defaultCurve;
+
rtengine::WaveletParams::getDefaultOpacityCurveRG(defaultCurve);
- opacityShapeRG = static_cast(opaCurveEditorG->addCurve(CT_Flat, "", nullptr, false));
+ opacityShapeRG = static_cast(opaCurveEditorG->addCurve(CT_Flat, "", nullptr, false, false));
opacityShapeRG->setIdentityValue(0.);
opacityShapeRG->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve);
@@ -374,11 +421,10 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
tonBox->pack_start( *opaCurveEditorG, Gtk::PACK_SHRINK, 2);
- opacityCurveEditorG = new CurveEditorGroup (options.lastWaveletCurvesDir, M("TP_WAVELET_OPACITY"));
opacityCurveEditorG->setCurveListener (this);
rtengine::WaveletParams::getDefaultOpacityCurveBY(defaultCurve);
- opacityShapeBY = static_cast(opacityCurveEditorG->addCurve(CT_Flat, "", nullptr, false));
+ opacityShapeBY = static_cast(opacityCurveEditorG->addCurve(CT_Flat, "", nullptr, false, false));
opacityShapeBY->setIdentityValue(0.);
opacityShapeBY->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve);
@@ -390,24 +436,19 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
// Denoise and Refine
Gtk::VBox * noiseBox = Gtk::manage (new ToolParamBlock());
- linkedg = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_LINKEDG")));
linkedg->set_active (true);
linkedgConn = linkedg->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::linkedgToggled) );
noiseBox->pack_start(*linkedg);
- level0noise = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_LEVZERO"), -30., 100., 0., M("TP_WAVELET_STREN"), 1., 0., 100., 0., M("TP_WAVELET_NOIS"), 1., nullptr, false));
level0noise->setAdjusterListener (this);
level0noise->setUpdatePolicy(RTUP_DYNAMIC);
- level1noise = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_LEVONE"), -30., 100., 0., M("TP_WAVELET_STREN"), 1., 0., 100., 0., M("TP_WAVELET_NOIS"), 1., nullptr, false));
level1noise->setAdjusterListener (this);
level1noise->setUpdatePolicy(RTUP_DYNAMIC);
- level2noise = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_LEVTWO"), -30., 100., 0., M("TP_WAVELET_STREN"), 1., 0., 100., 0., M("TP_WAVELET_NOIS"), 1., nullptr, false));
level2noise->setAdjusterListener (this);
level2noise->setUpdatePolicy(RTUP_DYNAMIC);
- level3noise = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_LEVTHRE"), -30., 100., 0., M("TP_WAVELET_STREN"), 1., 0., 100., 0., M("TP_WAVELET_NOIS"), 1., nullptr, false));
level3noise->setAdjusterListener (this);
level3noise->setUpdatePolicy(RTUP_DYNAMIC);
@@ -419,25 +460,21 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
// Edge Sharpness
Gtk::VBox * edgBox = Gtk::manage (new ToolParamBlock());
- edgval = Gtk::manage ( new Adjuster (M("TP_WAVELET_EDVAL"), 0, 100, 1, 0) );
edgval->setAdjusterListener(this);
edgBox->pack_start(*edgval);
- edgrad = Gtk::manage ( new Adjuster (M("TP_WAVELET_EDRAD"), 0, 100, 1, 15) );
edgrad->setAdjusterListener(this);
edgBox->pack_start(*edgrad);
edgrad->set_tooltip_markup (M("TP_WAVELET_EDRAD_TOOLTIP"));
- edgthresh = Gtk::manage (new Adjuster (M("TP_WAVELET_EDGTHRESH"), -50, 100, 1, 10 ));
edgthresh->setAdjusterListener (this);
edgthresh->set_tooltip_markup (M("TP_WAVELET_EDGTHRESH_TOOLTIP"));
edgBox->pack_start (*edgthresh);
- edbox = Gtk::manage (new Gtk::HBox ());
- labmedgr = Gtk::manage (new Gtk::Label (M("TP_WAVELET_MEDGREINF") + ":"));
+ Gtk::Label* const labmedgr = Gtk::manage(new Gtk::Label(M("TP_WAVELET_MEDGREINF") + ":"));
+ Gtk::HBox* const edbox = Gtk::manage(new Gtk::HBox());
edbox->pack_start (*labmedgr, Gtk::PACK_SHRINK, 1);
- Medgreinf = Gtk::manage (new MyComboBoxText ());
Medgreinf->append (M("TP_WAVELET_RE1"));
Medgreinf->append (M("TP_WAVELET_RE2"));
Medgreinf->append (M("TP_WAVELET_RE3"));
@@ -446,35 +483,28 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
edbox->pack_start(*Medgreinf);
edgBox->pack_start(*edbox);
- Gtk::HSeparator *separatorlc = Gtk::manage (new Gtk::HSeparator());
+ Gtk::HSeparator* const separatorlc = Gtk::manage (new Gtk::HSeparator());
edgBox->pack_start(*separatorlc, Gtk::PACK_SHRINK, 2);
- ctboxED = Gtk::manage (new Gtk::HBox ());
- labmED = Gtk::manage (new Gtk::Label (M("TP_WAVELET_EDTYPE") + ":"));
+ Gtk::Label* const labmED = Gtk::manage(new Gtk::Label(M("TP_WAVELET_EDTYPE") + ":"));
+ Gtk::HBox* const ctboxED = Gtk::manage(new Gtk::HBox());
ctboxED->pack_start (*labmED, Gtk::PACK_SHRINK, 1);
- EDmethod = Gtk::manage (new MyComboBoxText ());
EDmethod->append (M("TP_WAVELET_EDSL"));
EDmethod->append (M("TP_WAVELET_EDCU"));
EDmethodconn = EDmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::EDmethodChanged) );
ctboxED->pack_start(*EDmethod);
edgBox->pack_start (*ctboxED);
- tr = options.rtSettings.top_right;
- br = options.rtSettings.bot_right;
- tl = options.rtSettings.top_left;
- bl = options.rtSettings.bot_left;
- edgcont = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_EDGCONT"), 0., 100., bl, tl, br, tr, 0., false));
edgcont->setAdjusterListener (this);
edgcont->setBgGradient(milestones2);
edgcont->set_tooltip_markup (M("TP_WAVELET_EDGCONT_TOOLTIP"));
// <-- Edge Sharpness Local Contrast curve
- CCWcurveEditorG = new CurveEditorGroup (options.lastWaveletCurvesDir, M("TP_WAVELET_CCURVE"));
CCWcurveEditorG->setCurveListener (this);
rtengine::WaveletParams::getDefaultCCWCurve(defaultCurve);
- ccshape = static_cast(CCWcurveEditorG->addCurve(CT_Flat, "", nullptr, false));
+ ccshape = static_cast(CCWcurveEditorG->addCurve(CT_Flat, "", nullptr, false, false));
ccshape->setIdentityValue(0.);
ccshape->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve);
@@ -487,65 +517,52 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
edgBox->pack_start (*edgcont);
edgBox->pack_start(*CCWcurveEditorG, Gtk::PACK_SHRINK, 4);
- medianlev = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_MEDILEV")));
medianlev->set_active (true);
medianlevConn = medianlev->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::medianlevToggled) );
medianlev->set_tooltip_text (M("TP_WAVELET_MEDILEV_TOOLTIP"));
- Gtk::HSeparator *separatored1 = Gtk::manage (new Gtk::HSeparator());
+ Gtk::HSeparator* const separatored1 = Gtk::manage (new Gtk::HSeparator());
edgBox->pack_start(*separatored1, Gtk::PACK_SHRINK, 2);
- eddebox = Gtk::manage (new Gtk::HBox ());
-
+ Gtk::HBox* const eddebox = Gtk::manage(new Gtk::HBox());
edgBox->pack_start (*eddebox);
edgBox->pack_start(*medianlev);
- edgedetect = Gtk::manage (new Adjuster (M("TP_WAVELET_EDGEDETECT"), 0, 100, 1, 90));
edgedetect->setAdjusterListener (this);
edgedetect->set_tooltip_text (M("TP_WAVELET_EDGEDETECT_TOOLTIP"));
edgBox->pack_start(*edgedetect);
- edgedetectthr = Gtk::manage (new Adjuster (M("TP_WAVELET_EDGEDETECTTHR"), 0, 100, 1, 20));
edgedetectthr->setAdjusterListener (this);
edgedetectthr->set_tooltip_text (M("TP_WAVELET_EDGEDETECTTHR_TOOLTIP"));
edgBox->pack_start(*edgedetectthr);
- edgedetectthr2 = Gtk::manage (new Adjuster (M("TP_WAVELET_EDGEDETECTTHR2"), -10, 100, 1, 0));
edgedetectthr2->setAdjusterListener (this);
edgBox->pack_start(*edgedetectthr2);
- separatoredge = Gtk::manage (new Gtk::HSeparator());
-
edgBox->pack_start(*separatoredge, Gtk::PACK_SHRINK, 2);
- lipst = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_LIPST")));
lipst->set_active (true);
lipstConn = lipst->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::lipstToggled) );
// lipst->set_tooltip_text (M("TP_WAVELET_LIPST_TOOLTIP"));
edgBox->pack_start(*lipst);
- edgesensi = Gtk::manage (new Adjuster (M("TP_WAVELET_EDGESENSI"), 0, 100, 1, 60));
edgesensi->setAdjusterListener (this);
edgBox->pack_start(*edgesensi);
- edgeampli = Gtk::manage (new Adjuster (M("TP_WAVELET_EDGEAMPLI"), 0, 100, 1, 10));
edgeampli->setAdjusterListener (this);
edgBox->pack_start(*edgeampli);
- Gtk::VBox * ctboxES = Gtk::manage (new Gtk::VBox());
+ Gtk::VBox* const ctboxES = Gtk::manage (new Gtk::VBox());
ctboxES->set_spacing(2);
- ctboxNP = Gtk::manage (new Gtk::HBox());
-
- labmNP = Gtk::manage (new Gtk::Label (M("TP_WAVELET_NPTYPE") + ":"));
+ Gtk::HBox* const ctboxNP = Gtk::manage(new Gtk::HBox());
ctboxNP->pack_start (*labmNP, Gtk::PACK_SHRINK, 1);
- NPmethod = Gtk::manage (new MyComboBoxText ());
NPmethod->append (M("TP_WAVELET_NPNONE"));
NPmethod->append (M("TP_WAVELET_NPLOW"));
NPmethod->append (M("TP_WAVELET_NPHIGH"));
@@ -560,24 +577,39 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
// Gamut
Gtk::VBox * conBox = Gtk::manage (new ToolParamBlock());
- median = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_MEDI")));
median->set_active (true);
medianConn = median->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::medianToggled) );
conBox->pack_start(*median);
- hueskin = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_HUESKIN"), -314., 314., -5., 25., 170., 120., 0, false));
hueskin->set_tooltip_markup (M("TP_WAVELET_HUESKIN_TOOLTIP"));
+ //from -PI to +PI (radians) convert to hsv and draw bottombar
+ const std::vector milestones = {
+ makeHsvGm(0.0000, 0.4199f, 0.5f, 0.5f), // hsv: 0.4199 rad: -3.14
+ makeHsvGm(0.0540, 0.5000f, 0.5f, 0.5f), // hsv: 0.5 rad: -2.8
+ makeHsvGm(0.1336, 0.6000f, 0.5f, 0.5f), // hsv: 0.60 rad: -2.3
+ makeHsvGm(0.3567, 0.7500f, 0.5f, 0.5f), // hsv: 0.75 rad: -0.9
+ makeHsvGm(0.4363, 0.8560f, 0.5f, 0.5f), // hsv: 0.856 rad: -0.4
+ makeHsvGm(0.4841, 0.9200f, 0.5f, 0.5f), // hsv: 0.92 rad: -0.1
+ makeHsvGm(0.5000, 0.9300f, 0.5f, 0.5f), // hsv: 0.93 rad: 0
+ makeHsvGm(0.5366, 0.9600f, 0.5f, 0.5f), // hsv: 0.96 rad: 0.25
+ makeHsvGm(0.5955, 1.0000f, 0.5f, 0.5f), // hsv: 1. rad: 0.6
+ makeHsvGm(0.6911, 0.0675f, 0.5f, 0.5f), // hsv: 0.0675 rad: 1.2
+ makeHsvGm(0.7229, 0.0900f, 0.5f, 0.5f), // hsv: 0.09 rad: 1.4
+ makeHsvGm(0.7707, 0.1700f, 0.5f, 0.5f), // hsv: 0.17 rad: 1.7
+ makeHsvGm(0.8503, 0.2650f, 0.5f, 0.5f), // hsv: 0.265 rad: 2.1
+ makeHsvGm(0.8981, 0.3240f, 0.5f, 0.5f), // hsv: 0.324 rad: 2.5
+ makeHsvGm(1.0000, 0.4197f, 0.5f, 0.5f) // hsv: 0.419 rad: 3.14
+ };
+
hueskin->setBgGradient(milestones);
conBox->pack_start(*hueskin);
hueskin->setAdjusterListener (this);
- skinprotect = Gtk::manage ( new Adjuster (M("TP_WAVELET_SKIN"), -100, 100, 1, 0.) );
skinprotect->setAdjusterListener(this);
conBox->pack_start(*skinprotect);
skinprotect->set_tooltip_markup (M("TP_WAVELET_SKIN_TOOLTIP"));
- curveEditorGAM = new CurveEditorGroup (options.lastWaveletCurvesDir);
curveEditorGAM->setCurveListener (this);
Chshape = static_cast(curveEditorGAM->addCurve(CT_Flat, M("TP_WAVELET_CURVEEDITOR_CH")));
@@ -588,7 +620,6 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
conBox->pack_start (*curveEditorGAM, Gtk::PACK_SHRINK, 4);
- avoid = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_AVOID")));
avoid->set_active (true);
avoidConn = avoid->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::avoidToggled) );
conBox->pack_start(*avoid);
@@ -596,128 +627,106 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
// Residual Image
Gtk::VBox * resBox = Gtk::manage (new ToolParamBlock());
- rescon = Gtk::manage (new Adjuster (M("TP_WAVELET_RESCON"), -100, 100, 1, 0));
rescon->setAdjusterListener (this);
resBox->pack_start(*rescon, Gtk::PACK_SHRINK);
- thr = Gtk::manage (new Adjuster (M("TP_WAVELET_THR"), 0, 100, 1, 35));
resBox->pack_start(*thr);
thr->setAdjusterListener (this);
- resconH = Gtk::manage (new Adjuster (M("TP_WAVELET_RESCONH"), -100, 100, 1, 0));
resconH->setAdjusterListener (this);
resBox->pack_start(*resconH, Gtk::PACK_SHRINK);
- thrH = Gtk::manage (new Adjuster (M("TP_WAVELET_THRH"), 0, 100, 1, 65));
thrH->setAdjusterListener (this);
resBox->pack_start(*thrH, Gtk::PACK_SHRINK);
- contrast = Gtk::manage (new Adjuster (M("TP_WAVELET_CONTRA"), -100, 100, 1, 0));
contrast->set_tooltip_text (M("TP_WAVELET_CONTRA_TOOLTIP"));
contrast->setAdjusterListener (this);
resBox->pack_start(*contrast); //keep the possibility to reinstall
- reschro = Gtk::manage (new Adjuster (M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0));
reschro->setAdjusterListener (this);
resBox->pack_start(*reschro);
- ctboxTM = Gtk::manage (new Gtk::HBox ());
- labmTM = Gtk::manage (new Gtk::Label (M("TP_WAVELET_TMTYPE") + ":"));
+ Gtk::Label* const labmTM = Gtk::manage(new Gtk::Label(M("TP_WAVELET_TMTYPE") + ":"));
+ Gtk::HBox* const ctboxTM = Gtk::manage(new Gtk::HBox());
ctboxTM->pack_start (*labmTM, Gtk::PACK_SHRINK, 1);
- Gtk::HSeparator *separatorR0 = Gtk::manage (new Gtk::HSeparator());
+ Gtk::HSeparator* const separatorR0 = Gtk::manage (new Gtk::HSeparator());
resBox->pack_start(*separatorR0, Gtk::PACK_SHRINK, 2);
- TMmethod = Gtk::manage (new MyComboBoxText ());
TMmethod->append (M("TP_WAVELET_COMPCONT"));
TMmethod->append (M("TP_WAVELET_COMPTM"));
TMmethodconn = TMmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::TMmethodChanged) );
ctboxTM->pack_start(*TMmethod);
resBox->pack_start (*ctboxTM);
- tmrs = Gtk::manage(new Adjuster (M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0));
tmrs->set_tooltip_text (M("TP_WAVELET_TMSTRENGTH_TOOLTIP"));
resBox->pack_start(*tmrs);
tmrs->setAdjusterListener (this);
- gamma = Gtk::manage(new Adjuster (M("TP_WAVELET_COMPGAMMA"), 0.4, 2.0, 0.01, 1.0));
gamma->set_tooltip_text (M("TP_WAVELET_COMPGAMMA_TOOLTIP"));
resBox->pack_start(*gamma);
gamma->setAdjusterListener (this);
- Gtk::HSeparator *separatorR1 = Gtk::manage (new Gtk::HSeparator());
+ Gtk::HSeparator* const separatorR1 = Gtk::manage (new Gtk::HSeparator());
resBox->pack_start(*separatorR1, Gtk::PACK_SHRINK, 2);
- hueskin2 = Gtk::manage (new ThresholdAdjuster (M("TP_WAVELET_HUESKY"), -314., 314., -260., -250, -130., -140., 0, false));
hueskin2->set_tooltip_markup (M("TP_WAVELET_HUESKY_TOOLTIP"));
hueskin2->setBgGradient(milestones);
resBox->pack_start(*hueskin2);
hueskin2->setAdjusterListener (this);
- sky = Gtk::manage (new Adjuster (M("TP_WAVELET_SKY"), -100., 100.0, 1., 0.));
sky->set_tooltip_text (M("TP_WAVELET_SKY_TOOLTIP"));
sky->setAdjusterListener (this);
resBox->pack_start(*sky);
// whole hue range
- milestones.clear();
+ const std::vector milestones3 = makeWholeHueRange();
- for (int i = 0; i < 7; i++) {
- float R, G, B;
- float x = float(i) * (1.0f / 6.0);
- Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B);
- milestones.push_back( GradientMilestone(double(x), double(R), double(G), double(B)) );
- }
-
- curveEditorRES = new CurveEditorGroup (options.lastWaveletCurvesDir);
curveEditorRES->setCurveListener (this);
hhshape = static_cast(curveEditorRES->addCurve(CT_Flat, M("TP_WAVELET_CURVEEDITOR_HH")));
hhshape->setTooltip(M("TP_WAVELET_CURVEEDITOR_HH_TOOLTIP"));
hhshape->setCurveColorProvider(this, 5);
curveEditorRES->curveListComplete();
- hhshape->setBottomBarBgGradient(milestones);
+ hhshape->setBottomBarBgGradient(milestones3);
resBox->pack_start (*curveEditorRES, Gtk::PACK_SHRINK, 4);
// Toning and Color Balance
- Gtk::HSeparator *separatorCB = Gtk::manage (new Gtk::HSeparator());
+ Gtk::HSeparator* const separatorCB = Gtk::manage (new Gtk::HSeparator());
- Gtk::VBox *chanMixerHLBox = Gtk::manage (new Gtk::VBox());
- Gtk::VBox *chanMixerMidBox = Gtk::manage (new Gtk::VBox());
- Gtk::VBox *chanMixerShadowsBox = Gtk::manage (new Gtk::VBox());
+ Gtk::VBox* const chanMixerHLBox = Gtk::manage (new Gtk::VBox());
+ Gtk::VBox* const chanMixerMidBox = Gtk::manage (new Gtk::VBox());
+ Gtk::VBox* const chanMixerShadowsBox = Gtk::manage (new Gtk::VBox());
- cbenab = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_CBENAB")));
cbenab->set_active (true);
cbenabConn = cbenab->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::cbenabToggled) );
cbenab->set_tooltip_text (M("TP_WAVELET_CB_TOOLTIP"));
- Gtk::Image* iblueR = Gtk::manage (new RTImage ("ajd-wb-temp1.png"));
- Gtk::Image* iyelL = Gtk::manage (new RTImage ("ajd-wb-temp2.png"));
- Gtk::Image* imagL = Gtk::manage (new RTImage ("ajd-wb-green1.png"));
- Gtk::Image* igreenR = Gtk::manage (new RTImage ("ajd-wb-green2.png"));
+ Gtk::Image* const iblueR = Gtk::manage (new RTImage ("ajd-wb-temp1.png"));
+ Gtk::Image* const iyelL = Gtk::manage (new RTImage ("ajd-wb-temp2.png"));
+ Gtk::Image* const imagL = Gtk::manage (new RTImage ("ajd-wb-green1.png"));
+ Gtk::Image* const igreenR = Gtk::manage (new RTImage ("ajd-wb-green2.png"));
- Gtk::Image* iblueRm = Gtk::manage (new RTImage ("ajd-wb-temp1.png"));
- Gtk::Image* iyelLm = Gtk::manage (new RTImage ("ajd-wb-temp2.png"));
- Gtk::Image* imagLm = Gtk::manage (new RTImage ("ajd-wb-green1.png"));
- Gtk::Image* igreenRm = Gtk::manage (new RTImage ("ajd-wb-green2.png"));
+ Gtk::Image* const iblueRm = Gtk::manage (new RTImage ("ajd-wb-temp1.png"));
+ Gtk::Image* const iyelLm = Gtk::manage (new RTImage ("ajd-wb-temp2.png"));
+ Gtk::Image* const imagLm = Gtk::manage (new RTImage ("ajd-wb-green1.png"));
+ Gtk::Image* const igreenRm = Gtk::manage (new RTImage ("ajd-wb-green2.png"));
- Gtk::Image* iblueRh = Gtk::manage (new RTImage ("ajd-wb-temp1.png"));
- Gtk::Image* iyelLh = Gtk::manage (new RTImage ("ajd-wb-temp2.png"));
- Gtk::Image* imagLh = Gtk::manage (new RTImage ("ajd-wb-green1.png"));
- Gtk::Image* igreenRh = Gtk::manage (new RTImage ("ajd-wb-green2.png"));
+ Gtk::Image* const iblueRh = Gtk::manage (new RTImage ("ajd-wb-temp1.png"));
+ Gtk::Image* const iyelLh = Gtk::manage (new RTImage ("ajd-wb-temp2.png"));
+ Gtk::Image* const imagLh = Gtk::manage (new RTImage ("ajd-wb-green1.png"));
+ Gtk::Image* const igreenRh = Gtk::manage (new RTImage ("ajd-wb-green2.png"));
greenhigh = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., igreenRh, imagLh));
- bluehigh = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., iblueRh, iyelLh));
-
- greenmed = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., igreenRm, imagLm));
- bluemed = Gtk::manage (new Adjuster ("", -100., 100., 1., 0. , iblueRm , iyelLm));
-
- greenlow = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., igreenR, imagL));
- bluelow = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., iblueR , iyelL));
+ bluehigh = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., iblueRh, iyelLh));
+ greenmed = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., igreenRm, imagLm));
+ bluemed = Gtk::manage (new Adjuster ("", -100., 100., 1., 0. , iblueRm , iyelLm));
+ greenlow = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., igreenR, imagL));
+ bluelow = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., iblueR , iyelL));
chanMixerHLBox->pack_start (*greenhigh);
chanMixerHLBox->pack_start (*bluehigh);
@@ -735,10 +744,6 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
resBox->pack_start(*separatorCB, Gtk::PACK_SHRINK);
- chanMixerHLFrame = Gtk::manage (new Gtk::Frame(M("TP_COLORTONING_HIGHLIGHT")));
- chanMixerMidFrame = Gtk::manage (new Gtk::Frame(M("TP_COLORTONING_MIDTONES")));
- chanMixerShadowsFrame = Gtk::manage (new Gtk::Frame(M("TP_COLORTONING_SHADOWS")));
-
chanMixerHLFrame->add(*chanMixerHLBox);
chanMixerMidFrame->add(*chanMixerMidBox);
chanMixerShadowsFrame->add(*chanMixerShadowsBox);
@@ -748,12 +753,9 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
resBox->pack_start(*chanMixerMidFrame, Gtk::PACK_SHRINK);
resBox->pack_start(*chanMixerShadowsFrame, Gtk::PACK_SHRINK);
- // Reset sliders
- neutrHBox = Gtk::manage (new Gtk::HBox ());
-
- neutral = Gtk::manage (new Gtk::Button (M("TP_COLORTONING_NEUTRAL")));
//RTImage *resetImg = Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png"));
//neutral->set_image(*resetImg);
+ Gtk::Button* const neutral = Gtk::manage(new Gtk::Button(M("TP_COLORTONING_NEUTRAL")));
neutral->set_tooltip_text (M("TP_COLORTONING_NEUTRAL_TIP"));
neutralconn = neutral->signal_pressed().connect( sigc::mem_fun(*this, &Wavelet::neutral_pressed) );
neutral->show();
@@ -762,18 +764,16 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
resBox->pack_start (*neutrHBox);
// Final Touchup
- Gtk::VBox * ctboxBA = Gtk::manage (new Gtk::VBox());
+ Gtk::VBox* const ctboxBA = Gtk::manage (new Gtk::VBox());
ctboxBA->set_spacing(2);
//Gtk::HSeparator *separatorfin = Gtk::manage (new Gtk::HSeparator());
//ctboxBA->pack_start(*separatorfin, Gtk::PACK_SHRINK, 2);
- ctboxFI = Gtk::manage (new Gtk::HBox());
-
- labmBA = Gtk::manage (new Gtk::Label (M("TP_WAVELET_BATYPE") + ":"));
+ Gtk::Label* const labmBA = Gtk::manage(new Gtk::Label(M("TP_WAVELET_BATYPE") + ":"));
+ Gtk::HBox* const ctboxFI = Gtk::manage(new Gtk::HBox());
ctboxFI->pack_start (*labmBA, Gtk::PACK_SHRINK, 1);
- BAmethod = Gtk::manage (new MyComboBoxText ());
BAmethod->append (M("TP_WAVELET_BANONE"));
BAmethod->append (M("TP_WAVELET_BASLI"));
BAmethod->append (M("TP_WAVELET_BACUR"));
@@ -781,39 +781,30 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
ctboxFI->pack_start(*BAmethod);
ctboxBA->pack_start(*ctboxFI);
- balance = Gtk::manage (new Adjuster (M("TP_WAVELET_BALANCE"), -30, 100, 1, 0));
balance->setAdjusterListener (this);
balance->set_tooltip_text (M("TP_WAVELET_BALANCE_TOOLTIP"));
- std::vector milestonesW;
- milestonesW.clear();
- milestonesW.push_back( GradientMilestone(0., 0., 0., 0.) );
- milestonesW.push_back( GradientMilestone(1., 1., 1., 1.) );
-
- opacityCurveEditorW = new CurveEditorGroup (options.lastWaveletCurvesDir, M("TP_WAVELET_OPACITYW"));
opacityCurveEditorW->setCurveListener (this);
rtengine::WaveletParams::getDefaultOpacityCurveW(defaultCurve);
- opacityShape = static_cast(opacityCurveEditorW->addCurve(CT_Flat, "", nullptr, false));
+ opacityShape = static_cast(opacityCurveEditorW->addCurve(CT_Flat, "", nullptr, false, false));
opacityShape->setIdentityValue(0.);
opacityShape->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve);
- opacityShape->setBottomBarBgGradient(milestonesW);
+ opacityShape->setBottomBarBgGradient(milestones2);
// This will add the reset button at the end of the curveType buttons
opacityCurveEditorW->curveListComplete();
opacityCurveEditorW->show();
- iter = Gtk::manage (new Adjuster (M("TP_WAVELET_ITER"), -3, 3, 1, 0));
iter->setAdjusterListener (this);
iter->set_tooltip_text (M("TP_WAVELET_ITER_TOOLTIP"));
- Gtk::HSeparator *separatorbalend = Gtk::manage (new Gtk::HSeparator());
+ Gtk::HSeparator* const separatorbalend = Gtk::manage (new Gtk::HSeparator());
- opacityCurveEditorWL = new CurveEditorGroup (options.lastWaveletCurvesDir, M("TP_WAVELET_OPACITYWL"));
opacityCurveEditorWL->setCurveListener (this);
rtengine::WaveletParams::getDefaultOpacityCurveWL(defaultCurve);
- opacityShapeWL = static_cast(opacityCurveEditorWL->addCurve(CT_Flat, "", nullptr, false));
+ opacityShapeWL = static_cast(opacityCurveEditorWL->addCurve(CT_Flat, "", nullptr, false, false));
opacityShapeWL->setIdentityValue(0.);
opacityShapeWL->setResetCurve(FlatCurveType(defaultCurve.at(0)), defaultCurve);
opacityShapeWL->setTooltip(M("TP_WAVELET_OPACITYWL_TOOLTIP"));
@@ -822,21 +813,15 @@ Wavelet::Wavelet () : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"),
opacityCurveEditorWL->curveListComplete();
opacityCurveEditorWL->show();
- curveEditorG = new CurveEditorGroup (options.lastWaveletCurvesDir, M("TP_WAVELET_CONTEDIT"));
curveEditorG->setCurveListener (this);
clshape = static_cast(curveEditorG->addCurve(CT_Diagonal, M("TP_WAVELET_CURVEEDITOR_CL")));
clshape->setTooltip(M("TP_WAVELET_CURVEEDITOR_CL_TOOLTIP"));
- std::vector milestones22;
-
- milestones22.push_back( GradientMilestone(0., 0., 0., 0.) );
- milestones22.push_back( GradientMilestone(1., 1., 1., 1.) );
- clshape->setBottomBarBgGradient(milestones22);
- clshape->setLeftBarBgGradient(milestones22);
+ clshape->setBottomBarBgGradient(milestones2);
+ clshape->setLeftBarBgGradient(milestones2);
curveEditorG->curveListComplete();
- tmr = Gtk::manage (new Gtk::CheckButton (M("TP_WAVELET_BALCHRO")));
tmr->set_active (true);
tmr->set_tooltip_text (M("TP_WAVELET_BALCHRO_TOOLTIP"));
tmrConn = tmr->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::tmrToggled) );
diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h
index 554298e08..ff0964731 100644
--- a/rtgui/wavelet.h
+++ b/rtgui/wavelet.h
@@ -17,8 +17,7 @@
* 2014 Jacques Desmis
*/
-#ifndef WAVELET_H_INCLUDED
-#define WAVELET_H_INCLUDED
+#pragma once
#include
#include "adjuster.h"
@@ -30,208 +29,15 @@
#include "guiutils.h"
#include "options.h"
-class Wavelet : public ToolParamBlock, public ThresholdAdjusterListener, public AdjusterListener, public CurveListener, public ColorProvider, public rtengine::WaveletListener, public FoldableToolPanel
+class Wavelet :
+ public ToolParamBlock,
+ public ThresholdAdjusterListener,
+ public AdjusterListener,
+ public CurveListener,
+ public ColorProvider,
+ public rtengine::WaveletListener,
+ public FoldableToolPanel
{
-protected:
- Glib::RefPtr bgTTips;
- Glib::RefPtr srTTips;
- Glib::RefPtr bgPixbuf;
- Glib::RefPtr srPixbuf;
- CurveEditorGroup* curveEditorG;
-
- CurveEditorGroup* CCWcurveEditorG;
- CurveEditorGroup* curveEditorRES;
- CurveEditorGroup* curveEditorGAM;
- Gtk::HSeparator* colorSep;
- Gtk::HSeparator* separator3;
- Gtk::HSeparator* separatorCB;
- Gtk::HSeparator* separatorNeutral;
- Gtk::HSeparator* separatoredge;
-
- CurveEditorGroup* opaCurveEditorG;
- FlatCurveEditor* opacityShapeRG;
- CurveEditorGroup* opacityCurveEditorG;
- FlatCurveEditor* opacityShapeBY;
- CurveEditorGroup* opacityCurveEditorW;
- CurveEditorGroup* opacityCurveEditorWL;
- FlatCurveEditor* opacityShape;
- FlatCurveEditor* opacityShapeWL;
- FlatCurveEditor* hhshape;
- FlatCurveEditor* Chshape;
- DiagonalCurveEditor* clshape;
- Gtk::VBox* chanMixerBox;
-
- FlatCurveEditor* ccshape;
- Gtk::CheckButton * display;
- Gtk::CheckButton * displaylevel;
- Gtk::CheckButton * displaychro;
- Gtk::CheckButton * displaygam;
- Gtk::CheckButton * displayres;
- Gtk::CheckButton * median;
- Gtk::CheckButton * medianlev;
- Gtk::CheckButton * linkedg;
- Gtk::CheckButton * cbenab;
- Gtk::CheckButton * lipst;
- Gtk::CheckButton * avoid;
- Gtk::CheckButton * tmr;
-
- Gtk::Button * neutralchButton;
- Adjuster* correction[9];
- Adjuster* correctionch[9];
- Adjuster* rescon;
- Adjuster* resconH;
- Adjuster* reschro;
- Adjuster* tmrs;
- Adjuster* gamma;
- Adjuster* sup;
- Adjuster* sky;
- Adjuster* thres;
- Adjuster* chroma;
- Adjuster* chro;
- Adjuster* contrast;
- Adjuster* thr;
- Adjuster* thrH;
- Adjuster* skinprotect;
- Adjuster* edgrad;
- Adjuster* edgval;
- Adjuster* edgthresh;
- Adjuster* strength;
- Adjuster* balance;
- Adjuster* iter;
- Adjuster* greenlow;
- Adjuster* bluelow;
- Adjuster* greenmed;
- Adjuster* bluemed;
- Adjuster* greenhigh;
- Adjuster* bluehigh;
-
- ThresholdAdjuster* hueskin;
- ThresholdAdjuster* hueskin2;
- ThresholdAdjuster* hllev;
- ThresholdAdjuster* bllev;
- ThresholdAdjuster* pastlev;
- ThresholdAdjuster* satlev;
- ThresholdAdjuster* edgcont;
- ThresholdAdjuster* level0noise;
- ThresholdAdjuster* level1noise;
- ThresholdAdjuster* level2noise;
- ThresholdAdjuster* level3noise;
-
- Adjuster* threshold;
- Adjuster* threshold2;
- Adjuster* edgedetect;
- Adjuster* edgedetectthr;
- Adjuster* edgedetectthr2;
- Adjuster* edgesensi;
- Adjuster* edgeampli;
- MyComboBoxText* Lmethod;
- sigc::connection Lmethodconn;
- MyComboBoxText* CHmethod;
- sigc::connection CHmethodconn;
- MyComboBoxText* CHSLmethod;
- sigc::connection CHSLmethodconn;
- MyComboBoxText* EDmethod;
- sigc::connection EDmethodconn;
- MyComboBoxText* BAmethod;
- sigc::connection BAmethodconn;
- MyComboBoxText* NPmethod;
- sigc::connection NPmethodconn;
- MyComboBoxText* TMmethod;
- sigc::connection TMmethodconn;
- MyComboBoxText* HSmethod;
- sigc::connection HSmethodconn;
- MyComboBoxText* CLmethod;
- sigc::connection CLmethodconn;
- MyComboBoxText* Backmethod;
- sigc::connection Backmethodconn;
- MyComboBoxText* Tilesmethod;
- sigc::connection Tilesmethodconn;
- MyComboBoxText* daubcoeffmethod;
- sigc::connection daubcoeffmethodconn;
- MyComboBoxText* Dirmethod;
- sigc::connection Dirmethodconn;
- MyComboBoxText* Medgreinf;
- sigc::connection MedgreinfConn;
- Gtk::Frame* settingsFrame;
- Gtk::Frame* toningFrame;
- Gtk::Frame* residualFrame;
- Gtk::Frame* dispFrame;
- Gtk::Frame* levelFrame;
- Gtk::Frame* chromaFrame;
- Gtk::Frame* controlFrame;
- Gtk::Frame* edgeFrame;
- Gtk::Frame* noiseFrame;
- Gtk::Frame* contrastSHFrame;
- Gtk::Frame* finalFrame;
- Gtk::Frame *chanMixerHLFrame;
- Gtk::Frame *chanMixerMidFrame;
- Gtk::Frame *chanMixerShadowsFrame;
- Gtk::Frame *dFrame;
-
- Gtk::Label* colLabel;
- Gtk::Label* interLabel;
- Gtk::Label* wavLabels;
- Gtk::Label* hsmethodLabel;
- Gtk::Label* daubcoeffLabel;
- Gtk::Label* ColorBalanceLabel;
- Gtk::Label* labmC;
- Gtk::Label* labmch;
- Gtk::Label* labmED;
- Gtk::Label* labmTM;
- Gtk::Label* labmBA;
- Gtk::Label* labmNP;
- Gtk::Label* labmedgr;
- Gtk::Label* labmednois;
- MyExpander* expchroma;
- MyExpander* expcontrast;
- MyExpander* expedge;
- MyExpander* expfinal;
- MyExpander* expgamut;
- MyExpander* expnoise;
- MyExpander* expresid;
- MyExpander* expsettings;
- MyExpander* exptoning;
- Gtk::HBox* ctboxCB;
- Gtk::HBox* ctboxCH;
- Gtk::HBox* ctboxED;
- Gtk::HBox* ctboxTM;
- Gtk::HBox* hbresid;
- Gtk::HBox* backgroundHBox;
- Gtk::HBox* daubcoeffHBox;
- Gtk::HBox* hsmethodHBox;
- Gtk::HBox* levdirMainHBox;
- Gtk::HBox* levdirSubHBox;
- Gtk::HBox* tilesizeHBox;
-
- Gtk::HBox* ctboxFI;
- Gtk::HBox* ctboxNP;
- Gtk::HBox* ctboxch;
- Gtk::HBox* edbox;
- Gtk::HBox* ednoisbox;
- Gtk::HBox* eddebox;
- Gtk::VBox* settingsVBox;
- Gtk::VBox* contrastSHVBox;
- Gtk::Label* tilesizeLabel;
- Gtk::Label* levdirMainLabel;
- Gtk::Label* backgroundLabel;
- Gtk::Button* neutral;
- Gtk::HBox* neutrHBox;
-
- sigc::connection enableChromaConn, enableContrastConn, enableEdgeConn, enableFinalConn;
- sigc::connection enableNoiseConn, enableResidConn, enableToningConn;
- sigc::connection expConn, medianConn, avoidConn, tmrConn, medianlevConn, linkedgConn, lipstConn, cbenabConn, neutralconn;
- sigc::connection neutralPressedConn;
- sigc::connection contrastPlusPressedConn;
- sigc::connection contrastMinusPressedConn;
- sigc::connection neutralchPressedConn;
-
- bool lastdisplay, lastdisplaygam, lastdisplayres, lastdisplaychro, lastdisplaylevel, lastmedian, lastmedianlev, lastlinkedg, lastavoid, lastlipst, lasttmr, lastcbenab;
- int nextnlevel;
- double tr;
- double br;
- double tl;
- double bl;
-
public:
Wavelet ();
virtual ~Wavelet ();
@@ -251,7 +57,6 @@ public:
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
void writeOptions (std::vector &tpOpen);
-
private:
void foldAllButMe (GdkEventButton* event, MyExpander *expander);
@@ -306,8 +111,141 @@ private:
void cbenabUpdateUI ();
void lipstUpdateUI ();
-
void enableToggled(MyExpander *expander);
-};
-#endif
+ CurveEditorGroup* const curveEditorG;
+
+ CurveEditorGroup* const CCWcurveEditorG;
+ CurveEditorGroup* const curveEditorRES;
+ CurveEditorGroup* const curveEditorGAM;
+ Gtk::HSeparator* const separatorNeutral;
+ Gtk::HSeparator* const separatoredge;
+
+ CurveEditorGroup* const opaCurveEditorG;
+ FlatCurveEditor* opacityShapeRG;
+ CurveEditorGroup* const opacityCurveEditorG;
+ FlatCurveEditor* opacityShapeBY;
+ CurveEditorGroup* const opacityCurveEditorW;
+ CurveEditorGroup* const opacityCurveEditorWL;
+ FlatCurveEditor* opacityShape;
+ FlatCurveEditor* opacityShapeWL;
+ FlatCurveEditor* hhshape;
+ FlatCurveEditor* Chshape;
+ DiagonalCurveEditor* clshape;
+
+ FlatCurveEditor* ccshape;
+ Gtk::CheckButton* const median;
+ Gtk::CheckButton* const medianlev;
+ Gtk::CheckButton* const linkedg;
+ Gtk::CheckButton* const cbenab;
+ Gtk::CheckButton* const lipst;
+ Gtk::CheckButton* const avoid;
+ Gtk::CheckButton* const tmr;
+
+ Gtk::Button* const neutralchButton;
+ Adjuster* correction[9];
+ Adjuster* correctionch[9];
+ Adjuster* const rescon;
+ Adjuster* const resconH;
+ Adjuster* const reschro;
+ Adjuster* const tmrs;
+ Adjuster* const gamma;
+ Adjuster* const sup;
+ Adjuster* const sky;
+ Adjuster* const thres;
+ Adjuster* const chroma;
+ Adjuster* const chro;
+ Adjuster* const contrast;
+ Adjuster* const thr;
+ Adjuster* const thrH;
+ Adjuster* const skinprotect;
+ Adjuster* const edgrad;
+ Adjuster* const edgval;
+ Adjuster* const edgthresh;
+ Adjuster* const strength;
+ Adjuster* const balance;
+ Adjuster* const iter;
+ Adjuster* greenlow;
+ Adjuster* bluelow;
+ Adjuster* greenmed;
+ Adjuster* bluemed;
+ Adjuster* greenhigh;
+ Adjuster* bluehigh;
+
+ ThresholdAdjuster* const hueskin;
+ ThresholdAdjuster* const hueskin2;
+ ThresholdAdjuster* const hllev;
+ ThresholdAdjuster* const bllev;
+ ThresholdAdjuster* const pastlev;
+ ThresholdAdjuster* const satlev;
+ ThresholdAdjuster* const edgcont;
+ ThresholdAdjuster* const level0noise;
+ ThresholdAdjuster* const level1noise;
+ ThresholdAdjuster* const level2noise;
+ ThresholdAdjuster* const level3noise;
+
+ Adjuster* const threshold;
+ Adjuster* const threshold2;
+ Adjuster* const edgedetect;
+ Adjuster* const edgedetectthr;
+ Adjuster* const edgedetectthr2;
+ Adjuster* const edgesensi;
+ Adjuster* const edgeampli;
+ MyComboBoxText* const Lmethod;
+ sigc::connection Lmethodconn;
+ MyComboBoxText* const CHmethod;
+ sigc::connection CHmethodconn;
+ MyComboBoxText* const CHSLmethod;
+ sigc::connection CHSLmethodconn;
+ MyComboBoxText* const EDmethod;
+ sigc::connection EDmethodconn;
+ MyComboBoxText* const BAmethod;
+ sigc::connection BAmethodconn;
+ MyComboBoxText* const NPmethod;
+ sigc::connection NPmethodconn;
+ MyComboBoxText* const TMmethod;
+ sigc::connection TMmethodconn;
+ MyComboBoxText* const HSmethod;
+ sigc::connection HSmethodconn;
+ MyComboBoxText* const CLmethod;
+ sigc::connection CLmethodconn;
+ MyComboBoxText* const Backmethod;
+ sigc::connection Backmethodconn;
+ MyComboBoxText* const Tilesmethod;
+ sigc::connection Tilesmethodconn;
+ MyComboBoxText* const daubcoeffmethod;
+ sigc::connection daubcoeffmethodconn;
+ MyComboBoxText* const Dirmethod;
+ sigc::connection Dirmethodconn;
+ MyComboBoxText* const Medgreinf;
+ sigc::connection MedgreinfConn;
+ Gtk::Frame* const chanMixerHLFrame;
+ Gtk::Frame* const chanMixerMidFrame;
+ Gtk::Frame* const chanMixerShadowsFrame;
+
+ Gtk::Label* const wavLabels;
+ Gtk::Label* const labmC;
+ Gtk::Label* const labmNP;
+ MyExpander* const expchroma;
+ MyExpander* const expcontrast;
+ MyExpander* const expedge;
+ MyExpander* const expfinal;
+ MyExpander* const expgamut;
+ MyExpander* const expnoise;
+ MyExpander* const expresid;
+ MyExpander* const expsettings;
+ MyExpander* const exptoning;
+
+ Gtk::HBox* const neutrHBox;
+
+ sigc::connection enableChromaConn, enableContrastConn, enableEdgeConn, enableFinalConn;
+ sigc::connection enableNoiseConn, enableResidConn, enableToningConn;
+ sigc::connection medianConn, avoidConn, tmrConn, medianlevConn, linkedgConn, lipstConn, cbenabConn, neutralconn;
+ sigc::connection neutralPressedConn;
+ sigc::connection contrastPlusPressedConn;
+ sigc::connection contrastMinusPressedConn;
+ sigc::connection neutralchPressedConn;
+
+ bool lastmedian, lastmedianlev, lastlinkedg, lastavoid, lastlipst, lasttmr, lastcbenab;
+ int nextnlevel;
+};
diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc
index ffc650cdb..d0413412b 100644
--- a/rtgui/whitebalance.cc
+++ b/rtgui/whitebalance.cc
@@ -151,6 +151,7 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB
{
Gtk::HBox* hbox = Gtk::manage (new Gtk::HBox ());
+ hbox->set_spacing(4);
hbox->show ();
Gtk::Label* lab = Gtk::manage (new Gtk::Label (M("TP_WBALANCE_METHOD")));
lab->show ();
@@ -238,14 +239,19 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB
method->pack_start(methodColumns.colIcon, false);
method->pack_start(methodColumns.colLabel, true);
+ std::vector cells = method->get_cells();
+ Gtk::CellRendererText* cellRenderer = dynamic_cast(cells.at(1));
+ cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE;
+
method->set_active (0); // Camera
method->show ();
- hbox->pack_start (*lab, Gtk::PACK_SHRINK, 4);
+ hbox->pack_start (*lab, Gtk::PACK_SHRINK, 0);
hbox->pack_start (*method);
- pack_start (*hbox, Gtk::PACK_SHRINK, 4);
+ pack_start (*hbox, Gtk::PACK_SHRINK, 0);
opt = 0;
Gtk::HBox* spotbox = Gtk::manage (new Gtk::HBox ());
+ spotbox->set_spacing(4);
spotbox->show ();
spotbutton = Gtk::manage (new Gtk::Button ());
@@ -292,10 +298,10 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB
spotsize->set_active(4);
}
- spotbox->pack_end (*spotsize, Gtk::PACK_EXPAND_WIDGET, 4);
- spotbox->pack_end (*slab, Gtk::PACK_SHRINK, 4);
+ spotbox->pack_end (*spotsize, Gtk::PACK_EXPAND_WIDGET, 0);
+ spotbox->pack_end (*slab, Gtk::PACK_SHRINK, 0);
- pack_start (*spotbox, Gtk::PACK_SHRINK, 4);
+ pack_start (*spotbox, Gtk::PACK_SHRINK, 0);
Gtk::Image* itempL = Gtk::manage (new RTImage ("ajd-wb-temp1.png"));
Gtk::Image* itempR = Gtk::manage (new RTImage ("ajd-wb-temp2.png"));