From 5d2bb1724b1d3e6341630fb8d76d0f90d55e1950 Mon Sep 17 00:00:00 2001 From: natureh 510 Date: Tue, 26 Nov 2013 21:12:01 +0100 Subject: [PATCH] GUI cleanup for White Balance tool (see issue 2010) --- rtdata/languages/Francais | 138 +- rtdata/languages/default | 134 +- rtdata/profiles/BW/BW 1.pp3 | 53 +- rtdata/profiles/BW/BW 2.pp3 | 52 +- rtdata/profiles/BW/BW 3.pp3 | 52 +- rtdata/profiles/BW/BW 4.pp3 | 52 +- rtdata/profiles/Contrasty/Deep Shadows.pp3 | 29 +- rtdata/profiles/Contrasty/Punchy 1.pp3 | 29 +- rtdata/profiles/Contrasty/Punchy 2.pp3 | 29 +- rtdata/profiles/Default ISO High.pp3 | 30 +- rtdata/profiles/Default ISO Medium.pp3 | 30 +- rtdata/profiles/Default.pp3 | 32 +- rtdata/profiles/Equilibrated.pp3 | 30 +- .../Faded/Amber/Faded Amber 1 TM Bright.pp3 | 29 +- .../profiles/Faded/Amber/Faded Amber 1 TM.pp3 | 30 +- rtdata/profiles/Faded/Amber/Faded Amber 1.pp3 | 29 +- .../Faded/Blue/Faded Blue 1 TM Bright.pp3 | 29 +- .../profiles/Faded/Blue/Faded Blue 1 TM.pp3 | 29 +- rtdata/profiles/Faded/Blue/Faded Blue 1.pp3 | 29 +- .../Faded/Blue/Faded Blue Pink TM.pp3 | 29 +- .../profiles/Faded/Blue/Faded Blue Pink.pp3 | 29 +- .../Chocolate/Faded Chocolate 1 TM Bright.pp3 | 29 +- .../Chocolate/Faded Chocolate 2 TM Bright.pp3 | 29 +- .../profiles/Faded/Golden/Faded Golden 1.pp3 | 29 +- .../profiles/Faded/Golden/Faded Golden 2.pp3 | 29 +- .../Faded/Green/Faded Green 1 TM Bright.pp3 | 29 +- .../profiles/Faded/Green/Faded Green 1 TM.pp3 | 29 +- rtdata/profiles/Faded/Green/Faded Green 1.pp3 | 29 +- rtdata/profiles/Faded/Green/Faded Green 2.pp3 | 29 +- rtdata/profiles/Faded/Green/Faded Green 3.pp3 | 29 +- .../Faded/Neutral/Faded Neutral TM.pp3 | 29 +- .../profiles/Faded/Neutral/Faded Neutral.pp3 | 29 +- .../Faded/Purple/Faded Purple 1 TM Bright.pp3 | 30 +- .../Faded/Purple/Faded Purple 1 TM.pp3 | 29 +- .../profiles/Faded/Purple/Faded Purple 1.pp3 | 29 +- .../Faded/Purple/Faded Purple 2 TM.pp3 | 29 +- .../profiles/Faded/Purple/Faded Purple 2.pp3 | 29 +- .../Teal/Faded Teal Orange TM Bright.pp3 | 29 +- .../Faded/Teal/Faded Teal Orange TM.pp3 | 29 +- .../profiles/Faded/Teal/Faded Teal Orange.pp3 | 29 +- .../Faded/Warm/Faded Warm 1 TM Bright.pp3 | 30 +- .../profiles/Faded/Warm/Faded Warm 1 TM.pp3 | 30 +- rtdata/profiles/Faded/Warm/Faded Warm 1.pp3 | 30 +- rtdata/profiles/Faded/Warm/Faded Warm 2.pp3 | 30 +- rtdata/profiles/Faded/Warm/Faded Warm 3.pp3 | 30 +- rtdata/profiles/High-Key.pp3 | 30 +- rtdata/profiles/Natural 1.pp3 | 30 +- rtdata/profiles/Natural 2.pp3 | 31 +- rtdata/profiles/Pop/Pop 1.pp3 | 30 +- rtdata/profiles/Pop/Pop 2 L.pp3 | 30 +- rtdata/profiles/Pop/Pop 3 Skin.pp3 | 30 +- rtdata/profiles/Pop/Pop 4 BW.pp3 | 53 +- rtdata/profiles/Portrait/Portrait Lejto.pp3 | 10 +- rtdata/profiles/Portrait/Portrait Smooth.pp3 | 30 +- .../Skintones/Skintones - Natural TM.pp3 | 30 +- .../Skintones/Skintones - Natural.pp3 | 30 +- .../Skintones/Skintones - Pale TM Bright.pp3 | 30 +- .../Skintones/Skintones - Pale TM.pp3 | 30 +- .../profiles/Skintones/Skintones - Pale.pp3 | 30 +- .../Skintones/Skintones - Soft Texture.pp3 | 4 +- .../Skintones/Skintones - Strong Texture.pp3 | 4 +- .../Skintones/Skintones - Studio TM.pp3 | 31 +- .../profiles/Skintones/Skintones - Studio.pp3 | 30 +- .../Skintones/Skintones - StudioBase 1 TM.pp3 | 31 +- .../Skintones/Skintones - StudioBase 1.pp3 | 31 +- rtengine/curves.cc | 6 +- rtengine/curves.h | 4 +- rtengine/improccoordinator.cc | 30 +- rtengine/improcfun.cc | 297 ++- rtengine/procevents.h | 20 +- rtengine/procparams.cc | 326 +-- rtengine/procparams.h | 78 +- rtengine/refreshmap.cc | 32 +- rtengine/rtthumbnail.cc | 2 +- rtengine/simpleprocess.cc | 12 +- rtgui/addsetids.h | 11 +- rtgui/adjuster.cc | 179 +- rtgui/adjuster.h | 6 +- rtgui/batchtoolpanelcoord.cc | 16 +- rtgui/chmixer.cc | 18 +- rtgui/chmixerbw.cc | 1975 ++++++++--------- rtgui/chmixerbw.h | 152 +- rtgui/labcurve.cc | 117 +- rtgui/labcurve.h | 4 +- rtgui/options.cc | 11 +- rtgui/paramsedited.cc | 175 +- rtgui/paramsedited.h | 117 +- rtgui/partialpastedlg.cc | 10 +- rtgui/partialpastedlg.h | 2 +- rtgui/ppversion.h | 2 +- rtgui/preferences.cc | 5 +- rtgui/toolpanel.h | 15 +- rtgui/toolpanelcoord.cc | 12 +- rtgui/toolpanelcoord.h | 2 +- rtgui/vibrance.cc | 4 +- rtgui/vibrance.h | 2 +- 96 files changed, 2236 insertions(+), 3586 deletions(-) diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index f47ec74a1..2ebe0ff6f 100755 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -401,7 +401,7 @@ HISTORY_MSG_163;Courbes RVB - R HISTORY_MSG_164;Courbes RVB - V HISTORY_MSG_165;Courbes RVB - B HISTORY_MSG_166;Niveaux neutre -HISTORY_MSG_167;Mode N&B colorisable +HISTORY_MSG_167;--inutilisé-- HISTORY_MSG_168;Courbe 'CC' HISTORY_MSG_169;Courbe 'CT' HISTORY_MSG_170;Vibrance - courbe @@ -447,30 +447,30 @@ HISTORY_MSG_210;Filtre Dégradé HISTORY_MSG_211;Filtre Dégradé HISTORY_MSG_212;Filtre Vignettage HISTORY_MSG_213;Filtre Vignettage - Force -HISTORY_MSG_214;Noir et Blanc -HISTORY_MSG_215;NB Mixeur Rouge -HISTORY_MSG_216;NB Mixeur Vert -HISTORY_MSG_217;NB Mixeur Bleu -HISTORY_MSG_218;NB Gamma Rouge -HISTORY_MSG_219;NB Gamma Vert -HISTORY_MSG_220;NB Gamma Bleu -HISTORY_MSG_221;NB Filtre de couleur -HISTORY_MSG_222;NB Préréglages -HISTORY_MSG_223;NB Mixeur Orange -HISTORY_MSG_224;NB Mixeur Jaune -HISTORY_MSG_225;NB Mixeur Cyan -HISTORY_MSG_226;NB Mixeur Magenta -HISTORY_MSG_227;NB Mixeur Pourpre -HISTORY_MSG_228;NB Égaliseur de Luminance -HISTORY_MSG_229;NB Égaliseur de Luminance -HISTORY_MSG_230;NB Mode Noir et Blanc -HISTORY_MSG_231;NB Courbe -HISTORY_MSG_232;NB Type de courbe -HISTORY_MSG_233;NB Courbe -HISTORY_MSG_234;NB Type de courbe -HISTORY_MSG_235;NB Mixeur Mode Auto -HISTORY_MSG_236;NB Mixeur Mode Auto -HISTORY_MSG_237;NB Réinit. Mixeur +HISTORY_MSG_214;Noir & Blanc +HISTORY_MSG_215;N&B Mixeur Rouge +HISTORY_MSG_216;N&B Mixeur Vert +HISTORY_MSG_217;N&B Mixeur Bleu +HISTORY_MSG_218;N&B Gamma Rouge +HISTORY_MSG_219;N&B Gamma Vert +HISTORY_MSG_220;N&B Gamma Bleu +HISTORY_MSG_221;N&B Filtre de couleur +HISTORY_MSG_222;N&B Préréglages +HISTORY_MSG_223;N&B Mixeur Orange +HISTORY_MSG_224;N&B Mixeur Jaune +HISTORY_MSG_225;N&B Mixeur Cyan +HISTORY_MSG_226;N&B Mixeur Magenta +HISTORY_MSG_227;N&B Mixeur Pourpre +HISTORY_MSG_228;N&B Égaliseur de Luminance +HISTORY_MSG_229;N&B Égaliseur de Luminance +HISTORY_MSG_230;N&B Mode Noir et Blanc +HISTORY_MSG_231;N&B Courbe 'Avant' +HISTORY_MSG_232;N&B Type de courbe 'Avant' +HISTORY_MSG_233;N&B Courbe 'Après' +HISTORY_MSG_234;N&B Type de courbe 'Après' +HISTORY_MSG_235;N&B Mixeur Mode Auto +HISTORY_MSG_236;--inutilisé-- +HISTORY_MSG_237;N&B Mixeur HISTORY_MSG_238;Filtre ND dégradé - Étendu HISTORY_MSG_239;Filtre ND dégradé - Force HISTORY_MSG_240;Filtre ND dégradé - Centre @@ -967,73 +967,69 @@ TP_CHMIXER_BLUE;Bleu TP_CHMIXER_GREEN;Vert TP_CHMIXER_LABEL;Mixage des canaux TP_CHMIXER_RED;Rouge -TP_BWMIX_LABEL;Noir&Blanc -TP_BWMIX_CC_ENABLED;Couleur complémentaire +TP_BWMIX_LABEL;Noir & Blanc +TP_BWMIX_CC_ENABLED;Ajuster les couleurs complémentaires TP_BWMIX_CHANNEL;Égaliseur de Luminance TP_BWMIX_VAL;L TP_BWMIX_CC_TOOLTIP;Activer pour permettre l'ajustage automatique des couleur complémentaire dans le mode ROJVCBMP TP_BWMIX_SETTING_TOOLTIP;Différents préréglages (films, paysage, ...) ou réglages manuel du mixeur de canaux -TP_BWMIX_FILTER_TOOLTIP;Le filtre de couleur simule les prises de vue avec un filtre coloré placé devant l'objectif. Les filtre color réduisent la transmission d'une plage de couleur spécifique et en affectent donc leur luminosité. Ex: un filtre rouge assombri les ciels bleus. +TP_BWMIX_FILTER_TOOLTIP;Le filtre de couleur simule les prises de vue avec un filtre coloré placé devant l'objectif. Les filtres colorés réduisent la transmission d'une plage de couleur spécifique et en affectent donc leur luminosité. Ex: un filtre rouge assombri les ciels bleus. TP_BWMIX_AUTOCH;Auto TP_BWMIX_AUTOCH_TIP;Calcul les valeurs optimales du mixeur de canaux TP_BWMIX_NEUTRAL;Réinit. Mixeur -TP_BWMIX_NEUTRAL_TIP;Réinitialise tous les paramètres du mixeur de canaux +TP_BWMIX_NEUTRAL_TIP;Réinitialise tous les paramètres (filtre, mixeur de canaux) à zéro TP_BWMIX_RED;Rouge TP_BWMIX_GREEN;Vert TP_BWMIX_BLUE;Bleu -TP_BWMIX_ORA;Filtre Orange -TP_BWMIX_YEL;Filtre Jaune -TP_BWMIX_CYAN;Filtre Cyan -TP_BWMIX_MAG;Filtre Magenta -TP_BWMIX_PUR;Filtre Pourpre +TP_BWMIX_ORANGE;Orange +TP_BWMIX_YELLOW;Jaune +TP_BWMIX_CYAN;Cyan +TP_BWMIX_MAGENTA;Magenta +TP_BWMIX_PURPLE;Pourpre TP_BWMIX_RGB_TOOLTIP;Mixe les canaux RVB. Utilisez les Préréglages pour vous guider.\nAttention aux valeurs négatives qui peuvent causer des artefacts ou un comportement erratique. TP_BWMIX_GAM_RED;Canal Rouge TP_BWMIX_GAM_GREEN;Canal Vert -TP_BWMIX_GAM_BLUE;Canl Bleu +TP_BWMIX_GAM_BLUE;Canal Bleu TP_BWMIX_MIXC;Mixeur TP_BWMIX_MIXF;Mixeur de Filtres TP_BWMIX_FILTER;Filtre de couleur -TP_BWMIX_FILTER0;Aucun -TP_BWMIX_FILTER1;Rouge -TP_BWMIX_FILTER2;Rouge-Jaune -TP_BWMIX_FILTER3;Juane -TP_BWMIX_FILTER4;Vert-Jaune -TP_BWMIX_FILTER5;Vert -TP_BWMIX_FILTER6;Bleu-Vert -TP_BWMIX_FILTER7;Bleu -TP_BWMIX_FILTER8;Pourpre +TP_BWMIX_FILTER_NONE;Aucun +TP_BWMIX_FILTER_RED;Rouge +TP_BWMIX_FILTER_REDYELLOW;Rouge-Jaune +TP_BWMIX_FILTER_YELLOW;Jaune +TP_BWMIX_FILTER_GREENYELLOW;Vert-Jaune +TP_BWMIX_FILTER_GREEN;Vert +TP_BWMIX_FILTER_BLUEGREEN;Bleu-Vert +TP_BWMIX_FILTER_BLUE;Bleu +TP_BWMIX_FILTER_PURPLE;Pourpre TP_BWMIX_SETTING;Préréglages -TP_BWMIX_SET0;Contrast Normal -TP_BWMIX_SET7;Panchromatique -TP_BWMIX_SET8;Hyper Panchromatique -TP_BWMIX_SET5;Basse Sensibilité -TP_BWMIX_SET6;Haute Sensibilité -TP_BWMIX_SET9;Orthochromatique -TP_BWMIX_SET1;Contraste Élevé -TP_BWMIX_SET2;Luminance -TP_BWMIX_SET3;Paysage -TP_BWMIX_SET4;Portrait -TP_BWMIX_SET10;Mixeur de Canaux - RVB Absolu -TP_BWMIX_SET11;Mixeur de Canaux - RVB Relatif -TP_BWMIX_SET12;Mixeur de Canaux - ROJVCBMP absolu -TP_BWMIX_SET13;Mixeur de Canaux - ROJVCBMP -TP_BWMIX_SET14;Infrarouge +TP_BWMIX_SET_NORMCONTAST;Contraste Normal +TP_BWMIX_SET_HIGHCONTAST;Contraste Élevé +TP_BWMIX_SET_LUMINANCE;Luminance +TP_BWMIX_SET_LANDSCAPE;Paysage +TP_BWMIX_SET_PORTRAIT;Portrait +TP_BWMIX_SET_LOWSENSIT;Basse Sensibilité +TP_BWMIX_SET_HIGHSENSIT;Haute Sensibilité +TP_BWMIX_SET_PANCHRO;Panchromatique +TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatique +TP_BWMIX_SET_ORTHOCHRO;Orthochromatique +TP_BWMIX_SET_RGBABS;Mixeur de Canaux - RVB Absolu +TP_BWMIX_SET_RGBREL;Mixeur de Canaux - RVB Relatif +TP_BWMIX_SET_ROYGCBMPABS;Mixeur de Canaux - ROJVCBMP Absolu +TP_BWMIX_SET_ROYGCBMPREL;Mixeur de Canaux - ROJVCBMP Relatif +TP_BWMIX_SET_INFRARED;Infrarouge TP_BWMIX_GAMMA;Correction Gamma -TP_BWMIX_GAM_TOOLTIP;Corrige le gamma pour chaque canaux RVB via une courbe TRC de profil ICC +TP_BWMIX_GAM_TOOLTIP;Corrige le gamma pour chaque canaux RVB TP_BWMIX_MET;Méthode -TP_BWMIX_MET_TOOLTIP;Permet de coisir entre désaturation - mixeur de luminance - mixeur de canaux -TP_BWMIX_MET0;Aucun -TP_BWMIX_MET1;Désaturation -TP_BWMIX_MET2;Égaliseur de Luminance -TP_BWMIX_MET3;Mixeur de Canaux +TP_BWMIX_MET_DESAT;Désaturation +TP_BWMIX_MET_LUMEQUAL;Égaliseur de Luminance +TP_BWMIX_MET_CHANMIX;Mixeur de Canaux TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Modifie la luminance en fonction de la teinte\nFaites attention aux valeurs extrêmes qui peuvent causer des artefacts TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Courbe tonale, après la conversion en N&B, à la fin du traitement TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Courbe tonale, juste avant la conversion en N&B\nPeut prendre en compte les composantes couleur -TP_BWMIX_CURVEEDITOR1;Avant Conv. en N&B -TP_BWMIX_CURVEEDITOR2;Après Conv. en N&B +TP_BWMIX_CURVEEDITOR1;Courbe 'avant' +TP_BWMIX_CURVEEDITOR2;Courbe 'après' TP_BWMIX_TCMODE_FILMLIKE;N&B Similaire Film -TP_BWMIX_TCMODE_LABEL1;N&B Courbe Avant -TP_BWMIX_TCMODE_LABEL2;N&B Courbe Après TP_BWMIX_TCMODE_SATANDVALBLENDING;N&B Mixage Saturation et Valeur TP_BWMIX_TCMODE_STANDARD;N&B Standard TP_BWMIX_TCMODE_WEIGHTEDSTD;N&B Standard Pondéré @@ -1170,7 +1166,7 @@ TP_EPD_REWEIGHTINGITERATES;Itérations de la pondération TP_EPD_SCALE;Échelle TP_EPD_STRENGTH;Force TP_EPD_TOOLTIP;Vous pouvez choisir entre le mode Lab (standard) ou le mode CIECAM02.\n En activant "Compression tonale avec brillance Q CIECAM" dans le menu "Brillance + Niveau de couleur CIECAM" -TP_EXPOSCORR_LABEL;Points Noir & Blanc Raw +TP_EXPOSCORR_LABEL;Points Noir & Blanc Raw TP_EXPOSURE_AUTOLEVELS;Niveaux Auto TP_EXPOSURE_AUTOLEVELS_TIP;Bascule l'usage de Niveaux automatiques afin de régler\nautomatiquement les valeurs basé sur l'analyse de l'image TP_EXPOSURE_BLACKLEVEL;Noir @@ -1263,8 +1259,6 @@ TP_IMPULSEDENOISE_THRESH;Seuil TP_LABCURVE_AVOIDCOLORSHIFT;Éviter les dérives de teinte TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Ramènes les données dans le gamut de l'espace couleur de travail\npuis applique la correction de Munsell TP_LABCURVE_BRIGHTNESS;Luminosité -TP_LABCURVE_BWTONING;Mode N&B colorisable -TP_LABCURVE_BWTONING_TIP;Avec le mode N&B colorisable activé, la Chromaticité, la courbe CC, CT et LC sont sans effet.\nLa colorisation peut être effctué en utilisant les courbes a et b. TP_LABCURVE_CHROMATICITY;Chromaticité TP_LABCURVE_CONTRAST;Contraste TP_LABCURVE_CURVEEDITOR;Courbe de luminance diff --git a/rtdata/languages/default b/rtdata/languages/default index 46f5d2b88..f7a881c17 100755 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -401,7 +401,7 @@ HISTORY_MSG_163;RGB Curves - R HISTORY_MSG_164;RGB Curves - G HISTORY_MSG_165;RGB Curves - B HISTORY_MSG_166;Neutral Levels -HISTORY_MSG_167;B&W toning +HISTORY_MSG_167;--unused-- HISTORY_MSG_168;'CC' curve HISTORY_MSG_169;'CH' curve HISTORY_MSG_170;Vibrance - Curve @@ -447,30 +447,30 @@ HISTORY_MSG_210;Graduated Filter HISTORY_MSG_211;Graduated Filter HISTORY_MSG_212;Vignette Filter HISTORY_MSG_213;Vignette Filter - Strength -HISTORY_MSG_214;Black and White -HISTORY_MSG_215;BW Channel Mixer Red -HISTORY_MSG_216;BW Channel Mixer Green -HISTORY_MSG_217;BW Channel Mixer Blue -HISTORY_MSG_218;BW Red Gamma -HISTORY_MSG_219;BW Green Gamma -HISTORY_MSG_220;BW Blue Gamma -HISTORY_MSG_221;BW Color Filter -HISTORY_MSG_222;BW Presets -HISTORY_MSG_223;BW Channel Mixer Orange -HISTORY_MSG_224;BW Channel Mixer Yellow -HISTORY_MSG_225;BW Channel Mixer Cyan -HISTORY_MSG_226;BW Channel Mixer Magenta -HISTORY_MSG_227;BW Channel Mixer Purple -HISTORY_MSG_228;BW Luminance Equalizer -HISTORY_MSG_229;BW Luminance Equalizer -HISTORY_MSG_230;BW Black and White Mode -HISTORY_MSG_231;BW Curve -HISTORY_MSG_232;BW Curve Type -HISTORY_MSG_233;BW Curve -HISTORY_MSG_234;BW Curve Type -HISTORY_MSG_235;BW Auto Channel Mixer -HISTORY_MSG_236;BW Auto Channel Mixer -HISTORY_MSG_237;BW Reset Mixer +HISTORY_MSG_214;Black & White +HISTORY_MSG_215;B&W Channel Mixer Red +HISTORY_MSG_216;B&W Channel Mixer Green +HISTORY_MSG_217;B&W Channel Mixer Blue +HISTORY_MSG_218;B&W Red Gamma +HISTORY_MSG_219;B&W Green Gamma +HISTORY_MSG_220;B&W Blue Gamma +HISTORY_MSG_221;B&W Color Filter +HISTORY_MSG_222;B&W Presets +HISTORY_MSG_223;B&W Channel Mixer Orange +HISTORY_MSG_224;B&W Channel Mixer Yellow +HISTORY_MSG_225;B&W Channel Mixer Cyan +HISTORY_MSG_226;B&W Channel Mixer Magenta +HISTORY_MSG_227;B&W Channel Mixer Purple +HISTORY_MSG_228;B&W Luminance Equalizer +HISTORY_MSG_229;B&W Luminance Equalizer +HISTORY_MSG_230;B&W Black and White Mode +HISTORY_MSG_231;B&W 'Before' Curve +HISTORY_MSG_232;B&W 'Before' Curve Type +HISTORY_MSG_233;B&W 'After' Curve +HISTORY_MSG_234;B&W 'After' Curve Type +HISTORY_MSG_235;B&W Auto Channel Mixer +HISTORY_MSG_236;--unused-- +HISTORY_MSG_237;B&W Mixer HISTORY_MSG_238;Gradient - Feather HISTORY_MSG_239;Gradient - Strength HISTORY_MSG_240;Gradient - Center @@ -971,8 +971,8 @@ TP_CHMIXER_BLUE;Blue Channel TP_CHMIXER_GREEN;Green Channel TP_CHMIXER_LABEL;Channel Mixer TP_CHMIXER_RED;Red Channel -TP_BWMIX_LABEL;Black&White -TP_BWMIX_CC_ENABLED;Complementary color +TP_BWMIX_LABEL;Black & White +TP_BWMIX_CC_ENABLED;Adjust complementary color TP_BWMIX_CHANNEL;Luminance Equalizer TP_BWMIX_VAL;L TP_BWMIX_CC_TOOLTIP;Enable to allow automatic adjustment of complementary colors in ROYGCBMP mode @@ -981,15 +981,15 @@ TP_BWMIX_FILTER_TOOLTIP;The color filter simulate shots taken with a colored fil TP_BWMIX_AUTOCH;Auto TP_BWMIX_AUTOCH_TIP;Calculate values optimizing channel-mixer TP_BWMIX_NEUTRAL;Reset mixer -TP_BWMIX_NEUTRAL_TIP;Reset all values - sliders - filters - channel-mixer to default +TP_BWMIX_NEUTRAL_TIP;Reset all values (filter, channel-mixer) to default TP_BWMIX_RED;Red TP_BWMIX_GREEN;Green TP_BWMIX_BLUE;Blue -TP_BWMIX_ORA;Orange Filter -TP_BWMIX_YEL;Yellow Filter -TP_BWMIX_CYAN;Cyan Filter -TP_BWMIX_MAG;Magenta Filter -TP_BWMIX_PUR;Purple Filter +TP_BWMIX_ORANGE;Orange +TP_BWMIX_YELLOW;Yellow +TP_BWMIX_CYAN;Cyan +TP_BWMIX_MAGENTA;Magenta +TP_BWMIX_PURPLE;Purple TP_BWMIX_RGB_TOOLTIP;Mix the RGB channels. Use Presets for guidance.\nPay attention to negative values that may cause artifacts or erratic behavior. TP_BWMIX_GAM_RED;Red Channel TP_BWMIX_GAM_GREEN;Green Channel @@ -997,47 +997,43 @@ TP_BWMIX_GAM_BLUE;Blue Channel TP_BWMIX_MIXC;Mixer TP_BWMIX_MIXF;Mixer Filters TP_BWMIX_FILTER;Color Filter -TP_BWMIX_FILTER0;None -TP_BWMIX_FILTER1;Red -TP_BWMIX_FILTER2;Red-Yellow -TP_BWMIX_FILTER3;Yellow -TP_BWMIX_FILTER4;Green-Yellow -TP_BWMIX_FILTER5;Green -TP_BWMIX_FILTER6;Blue-Green -TP_BWMIX_FILTER7;Blue -TP_BWMIX_FILTER8;Purple +TP_BWMIX_FILTER_NONE;None +TP_BWMIX_FILTER_RED;Red +TP_BWMIX_FILTER_REDYELLOW;Red-Yellow +TP_BWMIX_FILTER_YELLOW;Yellow +TP_BWMIX_FILTER_GREENYELLOW;Green-Yellow +TP_BWMIX_FILTER_GREEN;Green +TP_BWMIX_FILTER_BLUEGREEN;Blue-Green +TP_BWMIX_FILTER_BLUE;Blue +TP_BWMIX_FILTER_PURPLE;Purple TP_BWMIX_SETTING;Presets -TP_BWMIX_SET0;Normal Contrast -TP_BWMIX_SET7;Panchromatic -TP_BWMIX_SET8;Hyper Panchromatic -TP_BWMIX_SET5;Low Sensitivity -TP_BWMIX_SET6;High Sensitivity -TP_BWMIX_SET9;Orthochromatic -TP_BWMIX_SET1;High contrast -TP_BWMIX_SET2;Luminance -TP_BWMIX_SET3;Landscape -TP_BWMIX_SET4;Portrait -TP_BWMIX_SET10;Channel-Mixer absolute RGB -TP_BWMIX_SET11;Channel-Mixer relative RGB -TP_BWMIX_SET12;Channel-Mixer absolute ROYGCBMP -TP_BWMIX_SET13;Channel-Mixer relative ROYGCBMP -TP_BWMIX_SET14;Infrared +TP_BWMIX_SET_NORMCONTAST;Normal Contrast +TP_BWMIX_SET_HIGHCONTAST;High contrast +TP_BWMIX_SET_LUMINANCE;Luminance +TP_BWMIX_SET_LANDSCAPE;Landscape +TP_BWMIX_SET_PORTRAIT;Portrait +TP_BWMIX_SET_LOWSENSIT;Low Sensitivity +TP_BWMIX_SET_HIGHSENSIT;High Sensitivity +TP_BWMIX_SET_PANCHRO;Panchromatic +TP_BWMIX_SET_HYPERPANCHRO;Hyper Panchromatic +TP_BWMIX_SET_ORTHOCHRO;Orthochromatic +TP_BWMIX_SET_RGBABS;Channel-Mixer absolute RGB +TP_BWMIX_SET_RGBREL;Channel-Mixer relative RGB +TP_BWMIX_SET_ROYGCBMPABS;Channel-Mixer absolute ROYGCBMP +TP_BWMIX_SET_ROYGCBMPREL;Channel-Mixer relative ROYGCBMP +TP_BWMIX_SET_INFRARED;Infrared TP_BWMIX_GAMMA;Gamma Correction -TP_BWMIX_GAM_TOOLTIP;Correct gamma for each channel RGB as an ICC TRC curve +TP_BWMIX_GAM_TOOLTIP;Correct gamma for each channel RGB TP_BWMIX_MET;Method -TP_BWMIX_MET_TOOLTIP;Select between desaturation - mixer luminance - channel mixer -TP_BWMIX_MET0;None -TP_BWMIX_MET1;Desaturation -TP_BWMIX_MET2;Luminance Equalizer -TP_BWMIX_MET3;Channel Mixer +TP_BWMIX_MET_DESAT;Desaturation +TP_BWMIX_MET_LUMEQUAL;Luminance Equalizer +TP_BWMIX_MET_CHANMIX;Channel Mixer TP_BWMIX_CURVEEDITOR_LH_TOOLTIP;Modify luminance in function of hue\nPay attention to extreme values that may cause artifacts TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP;Tone curve, after B&W conversion, at the end of treatment TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP;Tone curve, just before B&W conversion\nMay take into account the color components -TP_BWMIX_CURVEEDITOR1;Before B&W conv. -TP_BWMIX_CURVEEDITOR2;After B&W conv. +TP_BWMIX_CURVEEDITOR1;'Before' curve +TP_BWMIX_CURVEEDITOR2;'After' curve TP_BWMIX_TCMODE_FILMLIKE;B&W Film-like -TP_BWMIX_TCMODE_LABEL1;B&W Curve Before -TP_BWMIX_TCMODE_LABEL2;B&W Curve After TP_BWMIX_TCMODE_SATANDVALBLENDING;B&W Saturation and Value Blending TP_BWMIX_TCMODE_STANDARD;B&W Standard TP_BWMIX_TCMODE_WEIGHTEDSTD;B&W Weighted Standard @@ -1174,7 +1170,7 @@ TP_EPD_REWEIGHTINGITERATES;Reweighting Iterates TP_EPD_SCALE;Scale TP_EPD_STRENGTH;Strength TP_EPD_TOOLTIP;Tone mapping is possible via Lab mode (standard) and CIECAM02 mode.\n\nTo engage CIECAM02 tone mapping mode enable the following settings:\n1. CIECAM02\n2. Algorithm="Brightness + Colorfulness (QM)"\n3. "Tone mapping using CIECAM02 brightness (Q)" -TP_EXPOSCORR_LABEL;Raw White & Black Points +TP_EXPOSCORR_LABEL;Raw White & Black Points TP_EXPOSURE_AUTOLEVELS;Auto Levels TP_EXPOSURE_AUTOLEVELS_TIP;Toggle execution of auto levels to automatically set parameter values based on image analysis TP_EXPOSURE_BLACKLEVEL;Black @@ -1265,8 +1261,6 @@ TP_IMPULSEDENOISE_THRESH;Threshold TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction TP_LABCURVE_BRIGHTNESS;Lightness -TP_LABCURVE_BWTONING;B&W toning -TP_LABCURVE_BWTONING_TIP;With the B&W toning option enabled, the Lab Chromaticity, CC, CH, LC and CL curves are not in effect.\nToning can be achieved using the a and b curves TP_LABCURVE_CHROMATICITY;Chromaticity TP_LABCURVE_CONTRAST;Contrast TP_LABCURVE_CURVEEDITOR;Luminance Curve diff --git a/rtdata/profiles/BW/BW 1.pp3 b/rtdata/profiles/BW/BW 1.pp3 index 82bd295a3..adb4d2640 100644 --- a/rtdata/profiles/BW/BW 1.pp3 +++ b/rtdata/profiles/BW/BW 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,34 +22,35 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=true -Met=No -VCurve=0; +[Black & White] +Enabled=true +Method=Desaturation +Auto=false +ComplementaryColors=true +Setting=NormalContrast +Filter=None +MixerRed=43 +MixerOrange=33 +MixerYellow=33 +MixerGreen=33 +MixerCyan=33 +MixerBlue=30 +MixerMagenta=33 +MixerPurple=33 +GammaRed=0 +GammaGreen=0 +GammaBlue=0 +LuminanceCurve=0; +BeforeCurveMode=Standard +AfterCurveMode=Standard +BeforeCurve=0; +AfterCurve=0; [Luminance Curve] Brightness=0 Contrast=0 -Chromaticity=0 -BWtoning=true +Chromaticity=-100 AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -58,7 +59,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/BW/BW 2.pp3 b/rtdata/profiles/BW/BW 2.pp3 index f6892e0ba..e43b8f522 100644 --- a/rtdata/profiles/BW/BW 2.pp3 +++ b/rtdata/profiles/BW/BW 2.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,33 +22,35 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 + +[Black & White] Enabled=true -Enabledcc=true -Met=No -VCurve=0; +Method=Desaturation +Auto=false +ComplementaryColors=true +Setting=NormalContrast +Filter=None +MixerRed=43 +MixerOrange=33 +MixerYellow=33 +MixerGreen=33 +MixerCyan=33 +MixerBlue=30 +MixerMagenta=33 +MixerPurple=33 +GammaRed=0 +GammaGreen=0 +GammaBlue=0 +LuminanceCurve=0; +BeforeCurveMode=Standard +AfterCurveMode=Standard +BeforeCurve=0; +AfterCurve=0; [Luminance Curve] Brightness=0 Contrast=0 -Chromaticity=0 -BWtoning=true +Chromaticity=-100 AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -57,7 +59,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/BW/BW 3.pp3 b/rtdata/profiles/BW/BW 3.pp3 index 46238e782..b981b2d8b 100644 --- a/rtdata/profiles/BW/BW 3.pp3 +++ b/rtdata/profiles/BW/BW 3.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,33 +22,35 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 + +[Black & White] Enabled=true -Enabledcc=true -Met=No -VCurve=0; +Method=Desaturation +Auto=false +ComplementaryColors=true +Setting=NormalContrast +Filter=None +MixerRed=43 +MixerOrange=33 +MixerYellow=33 +MixerGreen=33 +MixerCyan=33 +MixerBlue=30 +MixerMagenta=33 +MixerPurple=33 +GammaRed=0 +GammaGreen=0 +GammaBlue=0 +LuminanceCurve=0; +BeforeCurveMode=Standard +AfterCurveMode=Standard +BeforeCurve=0; +AfterCurve=0; [Luminance Curve] Brightness=0 Contrast=-25 -Chromaticity=0 -BWtoning=true +Chromaticity=-100 AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -57,7 +59,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/BW/BW 4.pp3 b/rtdata/profiles/BW/BW 4.pp3 index ed1985c9f..c55f13a8d 100644 --- a/rtdata/profiles/BW/BW 4.pp3 +++ b/rtdata/profiles/BW/BW 4.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,33 +22,35 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 + +[Black & White] Enabled=true -Enabledcc=true -Met=No -VCurve=0; +Method=Desaturation +Auto=false +ComplementaryColors=true +Setting=NormalContrast +Filter=None +MixerRed=43 +MixerOrange=33 +MixerYellow=33 +MixerGreen=33 +MixerCyan=33 +MixerBlue=30 +MixerMagenta=33 +MixerPurple=33 +GammaRed=0 +GammaGreen=0 +GammaBlue=0 +LuminanceCurve=0; +BeforeCurveMode=Standard +AfterCurveMode=Standard +BeforeCurve=0; +AfterCurve=0; [Luminance Curve] Brightness=0 Contrast=-35 -Chromaticity=0 -BWtoning=true +Chromaticity=-100 AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -57,7 +59,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Contrasty/Deep Shadows.pp3 b/rtdata/profiles/Contrasty/Deep Shadows.pp3 index 8d638985f..6bba39d85 100644 --- a/rtdata/profiles/Contrasty/Deep Shadows.pp3 +++ b/rtdata/profiles/Contrasty/Deep Shadows.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.0 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -22,27 +22,9 @@ Curve2=3;0;0;0.20585593677025255;0.44367403149511991;0.6315789473684208;0.894736 Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -50,14 +32,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Contrasty/Punchy 1.pp3 b/rtdata/profiles/Contrasty/Punchy 1.pp3 index 42280b814..a400ddc44 100644 --- a/rtdata/profiles/Contrasty/Punchy 1.pp3 +++ b/rtdata/profiles/Contrasty/Punchy 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,33 +22,14 @@ Curve2=0; Red=120;-10;-10; Green=-10;120;-10; Blue=-10;-10;120; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 Contrast=10 Chromaticity=5 -BWtoning=false AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -57,7 +38,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Contrasty/Punchy 2.pp3 b/rtdata/profiles/Contrasty/Punchy 2.pp3 index 0a3b19d2c..3a49d2fa6 100644 --- a/rtdata/profiles/Contrasty/Punchy 2.pp3 +++ b/rtdata/profiles/Contrasty/Punchy 2.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,33 +22,14 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Met=No -VCurve=0; + +[Black & White] Enabled=false [Luminance Curve] Brightness=0 Contrast=10 Chromaticity=5 -BWtoning=false AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -57,7 +38,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Default ISO High.pp3 b/rtdata/profiles/Default ISO High.pp3 index cf69919d3..881433c64 100644 --- a/rtdata/profiles/Default ISO High.pp3 +++ b/rtdata/profiles/Default ISO High.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,34 +22,14 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 Contrast=0 Chromaticity=5 -BWtoning=false AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -58,7 +38,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Default ISO Medium.pp3 b/rtdata/profiles/Default ISO Medium.pp3 index 2905f24d9..6dee3396e 100644 --- a/rtdata/profiles/Default ISO Medium.pp3 +++ b/rtdata/profiles/Default ISO Medium.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,34 +22,14 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 Contrast=0 Chromaticity=5 -BWtoning=false AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -58,7 +38,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Default.pp3 b/rtdata/profiles/Default.pp3 index 2a2a976d5..3bb5cc1cd 100644 --- a/rtdata/profiles/Default.pp3 +++ b/rtdata/profiles/Default.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,36 +22,14 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; -CurveMode=Standard -Curve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 Contrast=0 Chromaticity=5 -BWtoning=false AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -60,7 +38,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Equilibrated.pp3 b/rtdata/profiles/Equilibrated.pp3 index 282d12cc5..9ed3c619a 100644 --- a/rtdata/profiles/Equilibrated.pp3 +++ b/rtdata/profiles/Equilibrated.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.0 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -22,28 +22,9 @@ Curve2=3;0;0;0.20585593677025255;0.44367403149511991;0.6315789473684208;0.894736 Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -51,14 +32,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Amber/Faded Amber 1 TM Bright.pp3 b/rtdata/profiles/Faded/Amber/Faded Amber 1 TM Bright.pp3 index 866043ce0..cab6e9f52 100644 --- a/rtdata/profiles/Faded/Amber/Faded Amber 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Amber/Faded Amber 1 TM Bright.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,26 +23,8 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Met=No -VCurve=0; + +[Black & White] Enabled=false [Luminance Curve] @@ -51,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Amber/Faded Amber 1 TM.pp3 b/rtdata/profiles/Faded/Amber/Faded Amber 1 TM.pp3 index 7e0aaecc5..15a94bd5d 100644 --- a/rtdata/profiles/Faded/Amber/Faded Amber 1 TM.pp3 +++ b/rtdata/profiles/Faded/Amber/Faded Amber 1 TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Amber/Faded Amber 1.pp3 b/rtdata/profiles/Faded/Amber/Faded Amber 1.pp3 index 9833f4a5a..4dee517bc 100644 --- a/rtdata/profiles/Faded/Amber/Faded Amber 1.pp3 +++ b/rtdata/profiles/Faded/Amber/Faded Amber 1.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,26 +23,8 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Met=No -VCurve=0; + +[Black & White] Enabled=false [Luminance Curve] @@ -51,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Blue/Faded Blue 1 TM Bright.pp3 b/rtdata/profiles/Faded/Blue/Faded Blue 1 TM Bright.pp3 index a63920e4d..5788442d7 100644 --- a/rtdata/profiles/Faded/Blue/Faded Blue 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Blue/Faded Blue 1 TM Bright.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Blue/Faded Blue 1 TM.pp3 b/rtdata/profiles/Faded/Blue/Faded Blue 1 TM.pp3 index 39f3c034c..212d12566 100644 --- a/rtdata/profiles/Faded/Blue/Faded Blue 1 TM.pp3 +++ b/rtdata/profiles/Faded/Blue/Faded Blue 1 TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Blue/Faded Blue 1.pp3 b/rtdata/profiles/Faded/Blue/Faded Blue 1.pp3 index cf5e5c9ad..b2ebee8a7 100644 --- a/rtdata/profiles/Faded/Blue/Faded Blue 1.pp3 +++ b/rtdata/profiles/Faded/Blue/Faded Blue 1.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Blue/Faded Blue Pink TM.pp3 b/rtdata/profiles/Faded/Blue/Faded Blue Pink TM.pp3 index 820585957..75ecc3a07 100644 --- a/rtdata/profiles/Faded/Blue/Faded Blue Pink TM.pp3 +++ b/rtdata/profiles/Faded/Blue/Faded Blue Pink TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,26 +23,8 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Met=No -VCurve=0; + +[Black & White] Enabled=false [Luminance Curve] @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Blue/Faded Blue Pink.pp3 b/rtdata/profiles/Faded/Blue/Faded Blue Pink.pp3 index 315883d34..db1580f9f 100644 --- a/rtdata/profiles/Faded/Blue/Faded Blue Pink.pp3 +++ b/rtdata/profiles/Faded/Blue/Faded Blue Pink.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,26 +23,8 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Met=No -VCurve=0; + +[Black & White] Enabled=false [Luminance Curve] @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Chocolate/Faded Chocolate 1 TM Bright.pp3 b/rtdata/profiles/Faded/Chocolate/Faded Chocolate 1 TM Bright.pp3 index a314e32dc..d5a1bb484 100644 --- a/rtdata/profiles/Faded/Chocolate/Faded Chocolate 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Chocolate/Faded Chocolate 1 TM Bright.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Chocolate/Faded Chocolate 2 TM Bright.pp3 b/rtdata/profiles/Faded/Chocolate/Faded Chocolate 2 TM Bright.pp3 index 3950d03ea..e06cd8073 100644 --- a/rtdata/profiles/Faded/Chocolate/Faded Chocolate 2 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Chocolate/Faded Chocolate 2 TM Bright.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Golden/Faded Golden 1.pp3 b/rtdata/profiles/Faded/Golden/Faded Golden 1.pp3 index 46e1344f6..6b4019df1 100644 --- a/rtdata/profiles/Faded/Golden/Faded Golden 1.pp3 +++ b/rtdata/profiles/Faded/Golden/Faded Golden 1.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.53359683794466362;0.7287 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=0 Chromaticity=56 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Golden/Faded Golden 2.pp3 b/rtdata/profiles/Faded/Golden/Faded Golden 2.pp3 index 2937bc26e..0f6c286f8 100644 --- a/rtdata/profiles/Faded/Golden/Faded Golden 2.pp3 +++ b/rtdata/profiles/Faded/Golden/Faded Golden 2.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.53359683794466362;0.7287 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=56 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Green/Faded Green 1 TM Bright.pp3 b/rtdata/profiles/Faded/Green/Faded Green 1 TM Bright.pp3 index 31bde3b04..f48019d29 100644 --- a/rtdata/profiles/Faded/Green/Faded Green 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Green/Faded Green 1 TM Bright.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Green/Faded Green 1 TM.pp3 b/rtdata/profiles/Faded/Green/Faded Green 1 TM.pp3 index 210b5bbec..9321e73b5 100644 --- a/rtdata/profiles/Faded/Green/Faded Green 1 TM.pp3 +++ b/rtdata/profiles/Faded/Green/Faded Green 1 TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Green/Faded Green 1.pp3 b/rtdata/profiles/Faded/Green/Faded Green 1.pp3 index 5fabe8723..9e4be0e2d 100644 --- a/rtdata/profiles/Faded/Green/Faded Green 1.pp3 +++ b/rtdata/profiles/Faded/Green/Faded Green 1.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Green/Faded Green 2.pp3 b/rtdata/profiles/Faded/Green/Faded Green 2.pp3 index 002039e85..b49034667 100644 --- a/rtdata/profiles/Faded/Green/Faded Green 2.pp3 +++ b/rtdata/profiles/Faded/Green/Faded Green 2.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Green/Faded Green 3.pp3 b/rtdata/profiles/Faded/Green/Faded Green 3.pp3 index 032e3d2de..b92a82ac1 100644 --- a/rtdata/profiles/Faded/Green/Faded Green 3.pp3 +++ b/rtdata/profiles/Faded/Green/Faded Green 3.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.11903093907591648;0.023682704102494199;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;40;0; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Neutral/Faded Neutral TM.pp3 b/rtdata/profiles/Faded/Neutral/Faded Neutral TM.pp3 index 0dcac5ba3..810206c35 100644 --- a/rtdata/profiles/Faded/Neutral/Faded Neutral TM.pp3 +++ b/rtdata/profiles/Faded/Neutral/Faded Neutral TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Neutral/Faded Neutral.pp3 b/rtdata/profiles/Faded/Neutral/Faded Neutral.pp3 index 478d8dde3..6419870b1 100644 --- a/rtdata/profiles/Faded/Neutral/Faded Neutral.pp3 +++ b/rtdata/profiles/Faded/Neutral/Faded Neutral.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,26 +23,8 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Met=No -VCurve=0; + +[Black & White] Enabled=false [Luminance Curve] @@ -51,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Purple/Faded Purple 1 TM Bright.pp3 b/rtdata/profiles/Faded/Purple/Faded Purple 1 TM Bright.pp3 index e4b26a868..e77a6ead1 100644 --- a/rtdata/profiles/Faded/Purple/Faded Purple 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Purple/Faded Purple 1 TM Bright.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Purple/Faded Purple 1 TM.pp3 b/rtdata/profiles/Faded/Purple/Faded Purple 1 TM.pp3 index e67d6dac5..a38af5445 100644 --- a/rtdata/profiles/Faded/Purple/Faded Purple 1 TM.pp3 +++ b/rtdata/profiles/Faded/Purple/Faded Purple 1 TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standard -CurveMode2=Standardbw -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Purple/Faded Purple 1.pp3 b/rtdata/profiles/Faded/Purple/Faded Purple 1.pp3 index 5531d95c4..5767c5b77 100644 --- a/rtdata/profiles/Faded/Purple/Faded Purple 1.pp3 +++ b/rtdata/profiles/Faded/Purple/Faded Purple 1.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Purple/Faded Purple 2 TM.pp3 b/rtdata/profiles/Faded/Purple/Faded Purple 2 TM.pp3 index 88a5429a0..6845070e4 100644 --- a/rtdata/profiles/Faded/Purple/Faded Purple 2 TM.pp3 +++ b/rtdata/profiles/Faded/Purple/Faded Purple 2 TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Purple/Faded Purple 2.pp3 b/rtdata/profiles/Faded/Purple/Faded Purple 2.pp3 index 6a4f216db..98032ae6e 100644 --- a/rtdata/profiles/Faded/Purple/Faded Purple 2.pp3 +++ b/rtdata/profiles/Faded/Purple/Faded Purple 2.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;20; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Teal/Faded Teal Orange TM Bright.pp3 b/rtdata/profiles/Faded/Teal/Faded Teal Orange TM Bright.pp3 index 89f4d989d..0039f160e 100644 --- a/rtdata/profiles/Faded/Teal/Faded Teal Orange TM Bright.pp3 +++ b/rtdata/profiles/Faded/Teal/Faded Teal Orange TM Bright.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.068858525282812999;0.0083378765162873056;0.46245059288537577;0.41 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.094310344827586101;0.09189655172413784;0.9956896551724137;0.92051724137931046;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Teal/Faded Teal Orange TM.pp3 b/rtdata/profiles/Faded/Teal/Faded Teal Orange TM.pp3 index 87dcaab70..5d73fb03e 100644 --- a/rtdata/profiles/Faded/Teal/Faded Teal Orange TM.pp3 +++ b/rtdata/profiles/Faded/Teal/Faded Teal Orange TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.068858525282812999;0.0083378765162873056;0.46245059288537577;0.41 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.094310344827586101;0.09189655172413784;0.89568965517241339;0.9032758620689656;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Teal/Faded Teal Orange.pp3 b/rtdata/profiles/Faded/Teal/Faded Teal Orange.pp3 index b8adbd764..a9e611b0b 100644 --- a/rtdata/profiles/Faded/Teal/Faded Teal Orange.pp3 +++ b/rtdata/profiles/Faded/Teal/Faded Teal Orange.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,27 +23,9 @@ Curve2=3;0;0;0.068858525282812999;0.0083378765162873056;0.46245059288537577;0.41 Red=80;0;20; Green=0;60;40; Blue=-20;20;80; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; [Luminance Curve] Brightness=0 @@ -51,14 +33,13 @@ Contrast=-25 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.094310344827586101;0.09189655172413784;0.89568965517241339;0.9032758620689656;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Warm/Faded Warm 1 TM Bright.pp3 b/rtdata/profiles/Faded/Warm/Faded Warm 1 TM Bright.pp3 index e9c189922..7939e8ce7 100644 --- a/rtdata/profiles/Faded/Warm/Faded Warm 1 TM Bright.pp3 +++ b/rtdata/profiles/Faded/Warm/Faded Warm 1 TM Bright.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;40; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Warm/Faded Warm 1 TM.pp3 b/rtdata/profiles/Faded/Warm/Faded Warm 1 TM.pp3 index 52aeb18df..5812af95c 100644 --- a/rtdata/profiles/Faded/Warm/Faded Warm 1 TM.pp3 +++ b/rtdata/profiles/Faded/Warm/Faded Warm 1 TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;40; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Warm/Faded Warm 1.pp3 b/rtdata/profiles/Faded/Warm/Faded Warm 1.pp3 index b9ebe3ddc..bff449544 100644 --- a/rtdata/profiles/Faded/Warm/Faded Warm 1.pp3 +++ b/rtdata/profiles/Faded/Warm/Faded Warm 1.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=60;0;20; Green=0;60;40; Blue=-20;20;40; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=-25 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Warm/Faded Warm 2.pp3 b/rtdata/profiles/Faded/Warm/Faded Warm 2.pp3 index 2dc70cc22..16effce39 100644 --- a/rtdata/profiles/Faded/Warm/Faded Warm 2.pp3 +++ b/rtdata/profiles/Faded/Warm/Faded Warm 2.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;20; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/Faded/Warm/Faded Warm 3.pp3 b/rtdata/profiles/Faded/Warm/Faded Warm 3.pp3 index 47a3aa24d..62b296084 100644 --- a/rtdata/profiles/Faded/Warm/Faded Warm 3.pp3 +++ b/rtdata/profiles/Faded/Warm/Faded Warm 3.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.12213438735177862;0.012648221343873525;0.46245059288537577;0.4125 Red=80;0;20; Green=0;60;40; Blue=-20;20;20; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=-29 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Vibrance] diff --git a/rtdata/profiles/High-Key.pp3 b/rtdata/profiles/High-Key.pp3 index aa83a6248..a782e4c33 100644 --- a/rtdata/profiles/High-Key.pp3 +++ b/rtdata/profiles/High-Key.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,34 +22,14 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 Contrast=5 Chromaticity=-10 -BWtoning=false AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -58,7 +38,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Natural 1.pp3 b/rtdata/profiles/Natural 1.pp3 index ca386816a..4181b6430 100644 --- a/rtdata/profiles/Natural 1.pp3 +++ b/rtdata/profiles/Natural 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,34 +22,14 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 Contrast=0 Chromaticity=0 -BWtoning=false AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -58,7 +38,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Natural 2.pp3 b/rtdata/profiles/Natural 2.pp3 index a890766c8..c21054368 100644 --- a/rtdata/profiles/Natural 2.pp3 +++ b/rtdata/profiles/Natural 2.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=true @@ -22,35 +22,14 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true + +[Black & White] Enabled=false -Met=No -VCurve=0; - - [Luminance Curve] Brightness=0 Contrast=0 Chromaticity=5 -BWtoning=false AvoidColorShift=true RedAndSkinTonesProtection=0 LCredsk=true @@ -59,7 +38,7 @@ aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Pop/Pop 1.pp3 b/rtdata/profiles/Pop/Pop 1.pp3 index 4766024b9..eba30f051 100644 --- a/rtdata/profiles/Pop/Pop 1.pp3 +++ b/rtdata/profiles/Pop/Pop 1.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -22,28 +22,9 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -51,14 +32,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.5;0.4;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Pop/Pop 2 L.pp3 b/rtdata/profiles/Pop/Pop 2 L.pp3 index 54f12dc7d..6e2f5a80b 100644 --- a/rtdata/profiles/Pop/Pop 2 L.pp3 +++ b/rtdata/profiles/Pop/Pop 2 L.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -22,28 +22,9 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -51,14 +32,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.12;0.3;0.5;0.46;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Pop/Pop 3 Skin.pp3 b/rtdata/profiles/Pop/Pop 3 Skin.pp3 index e81fc4a94..a17a9e268 100644 --- a/rtdata/profiles/Pop/Pop 3 Skin.pp3 +++ b/rtdata/profiles/Pop/Pop 3 Skin.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -22,28 +22,9 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -51,14 +32,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.5;0.4;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Pop/Pop 4 BW.pp3 b/rtdata/profiles/Pop/Pop 4 BW.pp3 index 918f85d62..c695748eb 100644 --- a/rtdata/profiles/Pop/Pop 4 BW.pp3 +++ b/rtdata/profiles/Pop/Pop 4 BW.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -22,43 +22,44 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=true -Met=No -VCurve=0; +[Black & White] +Enabled=true +Method=Desaturation +Auto=false +ComplementaryColors=true +Setting=NormalContrast +Filter=None +MixerRed=43 +MixerOrange=33 +MixerYellow=33 +MixerGreen=33 +MixerCyan=33 +MixerBlue=30 +MixerMagenta=33 +MixerPurple=33 +GammaRed=0 +GammaGreen=0 +GammaBlue=0 +LuminanceCurve=0; +BeforeCurveMode=Standard +AfterCurveMode=Standard +BeforeCurve=0; +AfterCurve=0; [Luminance Curve] Brightness=0 Contrast=0 -Chromaticity=0 +Chromaticity=-100 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=true LCredsk=true LCurve=3;0;0;0.212;0.119;0.674;0.773;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Portrait/Portrait Lejto.pp3 b/rtdata/profiles/Portrait/Portrait Lejto.pp3 index eb7d3c9d3..6e3c29394 100644 --- a/rtdata/profiles/Portrait/Portrait Lejto.pp3 +++ b/rtdata/profiles/Portrait/Portrait Lejto.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.0 -Version=310 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -18,20 +18,22 @@ CurveMode2=SatAndValueBlending Curve=1;0;0;0.079285714285714293;0.029999999999999999;0.18041642857142856;0.21375157142857143;0.70232600000000001;0.74883699999999997;1;1; Curve2=1;0;0;0.075000000000000691;0.13571428571428609;0.29999999999999999;0.42857142857142855;0.7214285714285712;0.74642857142857144;1;1; +[Black & White] +Enabled=false + [Luminance Curve] Brightness=0 Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=1;0;0;1;1; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Portrait/Portrait Smooth.pp3 b/rtdata/profiles/Portrait/Portrait Smooth.pp3 index e95fae63b..9263b5af0 100644 --- a/rtdata/profiles/Portrait/Portrait Smooth.pp3 +++ b/rtdata/profiles/Portrait/Portrait Smooth.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -22,28 +22,9 @@ Curve2=0; Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=-20 @@ -51,14 +32,13 @@ Contrast=-20 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=50 -BWtoning=false LCredsk=true LCurve=3;0;0;0.0427;0.014;0.162;0.162;0.547;0.933;1;1; aCurve=0; bCurve=0; ccCurve=1;0;0;0.254;0.300;1;1; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Skintones/Skintones - Natural TM.pp3 b/rtdata/profiles/Skintones/Skintones - Natural TM.pp3 index eb40c4863..677a77beb 100644 --- a/rtdata/profiles/Skintones/Skintones - Natural TM.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Natural TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=1;0;0;0.055335968379446598;0.019762845849802379;0.12648221343873495;0.110 Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.063241106719367585;6.9388939039072284e-018;0.49407114624505927;0.50197628458498023;0.92885375494071132;0.99604743083003922;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Skintones/Skintones - Natural.pp3 b/rtdata/profiles/Skintones/Skintones - Natural.pp3 index eb4f0daf6..a910fefe2 100644 --- a/rtdata/profiles/Skintones/Skintones - Natural.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Natural.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=1;0;0;0.097430830039525476;0.066798418972331866;0.12648221343873495;0.110 Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.063241106719367585;6.9388939039072284e-018;0.49407114624505927;0.50197628458498023;0.92885375494071132;0.99604743083003922;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Skintones/Skintones - Pale TM Bright.pp3 b/rtdata/profiles/Skintones/Skintones - Pale TM Bright.pp3 index 0dc9c1ffe..71ff8b03c 100644 --- a/rtdata/profiles/Skintones/Skintones - Pale TM Bright.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Pale TM Bright.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.16151202749140844;0.24319627128016638;0.59793814432989756;0.90034 Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.063241106719367585;6.9388939039072284e-018;0.49407114624505927;0.50197628458498023;0.92885375494071132;0.99604743083003922;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Skintones/Skintones - Pale TM.pp3 b/rtdata/profiles/Skintones/Skintones - Pale TM.pp3 index 66b0eca1a..158cff376 100644 --- a/rtdata/profiles/Skintones/Skintones - Pale TM.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Pale TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.16151202749140844;0.24319627128016638;0.59793814432989756;0.90034 Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.063241106719367585;6.9388939039072284e-018;0.49407114624505927;0.50197628458498023;0.92885375494071132;0.99604743083003922;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Skintones/Skintones - Pale.pp3 b/rtdata/profiles/Skintones/Skintones - Pale.pp3 index 900fa913b..308d1647d 100644 --- a/rtdata/profiles/Skintones/Skintones - Pale.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Pale.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11.151 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.16151202749140844;0.24319627128016638;0.59793814432989756;0.90034 Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=false RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Skintones/Skintones - Soft Texture.pp3 b/rtdata/profiles/Skintones/Skintones - Soft Texture.pp3 index 8d0f22f28..a1a8967d8 100644 --- a/rtdata/profiles/Skintones/Skintones - Soft Texture.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Soft Texture.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.0 -Version=310 +AppVersion=4.0.11.161 +Version=314 [RGB Curves] LumaMode=true diff --git a/rtdata/profiles/Skintones/Skintones - Strong Texture.pp3 b/rtdata/profiles/Skintones/Skintones - Strong Texture.pp3 index d48efe0cd..15ed11042 100644 --- a/rtdata/profiles/Skintones/Skintones - Strong Texture.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Strong Texture.pp3 @@ -1,6 +1,6 @@ [Version] -AppVersion=4.0.11.0 -Version=310 +AppVersion=4.0.11.161 +Version=314 [RGB Curves] LumaMode=true diff --git a/rtdata/profiles/Skintones/Skintones - Studio TM.pp3 b/rtdata/profiles/Skintones/Skintones - Studio TM.pp3 index b49e66aef..f16d65a0e 100644 --- a/rtdata/profiles/Skintones/Skintones - Studio TM.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Studio TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -20,31 +20,7 @@ Curve=3;0;0;0.083003952569169939;0.21343873517786566;1;1; Curve2=3;0;0;0.063063463161166899;0.13925774599931898;0.86956521739130421;0.76284584980237158;1;1; [Channel Mixer] -Red=100;0;0; -Green=0;100;0; -Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true Enabled=false -Met=No -VCurve=0; - [Luminance Curve] Brightness=0 @@ -52,14 +28,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.15019762845849804;0.02766798418972332;0.31620553359683784;0.23715415019762845;0.49407114624505927;0.50197628458498023;0.92885375494071132;0.99604743083003922;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Skintones/Skintones - Studio.pp3 b/rtdata/profiles/Skintones/Skintones - Studio.pp3 index 07bc9e31f..eb3adb725 100644 --- a/rtdata/profiles/Skintones/Skintones - Studio.pp3 +++ b/rtdata/profiles/Skintones/Skintones - Studio.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.11.161 +Version=314 [Exposure] Auto=false @@ -23,28 +23,9 @@ Curve2=3;0;0;0.063063463161166899;0.13925774599931898;0.86956521739130421;0.7628 Red=100;0;0; Green=0;100;0; Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true -Enabled=false -Met=No -VCurve=0; +[Black & White] +Enabled=false [Luminance Curve] Brightness=0 @@ -52,14 +33,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=3;0;0;0.15019762845849804;0.02766798418972332;0.31620553359683784;0.23715415019762845;0.49407114624505927;0.50197628458498023;0.92885375494071132;0.99604743083003922;1;1; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Skintones/Skintones - StudioBase 1 TM.pp3 b/rtdata/profiles/Skintones/Skintones - StudioBase 1 TM.pp3 index 4907e406d..cab03bb2c 100644 --- a/rtdata/profiles/Skintones/Skintones - StudioBase 1 TM.pp3 +++ b/rtdata/profiles/Skintones/Skintones - StudioBase 1 TM.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -20,31 +20,7 @@ Curve=3;0;0;1;1; Curve2=3;0;0;1;1; [Channel Mixer] -Red=100;0;0; -Green=0;100;0; -Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true Enabled=false -Met=No -VCurve=0; - [Luminance Curve] Brightness=0 @@ -52,14 +28,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtdata/profiles/Skintones/Skintones - StudioBase 1.pp3 b/rtdata/profiles/Skintones/Skintones - StudioBase 1.pp3 index 9d9cead32..96ffddb33 100644 --- a/rtdata/profiles/Skintones/Skintones - StudioBase 1.pp3 +++ b/rtdata/profiles/Skintones/Skintones - StudioBase 1.pp3 @@ -1,7 +1,7 @@ [Version] -AppVersion=4.0.11 -Version=313 +AppVersion=4.0.161 +Version=314 [Exposure] Auto=false @@ -20,31 +20,7 @@ Curve=3;0;0;1;1; Curve2=3;0;0;1;1; [Channel Mixer] -Red=100;0;0; -Green=0;100;0; -Blue=0;0;100; -CurveMode=Standardbw -CurveMode2=Standard -Curve=0; -Curve2=0; -bwred=43 -bwgreen=33 -bwblue=30 -bwredgam=0 -bwgreengam=0 -bwbluegam=0 -Filter=No -Set=Nc -bworan=33 -bwyell=33 -bwcyan=33 -bwmag=33 -bwpur=33 -Enabledcc=true Enabled=false -Met=No -VCurve=0; - [Luminance Curve] Brightness=0 @@ -52,14 +28,13 @@ Contrast=0 Chromaticity=0 AvoidColorShift=true RedAndSkinTonesProtection=0 -BWtoning=false LCredsk=true LCurve=0; aCurve=0; bCurve=0; ccCurve=0; chCurve=0; -LcCurve=0; +LcCurve=0; ClCurve=0; [Sharpening] diff --git a/rtengine/curves.cc b/rtengine/curves.cc index 4d00d361a..b8cb3e278 100644 --- a/rtengine/curves.cc +++ b/rtengine/curves.cc @@ -289,8 +289,8 @@ void CurveFactory::curveLightBrightColor ( } void CurveFactory::curveBW ( - procparams::ChannelMixerbwParams::eTCModeId curveModeb, const std::vector& curvePointsbw, - procparams::ChannelMixerbwParams::eTCModeId curveModeb2, const std::vector& curvePointsbw2, + procparams::BlackWhiteParams::eTCModeId curveModeb, const std::vector& curvePointsbw, + procparams::BlackWhiteParams::eTCModeId curveModeb2, const std::vector& curvePointsbw2, LUTu & histogrambw, LUTu & histogramCropped, LUTu & outBeforeCCurveHistogrambw,//for Luminance ChMixerbw & customToneCurvebw1, ChMixerbw & customToneCurvebw2, @@ -781,7 +781,7 @@ void CurveFactory::curveCL ( bool & clcutili,const std::vector& clcurveP delete tbwcurve; tbwcurve = NULL; } - else if (curveModeb != procparams::ChannelMixerbwParams::TC_MODE_STD_BW) { + else if (curveModeb != procparams::BlackWhiteParams::TC_MODE_STD_BW) { customToneCurvebw1.Set(tbwcurve); delete tbwcurve; tbwcurve = NULL; diff --git a/rtengine/curves.h b/rtengine/curves.h index 59dbe2e2e..2401f792a 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -188,8 +188,8 @@ class CurveFactory { int skip=1); static void curveBW ( - procparams::ChannelMixerbwParams::eTCModeId curveModeb, const std::vector& curvePointsbw, - procparams::ChannelMixerbwParams::eTCModeId curveModeb2, const std::vector& curvePointsbw2, + procparams::BlackWhiteParams::eTCModeId curveModeb, const std::vector& curvePointsbw, + procparams::BlackWhiteParams::eTCModeId curveModeb2, const std::vector& curvePointsbw2, LUTu & histogrambw, LUTu & histogramCropped, LUTu & outBeforeCCurveHistogrambw, ChMixerbw & customToneCurvebw1, ChMixerbw & customToneCurvebw2, diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 9d934657a..366f33ca9 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -298,22 +298,22 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) { CurveFactory::RGBCurve (params.rgbCurves.gcurve, gCurve, scale==1 ? 1 : 1); CurveFactory::RGBCurve (params.rgbCurves.bcurve, bCurve, scale==1 ? 1 : 1); - CurveFactory::curveBW (params.chmixerbw.curveMode, params.chmixerbw.curve, params.chmixerbw.curveMode2, params.chmixerbw.curve2, - vhist16bw, histCropped, histToneCurveBW, customToneCurvebw1, customToneCurvebw2,scale==1 ? 1 : 1); - - //initialize rrm bbm ggm different from zero to avoid black screen in somme cases - double rrm=33.; - double ggm=33.; - double bbm=33.; - - + CurveFactory::curveBW (params.blackwhite.beforeCurveMode, params.blackwhite.beforeCurve, params.blackwhite.afterCurveMode, params.blackwhite.afterCurve, + vhist16bw, histCropped, histToneCurveBW, customToneCurvebw1, customToneCurvebw2,scale==1 ? 1 : 1); + + //initialize rrm bbm ggm different from zero to avoid black screen in somme cases + double rrm=33.; + double ggm=33.; + double bbm=33.; + + // if it's just crop we just need the histogram, no image updates if ( todo!=MINUPDATE ) { ipf.rgbProc (oprevi, oprevl, hltonecurve, shtonecurve, tonecurve, shmap, params.toneCurve.saturation, rCurve, gCurve, bCurve, customToneCurve1, customToneCurve2,customToneCurvebw1, customToneCurvebw2, rrm, ggm, bbm,params.toneCurve.expcomp, params.toneCurve.hlcompr, params.toneCurve.hlcomprthresh); - if(params.chmixerbw.enabled && abwListener) abwListener->BWChanged((float) rrm, (float) ggm, (float) bbm); - // correct GUI black and white with value - } + if(params.blackwhite.enabled && abwListener) abwListener->BWChanged((float) rrm, (float) ggm, (float) bbm); + // correct GUI black and white with value + } // compute L channel histogram int x1, y1, x2, y2, pos, poscc; @@ -335,15 +335,15 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) { butili=false; ccutili=false; cclutili=false; - clcutili=false; + clcutili=false; if ((todo & M_LUMACURVE) || (todo & M_CROP)) { CurveFactory::complexLCurve (params.labCurve.brightness, params.labCurve.contrast, params.labCurve.lcurve, lhist16, lhist16Cropped, lumacurve, histLCurve, scale==1 ? 1 : 16, utili); } if (todo & M_LUMACURVE) { - CurveFactory::curveCL(clcutili, params.labCurve.clcurve, clcurve, lhist16CLlad, histCLurve, scale==1 ? 1 : 16); - + CurveFactory::curveCL(clcutili, params.labCurve.clcurve, clcurve, lhist16CLlad, histCLurve, scale==1 ? 1 : 16); + CurveFactory::complexsgnCurve (autili, butili,ccutili,cclutili, params.labCurve.chromaticity, params.labCurve.rstprotection, params.labCurve.acurve, params.labCurve.bcurve,params.labCurve.cccurve,params.labCurve.lccurve,chroma_acurve, chroma_bcurve, satcurve,lhskcurve, lhist16Clad,lhist16LLClad,lhist16CroppedClad, histCCurve, histLLCurve, scale==1 ? 1 : 16); diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 48d329747..a0d02189c 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -266,7 +266,6 @@ if(params->colorappearance.enabled) { } //end preparate histogram int width = lab->W, height = lab->H; - int Np=width*height; float minQ=10000.f; float minM=10000.f; float maxQ= -1000.f; @@ -279,7 +278,7 @@ if(params->colorappearance.enabled) { Yw=1.0; double Xw, Zw; double f,c,nc,yb,la,xw,yw,zw,f2,c2,nc2,yb2,la2; - double z,fl,n,nbb,ncb,aw; + double fl,n,nbb,ncb,aw; double xwd,ywd,zwd; int alg=0; bool algepd=false; @@ -447,13 +446,10 @@ if(params->colorappearance.enabled) { // double J, C, h, Q, M, s, aw, fl, wh; double J, C, h, Q, M, s; - double Jp,Cpr; double Jpro,Cpro, hpro, Qpro, Mpro, spro; bool t1L=false; bool t1B=false; - bool t2L=false; bool t2B=false; - int c1C=0; int c1s=0; int c1co=0; //double n,nbb,ncb,pfl,cz,d; @@ -633,7 +629,6 @@ if(params->colorappearance.enabled) { else if (Jj>=0.f){if(!t1L)Jj=0.90f*(Jj-Jold)+Jold;else Jj=0.5f*(Jj-Jold)+Jold;}// not zero ==>artifacts Jpro=(double)(Jj/327.68f); - t2L=true; } else if (curveMode2==ColorAppearanceParams::TC_MODE_BRIGHT){ // float coef=((aw+4.f)*(4.f/c))/100.f; @@ -689,7 +684,6 @@ if(params->colorappearance.enabled) { float ko=1.f/coef; Color::skinred(Jpro, hpro, Cc, Ccold, dred, protect_red,sk,rstprotection,ko, Cpro); // Cpro=Cc/coef; - c1C=1; } else if (curveMode3==ColorAppearanceParams::TC_MODE_SATUR){ // double parsat=0.8;//0.6 @@ -842,7 +836,6 @@ if(!params->edgePreservingDecompositionUI.enabled || !params->colorappearance.to //update histogram J if(pW!=1){//only with improccoordinator for (int i=0; i<=32768; i++) {// - float val; if (jp) { float hval = dLcurve[i]; int hi = (int)(255.0*CLIPD(hval)); // @@ -852,7 +845,6 @@ if(!params->edgePreservingDecompositionUI.enabled || !params->colorappearance.to } if(pW!=1){//only with improccoordinator for (int i=0; i<=48000; i++) {// - float valc; if (chropC) { float hvalc = dCcurve[i]; int hic = (int)(255.0*CLIPD(hvalc)); // @@ -1006,8 +998,8 @@ if((params->colorappearance.tonecie || (params->colorappearance.tonecie && param lab->L[i][j]=Lprov1*327.68f; lab->a[i][j]=327.68f*Chprov1*cos(HH); lab->b[i][j]=327.68f*Chprov1*sin(HH); - } - } + } + } } @@ -1017,7 +1009,6 @@ if((params->colorappearance.tonecie || (params->colorappearance.tonecie && param //update histogram J and Q if(pW!=1){//only with improccoordinator for (int i=0; i<=32768; i++) {// - float val; if (jp) { float hval = dLcurve[i]; int hi = (int)(255.0*CLIPD(hval)); // @@ -1028,7 +1019,6 @@ if((params->colorappearance.tonecie || (params->colorappearance.tonecie && param //update color histogram M,s,C if(pW!=1){//only with improccoordinator for (int i=0; i<=48000; i++) {// - float valc; if (chropC) { float hvalc = dCcurve[i]; int hic = (int)(255.0*CLIPD(hvalc)); // @@ -1080,7 +1070,6 @@ if(params->colorappearance.enabled) { } //end preparate histogram int width = lab->W, height = lab->H; - int Np=width*height; float minQ=10000.f; float minM=10000.f; float maxQ= -1000.f; @@ -1093,7 +1082,7 @@ if(params->colorappearance.enabled) { Yw=1.0; double Xw, Zw; float f,nc,yb,la,c,xw,yw,zw,f2,c2,nc2,yb2,la2; - float z,fl,n,nbb,ncb,aw;//d + float fl,n,nbb,ncb,aw;//d float xwd,ywd,zwd; int alg=0; bool algepd=false; @@ -1257,13 +1246,11 @@ if(params->colorappearance.enabled) { //convert Lab => XYZ Color::Lab2XYZ(L, a, b, x1, y1, z1); float J, C, h, Q, M, s; - float Jp,Cpr; + float Jp; float Jpro,Cpro, hpro, Qpro, Mpro, spro; bool t1L=false; bool t1B=false; - bool t2L=false; bool t2B=false; - int c1C=0; int c1s=0; int c1co=0; @@ -1428,7 +1415,6 @@ if(params->colorappearance.enabled) { else if(Jj>10.f) {if(!t1L)Jj=0.8f*(Jj-Jold)+Jold;else Jj=0.4f*(Jj-Jold)+Jold;} else if (Jj>=0.f){if(!t1L)Jj=0.90f*(Jj-Jold)+Jold;else Jj=0.5f*(Jj-Jold)+Jold;}// not zero ==>artifacts Jpro=(float)(Jj/327.68f); - t2L=true; } else if (curveMode2==ColorAppearanceParams::TC_MODE_BRIGHT){ // float coef=((aw+4.f)*(4.f/c))/100.f; @@ -1483,7 +1469,6 @@ if(params->colorappearance.enabled) { float sk=1; float ko=1.f/coef; Color::skinredfloat(Jpro, hpro, Cc, Ccold, dred, protect_red,sk,rstprotection,ko, Cpro); - c1C=1; } else if (curveMode3==ColorAppearanceParams::TC_MODE_SATUR){ // float parsat=0.8f;//0.6 @@ -1632,7 +1617,6 @@ if(!params->colorappearance.tonecie || !settings->autocielab){//normal //update histogram J if(pW!=1){//only with improccoordinator for (int i=0; i<=32768; i++) {// - float val; if (jp) { float hval = dLcurve[i]; int hi = (int)(255.0f*CLIPD(hval)); // @@ -1642,7 +1626,6 @@ if(!params->colorappearance.tonecie || !settings->autocielab){//normal } if(pW!=1){//only with improccoordinator for (int i=0; i<=48000; i++) {// - float valc; if (chropC) { float hvalc = dCcurve[i]; int hic = (int)(255.0f*CLIPD(hvalc)); // @@ -1809,7 +1792,6 @@ if((params->colorappearance.tonecie && (params->edgePreservingDecompositionUI.en //update histogram J and Q if(pW!=1){//only with improccoordinator for (int i=0; i<=32768; i++) {// - float val; if (jp) { float hval = dLcurve[i]; int hi = (int)(255.0f*CLIPD(hval)); // @@ -1820,7 +1802,6 @@ if((params->colorappearance.tonecie && (params->edgePreservingDecompositionUI.en //update color histogram M,s,C if(pW!=1){//only with improccoordinator for (int i=0; i<=48000; i++) {// - float valc; if (chropC) { float hvalc = dCcurve[i]; int hic = (int)(255.0f*CLIPD(hvalc)); // @@ -1916,7 +1897,7 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, LUTf & hltone FlatCurveType hCurveType = (FlatCurveType)params->hsvequalizer.hcurve.at(0); FlatCurveType sCurveType = (FlatCurveType)params->hsvequalizer.scurve.at(0); FlatCurveType vCurveType = (FlatCurveType)params->hsvequalizer.vcurve.at(0); - FlatCurveType bwlCurveType = (FlatCurveType)params->chmixerbw.vcurve.at(0); + FlatCurveType bwlCurveType = (FlatCurveType)params->blackwhite.luminanceCurve.at(0); bool hCurveEnabled = hCurveType > FCT_Linear; bool sCurveEnabled = sCurveType > FCT_Linear; bool vCurveEnabled = vCurveType > FCT_Linear; @@ -1926,7 +1907,7 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, LUTf & hltone if (hCurveEnabled) hCurve = new FlatCurve(params->hsvequalizer.hcurve); if (sCurveEnabled) sCurve = new FlatCurve(params->hsvequalizer.scurve); if (vCurveEnabled) vCurve = new FlatCurve(params->hsvequalizer.vcurve); - if (bwlCurveEnabled) bwlCurve = new FlatCurve(params->chmixerbw.vcurve); + if (bwlCurveEnabled) bwlCurve = new FlatCurve(params->blackwhite.luminanceCurve); const float exp_scale = pow (2.0, expcomp); const float comp = (max(0.0, expcomp) + 1.0)*hlcompr/100.0; @@ -1938,9 +1919,9 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, LUTf & hltone ToneCurveParams::eTCModeId curveMode2 = params->toneCurve.curveMode2; bool hasToneCurve1 = bool(customToneCurve1); bool hasToneCurve2 = bool(customToneCurve2); - ChannelMixerbwParams::eTCModeId curveModebw = params->chmixerbw.curveMode; - ChannelMixerbwParams::eTCModeId curveModebw2 = params->chmixerbw.curveMode2; - + BlackWhiteParams::eTCModeId beforeCurveMode = params->blackwhite.beforeCurveMode; + BlackWhiteParams::eTCModeId afterCurveMode = params->blackwhite.afterCurveMode; + bool hasToneCurvebw1 = bool(customToneCurvebw1); bool hasToneCurvebw2 = bool(customToneCurvebw2); @@ -1953,26 +1934,25 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, LUTf & hltone float chMixBR = float(params->chmixer.blue[0]); float chMixBG = float(params->chmixer.blue[1]); float chMixBB = float(params->chmixer.blue[2]); - bool BWchmix = params->chmixerbw.enabledcc; int shHighlights = params->sh.highlights; int shShadows = params->sh.shadows; - float bwr = float(params->chmixerbw.bwred); - float bwg = float(params->chmixerbw.bwgreen); - float bwb = float(params->chmixerbw.bwblue); - float bwrgam = float(params->chmixerbw.bwredgam); - float bwggam = float(params->chmixerbw.bwgreengam); - float bwbgam = float(params->chmixerbw.bwbluegam); - float bworan = float(params->chmixerbw.bworan); - float bwyell = float(params->chmixerbw.bwyell); - float bwcyan = float(params->chmixerbw.bwcyan); - float bwmag = float(params->chmixerbw.bwmag); - float bwpur = float(params->chmixerbw.bwpur); - bool blackwhite = params->chmixerbw.enabled; + bool blackwhite = params->blackwhite.enabled; + bool complem = params->blackwhite.enabledcc; + float bwr = float(params->blackwhite.mixerRed); + float bwg = float(params->blackwhite.mixerGreen); + float bwb = float(params->blackwhite.mixerBlue); + float bwrgam = float(params->blackwhite.gammaRed); + float bwggam = float(params->blackwhite.gammaGreen); + float bwbgam = float(params->blackwhite.gammaBlue); + float mixerOrange = float(params->blackwhite.mixerOrange); + float mixerYellow = float(params->blackwhite.mixerYellow); + float mixerCyan = float(params->blackwhite.mixerCyan); + float mixerMagenta = float(params->blackwhite.mixerMagenta); + float mixerPurple = float(params->blackwhite.mixerPurple); int algm=0; - if (params->chmixerbw.met=="No") algm=0; - else if(params->chmixerbw.met=="De") algm=1; - else if(params->chmixerbw.met=="Le") algm=2; - else if(params->chmixerbw.met=="Ch") algm=3; + if (params->blackwhite.method=="Desaturation") algm=0; + else if(params->blackwhite.method=="LumEqualizer") algm=1; + else if(params->blackwhite.method=="ChannelMixer") algm=2; //gamma correction of each channel float gamvalr=125.f; float gamvalg=125.f; @@ -1981,15 +1961,16 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, LUTf & hltone if(bwrgam < 0) gamvalr=100.f; if(bwggam < 0) gamvalg=100.f; if(bwbgam < 0) gamvalb=100.f; - float gammabwr=1.f; - float gammabwg=1.f; - float gammabwb=1.f; - //if (params->chmixerbw.set=="Ma" || params->chmixerbw.set=="Mr" || params->chmixerbw.set=="Fr" || params->chmixerbw.set=="Fa") { - { - gammabwr=1.f -bwrgam/gamvalr; - gammabwg=1.f -bwggam/gamvalg; - gammabwb=1.f -bwbgam/gamvalb; - } + float gammabwr=1.f; + float gammabwg=1.f; + float gammabwb=1.f; + //if (params->blackwhite.setting=="Ma" || params->blackwhite.setting=="Mr" || params->blackwhite.setting=="Fr" || params->blackwhite.setting=="Fa") { + { + gammabwr=1.f -bwrgam/gamvalr; + gammabwg=1.f -bwggam/gamvalg; + gammabwb=1.f -bwbgam/gamvalb; + } + bool hasgammabw = gammabwr!=1.f || gammabwg!=1.f || gammabwb!=1.f; //normalize gamma to sRGB double start = exp(g*log( -0.055 / ((1.0/g-1.0)*1.055 ))); @@ -2335,7 +2316,7 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, LUTf & hltone //if (sat!=0 || hCurveEnabled || sCurveEnabled || vCurveEnabled) { if (sat> -110 || hCurveEnabled || sCurveEnabled || vCurveEnabled) { - + if(algm==1 && blackwhite /* && bwlCurveEnabled*/) sat= -75;//increase effect of luminance mixer bw #ifdef _OPENMP #pragma omp for schedule(dynamic, 5) #endif @@ -2345,10 +2326,8 @@ if (sat> -110 || hCurveEnabled || sCurveEnabled || vCurveEnabled) { float r = tmpImage->r(i,j); float g = tmpImage->g(i,j); float b = tmpImage->b(i,j); - float lum; float h,s,v; Color::rgb2hsv(r,g,b,h,s,v); - if(algm==2 && blackwhite /* && bwlCurveEnabled*/) sat= -75;//increase effect of luminance mixer bw if (sat > 0.5f) { s = (1.f-float(sat)/100.f)*s+float(sat)/100.f*(1.f-SQR(SQR(1.f-min(s,1.0f)))); if (s<0) s=0.f; @@ -2401,7 +2380,7 @@ if (sat> -110 || hCurveEnabled || sCurveEnabled || vCurveEnabled) { //black and white if(blackwhite){ if (hasToneCurvebw1) { - if (curveModebw==ChannelMixerbwParams::TC_MODE_STD_BW){ // Standard + if (beforeCurveMode==BlackWhiteParams::TC_MODE_STD_BW){ // Standard #ifdef _OPENMP #pragma omp for schedule(dynamic, 5) #endif @@ -2412,7 +2391,7 @@ if(blackwhite){ } } } - else if (curveModebw==ChannelMixerbwParams::TC_MODE_FILMLIKE_BW){ // Adobe like + else if (beforeCurveMode==BlackWhiteParams::TC_MODE_FILMLIKE_BW){ // Adobe like #ifdef _OPENMP #pragma omp for schedule(dynamic, 5) #endif @@ -2423,7 +2402,7 @@ if(blackwhite){ } } } - else if (curveModebw==ChannelMixerbwParams::TC_MODE_SATANDVALBLENDING_BW){ // apply the curve on the saturation and value channels + else if (beforeCurveMode==BlackWhiteParams::TC_MODE_SATANDVALBLENDING_BW){ // apply the curve on the saturation and value channels #ifdef _OPENMP #pragma omp for schedule(dynamic, 5) #endif @@ -2438,7 +2417,7 @@ if(blackwhite){ } } } - else if (curveModebw==ChannelMixerbwParams::TC_MODE_WEIGHTEDSTD_BW){ // apply the curve to the rgb channels, weighted + else if (beforeCurveMode==BlackWhiteParams::TC_MODE_WEIGHTEDSTD_BW){ // apply the curve to the rgb channels, weighted #ifdef _OPENMP #pragma omp for schedule(dynamic, 5) #endif @@ -2457,7 +2436,7 @@ if(blackwhite){ } -if(algm ==1 && blackwhite){//desaturated +if (algm==0 && blackwhite){//desaturated #ifdef _OPENMP #pragma omp for schedule(dynamic, 5) #endif @@ -2471,12 +2450,12 @@ if(algm ==1 && blackwhite){//desaturated tmpImage->r(i,j)= lum; tmpImage->g(i,j)=tmpImage->r(i,j); tmpImage->b(i,j)=tmpImage->r(i,j); - Color::trcGammaBW (tmpImage->r(i,j), tmpImage->g(i,j), tmpImage->b(i,j), gammabwr, gammabwg, gammabwb); + if (hasgammabw) Color::trcGammaBW (tmpImage->r(i,j), tmpImage->g(i,j), tmpImage->b(i,j), gammabwr, gammabwg, gammabwb); } } } -if (algm==2 && bwlCurveEnabled && blackwhite) {//Luminance mixer +if (algm==1 && blackwhite && (bwlCurveEnabled || hasgammabw)) {//Luminance mixer #ifdef _OPENMP #pragma omp for schedule(dynamic, 5) #endif @@ -2485,46 +2464,47 @@ if (algm==2 && bwlCurveEnabled && blackwhite) {//Luminance mixer float r = tmpImage->r(i,j); float g = tmpImage->g(i,j); float b = tmpImage->b(i,j); - float lum; - float h,s,v; - Color::rgb2hsv(r,g,b,h,s,v); - if (v<0) v=0; - float valparam = bwlCurve->getVal((double)h)-0.5f; - valparam *= (1.f-(SQR(SQR(1.f-min(s,1.0f))))); - //float valcor=1.f/(0.501f-valparam); - - if (valparam > 0.00001f) { - // v = (1.f-valparam)*v+ valparam*(1.f-(SQR(SQR(1.f-min(v,1.0f)))));// SQR (SQR to increase action and avoid artefacts, but there's always a little - // v = (1.f-valparam)*v+ valparam*(1.f- pow((1.f-min(v,1.0f)), 2.f+valcor));//(SQR(SQR(1.f-min(v,1.0f)))));// SQR (SQR to increase action and avoid artefacts, but there's always a little - v *= (1.f + 4.f*valparam); - } else { - if (valparam < -0.00001f) - {v *= (1.f + 4.f*valparam);//4to increase action - } - } - CLIPD(v); - Color::hsv2rgb(h, s, v, tmpImage->r(i,j), tmpImage->g(i,j), tmpImage->b(i,j)); - lum = (0.299f*tmpImage->r(i,j)+0.587f*tmpImage->g(i,j)+ 0.114f*tmpImage->b(i,j));// get luminance - tmpImage->r(i,j)=lum;//black and white - tmpImage->g(i,j)=lum; - tmpImage->b(i,j)=lum; - //correction gamma : pseudo TRC curve - Color::trcGammaBW (tmpImage->r(i,j), tmpImage->g(i,j), tmpImage->b(i,j), gammabwr, gammabwg, gammabwb); - + if (bwlCurveEnabled) { + float lum; + float h,s,v; + Color::rgb2hsv(r,g,b,h,s,v); + if (v<0) v=0; + float valparam = bwlCurve->getVal((double)h)-0.5f; + valparam *= (1.f-(SQR(SQR(1.f-min(s,1.0f))))); + //float valcor=1.f/(0.501f-valparam); + + if (valparam > 0.00001f) { + // v = (1.f-valparam)*v+ valparam*(1.f-(SQR(SQR(1.f-min(v,1.0f)))));// SQR (SQR to increase action and avoid artefacts, but there's always a little + // v = (1.f-valparam)*v+ valparam*(1.f- pow((1.f-min(v,1.0f)), 2.f+valcor));//(SQR(SQR(1.f-min(v,1.0f)))));// SQR (SQR to increase action and avoid artefacts, but there's always a little + v *= (1.f + 4.f*valparam); + } else { + if (valparam < -0.00001f) + {v *= (1.f + 4.f*valparam);//4to increase action + } + } + CLIPD(v); + Color::hsv2rgb(h, s, v, tmpImage->r(i,j), tmpImage->g(i,j), tmpImage->b(i,j)); + lum = (0.299f*tmpImage->r(i,j)+0.587f*tmpImage->g(i,j)+ 0.114f*tmpImage->b(i,j));// get luminance + tmpImage->r(i,j)=lum;//black and white + tmpImage->g(i,j)=lum; + tmpImage->b(i,j)=lum; } + //correction gamma : pseudo TRC curve + if (hasgammabw) Color::trcGammaBW (tmpImage->r(i,j), tmpImage->g(i,j), tmpImage->b(i,j), gammabwr, gammabwg, gammabwb); } } +} -if(algm==3 && blackwhite) {//channel-mixer - if (params->chmixerbw.autoc) { - // auto channel-mixer - float nr=0.f; - float ng=0.f; - float nb=0.f; +if (algm==2 && blackwhite) {//channel-mixer + if (params->blackwhite.autoc) { + // auto channel-mixer + float nr=0.f; + float ng=0.f; + float nb=0.f; #ifdef _OPENMP #pragma omp for schedule(dynamic, 5) -#endif +#endif for (int i=0; ir(i,j); @@ -2537,7 +2517,7 @@ if(algm==3 && blackwhite) {//channel-mixer srgb = nr+ng+nb; float knr=nr/srgb; float kng=ng/srgb; - float knb=nb/srgb; + float knb=nb/srgb; knr = 1.f/knr; kng = 1.f/kng; knb = 1.f/knb; @@ -2550,32 +2530,32 @@ if(algm==3 && blackwhite) {//channel-mixer autog=kng; autob=knb; } - } - } + } + } //end auto chmix float som, somm; float rM,gM,bM; - som=bwr+bwg+bwb; + som=bwr+bwg+bwb; float mix[3][3]; float val[3]; float in[3]; float kcorec=1.f; //presets - if (params->chmixerbw.set=="Ma" || params->chmixerbw.set=="Fa") {rM=bwr;gM=bwg;bM=bwb;kcorec=som/100.f;} - else if (params->chmixerbw.set=="Mr" || params->chmixerbw.set=="Fr") {rM=bwr;gM=bwg;bM=bwb;} - else if(params->chmixerbw.set=="Nc") {rM=43.f;gM=33.f;bM=30.f;} - else if(params->chmixerbw.set=="Pa") {rM=33.3f;gM=33.3f;bM=33.3f;} - else if(params->chmixerbw.set=="Hp") {rM=41.f;gM=25.f;bM=34.f;} - else if(params->chmixerbw.set=="Ls") {rM=27.f;gM=27.f;bM=46.f;} - else if(params->chmixerbw.set=="Hs") {rM=30.f;gM=28.f;bM=42.f;} - else if(params->chmixerbw.set=="Or") {rM=0.f;gM=42.f;bM=58.f;} - else if(params->chmixerbw.set=="Hc") {rM=40.f;gM=34.f;bM=60.f;} - else if(params->chmixerbw.set=="Lu") {rM=30.f;gM=59.f;bM=11.f;} - else if(params->chmixerbw.set=="La") {rM=66.f;gM=24.f;bM=10.f;} - else if(params->chmixerbw.set=="Po") {rM=54.f;gM=44.f;bM=12.f;} - else if(params->chmixerbw.set=="Ir") {rM=-40.f;gM=200.f;bM=-17.f;} + if (params->blackwhite.setting=="RGB-Abs" || params->blackwhite.setting=="ROYGCBMP-Abs") {rM=bwr;gM=bwg;bM=bwb;kcorec=som/100.f;} + else if(params->blackwhite.setting=="RGB-Rel" || params->blackwhite.setting=="ROYGCBMP-Rel") {rM=bwr;gM=bwg;bM=bwb;} + else if(params->blackwhite.setting=="NormalContrast") {rM=43.f ;gM=33.f; bM=30.f;} + else if(params->blackwhite.setting=="Panchromatic") {rM=33.3f;gM=33.3f;bM=33.3f;} + else if(params->blackwhite.setting=="HyperPanchromatic") {rM=41.f ;gM=25.f; bM=34.f;} + else if(params->blackwhite.setting=="LowSensitivity") {rM=27.f ;gM=27.f; bM=46.f;} + else if(params->blackwhite.setting=="HighSensitivity") {rM=30.f ;gM=28.f; bM=42.f;} + else if(params->blackwhite.setting=="Orthochromatic") {rM=0.f ;gM=42.f; bM=58.f;} + else if(params->blackwhite.setting=="HighContrast") {rM=40.f ;gM=34.f; bM=60.f;} + else if(params->blackwhite.setting=="Luminance") {rM=30.f ;gM=59.f; bM=11.f;} + else if(params->blackwhite.setting=="Landscape") {rM=66.f ;gM=24.f; bM=10.f;} + else if(params->blackwhite.setting=="Portrait") {rM=54.f ;gM=44.f; bM=12.f;} + else if(params->blackwhite.setting=="InfraRed") {rM=-40.f;gM=200.f;bM=-17.f;} - if (params->chmixerbw.autoc) {rM=autor;gM=autog;bM=autob; bworan=33.f; bwyell=33.f;bwmag=33.f;bwpur=33.f;bwcyan=33.f;} // auto channel-mixer + if (params->blackwhite.autoc) {rM=autor;gM=autog;bM=autob; mixerOrange=33.f; mixerYellow=33.f;mixerMagenta=33.f;mixerPurple=33.f;mixerCyan=33.f;} // auto channel-mixer rrm=rM; ggm=gM; bbm=bM; @@ -2584,7 +2564,7 @@ if(algm==3 && blackwhite) {//channel-mixer rM=rM/somm;gM=gM/somm;bM=bM/somm; float koymcp=0.f; - if(params->chmixerbw.set=="Fa" || params->chmixerbw.set=="Fr") { + if(params->blackwhite.setting=="ROYGCBMP-Abs" || params->blackwhite.setting=="ROYGCBMP-Rel") { float obM=0.f; float ogM=0.f; float orM=0.f; @@ -2605,71 +2585,70 @@ if(algm==3 && blackwhite) {//channel-mixer float cgM=0.f; float cbM=0.f; - bool complem = params->chmixerbw.enabledcc; float fcompl = 1.f; if(complem) fcompl = 3.f; // ponderate filters: report to R=G=B=33 // I ponder RGB channel, not only orange or yellow or cyan, etc...it's my choice ! - if(bworan !=33){//orange - orM=fcompl*(bworan*0.67f - 22.11f)/100.f; - ogM=fcompl*(-0.164f*bworan+5.412f)/100.f; - if(complem) obM=(-0.492f*bworan+16.236f)/100.f; + if(mixerOrange !=33){//orange + orM=fcompl*(mixerOrange*0.67f - 22.11f)/100.f; + ogM=fcompl*(-0.164f*mixerOrange+5.412f)/100.f; + if(complem) obM=(-0.492f*mixerOrange+16.236f)/100.f; rM+=orM; gM+=ogM; bM+=obM; koymcp += (orM+ogM+obM); } - if(bwyell !=33){//yellow - yrM=fcompl*(-0.134f*bwyell +4.422f)/100.f;//22.4 - ygM=fcompl*(0.5f*bwyell-16.5f)/100.f; - if(complem) ybM=(-0.492f*bwyell+16.236f)/100.f; + if(mixerYellow !=33){//yellow + yrM=fcompl*(-0.134f*mixerYellow +4.422f)/100.f;//22.4 + ygM=fcompl*(0.5f*mixerYellow-16.5f)/100.f; + if(complem) ybM=(-0.492f*mixerYellow+16.236f)/100.f; rM+=yrM; gM+=ygM; bM+=ybM; - koymcp += (yrM+ygM+ybM); + koymcp += (yrM+ygM+ybM); } - if(bwmag !=33){//Magenta - mrM=fcompl*(0.67f*bwmag -22.11f)/100.f; - mbM=fcompl*(-0.164f*bwmag+5.412f)/100.f; - if(complem) mgM=(-0.492f*bwmag+16.236f)/100.f; + if(mixerMagenta !=33){//Magenta + mrM=fcompl*(0.67f*mixerMagenta -22.11f)/100.f; + mbM=fcompl*(-0.164f*mixerMagenta+5.412f)/100.f; + if(complem) mgM=(-0.492f*mixerMagenta+16.236f)/100.f; rM+=mrM; gM+=mgM; bM+=mbM; - koymcp += (mrM+mgM+mbM); + koymcp += (mrM+mgM+mbM); } - if(bwpur!=33){//Purple - prM=fcompl*(-0.134f*bwpur +4.422f)/100.f; - pbM=fcompl*(0.5f*bwpur-16.5f)/100.f; - if(complem) pgM=(-0.492f*bwpur+16.236f)/100.f; + if(mixerPurple!=33){//Purple + prM=fcompl*(-0.134f*mixerPurple +4.422f)/100.f; + pbM=fcompl*(0.5f*mixerPurple-16.5f)/100.f; + if(complem) pgM=(-0.492f*mixerPurple+16.236f)/100.f; rM+=prM; gM+=pgM; bM+=pbM; - koymcp += (prM+pgM+pbM); + koymcp += (prM+pgM+pbM); } - if(bwcyan !=33){//Cyan - cgM=fcompl*(-0.134f*bwcyan +4.422f)/100.f; - cbM=fcompl*(0.5f*bwcyan-16.5f)/100.f; - if(complem) crM=(-0.492f*bwcyan+16.236f)/100.f; + if(mixerCyan !=33){//Cyan + cgM=fcompl*(-0.134f*mixerCyan +4.422f)/100.f; + cbM=fcompl*(0.5f*mixerCyan-16.5f)/100.f; + if(complem) crM=(-0.492f*mixerCyan+16.236f)/100.f; rM+=crM; gM+=cgM; bM+=cbM; - koymcp += (crM+cgM+cbM); + koymcp += (crM+cgM+cbM); } } - if(params->chmixerbw.set=="Fa") {kcorec=koymcp+som/100.f;} + if(params->blackwhite.setting=="ROYGCBMP-Abs") {kcorec=koymcp+som/100.f;} //Color filters float filred,filgreen,filblue; filred=1.f;filgreen=1.f;filblue=1.f; - if (params->chmixerbw.fil=="No") {filred=1.f;filgreen=1.f;filblue=1.f;} - else if (params->chmixerbw.fil=="Re") {filred=1.f;filgreen=0.05f;filblue=0.f;} - else if (params->chmixerbw.fil=="Or") {filred=1.f;filgreen=0.6f;filblue=0.f;} - else if (params->chmixerbw.fil=="Ye") {filred=1.f;filgreen=1.f;filblue=0.05f;} - else if (params->chmixerbw.fil=="Yg") {filred=0.6f;filgreen=1.f;filblue=0.3f;} - else if (params->chmixerbw.fil=="Gr") {filred=0.2f;filgreen=1.f;filblue=0.3f;} - else if (params->chmixerbw.fil=="Cy") {filred=0.05f;filgreen=1.f;filblue=1.f;} - else if (params->chmixerbw.fil=="Bl") {filred=0.f;filgreen=0.05f;filblue=1.f;} - else if (params->chmixerbw.fil=="Pu") {filred=1.f;filgreen=0.05f;filblue=1.f;} + if (params->blackwhite.filter=="None") {filred=1.f; filgreen=1.f; filblue=1.f;} + else if (params->blackwhite.filter=="Red") {filred=1.f; filgreen=0.05f;filblue=0.f;} + else if (params->blackwhite.filter=="Orange") {filred=1.f; filgreen=0.6f; filblue=0.f;} + else if (params->blackwhite.filter=="Yellow") {filred=1.f; filgreen=1.f; filblue=0.05f;} + else if (params->blackwhite.filter=="YellowGreen") {filred=0.6f; filgreen=1.f; filblue=0.3f;} + else if (params->blackwhite.filter=="Green") {filred=0.2f; filgreen=1.f; filblue=0.3f;} + else if (params->blackwhite.filter=="Cyan") {filred=0.05f;filgreen=1.f; filblue=1.f;} + else if (params->blackwhite.filter=="Blue") {filred=0.f; filgreen=0.05f;filblue=1.f;} + else if (params->blackwhite.filter=="Purple") {filred=1.f; filgreen=0.05f;filblue=1.f;} rM = rM*filred; @@ -2702,14 +2681,14 @@ if(algm==3 && blackwhite) {//channel-mixer for (int end=0; end < 3 ; end++){ val[end]=0.f; for (int beg=0; beg < 3 ; beg++) { - val[end] += mix[end][beg] *in[beg]; + val[end] += mix[end][beg] *in[beg]; } } tmpImage->r(i,j) = CLIP(val[0]*kcorec); tmpImage->g(i,j) = CLIP(val[1]*kcorec); tmpImage->b(i,j) = CLIP(val[2]*kcorec); //correction gamma : pseudo TRC curve - Color::trcGammaBW (tmpImage->r(i,j), tmpImage->g(i,j), tmpImage->b(i,j), gammabwr, gammabwg, gammabwb); + if (hasgammabw) Color::trcGammaBW (tmpImage->r(i,j), tmpImage->g(i,j), tmpImage->b(i,j), gammabwr, gammabwg, gammabwb); } } @@ -2718,7 +2697,7 @@ if(algm==3 && blackwhite) {//channel-mixer if(blackwhite){//after BW conversion if (hasToneCurvebw2) { - if (curveModebw2==ChannelMixerbwParams::TC_MODE_STD_BW){ // Standard + if (afterCurveMode==BlackWhiteParams::TC_MODE_STD_BW){ // Standard #ifdef _OPENMP #pragma omp for schedule(dynamic, 5) #endif @@ -2729,7 +2708,7 @@ if(blackwhite){//after BW conversion } } } - else if (curveModebw2==ChannelMixerbwParams::TC_MODE_WEIGHTEDSTD_BW){ // apply the curve to the rgb channels, weighted + else if (afterCurveMode==BlackWhiteParams::TC_MODE_WEIGHTEDSTD_BW){ // apply the curve to the rgb channels, weighted #ifdef _OPENMP #pragma omp for schedule(dynamic, 5) #endif @@ -2825,7 +2804,7 @@ void ImProcFunctions::chromiLuminanceCurve (int pW, LabImage* lold, LabImage* ln //init Flatcurve for C=f(H) FlatCurve* chCurve = NULL; bool chutili = false; - if (!params->labCurve.bwtoning) { + if (params->labCurve.chromaticity > -100) { chCurve = new FlatCurve(params->labCurve.chcurve); if (chCurve && !chCurve->isIdentity()) { chutili=true; @@ -2901,7 +2880,7 @@ void ImProcFunctions::chromiLuminanceCurve (int pW, LabImage* lold, LabImage* ln // reference to the params structure has to be done outside of the parallelization to avoid CPU cache problem bool highlight = params->hlrecovery.enabled; //Get the value if "highlight reconstruction" is activated int chromaticity = params->labCurve.chromaticity; - bool bwToning = params->labCurve.bwtoning /*|| params->chmixerbw.met=="Ch" */ || params->chmixerbw.enabled || (params->chmixerbw.bwredgam!=0 && params->chmixerbw.enabled) || (params->chmixerbw.bwgreengam!=0 && params->chmixerbw.enabled) || (params->chmixerbw.bwbluegam!=0 && params->chmixerbw.enabled); + bool bwToning = params->labCurve.chromaticity==-100 /*|| params->blackwhite.method=="Ch" */ || params->blackwhite.enabled || params->blackwhite.gammaRed!=0 || params->blackwhite.gammaGreen!=0 || params->blackwhite.gammaBlue!=0; //if(bwToning) printf("OK bwto\n"); else printf("pas de bw\n"); bool LCredsk = params->labCurve.lcredsk; bool ccut = ccutili; @@ -2982,7 +2961,7 @@ void ImProcFunctions::chromiLuminanceCurve (int pW, LabImage* lold, LabImage* ln // end pyramid if(params->dirpyrDenoise.enabled && chromaticity ==0) chromaticity = 0.5f; - if(chromaticity!=0 && !bwToning){ + if(!bwToning){ float chromahist; float factorskin, factorsat, factor, factorskinext, interm; float scale = 100.0f/100.1f;//reduction in normal zone diff --git a/rtengine/procevents.h b/rtengine/procevents.h index 75dbdb4af..0f19b04e3 100644 --- a/rtengine/procevents.h +++ b/rtengine/procevents.h @@ -188,7 +188,7 @@ enum ProcEvent { EvRGBgCurve=163, EvRGBbCurve=164, EvNeutralExp=165, - EvLBWtoning=166, +// EvLBWtoning=166, -- can be reused -- EvLCCCurve=167, EvLCHCurve=168, EvVibranceSkinTonesCurve=169, @@ -243,22 +243,22 @@ enum ProcEvent { EvBWredgam=217, EvBWgreengam=218, EvBWbluegam=219, - EvBWfil=220, - EvBWset=221, + EvBWfilter=220, + EvBWsetting=221, EvBWoran=222, EvBWyell=223, EvBWcyan=224, EvBWmag=225, EvBWpur=226, - EvBWequalV=227, + EvBWLuminanceEqual=227, EvBWChmixEnabledLm=228, - EvBWmet=229, - EvToneCurvebw1=230, - EvToneCurveBWMode1=231, - EvToneCurvebw2=232, - EvToneCurveBWMode2=233, + EvBWmethod=229, + EvBWBeforeCurve=230, + EvBWBeforeCurveMode=231, + EvBWAfterCurve=232, + EvBWAfterCurveMode=233, EvAutoch=234, - EvFixedch=235, +// EvFixedch=235, -- can be reused -- EvNeutralBW=236, EvGradientFeather=237, EvGradientStrength=238, diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 28ea390f1..0d06bd9f1 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -153,7 +153,6 @@ void ProcParams::setDefaults () { labCurve.lcredsk = true; labCurve.rstprotection = 0; - labCurve.bwtoning = false; labCurve.lcurve.clear (); labCurve.lcurve.push_back(DCT_Linear); labCurve.acurve.clear (); @@ -356,7 +355,7 @@ void ProcParams::setDefaults () { vignetting.strength = 1; vignetting.centerX = 0; vignetting.centerY = 0; - + lensProf.lcpFile=""; lensProf.useDist=lensProf.useVign=true; lensProf.useCA=false; @@ -370,35 +369,33 @@ void ProcParams::setDefaults () { chmixer.blue[0] = 0; chmixer.blue[1] = 0; chmixer.blue[2] = 100; - - chmixerbw.autoc = false; - chmixerbw.enabledcc = true; - chmixerbw.enabled = false; - chmixerbw.bwred = 33; - chmixerbw.bwgreen = 33; - chmixerbw.bwblue = 33; - chmixerbw.bwredgam = 0; - chmixerbw.bwgreengam = 0; - chmixerbw.bwbluegam = 0; - chmixerbw.bworan = 33; - chmixerbw.bwyell = 33; - chmixerbw.bwcyan = 33; - chmixerbw.bwmag = 33; - chmixerbw.bwpur = 33; - chmixerbw.vcurve.clear (); - chmixerbw.vcurve.push_back (FCT_Linear); - chmixerbw.met = "No"; - chmixerbw.fil = "No"; - chmixerbw.set = "Nc"; - chmixerbw.curve.clear (); - chmixerbw.curve.push_back(DCT_Linear); - chmixerbw.curveMode = ChannelMixerbwParams::TC_MODE_STD_BW; - chmixerbw.curve2.clear (); - chmixerbw.curve2.push_back(DCT_Linear); - chmixerbw.curveMode2 = ChannelMixerbwParams::TC_MODE_STD_BW; - - - + + blackwhite.autoc = false; + blackwhite.enabledcc = true; + blackwhite.enabled = false; + blackwhite.mixerRed = 33; + blackwhite.mixerGreen = 33; + blackwhite.mixerBlue = 33; + blackwhite.mixerOrange = 33; + blackwhite.mixerYellow = 33; + blackwhite.mixerCyan = 33; + blackwhite.mixerMagenta = 33; + blackwhite.mixerPurple = 33; + blackwhite.gammaRed = 0; + blackwhite.gammaGreen = 0; + blackwhite.gammaBlue = 0; + blackwhite.luminanceCurve.clear (); + blackwhite.luminanceCurve.push_back (FCT_Linear); + blackwhite.method = "Desaturation"; + blackwhite.filter = "None"; + blackwhite.setting = "NormalContrast"; + blackwhite.beforeCurve.clear (); + blackwhite.beforeCurve.push_back(DCT_Linear); + blackwhite.beforeCurveMode = BlackWhiteParams::TC_MODE_STD_BW; + blackwhite.afterCurve.clear (); + blackwhite.afterCurve.push_back(DCT_Linear); + blackwhite.afterCurveMode = BlackWhiteParams::TC_MODE_STD_BW; + resize.enabled = false; resize.scale = 1.0; resize.appliesTo = "Cropped area"; @@ -406,7 +403,7 @@ void ProcParams::setDefaults () { resize.dataspec = 0; resize.width = 800; resize.height = 600; - + icm.input = "(cameraICC)"; icm.blendCMSMatrix = false; icm.toneCurve = false; @@ -418,7 +415,7 @@ void ProcParams::setDefaults () { icm.slpos=4.5; icm.freegamma = false; - dirpyrequalizer.enabled = false; + dirpyrequalizer.enabled = false; for(int i = 0; i < 4; i ++) { dirpyrequalizer.mult[i] = 1.0; @@ -498,7 +495,6 @@ static Glib::ustring relativePathIfInside(Glib::ustring procparams_fname, bool f } Glib::ustring dir1 = Glib::path_get_dirname(procparams_fname) + G_DIR_SEPARATOR_S; Glib::ustring dir2 = Glib::path_get_dirname(embedded_fname) + G_DIR_SEPARATOR_S; - size_t find = dir2.find(dir1); if (dir2.substr(0, dir1.length()) != dir1) { // it's in a different directory, ie not inside return prefix + embedded_fname; @@ -520,7 +516,7 @@ int ProcParams::save (Glib::ustring fname, Glib::ustring fname2, bool fnameAbsol if (!pedited || pedited->general.colorlabel) keyFile.set_integer ("General", "ColorLabel", colorlabel); if (!pedited || pedited->general.intrash) keyFile.set_boolean ("General", "InTrash", inTrash); - // save tonecurve: + // save tone curve if (!pedited || pedited->toneCurve.autoexp) keyFile.set_boolean ("Exposure", "Auto", toneCurve.autoexp); if (!pedited || pedited->toneCurve.clip) keyFile.set_double ("Exposure", "Clip", toneCurve.clip); if (!pedited || pedited->toneCurve.expcomp) keyFile.set_double ("Exposure", "Compensation", toneCurve.expcomp); @@ -589,67 +585,70 @@ int ProcParams::save (Glib::ustring fname, Glib::ustring fname2, bool fnameAbsol Glib::ArrayHandle bmix (chmixer.blue, 3, Glib::OWNERSHIP_NONE); keyFile.set_integer_list("Channel Mixer", "Blue", bmix); } - //save chmixer BW - if (!pedited || pedited->chmixerbw.curveMode) { - Glib::ustring methodbw; - switch (chmixerbw.curveMode) { - case (ChannelMixerbwParams::TC_MODE_STD_BW): - methodbw = "Standardbw"; + + //save Black & White + if (!pedited || pedited->blackwhite.enabled) keyFile.set_boolean ("Black & White", "Enabled", blackwhite.enabled); + if (!pedited || pedited->blackwhite.method) keyFile.set_string ("Black & White", "Method", blackwhite.method ); + if (!pedited || pedited->blackwhite.autoc) keyFile.set_boolean ("Black & White", "Auto", blackwhite.autoc); + if (!pedited || pedited->blackwhite.enabledcc) keyFile.set_boolean ("Black & White", "ComplementaryColors", blackwhite.enabledcc); + if (!pedited || pedited->blackwhite.setting) keyFile.set_string ("Black & White", "Setting", blackwhite.setting ); + if (!pedited || pedited->blackwhite.filter) keyFile.set_string ("Black & White", "Filter", blackwhite.filter ); + if (!pedited || pedited->blackwhite.mixerRed) keyFile.set_integer ("Black & White", "MixerRed", blackwhite.mixerRed); + if (!pedited || pedited->blackwhite.mixerOrange) keyFile.set_integer ("Black & White", "MixerOrange", blackwhite.mixerOrange); + if (!pedited || pedited->blackwhite.mixerYellow) keyFile.set_integer ("Black & White", "MixerYellow", blackwhite.mixerYellow); + if (!pedited || pedited->blackwhite.mixerGreen) keyFile.set_integer ("Black & White", "MixerGreen", blackwhite.mixerGreen); + if (!pedited || pedited->blackwhite.mixerCyan) keyFile.set_integer ("Black & White", "MixerCyan", blackwhite.mixerCyan); + if (!pedited || pedited->blackwhite.mixerBlue) keyFile.set_integer ("Black & White", "MixerBlue", blackwhite.mixerBlue); + if (!pedited || pedited->blackwhite.mixerMagenta) keyFile.set_integer ("Black & White", "MixerMagenta", blackwhite.mixerMagenta); + if (!pedited || pedited->blackwhite.mixerPurple) keyFile.set_integer ("Black & White", "MixerPurple", blackwhite.mixerPurple); + if (!pedited || pedited->blackwhite.gammaRed) keyFile.set_integer ("Black & White", "GammaRed", blackwhite.gammaRed); + if (!pedited || pedited->blackwhite.gammaGreen) keyFile.set_integer ("Black & White", "GammaGreen", blackwhite.gammaGreen); + if (!pedited || pedited->blackwhite.gammaBlue) keyFile.set_integer ("Black & White", "GammaBlue", blackwhite.gammaBlue); + if (!pedited || pedited->blackwhite.luminanceCurve) { + Glib::ArrayHandle luminanceCurve = blackwhite.luminanceCurve; + keyFile.set_double_list("Black & White", "LuminanceCurve", luminanceCurve); + } + if (!pedited || pedited->blackwhite.beforeCurveMode) { + Glib::ustring mode; + switch (blackwhite.beforeCurveMode) { + case (BlackWhiteParams::TC_MODE_STD_BW): + mode = "Standard"; break; - case (ChannelMixerbwParams::TC_MODE_FILMLIKE_BW): - methodbw = "FilmLikebw"; + case (BlackWhiteParams::TC_MODE_FILMLIKE_BW): + mode = "FilmLike"; break; - case (ChannelMixerbwParams::TC_MODE_SATANDVALBLENDING_BW): - methodbw = "SatAndValueBlendingbw"; + case (BlackWhiteParams::TC_MODE_SATANDVALBLENDING_BW): + mode = "SatAndValueBlending"; break; - case (ChannelMixerbwParams::TC_MODE_WEIGHTEDSTD_BW): - methodbw = "WeightedStdbw"; + case (BlackWhiteParams::TC_MODE_WEIGHTEDSTD_BW): + mode = "WeightedStd"; break; } - keyFile.set_string ("Channel Mixer", "CurveMode", methodbw); + keyFile.set_string ("Black & White", "BeforeCurveMode", mode); } - - if (!pedited || pedited->chmixerbw.curveMode2) { - Glib::ustring methodbw2; - switch (chmixerbw.curveMode2) { - case (ChannelMixerbwParams::TC_MODE_STD_BW): - methodbw2 = "Standard"; + + if (!pedited || pedited->blackwhite.afterCurveMode) { + Glib::ustring mode; + switch (blackwhite.afterCurveMode) { + case (BlackWhiteParams::TC_MODE_STD_BW): + mode = "Standard"; break; - case (ChannelMixerbwParams::TC_MODE_WEIGHTEDSTD_BW): - methodbw2 = "WeightedStd"; + case (BlackWhiteParams::TC_MODE_WEIGHTEDSTD_BW): + mode = "WeightedStd"; + break; + default: break; } - keyFile.set_string ("Channel Mixer", "CurveMode2", methodbw2); + keyFile.set_string ("Black & White", "AfterCurveMode", mode); } - - if (!pedited || pedited->chmixerbw.curve) { - Glib::ArrayHandle tcurvebw = chmixerbw.curve; - keyFile.set_double_list("Channel Mixer", "Curve", tcurvebw); + + if (!pedited || pedited->blackwhite.beforeCurve) { + Glib::ArrayHandle tcurvebw = blackwhite.beforeCurve; + keyFile.set_double_list("Black & White", "BeforeCurve", tcurvebw); } - if (!pedited || pedited->chmixerbw.curve2) { - Glib::ArrayHandle tcurvebw2 = chmixerbw.curve2; - keyFile.set_double_list("Channel Mixer", "Curve2", tcurvebw2); - } - if (!pedited || pedited->chmixerbw.autoc) keyFile.set_boolean ("Channel Mixer", "Autoc", chmixerbw.autoc); - if (!pedited || pedited->chmixerbw.enabledcc) keyFile.set_boolean ("Channel Mixer", "Enabledcc", chmixerbw.enabledcc); - if (!pedited || pedited->chmixerbw.enabled) keyFile.set_boolean ("Channel Mixer", "Enabled", chmixerbw.enabled); - if (!pedited || pedited->chmixerbw.bwred) keyFile.set_integer ("Channel Mixer", "bwred", chmixerbw.bwred); - if (!pedited || pedited->chmixerbw.bwgreen) keyFile.set_integer ("Channel Mixer", "bwgreen", chmixerbw.bwgreen); - if (!pedited || pedited->chmixerbw.bwblue) keyFile.set_integer ("Channel Mixer", "bwblue", chmixerbw.bwblue); - if (!pedited || pedited->chmixerbw.bwredgam) keyFile.set_integer ("Channel Mixer", "bwredgam", chmixerbw.bwredgam); - if (!pedited || pedited->chmixerbw.bwgreengam) keyFile.set_integer ("Channel Mixer", "bwgreengam", chmixerbw.bwgreengam); - if (!pedited || pedited->chmixerbw.bwbluegam) keyFile.set_integer ("Channel Mixer", "bwbluegam", chmixerbw.bwbluegam); - if (!pedited || pedited->chmixerbw.fil) keyFile.set_string ("Channel Mixer", "Filter", chmixerbw.fil ); - if (!pedited || pedited->chmixerbw.met) keyFile.set_string ("Channel Mixer", "Met", chmixerbw.met ); - if (!pedited || pedited->chmixerbw.set) keyFile.set_string ("Channel Mixer", "Set", chmixerbw.set ); - if (!pedited || pedited->chmixerbw.bworan) keyFile.set_integer ("Channel Mixer", "bworan", chmixerbw.bworan); - if (!pedited || pedited->chmixerbw.bwyell) keyFile.set_integer ("Channel Mixer", "bwyell", chmixerbw.bwyell); - if (!pedited || pedited->chmixerbw.bwcyan) keyFile.set_integer ("Channel Mixer", "bwcyan", chmixerbw.bwcyan); - if (!pedited || pedited->chmixerbw.bwmag) keyFile.set_integer ("Channel Mixer", "bwmag", chmixerbw.bwmag); - if (!pedited || pedited->chmixerbw.bwpur) keyFile.set_integer ("Channel Mixer", "bwpur", chmixerbw.bwpur); - if (!pedited || pedited->chmixerbw.vcurve) { - Glib::ArrayHandle vcurve = chmixerbw.vcurve; - keyFile.set_double_list("Channel Mixer", "VCurve", vcurve); + if (!pedited || pedited->blackwhite.afterCurve) { + Glib::ArrayHandle tcurvebw = blackwhite.afterCurve; + keyFile.set_double_list("Black & White", "AfterCurve", tcurvebw); } // save luma curve @@ -658,7 +657,6 @@ int ProcParams::save (Glib::ustring fname, Glib::ustring fname2, bool fnameAbsol if (!pedited || pedited->labCurve.chromaticity) keyFile.set_integer ("Luminance Curve", "Chromaticity", labCurve.chromaticity); if (!pedited || pedited->labCurve.avoidcolorshift) keyFile.set_boolean ("Luminance Curve", "AvoidColorShift", labCurve.avoidcolorshift); if (!pedited || pedited->labCurve.rstprotection) keyFile.set_double ("Luminance Curve", "RedAndSkinTonesProtection", labCurve.rstprotection); - if (!pedited || pedited->labCurve.bwtoning) keyFile.set_boolean ("Luminance Curve", "BWtoning", labCurve.bwtoning); if (!pedited || pedited->labCurve.lcredsk) keyFile.set_boolean ("Luminance Curve", "LCredsk", labCurve.lcredsk); if (!pedited || pedited->labCurve.lcurve) { @@ -1173,14 +1171,14 @@ if (keyFile.has_group ("Exposure")) { } // load channel mixer curve -if (keyFile.has_group ("Channel Mixer")) { +if (keyFile.has_group ("Channel Mixer")) { if (keyFile.has_key ("Channel Mixer", "Red") && keyFile.has_key ("Channel Mixer", "Green") && keyFile.has_key ("Channel Mixer", "Blue")) { if (pedited) { pedited->chmixer.red[0] = pedited->chmixer.red[1] = pedited->chmixer.red[2] = true; pedited->chmixer.green[0] = pedited->chmixer.green[1] = pedited->chmixer.green[2] = true; pedited->chmixer.blue[0] = pedited->chmixer.blue[1] = pedited->chmixer.blue[2] = true; } - + Glib::ArrayHandle rmix = keyFile.get_integer_list ("Channel Mixer", "Red"); Glib::ArrayHandle gmix = keyFile.get_integer_list ("Channel Mixer", "Green"); Glib::ArrayHandle bmix = keyFile.get_integer_list ("Channel Mixer", "Blue"); @@ -1188,41 +1186,45 @@ if (keyFile.has_group ("Channel Mixer")) { memcpy (chmixer.green, gmix.data(), 3*sizeof(int)); memcpy (chmixer.blue, bmix.data(), 3*sizeof(int)); } - //load channel mixer BW - if (keyFile.has_key ("Channel Mixer", "CurveMode")) { - Glib::ustring sMode = keyFile.get_string ("Channel Mixer", "CurveMode"); - if (sMode == "Standardbw") chmixerbw.curveMode = ChannelMixerbwParams::TC_MODE_STD_BW; - else if (sMode == "FilmLikebw") chmixerbw.curveMode = ChannelMixerbwParams::TC_MODE_FILMLIKE_BW; - else if (sMode == "SatAndValueBlendingbw") chmixerbw.curveMode = ChannelMixerbwParams::TC_MODE_SATANDVALBLENDING_BW; - else if (sMode == "WeightedStdbw") chmixerbw.curveMode = ChannelMixerbwParams::TC_MODE_WEIGHTEDSTD_BW; - if (pedited) pedited->chmixerbw.curveMode = true; +} + + // load black & white +if (keyFile.has_group ("Black & White")) { + if (keyFile.has_key ("Black & White", "Enabled")) { blackwhite.enabled = keyFile.get_boolean ("Black & White", "Enabled"); if (pedited) pedited->blackwhite.enabled = true; } + if (keyFile.has_key ("Black & White", "Method")) { blackwhite.method = keyFile.get_string ("Black & White", "Method"); if (pedited) pedited->blackwhite.method = true; } + + if (keyFile.has_key ("Black & White", "Auto")) { blackwhite.autoc = keyFile.get_boolean ("Black & White", "Auto"); if (pedited) pedited->blackwhite.autoc = true; } + if (keyFile.has_key ("Black & White", "ComplementaryColors")) { blackwhite.enabledcc = keyFile.get_boolean ("Black & White", "ComplementaryColors"); if (pedited) pedited->blackwhite.enabledcc = true; } + if (keyFile.has_key ("Black & White", "MixerRed")) { blackwhite.mixerRed = keyFile.get_integer ("Black & White", "MixerRed"); if (pedited) pedited->blackwhite.mixerRed = true; } + if (keyFile.has_key ("Black & White", "MixerOrange")) { blackwhite.mixerOrange = keyFile.get_integer ("Black & White", "MixerOrange"); if (pedited) pedited->blackwhite.mixerOrange = true; } + if (keyFile.has_key ("Black & White", "MixerYellow")) { blackwhite.mixerYellow = keyFile.get_integer ("Black & White", "MixerYellow"); if (pedited) pedited->blackwhite.mixerYellow = true; } + if (keyFile.has_key ("Black & White", "MixerGreen")) { blackwhite.mixerGreen = keyFile.get_integer ("Black & White", "MixerGreen"); if (pedited) pedited->blackwhite.mixerGreen = true; } + if (keyFile.has_key ("Black & White", "MixerCyan")) { blackwhite.mixerCyan = keyFile.get_integer ("Black & White", "MixerCyan"); if (pedited) pedited->blackwhite.mixerCyan = true; } + if (keyFile.has_key ("Black & White", "MixerBlue")) { blackwhite.mixerBlue = keyFile.get_integer ("Black & White", "MixerBlue"); if (pedited) pedited->blackwhite.mixerBlue = true; } + if (keyFile.has_key ("Black & White", "MixerMagenta")) { blackwhite.mixerMagenta = keyFile.get_integer ("Black & White", "MixerMagenta"); if (pedited) pedited->blackwhite.mixerMagenta = true; } + if (keyFile.has_key ("Black & White", "MixerPurple")) { blackwhite.mixerPurple = keyFile.get_integer ("Black & White", "MixerPurple"); if (pedited) pedited->blackwhite.mixerPurple = true; } + if (keyFile.has_key ("Black & White", "GammaRed")) { blackwhite.gammaRed = keyFile.get_integer ("Black & White", "GammaRed"); if (pedited) pedited->blackwhite.gammaRed = true; } + if (keyFile.has_key ("Black & White", "GammaGreen")) { blackwhite.gammaGreen = keyFile.get_integer ("Black & White", "GammaGreen"); if (pedited) pedited->blackwhite.gammaGreen = true; } + if (keyFile.has_key ("Black & White", "GammaBlue")) { blackwhite.gammaBlue = keyFile.get_integer ("Black & White", "GammaBlue"); if (pedited) pedited->blackwhite.gammaBlue = true; } + if (keyFile.has_key ("Black & White", "Filter")) { blackwhite.filter = keyFile.get_string ("Black & White", "Filter"); if (pedited) pedited->blackwhite.filter = true; } + if (keyFile.has_key ("Black & White", "Setting")) { blackwhite.setting = keyFile.get_string ("Black & White", "Setting"); if (pedited) pedited->blackwhite.setting = true; } + if (keyFile.has_key ("Black & White", "LuminanceCurve")) { blackwhite.luminanceCurve = keyFile.get_double_list ("Black & White", "LuminanceCurve"); if (pedited) pedited->blackwhite.luminanceCurve = true; } + if (keyFile.has_key ("Black & White", "BeforeCurve")) { blackwhite.beforeCurve = keyFile.get_double_list ("Black & White", "BeforeCurve"); if (pedited) pedited->blackwhite.beforeCurve = true; } + if (keyFile.has_key ("Black & White", "BeforeCurveMode")) { + Glib::ustring sMode = keyFile.get_string ("Black & White", "BeforeCurveMode"); + if (sMode == "Standard") blackwhite.beforeCurveMode = BlackWhiteParams::TC_MODE_STD_BW; + else if (sMode == "FilmLike") blackwhite.beforeCurveMode = BlackWhiteParams::TC_MODE_FILMLIKE_BW; + else if (sMode == "SatAndValueBlending") blackwhite.beforeCurveMode = BlackWhiteParams::TC_MODE_SATANDVALBLENDING_BW; + else if (sMode == "WeightedStd") blackwhite.beforeCurveMode = BlackWhiteParams::TC_MODE_WEIGHTEDSTD_BW; + if (pedited) pedited->blackwhite.beforeCurveMode = true; } - if (keyFile.has_key ("Channel Mixer", "CurveMode2")) { - Glib::ustring sMode2 = keyFile.get_string ("Channel Mixer", "CurveMode2"); - if (sMode2 == "Standard") chmixerbw.curveMode2 = ChannelMixerbwParams::TC_MODE_STD_BW; - else if (sMode2 == "WeightedStd") chmixerbw.curveMode2 = ChannelMixerbwParams::TC_MODE_WEIGHTEDSTD_BW; - if (pedited) pedited->chmixerbw.curveMode2 = true; + if (keyFile.has_key ("Black & White", "AfterCurve")) { blackwhite.afterCurve = keyFile.get_double_list ("Black & White", "AfterCurve"); if (pedited) pedited->blackwhite.afterCurve = true; } + if (keyFile.has_key ("Black & White", "AfterCurveMode")) { + Glib::ustring sMode2 = keyFile.get_string ("Black & White", "AfterCurveMode"); + if (sMode2 == "Standard") blackwhite.afterCurveMode = BlackWhiteParams::TC_MODE_STD_BW; + else if (sMode2 == "WeightedStd") blackwhite.afterCurveMode = BlackWhiteParams::TC_MODE_WEIGHTEDSTD_BW; + if (pedited) pedited->blackwhite.afterCurveMode = true; } - if (keyFile.has_key ("Channel Mixer", "Autoc")) { chmixerbw.autoc = keyFile.get_boolean ("Channel Mixer", "Autoc"); if (pedited) pedited->chmixerbw.autoc = true; } - if (keyFile.has_key ("Channel Mixer", "Enabledcc")) { chmixerbw.enabledcc = keyFile.get_boolean ("Channel Mixer", "Enabledcc"); if (pedited) pedited->chmixerbw.enabledcc = true; } - if (keyFile.has_key ("Channel Mixer", "Enabled")) { chmixerbw.enabled = keyFile.get_boolean ("Channel Mixer", "Enabled"); if (pedited) pedited->chmixerbw.enabled = true; } - if (keyFile.has_key ("Channel Mixer", "bwred")) { chmixerbw.bwred = keyFile.get_integer ("Channel Mixer", "bwred"); if (pedited) pedited->chmixerbw.bwred = true; } - if (keyFile.has_key ("Channel Mixer", "bwgreen")) { chmixerbw.bwgreen = keyFile.get_integer ("Channel Mixer", "bwgreen"); if (pedited) pedited->chmixerbw.bwgreen = true; } - if (keyFile.has_key ("Channel Mixer", "bwblue")) { chmixerbw.bwblue = keyFile.get_integer ("Channel Mixer", "bwblue"); if (pedited) pedited->chmixerbw.bwblue = true; } - if (keyFile.has_key ("Channel Mixer", "bwredgam")) { chmixerbw.bwredgam = keyFile.get_integer ("Channel Mixer", "bwredgam"); if (pedited) pedited->chmixerbw.bwredgam = true; } - if (keyFile.has_key ("Channel Mixer", "bwgreengam")) { chmixerbw.bwgreengam = keyFile.get_integer ("Channel Mixer", "bwgreengam"); if (pedited) pedited->chmixerbw.bwgreengam = true; } - if (keyFile.has_key ("Channel Mixer", "bwbluegam")) { chmixerbw.bwbluegam = keyFile.get_integer ("Channel Mixer", "bwbluegam"); if (pedited) pedited->chmixerbw.bwbluegam = true; } - if (keyFile.has_key ("Channel Mixer", "Filter")) {chmixerbw.fil = keyFile.get_string ("Channel Mixer", "Filter"); if (pedited) pedited->chmixerbw.fil = true; } - if (keyFile.has_key ("Channel Mixer", "Set")) {chmixerbw.set = keyFile.get_string ("Channel Mixer", "Set"); if (pedited) pedited->chmixerbw.set = true; } - if (keyFile.has_key ("Channel Mixer", "Met")) {chmixerbw.met = keyFile.get_string ("Channel Mixer", "Met"); if (pedited) pedited->chmixerbw.met = true; } - if (keyFile.has_key ("Channel Mixer", "bworan")) { chmixerbw.bworan = keyFile.get_integer ("Channel Mixer", "bworan"); if (pedited) pedited->chmixerbw.bworan = true; } - if (keyFile.has_key ("Channel Mixer", "bwyell")) { chmixerbw.bwyell = keyFile.get_integer ("Channel Mixer", "bwyell"); if (pedited) pedited->chmixerbw.bwyell = true; } - if (keyFile.has_key ("Channel Mixer", "bwcyan")) { chmixerbw.bwcyan = keyFile.get_integer ("Channel Mixer", "bwcyan"); if (pedited) pedited->chmixerbw.bwcyan = true; } - if (keyFile.has_key ("Channel Mixer", "bwmag")) { chmixerbw.bwmag = keyFile.get_integer ("Channel Mixer", "bwmag"); if (pedited) pedited->chmixerbw.bwmag = true; } - if (keyFile.has_key ("Channel Mixer", "bwpur")) { chmixerbw.bwpur = keyFile.get_integer ("Channel Mixer", "bwpur"); if (pedited) pedited->chmixerbw.bwpur = true; } - if (ppVersion>=300) { - if (keyFile.has_key ("Channel Mixer", "VCurve")) {chmixerbw.vcurve = keyFile.get_double_list ("Channel Mixer", "VCurve"); if (pedited) pedited->chmixerbw.vcurve = true; } - } } // load luma curve @@ -1243,7 +1245,15 @@ if (keyFile.has_group ("Luminance Curve")) { if (keyFile.has_key ("Luminance Curve", "RedAndSkinTonesProtection")) { labCurve.rstprotection = keyFile.get_double ("Luminance Curve", "RedAndSkinTonesProtection"); if (pedited) pedited->labCurve.rstprotection = true; } } if (keyFile.has_key ("Luminance Curve", "LCredsk")) { labCurve.lcredsk = keyFile.get_boolean ("Luminance Curve", "LCredsk"); if (pedited) pedited->labCurve.lcredsk = true; } - if (keyFile.has_key ("Luminance Curve", "BWtoning")) { labCurve.bwtoning = keyFile.get_boolean ("Luminance Curve", "BWtoning"); if (pedited) pedited->labCurve.bwtoning = true; } + if (ppVersion < 314) + // Backward compatibility: If BWtoning is true, Chromaticity has to be set to -100, which will produce the same effect + // and will enable the b&w toning mode ('a' & 'b' curves) + if (keyFile.has_key ("Luminance Curve", "BWtoning")) { + if ( keyFile.get_boolean ("Luminance Curve", "BWtoning")) { + labCurve.chromaticity = -100; + if (pedited) pedited->labCurve.chromaticity = true; + } + } if (keyFile.has_key ("Luminance Curve", "LCurve")) { labCurve.lcurve = keyFile.get_double_list ("Luminance Curve", "LCurve"); if (pedited) pedited->labCurve.lcurve = true; } if (keyFile.has_key ("Luminance Curve", "aCurve")) { labCurve.acurve = keyFile.get_double_list ("Luminance Curve", "aCurve"); if (pedited) pedited->labCurve.acurve = true; } if (keyFile.has_key ("Luminance Curve", "bCurve")) { labCurve.bcurve = keyFile.get_double_list ("Luminance Curve", "bCurve"); if (pedited) pedited->labCurve.bcurve = true; } @@ -1746,8 +1756,8 @@ bool ProcParams::operator== (const ProcParams& other) { && toneCurve.autoexp == other.toneCurve.autoexp && toneCurve.clip == other.toneCurve.clip && toneCurve.expcomp == other.toneCurve.expcomp - && toneCurve.curveMode == other.toneCurve.curveMode - && toneCurve.curveMode2 == other.toneCurve.curveMode2 + && toneCurve.curveMode == other.toneCurve.curveMode + && toneCurve.curveMode2 == other.toneCurve.curveMode2 && labCurve.lcurve == other.labCurve.lcurve && labCurve.acurve == other.labCurve.acurve && labCurve.bcurve == other.labCurve.bcurve @@ -1760,8 +1770,7 @@ bool ProcParams::operator== (const ProcParams& other) { && labCurve.chromaticity == other.labCurve.chromaticity && labCurve.avoidcolorshift == other.labCurve.avoidcolorshift && labCurve.rstprotection == other.labCurve.rstprotection - && labCurve.bwtoning == other.labCurve.bwtoning - && labCurve.lcredsk == other.labCurve.lcredsk + && labCurve.lcredsk == other.labCurve.lcredsk && sharpenEdge.enabled == other.sharpenEdge.enabled && sharpenEdge.passes == other.sharpenEdge.passes && sharpenEdge.amount == other.sharpenEdge.amount @@ -1812,9 +1821,9 @@ bool ProcParams::operator== (const ProcParams& other) { && colorappearance.badpixsl == other.colorappearance.badpixsl && colorappearance.wbmodel == other.colorappearance.wbmodel && colorappearance.algo == other.colorappearance.algo - && colorappearance.curveMode == other.colorappearance.curveMode - && colorappearance.curveMode2 == other.colorappearance.curveMode2 - && colorappearance.curveMode3 == other.colorappearance.curveMode3 + && colorappearance.curveMode == other.colorappearance.curveMode + && colorappearance.curveMode2 == other.colorappearance.curveMode2 + && colorappearance.curveMode3 == other.colorappearance.curveMode3 && colorappearance.jlight == other.colorappearance.jlight && colorappearance.qbright == other.colorappearance.qbright && colorappearance.chroma == other.colorappearance.chroma @@ -1874,10 +1883,10 @@ bool ProcParams::operator== (const ProcParams& other) { && rotate.degree == other.rotate.degree && commonTrans.autofill == other.commonTrans.autofill && distortion.amount == other.distortion.amount - && lensProf.lcpFile == other.lensProf.lcpFile - && lensProf.useDist == other.lensProf.useDist - && lensProf.useVign == other.lensProf.useVign - && lensProf.useCA == other.lensProf.useCA + && lensProf.lcpFile == other.lensProf.lcpFile + && lensProf.useDist == other.lensProf.useDist + && lensProf.useVign == other.lensProf.useVign + && lensProf.useCA == other.lensProf.useCA && perspective.horizontal == other.perspective.horizontal && perspective.vertical == other.perspective.vertical && gradient.enabled == other.gradient.enabled @@ -1900,27 +1909,26 @@ bool ProcParams::operator== (const ProcParams& other) { && !memcmp (&chmixer.red, &other.chmixer.red, 3*sizeof(int)) && !memcmp (&chmixer.green, &other.chmixer.green, 3*sizeof(int)) && !memcmp (&chmixer.blue, &other.chmixer.blue, 3*sizeof(int)) - && chmixerbw.bwred == other.chmixerbw.bwred - && chmixerbw.bwgreen == other.chmixerbw.bwgreen - && chmixerbw.bwblue == other.chmixerbw.bwblue - && chmixerbw.bwredgam == other.chmixerbw.bwredgam - && chmixerbw.bwgreengam == other.chmixerbw.bwgreengam - && chmixerbw.bwbluegam == other.chmixerbw.bwbluegam - && chmixerbw.fil == other.chmixerbw.fil - && chmixerbw.set == other.chmixerbw.set - && chmixerbw.met == other.chmixerbw.met - && chmixerbw.bworan == other.chmixerbw.bworan - && chmixerbw.bwyell == other.chmixerbw.bwyell - && chmixerbw.bwmag == other.chmixerbw.bwmag - && chmixerbw.bwcyan == other.chmixerbw.bwcyan - && chmixerbw.bwpur == other.chmixerbw.bwpur - && chmixerbw.vcurve == other.chmixerbw.vcurve - && chmixerbw.curve == other.chmixerbw.curve - && chmixerbw.curve2 == other.chmixerbw.curve2 - && chmixerbw.curveMode == other.chmixerbw.curveMode - && chmixerbw.curveMode2 == other.chmixerbw.curveMode2 - && chmixerbw.autoc == other.chmixerbw.autoc - + && blackwhite.mixerRed == other.blackwhite.mixerRed + && blackwhite.mixerOrange == other.blackwhite.mixerOrange + && blackwhite.mixerYellow == other.blackwhite.mixerYellow + && blackwhite.mixerGreen == other.blackwhite.mixerGreen + && blackwhite.mixerCyan == other.blackwhite.mixerCyan + && blackwhite.mixerBlue == other.blackwhite.mixerBlue + && blackwhite.mixerMagenta == other.blackwhite.mixerMagenta + && blackwhite.mixerPurple == other.blackwhite.mixerPurple + && blackwhite.gammaRed == other.blackwhite.gammaRed + && blackwhite.gammaGreen == other.blackwhite.gammaGreen + && blackwhite.gammaBlue == other.blackwhite.gammaBlue + && blackwhite.filter == other.blackwhite.filter + && blackwhite.setting == other.blackwhite.setting + && blackwhite.method == other.blackwhite.method + && blackwhite.luminanceCurve == other.blackwhite.luminanceCurve + && blackwhite.beforeCurve == other.blackwhite.beforeCurve + && blackwhite.afterCurve == other.blackwhite.afterCurve + && blackwhite.beforeCurveMode == other.blackwhite.beforeCurveMode + && blackwhite.afterCurveMode == other.blackwhite.afterCurveMode + && blackwhite.autoc == other.blackwhite.autoc && hlrecovery.enabled == other.hlrecovery.enabled && hlrecovery.method == other.hlrecovery.method && resize.scale == other.resize.scale @@ -1949,13 +1957,13 @@ bool ProcParams::operator== (const ProcParams& other) { && icm.input == other.icm.input && icm.toneCurve == other.icm.toneCurve && icm.blendCMSMatrix == other.icm.blendCMSMatrix - && icm.dcpIlluminant == other.icm.dcpIlluminant + && icm.dcpIlluminant == other.icm.dcpIlluminant && icm.working == other.icm.working && icm.output == other.icm.output - && icm.gamma == other.icm.gamma - && icm.freegamma == other.icm.freegamma - && icm.gampos == other.icm.gampos - && icm.slpos == other.icm.slpos + && icm.gamma == other.icm.gamma + && icm.freegamma == other.icm.freegamma + && icm.gampos == other.icm.gampos + && icm.slpos == other.icm.slpos && dirpyrequalizer == other.dirpyrequalizer && hsvequalizer.hcurve == other.hsvequalizer.hcurve && hsvequalizer.scurve == other.hsvequalizer.scurve diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 28e140231..48dbac3b9 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -222,8 +222,7 @@ class LCurveParams { int chromaticity; bool avoidcolorshift; double rstprotection; - bool bwtoning; - bool lcredsk; + bool lcredsk; }; /** @@ -573,8 +572,8 @@ public: class PerspectiveParams { public: - double horizontal; - double vertical; + double horizontal; + double vertical; }; /** @@ -586,9 +585,9 @@ class GradientParams { bool enabled; double degree; int feather; - double strength; - int centerX; - int centerY; + double strength; + int centerX; + int centerY; }; /** @@ -598,7 +597,7 @@ class PCVignetteParams { public: bool enabled; - double strength; + double strength; int feather; int roundness; }; @@ -611,9 +610,9 @@ class VignettingParams { public: int amount; int radius; - int strength; - int centerX; - int centerY; + int strength; + int centerX; + int centerY; }; /** @@ -625,9 +624,9 @@ class ChannelMixerParams { int red[3]; int green[3]; int blue[3]; - }; -class ChannelMixerbwParams { + +class BlackWhiteParams { public: enum eTCModeId { @@ -636,31 +635,30 @@ class ChannelMixerbwParams { TC_MODE_FILMLIKE_BW, // Film-like mode, as defined in Adobe's reference code TC_MODE_SATANDVALBLENDING_BW // Modify the Saturation and Value channel }; - - std::vector curve; - eTCModeId curveMode; - std::vector curve2; - eTCModeId curveMode2; - - std::vector vcurve; - bool autoc; - bool enabledcc; - bool enabled; - int bwred; - int bwgreen; - int bwblue; - int bwredgam; - int bwgreengam; - int bwbluegam; - Glib::ustring fil; - Glib::ustring set; - Glib::ustring met; - int bworan; - int bwyell; - int bwcyan; - int bwmag; - int bwpur; - + + std::vector beforeCurve; + eTCModeId beforeCurveMode; + std::vector afterCurve; + eTCModeId afterCurveMode; + + std::vector luminanceCurve; + bool autoc; + bool enabledcc; + bool enabled; + Glib::ustring filter; + Glib::ustring setting; + Glib::ustring method; + int mixerRed; + int mixerOrange; + int mixerYellow; + int mixerGreen; + int mixerCyan; + int mixerBlue; + int mixerMagenta; + int mixerPurple; + int gammaRed; + int gammaGreen; + int gammaBlue; }; /** @@ -680,7 +678,7 @@ class HRecParams { public: bool enabled; - Glib::ustring method; + Glib::ustring method; }; /** @@ -840,7 +838,7 @@ class ProcParams { CACorrParams cacorrection; ///< Lens c/a correction parameters VignettingParams vignetting; ///< Lens vignetting correction parameters ChannelMixerParams chmixer; ///< Channel mixer parameters - ChannelMixerbwParams chmixerbw; ///< Channel mixer BW parameters + BlackWhiteParams blackwhite; ///< Black & White parameters HRecParams hlrecovery; ///< Highlight recovery parameters ResizeParams resize; ///< Resize parameters ColorManagementParams icm; ///< profiles/color spaces used during the image processing diff --git a/rtengine/refreshmap.cc b/rtengine/refreshmap.cc index c7d3a4f9d..0ed352176 100644 --- a/rtengine/refreshmap.cc +++ b/rtengine/refreshmap.cc @@ -186,7 +186,7 @@ RGBCURVE, // EvRGBrCurve RGBCURVE, // EvRGBgCurve RGBCURVE, // EvRGBbCurve RGBCURVE, // EvNeutralExp -LUMINANCECURVE, // EvLBWtoning +NONE, // --unused--, LUMINANCECURVE, // EvLCCurve LUMINANCECURVE, // EvLCHCurve RGBCURVE, // EvVibranceSkinTonesCurve @@ -226,9 +226,9 @@ ALLNORAW, // EvDPDNmet DEMOSAIC, // EvDemosaicLMMSEIter LUMINANCECURVE, // EvCATbadpix LUMINANCECURVE, // EvCATAutoadap -DEFRINGE, // EvPFCurve, -WHITEBALANCE, // EvWBequal, -WHITEBALANCE, // EvWBequalbo, +DEFRINGE, // EvPFCurve +WHITEBALANCE, // EvWBequal +WHITEBALANCE, // EvWBequalbo TRANSFORM, // EvGradientDegree TRANSFORM, // EvGradientEnabled TRANSFORM, // EvPCVignetteStrength @@ -240,22 +240,22 @@ RGBCURVE, // EvBWblue RGBCURVE, // EvBWredgam RGBCURVE, // EvBWgreengam RGBCURVE, // EvBWbluegam -RGBCURVE, // EvBWfil -RGBCURVE, // EvBWset +RGBCURVE, // EvBWfilter +RGBCURVE, // EvBWsetting RGBCURVE, // EvBWoran RGBCURVE, // EvBWyell RGBCURVE, // EvBWcyan RGBCURVE, // EvBWmag RGBCURVE, // EvBpur -RGBCURVE, // EvBWequalV +RGBCURVE, // EvBWLuminanceEqual RGBCURVE, // EvBWChmixEnabledLm -RGBCURVE, // EvBWmet -RGBCURVE, // EvToneCurvebw1 -RGBCURVE, // EvToneCurveBWMode1 -RGBCURVE, // EvToneCurvebw2 -RGBCURVE, // EvToneCurveBWMode2 -RGBCURVE, // EvAutoch, -RGBCURVE, // EvFixedch, +RGBCURVE, // EvBWmethod +RGBCURVE, // EvBWBeforeCurve +RGBCURVE, // EvBWBeforeCurveMode +RGBCURVE, // EvBWAfterCurve +RGBCURVE, // EvBWAfterCurveMode +RGBCURVE, // EvAutoch +NONE, // --unused-- RGBCURVE, // EvNeutralBW TRANSFORM, // EvGradientFeather TRANSFORM, // EvGradientStrength @@ -263,8 +263,8 @@ TRANSFORM, // EvGradientCenter TRANSFORM, // EvPCVignetteFeather TRANSFORM, // EvPCVignetteRoundness TRANSFORM, // EvVignettingRadius, -TRANSFORM, // EvVignettingStrength, -TRANSFORM, // EvVignettingCenter, +TRANSFORM, // EvVignettingStrength +TRANSFORM, // EvVignettingCenter LUMINANCECURVE // EvLCLCurve diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 901996b91..5084d84d6 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -766,7 +766,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei LabImage* labView = new LabImage (fw,fh); CieImage* cieView = new CieImage (fw,fh); - CurveFactory::curveBW (params.chmixerbw.curveMode, params.chmixerbw.curve, params.chmixerbw.curveMode2, params.chmixerbw.curve2, + CurveFactory::curveBW (params.blackwhite.beforeCurveMode, params.blackwhite.beforeCurve, params.blackwhite.afterCurveMode, params.blackwhite.afterCurve, hist16, dummy, dummy, customToneCurvebw1, customToneCurvebw2, 16); double rrm, ggm, bbm; diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index b21802960..2e84b9049 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -193,18 +193,18 @@ IImage16* processImage (ProcessingJob* pjob, int& errorCode, ProgressListener* p ipf.g = imgsrc->getGamma(); ipf.iGamma = true; CurveFactory::complexCurve (expcomp, black/65535.0, hlcompr, hlcomprthresh, params.toneCurve.shcompr, bright, contr, ipf.g, !ipf.iGamma, - params.toneCurve.curveMode, params.toneCurve.curve, params.toneCurve.curveMode2, params.toneCurve.curve2, + params.toneCurve.curveMode, params.toneCurve.curve, params.toneCurve.curveMode2, params.toneCurve.curve2, hist16, dummy, curve1, curve2, curve, dummy, customToneCurve1, customToneCurve2 ); - + CurveFactory::RGBCurve (params.rgbCurves.rcurve, rCurve, 1); CurveFactory::RGBCurve (params.rgbCurves.gcurve, gCurve, 1); CurveFactory::RGBCurve (params.rgbCurves.bcurve, bCurve, 1); LabImage* labView = new LabImage (fw,fh); - - - CurveFactory::curveBW (params.chmixerbw.curveMode, params.chmixerbw.curve, params.chmixerbw.curveMode2, params.chmixerbw.curve2, - hist16, dummy, dummy, customToneCurvebw1, customToneCurvebw2, 1); + + + CurveFactory::curveBW (params.blackwhite.beforeCurveMode, params.blackwhite.beforeCurve, params.blackwhite.afterCurveMode, params.blackwhite.afterCurve, + hist16, dummy, dummy, customToneCurvebw1, customToneCurvebw2, 1); double rrm, ggm, bbm; ipf.rgbProc (baseImg, labView, curve1, curve2, curve, shmap, params.toneCurve.saturation, rCurve, gCurve, bCurve, customToneCurve1, customToneCurve2,customToneCurvebw1, customToneCurvebw2, rrm, ggm, bbm, expcomp, hlcompr, hlcomprthresh); diff --git a/rtgui/addsetids.h b/rtgui/addsetids.h index 04698255c..b522374d1 100644 --- a/rtgui/addsetids.h +++ b/rtgui/addsetids.h @@ -31,8 +31,8 @@ #define ADDSET_TC_HLCOMPTHRESH 23 #define ADDSET_TC_SHCOMP 24 #define ADDSET_DIRPYREQ 25 -#define ADDSET_DIRPYRDN_LUMA 26 -#define ADDSET_DIRPYRDN_LUMDET 27 +#define ADDSET_DIRPYRDN_LUMA 26 +#define ADDSET_DIRPYRDN_LUMDET 27 #define ADDSET_DIRPYRDN_CHROMA 28 #define ADDSET_DIRPYRDN_CHROMARED 29 #define ADDSET_DIRPYRDN_CHROMABLUE 30 @@ -73,11 +73,10 @@ #define ADDSET_PCVIGNETTE_STRENGTH 65 #define ADDSET_PCVIGNETTE_FEATHER 66 #define ADDSET_PCVIGNETTE_ROUNDNESS 67 -#define ADDSET_CHMIXER_BW 68 -#define ADDSET_CHMIXER_BWG 69 -#define ADDSET_CHMIXER_BWF 70 +#define ADDSET_BLACKWHITE_HUES 68 +#define ADDSET_BLACKWHITE_GAMMA 69 // When adding items, make sure to update ADDSET_PARAM_NUM -#define ADDSET_PARAM_NUM 71 // THIS IS USED AS A DELIMITER!! +#define ADDSET_PARAM_NUM 70 // THIS IS USED AS A DELIMITER!! #endif diff --git a/rtgui/adjuster.cc b/rtgui/adjuster.cc index 97c928008..66e618d21 100644 --- a/rtgui/adjuster.cc +++ b/rtgui/adjuster.cc @@ -27,7 +27,9 @@ #define MIN_RESET_BUTTON_HEIGHT 17 -Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, bool editedcb) { +Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon) { + + Gtk::HBox *hbox2=NULL; adjusterListener = NULL; afterReset = false; @@ -38,7 +40,6 @@ Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep vMin = vmin; vMax = vmax; vStep = vstep; - initialDefaultVal = vdefault; addMode = false; // TODO: let the user chose the default value of Adjuster::delay, for slow machines @@ -51,120 +52,58 @@ Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep hbox->set_border_width(0); hbox->set_spacing(2); - adjustmentName = Glib::ustring(vlabel); + editedCheckBox = NULL; - if (editedcb) { - label = NULL; - editedCheckBox = Gtk::manage (new Gtk::CheckButton (adjustmentName)); - editedChange = editedCheckBox->signal_toggled().connect( sigc::mem_fun(*this, &Adjuster::editedToggled) ); - hbox->pack_start (*editedCheckBox); + if (!vlabel.empty()) { + adjustmentName = vlabel; + label = Gtk::manage (new Gtk::Label (adjustmentName, Gtk::ALIGN_LEFT)); + } + + reset = Gtk::manage (new Gtk::Button ()); + reset->add (*Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png"))); + reset->set_relief (Gtk::RELIEF_NONE); + reset->set_border_width (0); + reset->set_tooltip_text (M("ADJUSTER_RESET_TO_DEFAULT")); + + spin = Gtk::manage (new MySpinButton ()); + spin->set_has_frame(false); + spin->set_name("FramelessSpinButton"); + + reset->set_size_request (-1, spin->get_height() > MIN_RESET_BUTTON_HEIGHT ? spin->get_height(): MIN_RESET_BUTTON_HEIGHT); + + slider = Gtk::manage (new MyHScale ()); + slider->set_draw_value (false); + + pack_start (*hbox, true, true); + + if (vlabel.empty()) { + // No label, everything goes in hbox + if (imgIcon) hbox->pack_start (*imgIcon, Gtk::PACK_SHRINK); + hbox->pack_end (*reset, Gtk::PACK_SHRINK, 0); + hbox->pack_end (*spin, Gtk::PACK_SHRINK, 0); + hbox->pack_start (*slider, true, true); } else { - editedCheckBox = NULL; - label = Gtk::manage (new Gtk::Label (adjustmentName, Gtk::ALIGN_LEFT)); + // A label is provided, spreading the widgets in 2 rows hbox->pack_start (*label); + hbox->pack_end (*reset, Gtk::PACK_SHRINK, 0); + hbox->pack_end (*spin, Gtk::PACK_SHRINK, 0); + if (!imgIcon) { + pack_start (*slider, true, true); + } + else { + // A second HBox is necessary + hbox2 = Gtk::manage (new Gtk::HBox()); + hbox2->pack_start (*imgIcon, Gtk::PACK_SHRINK); + hbox2->pack_start (*slider, true, true); + pack_start (*hbox2, true, true); + } } - reset = Gtk::manage (new Gtk::Button ()); - reset->add (*Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png"))); - reset->set_relief (Gtk::RELIEF_NONE); - reset->set_border_width (0); - reset->set_tooltip_text (M("ADJUSTER_RESET_TO_DEFAULT")); - - hbox->pack_end (*reset, Gtk::PACK_SHRINK, 0); - - spin = Gtk::manage (new MySpinButton ()); - spin->set_has_frame(false); - spin->set_name("FramelessSpinButton"); - - hbox->pack_end (*spin, Gtk::PACK_SHRINK, 0); - - reset->set_size_request (-1, spin->get_height() > MIN_RESET_BUTTON_HEIGHT ? spin->get_height(): MIN_RESET_BUTTON_HEIGHT); - - slider = Gtk::manage (new MyHScale ()); - slider->set_draw_value (false); - - pack_start (*hbox, false, false); - pack_start (*slider, false, false); - setLimits (vmin, vmax, vstep, vdefault); defaultVal = shapeValue (vdefault); - initialDefaultVal = shapeValue (vdefault); - editedState = defEditedState = Irrelevant; - autoState = Irrelevant; - - sliderChange = slider->signal_value_changed().connect( sigc::mem_fun(*this, &Adjuster::sliderChanged) ); - spinChange = spin->signal_value_changed().connect ( sigc::mem_fun(*this, &Adjuster::spinChanged), true); - reset->signal_button_release_event().connect_notify( sigc::mem_fun(*this, &Adjuster::resetPressed) ); - slider->set_update_policy (Gtk::UPDATE_CONTINUOUS); - - show_all (); -} - -Adjuster::Adjuster (Gtk::Image *imgIcon, double vmin, double vmax, double vstep, double vdefault, bool editedcb) { - - adjusterListener = NULL; - afterReset = false; - blocked = false; - automatic = NULL; - eventPending = false; - - vMin = vmin; - vMax = vmax; - vStep = vstep; - initialDefaultVal = vdefault; - addMode = false; - - // TODO: let the user chose the default value of Adjuster::delay, for slow machines - delay = options.adjusterDelay; // delay is no more static, so we can set the delay individually (useful for the RAW editor tab) - - set_border_width (0); - set_spacing (2); - - hbox = Gtk::manage (new Gtk::HBox ()); - hbox->set_border_width(0); - hbox->set_spacing(2); - - if (editedcb) { - editedCheckBox = Gtk::manage (new Gtk::CheckButton ()); - editedCheckBox->set_border_width (0); - editedChange = editedCheckBox->signal_toggled().connect( sigc::mem_fun(*this, &Adjuster::editedToggled) ); - hbox->pack_start (*editedCheckBox); - } - else - editedCheckBox = NULL; - - - reset = Gtk::manage (new Gtk::Button ()); - reset->add (*Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png"))); - reset->set_relief (Gtk::RELIEF_NONE); - reset->set_border_width (0); - reset->set_tooltip_text (M("ADJUSTER_RESET_TO_DEFAULT")); - - hbox->pack_start (*imgIcon, Gtk::PACK_SHRINK); - - hbox->pack_end (*reset, Gtk::PACK_SHRINK, 0); - - spin = Gtk::manage (new MySpinButton ()); - spin->set_has_frame(false); - spin->set_name("FramelessSpinButton"); - - reset->set_size_request (-1, spin->get_height() > MIN_RESET_BUTTON_HEIGHT ? spin->get_height(): MIN_RESET_BUTTON_HEIGHT); - - - slider = Gtk::manage (new MyHScale ()); - slider->set_draw_value (false); - - hbox->pack_end (*spin, Gtk::PACK_SHRINK, 0); - hbox->pack_start (*slider); - - pack_start (*hbox, false, false); - - setLimits (vmin, vmax, vstep, vdefault); - - defaultVal = shapeValue (vdefault); - initialDefaultVal = shapeValue (vdefault); + ctorDefaultVal = shapeValue (vdefault); editedState = defEditedState = Irrelevant; autoState = Irrelevant; @@ -272,9 +211,7 @@ void Adjuster::spinReleased (GdkEventButton* event) { } } -// Please note that it won't change the "Auto" CheckBox's state, if there -void Adjuster::resetPressed (GdkEventButton* event) { - +void Adjuster::resetValue (bool toInitial) { if (editedState!=Irrelevant) { editedState = defEditedState; if (editedCheckBox) { @@ -285,12 +222,26 @@ void Adjuster::resetPressed (GdkEventButton* event) { refreshLabelStyle (); } afterReset = true; - if ((event != NULL) && (event->state & GDK_CONTROL_MASK) && (event->button == 1)) - // CTRL pressed : resetting to current default value + if (toInitial) { + // resetting to the initial editing value, when the image has been loaded slider->set_value (defaultVal); + } + else { + // resetting to the slider default value + if (addMode) + slider->set_value (0.); + else + slider->set_value (ctorDefaultVal); + } +} + +// Please note that it won't change the "Auto" CheckBox's state, if there +void Adjuster::resetPressed (GdkEventButton* event) { + + if ((event != NULL) && (event->state & GDK_CONTROL_MASK) && (event->button == 1)) + resetValue(true); else - // no modifier key or addMode=true : resetting to initial default value - slider->set_value (initialDefaultVal); + resetValue(false); } double Adjuster::shapeValue (double a) { diff --git a/rtgui/adjuster.h b/rtgui/adjuster.h index 2f1c77e76..9b5181f68 100644 --- a/rtgui/adjuster.h +++ b/rtgui/adjuster.h @@ -53,7 +53,7 @@ class Adjuster : public Gtk::VBox { sigc::connection buttonReleaseSpin; bool listenerReady; double defaultVal; // current default value (it can change when switching from ADD or SET mode) - double initialDefaultVal; // default value at construction time + double ctorDefaultVal; // default value at construction time EditedState editedState; EditedState defEditedState; EditedState autoState; @@ -75,8 +75,7 @@ class Adjuster : public Gtk::VBox { int delay; - Adjuster (Glib::ustring label, double vmin, double vmax, double vstep, double vdefault, bool editedCheckBox=false); - Adjuster (Gtk::Image *imgIcon, double vmin, double vmax, double vstep, double vdefault, bool editedCheckBox=false); + Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon=NULL); virtual ~Adjuster (); // Add an "Automatic" checkbox next to the reset button. @@ -122,6 +121,7 @@ class Adjuster : public Gtk::VBox { bool notifyListener (); void sliderReleased (GdkEventButton* event); void spinReleased (GdkEventButton* event); + void resetValue (bool toInitial); void resetPressed (GdkEventButton* event); void editedToggled (); double trimValue (double& val); diff --git a/rtgui/batchtoolpanelcoord.cc b/rtgui/batchtoolpanelcoord.cc index 7041a2332..1fc9ec143 100644 --- a/rtgui/batchtoolpanelcoord.cc +++ b/rtgui/batchtoolpanelcoord.cc @@ -127,7 +127,7 @@ void BatchToolPanelCoordinator::initSession () { toneCurve->setAdjusterBehavior (false, false, false, false, false, false, false, false); lcurve->setAdjusterBehavior (false, false, false); whitebalance->setAdjusterBehavior (false, false, false); - vibrance->setAdjusterBehavior (false, false, false); + vibrance->setAdjusterBehavior (false, false); vignetting->setAdjusterBehavior (false, false, false, false); colorappearance->setAdjusterBehavior (false, false, false, false, false, false, false, false, false, false, false, false, false); rotate->setAdjusterBehavior (false); @@ -142,7 +142,7 @@ void BatchToolPanelCoordinator::initSession () { icm->setAdjusterBehavior (false, false); chmixer->setAdjusterBehavior (false); - chmixerbw->setAdjusterBehavior (false,false, false); + blackwhite->setAdjusterBehavior (false,false); shadowshighlights->setAdjusterBehavior (false, false, false); dirpyrequalizer->setAdjusterBehavior (false); @@ -159,6 +159,7 @@ void BatchToolPanelCoordinator::initSession () { toneCurve->setAdjusterBehavior (options.baBehav[ADDSET_TC_EXPCOMP], options.baBehav[ADDSET_TC_HLCOMPAMOUNT],options.baBehav[ADDSET_TC_HLCOMPTHRESH], options.baBehav[ADDSET_TC_BRIGHTNESS], options.baBehav[ADDSET_TC_BLACKLEVEL],options.baBehav[ADDSET_TC_SHCOMP], options.baBehav[ADDSET_TC_CONTRAST], options.baBehav[ADDSET_TC_SATURATION]); lcurve->setAdjusterBehavior (options.baBehav[ADDSET_LC_BRIGHTNESS], options.baBehav[ADDSET_LC_CONTRAST], options.baBehav[ADDSET_LC_CHROMATICITY]); whitebalance->setAdjusterBehavior (options.baBehav[ADDSET_WB_TEMPERATURE], options.baBehav[ADDSET_WB_GREEN], options.baBehav[ADDSET_WB_EQUAL]); + vibrance->setAdjusterBehavior (options.baBehav[ADDSET_VIBRANCE_PASTELS], options.baBehav[ADDSET_VIBRANCE_SATURATED]); vignetting->setAdjusterBehavior (options.baBehav[ADDSET_VIGN_AMOUNT], options.baBehav[ADDSET_VIGN_RADIUS], options.baBehav[ADDSET_VIGN_STRENGTH], options.baBehav[ADDSET_VIGN_CENTER]); colorappearance->setAdjusterBehavior (options.baBehav[ADDSET_CAT_DEGREE], options.baBehav[ADDSET_CAT_ADAPTSCENE], options.baBehav[ADDSET_CAT_ADAPTVIEWING],options.baBehav[ADDSET_CAT_BADPIX], options.baBehav[ADDSET_CAT_LIGHT], options.baBehav[ADDSET_CAT_CHROMA],options.baBehav[ADDSET_CAT_CONTRAST],options.baBehav[ADDSET_CAT_RSTPRO],options.baBehav[ADDSET_CAT_BRIGHT],options.baBehav[ADDSET_CAT_CONTRAST_Q],options.baBehav[ADDSET_CAT_CHROMA_S],options.baBehav[ADDSET_CAT_CHROMA_M],options.baBehav[ADDSET_CAT_HUE]); rotate->setAdjusterBehavior (options.baBehav[ADDSET_ROTATE_DEGREE]); @@ -173,7 +174,7 @@ void BatchToolPanelCoordinator::initSession () { icm->setAdjusterBehavior (options.baBehav[ADDSET_FREE_OUPUT_GAMMA],options.baBehav[ADDSET_FREE_OUTPUT_SLOPE]); chmixer->setAdjusterBehavior (options.baBehav[ADDSET_CHMIXER] ); - chmixerbw->setAdjusterBehavior (options.baBehav[ADDSET_CHMIXER_BW],options.baBehav[ADDSET_CHMIXER_BWG], options.baBehav[ADDSET_CHMIXER_BWF]); + blackwhite->setAdjusterBehavior (options.baBehav[ADDSET_BLACKWHITE_HUES],options.baBehav[ADDSET_BLACKWHITE_GAMMA]); shadowshighlights->setAdjusterBehavior (options.baBehav[ADDSET_SH_HIGHLIGHTS], options.baBehav[ADDSET_SH_SHADOWS], options.baBehav[ADDSET_SH_LOCALCONTRAST]); dirpyrequalizer->setAdjusterBehavior (options.baBehav[ADDSET_DIRPYREQ]); dirpyrdenoise->setAdjusterBehavior (options.baBehav[ADDSET_DIRPYRDN_LUMA],options.baBehav[ADDSET_DIRPYRDN_LUMDET],options.baBehav[ADDSET_DIRPYRDN_CHROMA],options.baBehav[ADDSET_DIRPYRDN_CHROMARED],options.baBehav[ADDSET_DIRPYRDN_CHROMABLUE], options.baBehav[ADDSET_DIRPYRDN_GAMMA]); @@ -204,9 +205,10 @@ void BatchToolPanelCoordinator::initSession () { if (options.baBehav[ADDSET_SHARPENMICRO_UNIFORMITY]) pparams.sharpenMicro.uniformity = 0; if (options.baBehav[ADDSET_CHMIXER]) for (int i=0; i<3; i++) pparams.chmixer.red[i] = pparams.chmixer.green[i] = pparams.chmixer.blue[i] = 0; - if (options.baBehav[ADDSET_CHMIXER_BW]) pparams.chmixerbw.bwred=pparams.chmixerbw.bwgreen=pparams.chmixerbw.bwblue = 0; - if (options.baBehav[ADDSET_CHMIXER_BWG]) pparams.chmixerbw.bwredgam=pparams.chmixerbw.bwgreengam=pparams.chmixerbw.bwbluegam = 0; - if (options.baBehav[ADDSET_CHMIXER_BWF]) pparams.chmixerbw.bworan=pparams.chmixerbw.bwyell = 0; + if (options.baBehav[ADDSET_BLACKWHITE_HUES]) pparams.blackwhite.mixerRed=pparams.blackwhite.mixerOrange=pparams.blackwhite.mixerYellow= + pparams.blackwhite.mixerGreen=pparams.blackwhite.mixerCyan=pparams.blackwhite.mixerBlue= + pparams.blackwhite.mixerMagenta=pparams.blackwhite.mixerPurple=0; + if (options.baBehav[ADDSET_BLACKWHITE_GAMMA]) pparams.blackwhite.gammaRed=pparams.blackwhite.gammaGreen=pparams.blackwhite.gammaBlue = 0; //if (options.baBehav[ADDSET_LD_EDGETOLERANCE]) pparams.lumaDenoise.edgetolerance = 0; @@ -409,7 +411,7 @@ void BatchToolPanelCoordinator::profileChange (const rtengine::procparams::Part ProcParams newParams; for (size_t i=0; isetProcParams (newParams, NULL, BATCHEDITOR, false); } diff --git a/rtgui/chmixer.cc b/rtgui/chmixer.cc index 0f6795ef9..7edc7d68f 100644 --- a/rtgui/chmixer.cc +++ b/rtgui/chmixer.cc @@ -42,9 +42,9 @@ ChMixer::ChMixer (): Gtk::VBox(), FoldableToolPanel(this) { rlabel->set_markup (Glib::ustring("\t") + M("TP_CHMIXER_RED") + Glib::ustring(":")); rlabel->set_alignment(Gtk::ALIGN_LEFT); - red[0] = Gtk::manage (new Adjuster (imgIcon[0], -200, 200, 1, 100)); - red[1] = Gtk::manage (new Adjuster (imgIcon[1], -200, 200, 1, 0)); - red[2] = Gtk::manage (new Adjuster (imgIcon[2], -200, 200, 1, 0)); + red[0] = Gtk::manage (new Adjuster ("", -200, 200, 1, 100, imgIcon[0])); + red[1] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[1])); + red[2] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[2])); Gtk::HSeparator* rsep = Gtk::manage (new Gtk::HSeparator ()); @@ -58,9 +58,9 @@ ChMixer::ChMixer (): Gtk::VBox(), FoldableToolPanel(this) { glabel->set_alignment(Gtk::ALIGN_LEFT); - green[0] = Gtk::manage (new Adjuster (imgIcon[3], -200, 200, 1, 0)); - green[1] = Gtk::manage (new Adjuster (imgIcon[4], -200, 200, 1, 100)); - green[2] = Gtk::manage (new Adjuster (imgIcon[5], -200, 200, 1, 0)); + green[0] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[3])); + green[1] = Gtk::manage (new Adjuster ("", -200, 200, 1, 100, imgIcon[4])); + green[2] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[5])); Gtk::HSeparator* gsep = Gtk::manage (new Gtk::HSeparator ()); @@ -72,9 +72,9 @@ ChMixer::ChMixer (): Gtk::VBox(), FoldableToolPanel(this) { Gtk::Label* blabel = Gtk::manage (new Gtk::Label ()); blabel->set_markup (Glib::ustring("\t") + M("TP_CHMIXER_BLUE") + Glib::ustring(":")); blabel->set_alignment(Gtk::ALIGN_LEFT); - blue[0] = Gtk::manage (new Adjuster (imgIcon[6], -200, 200, 1, 0)); - blue[1] = Gtk::manage (new Adjuster (imgIcon[7], -200, 200, 1, 0)); - blue[2] = Gtk::manage (new Adjuster (imgIcon[8], -200, 200, 1, 100)); + blue[0] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[6])); + blue[1] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[7])); + blue[2] = Gtk::manage (new Adjuster ("", -200, 200, 1, 100, imgIcon[8])); for (int i=0; i<3; i++) { red[i]->setAdjusterListener (this); diff --git a/rtgui/chmixerbw.cc b/rtgui/chmixerbw.cc index c9464cbce..ccc9c1f76 100644 --- a/rtgui/chmixerbw.cc +++ b/rtgui/chmixerbw.cc @@ -27,49 +27,45 @@ using namespace rtengine; using namespace rtengine::procparams; -ChMixerbw::ChMixerbw (): Gtk::VBox(), FoldableToolPanel(this) { +BlackWhite::BlackWhite (): Gtk::VBox(), FoldableToolPanel(this) { CurveListener::setMulti(true); - set_border_width(4); + set_border_width(4); + set_spacing(4); + + //----------- Enables checkbox ------------------------------ + enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); enabled->set_active (false); pack_start(*enabled, Gtk::PACK_SHRINK, 0); enabled->show (); + enaconn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &BlackWhite::enabled_toggled) ); + + pack_start (*Gtk::manage (new Gtk::HSeparator())); + + //----------- Method combobox ------------------------------ Gtk::HBox* metHBox = Gtk::manage (new Gtk::HBox ()); metHBox->set_border_width (0); metHBox->set_spacing (2); - metHBox->set_tooltip_markup (M("TP_BWMIX_MET_TOOLTIP")); Gtk::Label* metLabel = Gtk::manage (new Gtk::Label (M("TP_BWMIX_MET")+":")); metHBox->pack_start (*metLabel, Gtk::PACK_SHRINK); - met = Gtk::manage (new MyComboBoxText ()); - met->append_text (M("TP_BWMIX_MET0")); - met->append_text (M("TP_BWMIX_MET1")); - met->append_text (M("TP_BWMIX_MET2")); - met->append_text (M("TP_BWMIX_MET3")); + method = Gtk::manage (new MyComboBoxText ()); + method->append_text (M("TP_BWMIX_MET_DESAT")); + method->append_text (M("TP_BWMIX_MET_LUMEQUAL")); + method->append_text (M("TP_BWMIX_MET_CHANMIX")); - met->set_active (0); - metHBox->pack_start (*met); + method->set_active (0); + metHBox->pack_start (*method); pack_start (*metHBox); - - imgIcon[0] = Gtk::manage (new RTImage ("Chanmixer-R.png")); - imgIcon[1] = Gtk::manage (new RTImage ("Chanmixer-G.png")); - imgIcon[2] = Gtk::manage (new RTImage ("Chanmixer-B.png")); - imgIcon[3] = Gtk::manage (new RTImage ("Chanmixer-O.png")); - imgIcon[4] = Gtk::manage (new RTImage ("Chanmixer-Y.png")); - imgIcon[5] = Gtk::manage (new RTImage ("Chanmixer-C.png")); - imgIcon[6] = Gtk::manage (new RTImage ("Chanmixer-M.png")); - imgIcon[7] = Gtk::manage (new RTImage ("Chanmixer-P.png")); - - imgIcon[8] = Gtk::manage (new RTImage ("Chanmixer-Rgamma.png")); - imgIcon[9] = Gtk::manage (new RTImage ("Chanmixer-Ggamma.png")); - imgIcon[10] = Gtk::manage (new RTImage ("Chanmixer-Bgamma.png")); + methodconn = method->signal_changed().connect ( sigc::mem_fun(*this, &BlackWhite::methodChanged) ); + + + //----------- Luminance equalizer ------------------------------ + + luminanceSep = Gtk::manage (new Gtk::HSeparator()); + pack_start (*luminanceSep); - std::vector bottomMilestonesbw; - bottomMilestonesbw.push_back( GradientMilestone(0., 0., 0., 0.) ); - bottomMilestonesbw.push_back( GradientMilestone(1., 1., 1., 1.) ); - - std::vector bottomMilestones; float R, G, B; // -0.1 rad < Hue < 1.6 rad @@ -78,616 +74,588 @@ ChMixerbw::ChMixerbw (): Gtk::VBox(), FoldableToolPanel(this) { Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B); bottomMilestones.push_back( GradientMilestone(double(x), double(R), double(G), double(B)) ); } - curveEditorG = new CurveEditorGroup (options.lastBWCurvesDir, M("TP_BWMIX_CHANNEL")); - curveEditorG->setCurveListener (this); - vshape = static_cast(curveEditorG->addCurve(CT_Flat, M("TP_BWMIX_VAL"))); - vshape->setBottomBarBgGradient(bottomMilestones); - vshape->setCurveColorProvider(this, 3); - vshape->setTooltip(M("TP_BWMIX_CURVEEDITOR_LH_TOOLTIP")); + luminanceCEG = new CurveEditorGroup (options.lastBWCurvesDir, M("TP_BWMIX_CHANNEL")); + luminanceCEG->setCurveListener (this); + luminanceCurve = static_cast(luminanceCEG->addCurve(CT_Flat, M("TP_BWMIX_VAL"))); + luminanceCurve->setBottomBarBgGradient(bottomMilestones); + luminanceCurve->setCurveColorProvider(this, 3); + luminanceCurve->setTooltip(M("TP_BWMIX_CURVEEDITOR_LH_TOOLTIP")); - curveEditorG->curveListComplete(); + luminanceCEG->curveListComplete(); + pack_start (*luminanceCEG, Gtk::PACK_SHRINK, 4); - pack_start (*curveEditorG, Gtk::PACK_SHRINK, 4); + //----------- Auto and Reset buttons ------------------------------ - - Gtk::HSeparator *hsep1 = Gtk::manage (new Gtk::HSeparator()); - hsep1->show (); - pack_start (*hsep1); + mixerFrame = Gtk::manage (new Gtk::Frame (M("TP_BWMIX_MET_CHANMIX"))); + pack_start (*mixerFrame, Gtk::PACK_SHRINK, 0); - enabledcc = Gtk::manage (new Gtk::CheckButton (M("TP_BWMIX_CC_ENABLED"))); - - enabledcc->set_active (true); - enabledcc->set_tooltip_markup (M("TP_BWMIX_CC_TOOLTIP")); - - pack_start(*enabledcc, Gtk::PACK_SHRINK, 0); - enabledcc->show (); + Gtk::VBox *mixerVBox = Gtk::manage (new Gtk::VBox ()); + mixerVBox->set_border_width(4); + mixerVBox->set_spacing(4); - abox = Gtk::manage (new Gtk::HBox ()); - abox->set_border_width (2); + autoHBox = Gtk::manage (new Gtk::HBox ()); + autoHBox->set_border_width (2); autoch = Gtk::manage (new Gtk::ToggleButton (M("TP_BWMIX_AUTOCH"))); autoch->set_tooltip_markup (M("TP_BWMIX_AUTOCH_TIP")); - autoconn = autoch->signal_toggled().connect( sigc::mem_fun(*this, &ChMixerbw::autoch_toggled) ); - + autoconn = autoch->signal_toggled().connect( sigc::mem_fun(*this, &BlackWhite::autoch_toggled) ); + neutral = Gtk::manage (new Gtk::Button (M("TP_BWMIX_NEUTRAL"))); + RTImage *resetImg = Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png")); + neutral->set_image(*resetImg); neutral->set_tooltip_text (M("TP_BWMIX_NEUTRAL_TIP")); - neutralconn = neutral->signal_pressed().connect( sigc::mem_fun(*this, &ChMixerbw::neutral_pressed) ); + neutralconn = neutral->signal_pressed().connect( sigc::mem_fun(*this, &BlackWhite::neutral_pressed) ); neutral->show(); - - abox->pack_start (*autoch); - abox->pack_end (*neutral); - abox->pack_end (*Gtk::manage (new Gtk::Label (" "))); //spacer - pack_start (*abox); - pack_start (*Gtk::manage (new Gtk::HSeparator())); - - - Gtk::HBox* setHBox = Gtk::manage (new Gtk::HBox ()); - setHBox->set_border_width (0); - setHBox->set_spacing (2); - setHBox->set_tooltip_markup (M("TP_BWMIX_SETTING_TOOLTIP")); - setLabel = Gtk::manage (new Gtk::Label (M("TP_BWMIX_SETTING")+":")); - - setHBox->pack_start (*setLabel, Gtk::PACK_SHRINK); - set = Gtk::manage (new MyComboBoxText ()); - set->append_text (M("TP_BWMIX_SET0")); - set->append_text (M("TP_BWMIX_SET1")); - set->append_text (M("TP_BWMIX_SET2")); - set->append_text (M("TP_BWMIX_SET3")); - set->append_text (M("TP_BWMIX_SET4")); - set->append_text (M("TP_BWMIX_SET5")); - set->append_text (M("TP_BWMIX_SET6")); - set->append_text (M("TP_BWMIX_SET7")); - set->append_text (M("TP_BWMIX_SET8")); - set->append_text (M("TP_BWMIX_SET9")); - set->append_text (M("TP_BWMIX_SET10")); - set->append_text (M("TP_BWMIX_SET11")); - set->append_text (M("TP_BWMIX_SET12")); - set->append_text (M("TP_BWMIX_SET13")); - set->append_text (M("TP_BWMIX_SET14")); + autoHBox->pack_start (*autoch); + autoHBox->pack_end (*neutral); + autoHBox->pack_end (*Gtk::manage (new Gtk::Label (" "))); //spacer + mixerVBox->pack_start (*autoHBox); - set->set_active (0); - setHBox->pack_start (*set); - pack_start (*setHBox); - - Gtk::HBox* filHBox = Gtk::manage (new Gtk::HBox ()); - filHBox->set_border_width (0); - filHBox->set_spacing (2); - filHBox->set_tooltip_markup (M("TP_BWMIX_FILTER_TOOLTIP")); - filLabel = Gtk::manage (new Gtk::Label (M("TP_BWMIX_FILTER")+":")); - filHBox->pack_start (*filLabel, Gtk::PACK_SHRINK); - fil = Gtk::manage (new MyComboBoxText ()); - fil->append_text (M("TP_BWMIX_FILTER0")); - fil->append_text (M("TP_BWMIX_FILTER1")); - fil->append_text (M("TP_BWMIX_FILTER2")); - fil->append_text (M("TP_BWMIX_FILTER3")); - fil->append_text (M("TP_BWMIX_FILTER4")); - fil->append_text (M("TP_BWMIX_FILTER5")); - fil->append_text (M("TP_BWMIX_FILTER6")); - fil->append_text (M("TP_BWMIX_FILTER7")); - fil->append_text (M("TP_BWMIX_FILTER8")); - - fil->set_active (0); - filHBox->pack_start (*fil); - pack_start (*filHBox); - - rlabel = Gtk::manage (new Gtk::Label ()); - rlabel->set_markup (Glib::ustring( M("TP_BWMIX_RED"))); - rlabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*rlabel, Gtk::PACK_SHRINK, 0); - - bwred= Gtk::manage(new Adjuster (imgIcon[0],-100,200,1,33)); - if (bwred->delay < 50) bwred->delay = 50; - bwred->setAdjusterListener (this); - bwred->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); - - bwred->show(); - pack_start( *bwred, Gtk::PACK_SHRINK, 0); + //----------- Presets combobox ------------------------------ - orlabel = Gtk::manage (new Gtk::Label ()); - orlabel->set_markup (Glib::ustring( M("TP_BWMIX_ORA"))); - orlabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*orlabel, Gtk::PACK_SHRINK, 0); - - bworan= Gtk::manage(new Adjuster (imgIcon[3],-100,200,1,33)); - if (bworan->delay < 50) bworan->delay = 50; - bworan->setAdjusterListener (this); - bworan->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); - bworan->show(); - pack_start( *bworan, Gtk::PACK_SHRINK, 0); + mixerVBox->pack_start (*Gtk::manage (new Gtk::HSeparator())); - ylabel = Gtk::manage (new Gtk::Label ()); - ylabel->set_markup (Glib::ustring( M("TP_BWMIX_YEL"))); - ylabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*ylabel, Gtk::PACK_SHRINK, 0); - - bwyell= Gtk::manage(new Adjuster (imgIcon[4],-100,200,1,33)); - if (bwyell->delay < 50) bwyell->delay = 50; - bwyell->setAdjusterListener (this); - bwyell->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); - bwyell->show(); - pack_start( *bwyell, Gtk::PACK_SHRINK, 0); + settingHBox = Gtk::manage (new Gtk::HBox ()); + settingHBox->set_border_width (0); + settingHBox->set_spacing (2); + settingHBox->set_tooltip_markup (M("TP_BWMIX_SETTING_TOOLTIP")); + Gtk::Label *settingLabel = Gtk::manage (new Gtk::Label (M("TP_BWMIX_SETTING")+":")); - - glabel = Gtk::manage (new Gtk::Label ()); - glabel->set_markup (Glib::ustring( M("TP_BWMIX_GREEN"))); - glabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*glabel, Gtk::PACK_SHRINK, 0); - - bwgreen= Gtk::manage(new Adjuster (imgIcon[1],-100,200,1,33)); - if (bwgreen->delay < 50) bwgreen->delay = 50; - - bwgreen->setAdjusterListener (this); - bwgreen->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); - - bwgreen->show(); - pack_start( *bwgreen, Gtk::PACK_SHRINK, 0); + Gtk::SeparatorMenuItem *menuSep1 = Gtk::manage (new Gtk::SeparatorMenuItem ()); + Gtk::SeparatorMenuItem *menuSep2 = Gtk::manage (new Gtk::SeparatorMenuItem ()); - clabel = Gtk::manage (new Gtk::Label ()); - clabel->set_markup (Glib::ustring( M("TP_BWMIX_CYAN"))); - clabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*clabel, Gtk::PACK_SHRINK, 0); - - bwcyan= Gtk::manage(new Adjuster (imgIcon[5],-100,200,1,33)); - if (bwcyan->delay < 50) bwcyan->delay = 50; - bwcyan->setAdjusterListener (this); - bwcyan->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); - bwcyan->show(); - pack_start( *bwcyan, Gtk::PACK_SHRINK, 0); - - blabel = Gtk::manage (new Gtk::Label ()); - blabel->set_markup (Glib::ustring( M("TP_BWMIX_BLUE"))); - blabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*blabel, Gtk::PACK_SHRINK, 0); + settingHBox->pack_start (*settingLabel, Gtk::PACK_SHRINK); + setting = Gtk::manage (new MyComboBoxText ()); + setting->append_text (M("TP_BWMIX_SET_NORMCONTAST")); + setting->append_text (M("TP_BWMIX_SET_HIGHCONTAST")); + setting->append_text (M("TP_BWMIX_SET_LUMINANCE")); + setting->append_text (M("TP_BWMIX_SET_LANDSCAPE")); + setting->append_text (M("TP_BWMIX_SET_PORTRAIT")); + setting->append_text (M("TP_BWMIX_SET_LOWSENSIT")); + setting->append_text (M("TP_BWMIX_SET_HIGHSENSIT")); + setting->append_text (M("TP_BWMIX_SET_PANCHRO")); + setting->append_text (M("TP_BWMIX_SET_HYPERPANCHRO")); + setting->append_text (M("TP_BWMIX_SET_ORTHOCHRO")); + setting->append_text (M("TP_BWMIX_SET_RGBABS")); + setting->append_text (M("TP_BWMIX_SET_RGBREL")); + setting->append_text (M("TP_BWMIX_SET_ROYGCBMPABS")); + setting->append_text (M("TP_BWMIX_SET_ROYGCBMPREL")); + setting->append_text (M("TP_BWMIX_SET_INFRARED")); - bwblue= Gtk::manage(new Adjuster (imgIcon[2],-100,200,1,33)); - if (bwblue->delay < 50) bwblue->delay = 50; - - bwblue->setAdjusterListener (this); - bwblue->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); - - bwblue->show(); - pack_start( *bwblue, Gtk::PACK_SHRINK, 0); + setting->set_active (0); + settingHBox->pack_start (*setting); + mixerVBox->pack_start (*settingHBox); + settingconn = setting->signal_changed().connect ( sigc::mem_fun(*this, &BlackWhite::settingChanged) ); - mlabel = Gtk::manage (new Gtk::Label ()); - mlabel->set_markup (Glib::ustring( M("TP_BWMIX_MAG"))); - mlabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*mlabel, Gtk::PACK_SHRINK, 0); - - bwmag= Gtk::manage(new Adjuster (imgIcon[6],-100,200,1,33)); - if (bwmag->delay < 50) bwmag->delay = 50; - bwmag->setAdjusterListener (this); - bwmag->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); - bwmag->show(); - pack_start( *bwmag, Gtk::PACK_SHRINK, 0); + //----------- Complementary Color checkbox ------------------------------ - plabel = Gtk::manage (new Gtk::Label ()); - plabel->set_markup (Glib::ustring( M("TP_BWMIX_PUR"))); - plabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*plabel, Gtk::PACK_SHRINK, 0); - - bwpur= Gtk::manage(new Adjuster (imgIcon[7],-100,200,1,33)); - if (bwpur->delay < 50) bwpur->delay = 50; - bwpur->setAdjusterListener (this); - bwpur->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); - bwpur->show(); - pack_start( *bwpur, Gtk::PACK_SHRINK, 0); + enabledccSep= Gtk::manage (new Gtk::HSeparator()); + mixerVBox->pack_start (*enabledccSep); - Gamlabel = Gtk::manage (new Gtk::Label ()); - Gamlabel->set_markup (Glib::ustring("") + M("TP_BWMIX_GAMMA") + Glib::ustring("")); - Gamlabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*Gamlabel, Gtk::PACK_SHRINK, 0); + enabledcc = Gtk::manage (new Gtk::CheckButton (M("TP_BWMIX_CC_ENABLED"))); - - rglabel = Gtk::manage (new Gtk::Label ()); - rglabel->set_markup (Glib::ustring( M("TP_BWMIX_GAM_RED"))); - rglabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*rglabel, Gtk::PACK_SHRINK, 0); - - bwredgam= Gtk::manage(new Adjuster (imgIcon[8],-100,100,1,0)); - if (bwredgam->delay < 50) bwredgam->delay = 50; - - bwredgam->setAdjusterListener (this); - bwredgam->set_tooltip_markup (M("TP_BWMIX_GAM_TOOLTIP")); - bwredgam->show(); - pack_start( *bwredgam, Gtk::PACK_SHRINK, 0); - - gglabel = Gtk::manage (new Gtk::Label ()); - gglabel->set_markup (Glib::ustring( M("TP_BWMIX_GAM_GREEN"))); - gglabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*gglabel, Gtk::PACK_SHRINK, 0); + enabledcc->set_active (true); + enabledcc->set_tooltip_markup (M("TP_BWMIX_CC_TOOLTIP")); - bwgreengam= Gtk::manage(new Adjuster (imgIcon[9],-100,100,1,0)); - if (bwgreengam->delay < 50) bwgreengam->delay = 50; - bwgreengam->setAdjusterListener (this); - bwgreengam->set_tooltip_markup (M("TP_BWMIX_GAM_TOOLTIP")); - bwgreengam->show(); - pack_start( *bwgreengam, Gtk::PACK_SHRINK, 0); + mixerVBox->pack_start(*enabledcc, Gtk::PACK_SHRINK, 0); + enabledcc->show (); + enaccconn = enabledcc->signal_toggled().connect( sigc::mem_fun(*this, &BlackWhite::enabledcc_toggled) ); - bglabel = Gtk::manage (new Gtk::Label ()); - bglabel->set_markup (Glib::ustring( M("TP_BWMIX_GAM_BLUE"))); - bglabel->set_alignment(Gtk::ALIGN_LEFT); - pack_start (*bglabel, Gtk::PACK_SHRINK, 0); - - bwbluegam= Gtk::manage(new Adjuster (imgIcon[10],-100,100,1,0)); - if (bwbluegam->delay < 50) bwbluegam->delay = 50; - bwbluegam->setAdjusterListener (this); - bwbluegam->set_tooltip_markup (M("TP_BWMIX_GAM_TOOLTIP")); - bwbluegam->show(); - pack_start( *bwbluegam, Gtk::PACK_SHRINK, 0); + //----------- Color Filters ------------------------------ - enaconn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &ChMixerbw::enabled_toggled) ); - - enaccconn = enabledcc->signal_toggled().connect( sigc::mem_fun(*this, &ChMixerbw::enabledcc_toggled) ); - filconn = fil->signal_changed().connect ( sigc::mem_fun(*this, &ChMixerbw::filChanged) ); - setconn = set->signal_changed().connect ( sigc::mem_fun(*this, &ChMixerbw::setChanged) ); - metconn = met->signal_changed().connect ( sigc::mem_fun(*this, &ChMixerbw::metChanged) ); + filterSep = Gtk::manage (new Gtk::HSeparator()); + mixerVBox->pack_start (*filterSep); -//----------- Curve 1 ------------------------------ - pack_start (*Gtk::manage (new Gtk::HSeparator())); + filterHBox = Gtk::manage (new Gtk::HBox ()); + filterHBox->set_border_width (0); + filterHBox->set_spacing (2); + filterHBox->set_tooltip_markup (M("TP_BWMIX_FILTER_TOOLTIP")); + Gtk::Label *filterLabel = Gtk::manage (new Gtk::Label (M("TP_BWMIX_FILTER")+":")); + filterHBox->pack_start (*filterLabel, Gtk::PACK_SHRINK); + filter = Gtk::manage (new MyComboBoxText ()); + filter->append_text (M("TP_BWMIX_FILTER_NONE")); + filter->append_text (M("TP_BWMIX_FILTER_RED")); + filter->append_text (M("TP_BWMIX_FILTER_REDYELLOW")); + filter->append_text (M("TP_BWMIX_FILTER_YELLOW")); + filter->append_text (M("TP_BWMIX_FILTER_GREENYELLOW")); + filter->append_text (M("TP_BWMIX_FILTER_GREEN")); + filter->append_text (M("TP_BWMIX_FILTER_BLUEGREEN")); + filter->append_text (M("TP_BWMIX_FILTER_BLUE")); + filter->append_text (M("TP_BWMIX_FILTER_PURPLE")); - toneCurveBW = Gtk::manage (new MyComboBoxText ()); - toneCurveBW->append_text (M("TP_BWMIX_TCMODE_STANDARD")); - toneCurveBW->append_text (M("TP_BWMIX_TCMODE_WEIGHTEDSTD")); - toneCurveBW->append_text (M("TP_BWMIX_TCMODE_FILMLIKE")); - toneCurveBW->append_text (M("TP_BWMIX_TCMODE_SATANDVALBLENDING")); - toneCurveBW->set_active (0); - toneCurveBW->set_tooltip_text(M("TP_BWMIX_TCMODE_LABEL1")); + filter->set_active (0); + filterHBox->pack_start (*filter); + mixerVBox->pack_start (*filterHBox); + filterconn = filter->signal_changed().connect ( sigc::mem_fun(*this, &BlackWhite::filterChanged) ); - curveEditorGBW = new CurveEditorGroup (options.lastBWCurvesDir, M("TP_BWMIX_CURVEEDITOR1")); - curveEditorGBW->setCurveListener (this); + //----------- RGB / ROYGCBMP Mixer ------------------------------ - shape = static_cast(curveEditorGBW->addCurve(CT_Diagonal, "", toneCurveBW)); - shape->setBottomBarBgGradient(bottomMilestonesbw); - shape->setLeftBarBgGradient(bottomMilestonesbw); - shape->setTooltip(M("TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP")); + imgIcon[0] = Gtk::manage (new RTImage ("Chanmixer-R.png")); + imgIcon[1] = Gtk::manage (new RTImage ("Chanmixer-G.png")); + imgIcon[2] = Gtk::manage (new RTImage ("Chanmixer-B.png")); + imgIcon[3] = Gtk::manage (new RTImage ("Chanmixer-O.png")); + imgIcon[4] = Gtk::manage (new RTImage ("Chanmixer-Y.png")); + imgIcon[5] = Gtk::manage (new RTImage ("Chanmixer-C.png")); + imgIcon[6] = Gtk::manage (new RTImage ("Chanmixer-M.png")); + imgIcon[7] = Gtk::manage (new RTImage ("Chanmixer-P.png")); - // This will add the reset button at the end of the curveType buttons - curveEditorGBW->curveListComplete(); + imgIcon[8] = Gtk::manage (new RTImage ("Chanmixer-Rgamma.png")); + imgIcon[9] = Gtk::manage (new RTImage ("Chanmixer-Ggamma.png")); + imgIcon[10] = Gtk::manage (new RTImage ("Chanmixer-Bgamma.png")); - pack_start( *curveEditorGBW, Gtk::PACK_SHRINK, 2); + mixerVBox->pack_start (*Gtk::manage (new Gtk::HSeparator())); - tcmodeconn = toneCurveBW->signal_changed().connect( sigc::mem_fun(*this, &ChMixerbw::curveMode1Changed), true ); + mixerRed= Gtk::manage(new Adjuster (/*M("TP_BWMIX_RED")*/"", -100, 200, 1, 33, imgIcon[0])); + if (mixerRed->delay < 50) mixerRed->delay = 50; + mixerRed->setAdjusterListener (this); + mixerRed->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); + mixerRed->show(); + mixerVBox->pack_start( *mixerRed, Gtk::PACK_SHRINK, 0); -//----------- Curve 2 ------------------------------ - toneCurveBW2 = Gtk::manage (new MyComboBoxText ()); - toneCurveBW2->append_text (M("TP_BWMIX_TCMODE_STANDARD")); -// toneCurveBW2->append_text (M("TP_BWMIX_TCMODE_WEIGHTEDSTD")); - toneCurveBW2->set_active (0); - toneCurveBW2->set_tooltip_text(M("TP_BWMIX_TCMODE_LABEL2")); + mixerOrange= Gtk::manage(new Adjuster (/*M("TP_BWMIX_ORANGE")*/"", -100, 200, 1, 33, imgIcon[3])); + if (mixerOrange->delay < 50) mixerOrange->delay = 50; + mixerOrange->setAdjusterListener (this); + mixerOrange->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); + mixerOrange->show(); + mixerVBox->pack_start( *mixerOrange, Gtk::PACK_SHRINK, 0); + + mixerYellow= Gtk::manage(new Adjuster (/*M("TP_BWMIX_YELLOW")*/"", -100, 200, 1, 33, imgIcon[4])); + if (mixerYellow->delay < 50) mixerYellow->delay = 50; + mixerYellow->setAdjusterListener (this); + mixerYellow->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); + mixerYellow->show(); + mixerVBox->pack_start( *mixerYellow, Gtk::PACK_SHRINK, 0); + + mixerGreen= Gtk::manage(new Adjuster (/*M("TP_BWMIX_GREEN")*/"", -100, 200, 1, 33, imgIcon[1])); + if (mixerGreen->delay < 50) mixerGreen->delay = 50; + mixerGreen->setAdjusterListener (this); + mixerGreen->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); + mixerGreen->show(); + mixerVBox->pack_start( *mixerGreen, Gtk::PACK_SHRINK, 0); + + mixerCyan= Gtk::manage(new Adjuster (/*M("TP_BWMIX_CYAN")*/"", -100, 200, 1, 33, imgIcon[5])); + if (mixerCyan->delay < 50) mixerCyan->delay = 50; + mixerCyan->setAdjusterListener (this); + mixerCyan->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); + mixerCyan->show(); + mixerVBox->pack_start( *mixerCyan, Gtk::PACK_SHRINK, 0); + + mixerBlue= Gtk::manage(new Adjuster (/*M("TP_BWMIX_BLUE")*/"", -100, 200, 1, 33, imgIcon[2])); + if (mixerBlue->delay < 50) mixerBlue->delay = 50; + mixerBlue->setAdjusterListener (this); + mixerBlue->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); + mixerBlue->show(); + mixerVBox->pack_start( *mixerBlue, Gtk::PACK_SHRINK, 0); + + mixerMagenta= Gtk::manage(new Adjuster (/*M("TP_BWMIX_MAGENTA")*/"", -100, 200, 1, 33, imgIcon[6])); + if (mixerMagenta->delay < 50) mixerMagenta->delay = 50; + mixerMagenta->setAdjusterListener (this); + mixerMagenta->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); + mixerMagenta->show(); + mixerVBox->pack_start( *mixerMagenta, Gtk::PACK_SHRINK, 0); + + mixerPurple= Gtk::manage(new Adjuster (/*M("TP_BWMIX_PURPLE")*/"", -100, 200, 1, 33, imgIcon[7])); + if (mixerPurple->delay < 50) mixerPurple->delay = 50; + mixerPurple->setAdjusterListener (this); + mixerPurple->set_tooltip_markup (M("TP_BWMIX_RGB_TOOLTIP")); + mixerPurple->show(); + mixerVBox->pack_start( *mixerPurple, Gtk::PACK_SHRINK, 0); + + mixerFrame->add(*mixerVBox); + + //----------- Gamma sliders ------------------------------ + + gammaFrame = Gtk::manage (new Gtk::Frame (M("TP_BWMIX_GAMMA"))); + pack_start (*gammaFrame, Gtk::PACK_SHRINK, 0); + + Gtk::VBox *gammaVBox = Gtk::manage (new Gtk::VBox()); + gammaVBox->set_spacing(4); + gammaVBox->set_border_width(4); + gammaRed= Gtk::manage(new Adjuster (/*M("TP_BWMIX_GAM_RED")*/"", -100, 100, 1, 0, imgIcon[8])); + if (gammaRed->delay < 50) gammaRed->delay = 50; - // Delete this line when toneCurveBW2 will have more than one entry - toneCurveBW2->hide(); + gammaRed->setAdjusterListener (this); + gammaRed->set_tooltip_markup (M("TP_BWMIX_GAM_TOOLTIP")); + gammaRed->show(); + gammaVBox->pack_start( *gammaRed, Gtk::PACK_SHRINK, 0); + gammaGreen= Gtk::manage(new Adjuster (/*M("TP_BWMIX_GAM_GREEN")*/"", -100, 100, 1, 0, imgIcon[9])); + if (gammaGreen->delay < 50) gammaGreen->delay = 50; + gammaGreen->setAdjusterListener (this); + gammaGreen->set_tooltip_markup (M("TP_BWMIX_GAM_TOOLTIP")); + gammaGreen->show(); + gammaVBox->pack_start( *gammaGreen, Gtk::PACK_SHRINK, 0); + gammaBlue= Gtk::manage(new Adjuster (/*M("TP_BWMIX_GAM_BLUE")*/"", -100, 100, 1, 0, imgIcon[10])); + if (gammaBlue->delay < 50) gammaBlue->delay = 50; + gammaBlue->setAdjusterListener (this); + gammaBlue->set_tooltip_markup (M("TP_BWMIX_GAM_TOOLTIP")); + gammaBlue->show(); + gammaVBox->pack_start( *gammaBlue, Gtk::PACK_SHRINK, 0); + gammaFrame->add(*gammaVBox); - curveEditorGBW2 = new CurveEditorGroup (options.lastBWCurvesDir, M("TP_BWMIX_CURVEEDITOR2")); - curveEditorGBW2->setCurveListener (this); + //----------- Curve 1 ------------------------------ - shape2 = static_cast(curveEditorGBW2->addCurve(CT_Diagonal, "", toneCurveBW2)); - shape2->setBottomBarBgGradient(bottomMilestonesbw); - shape2->setLeftBarBgGradient(bottomMilestonesbw); - shape2->setTooltip(M("TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP")); + std::vector bottomMilestonesbw; + bottomMilestonesbw.push_back( GradientMilestone(0., 0., 0., 0.) ); + bottomMilestonesbw.push_back( GradientMilestone(1., 1., 1., 1.) ); - curveEditorGBW2->curveListComplete(); + beforeCurveMode = Gtk::manage (new MyComboBoxText ()); + beforeCurveMode->append_text (M("TP_BWMIX_TCMODE_STANDARD")); + beforeCurveMode->append_text (M("TP_BWMIX_TCMODE_WEIGHTEDSTD")); + beforeCurveMode->append_text (M("TP_BWMIX_TCMODE_FILMLIKE")); + beforeCurveMode->append_text (M("TP_BWMIX_TCMODE_SATANDVALBLENDING")); + beforeCurveMode->set_active (0); - pack_start( *curveEditorGBW2, Gtk::PACK_SHRINK, 2); + beforeCurveCEG = new CurveEditorGroup (options.lastBWCurvesDir, M("TP_BWMIX_CURVEEDITOR1")); + beforeCurveCEG->setCurveListener (this); - tcmodeconn2 = toneCurveBW2->signal_changed().connect( sigc::mem_fun(*this, &ChMixerbw::curveMode1Changed2), true ); - - show_all(); + beforeCurve = static_cast(beforeCurveCEG->addCurve(CT_Diagonal, "", beforeCurveMode)); + beforeCurve->setBottomBarBgGradient(bottomMilestonesbw); + beforeCurve->setLeftBarBgGradient(bottomMilestonesbw); + beforeCurve->setTooltip(M("TP_BWMIX_CURVEEDITOR_BEFORE_TOOLTIP")); + + // This will add the reset button at the end of the curveType buttons + beforeCurveCEG->curveListComplete(); + + pack_start( *beforeCurveCEG, Gtk::PACK_SHRINK, 2); + + tcmodeconn = beforeCurveMode->signal_changed().connect( sigc::mem_fun(*this, &BlackWhite::curveMode1Changed), true ); + + //----------- Curve 2 ------------------------------ + + afterCurveMode = Gtk::manage (new MyComboBoxText ()); + afterCurveMode->append_text (M("TP_BWMIX_TCMODE_STANDARD")); + // afterCurveMode->append_text (M("TP_BWMIX_TCMODE_WEIGHTEDSTD")); + afterCurveMode->set_active (0); + + afterCurveCEG = new CurveEditorGroup (options.lastBWCurvesDir, M("TP_BWMIX_CURVEEDITOR2")); + afterCurveCEG->setCurveListener (this); + + afterCurve = static_cast(afterCurveCEG->addCurve(CT_Diagonal, "", afterCurveMode)); + afterCurve->setBottomBarBgGradient(bottomMilestonesbw); + afterCurve->setLeftBarBgGradient(bottomMilestonesbw); + afterCurve->setTooltip(M("TP_BWMIX_CURVEEDITOR_AFTER_TOOLTIP")); + + afterCurveCEG->curveListComplete(); + + pack_start( *afterCurveCEG, Gtk::PACK_SHRINK, 2); + + tcmodeconn2 = afterCurveMode->signal_changed().connect( sigc::mem_fun(*this, &BlackWhite::curveMode1Changed2), true ); + + show_all(); } -ChMixerbw::~ChMixerbw () { - delete curveEditorG; - delete curveEditorGBW; - delete curveEditorGBW2; +BlackWhite::~BlackWhite () { + delete luminanceCEG; + delete beforeCurveCEG; + delete afterCurveCEG; } int BWChangedUI (void* data) { - GThreadLock lock; - (static_cast(data))->BWComputed_ (); - return 0; + GThreadLock lock; + (static_cast(data))->BWComputed_ (); + return 0; } -void ChMixerbw::BWChanged (double redbw, double greenbw, double bluebw){ - nextredbw = redbw; - nextgreenbw = greenbw; - nextbluebw = bluebw; - g_idle_add (BWChangedUI, this); +void BlackWhite::BWChanged (double redbw, double greenbw, double bluebw){ + nextredbw = redbw; + nextgreenbw = greenbw; + nextbluebw = bluebw; + g_idle_add (BWChangedUI, this); } -bool ChMixerbw::BWComputed_ () { +bool BlackWhite::BWComputed_ () { - disableListener (); - bwred->setValue (nextredbw); - bwgreen->setValue (nextgreenbw); - bwblue->setValue (nextbluebw); - enableListener (); + disableListener (); + mixerRed->setValue (nextredbw); + mixerGreen->setValue (nextgreenbw); + mixerBlue->setValue (nextbluebw); + enableListener (); - return false; + return false; } -void ChMixerbw::read (const ProcParams* pp, const ParamsEdited* pedited) { +void BlackWhite::read (const ProcParams* pp, const ParamsEdited* pedited) { - disableListener (); - metconn.block(true); - autoconn.block (true); - autoch->set_active (pp->chmixerbw.autoc); - lastAuto = pp->chmixerbw.autoc; - - if (pedited && !pedited->chmixerbw.met) - met->set_active (4); - else if (pp->chmixerbw.met=="No") - met->set_active (0); - else if (pp->chmixerbw.met=="De") - met->set_active (1); - else if (pp->chmixerbw.met=="Le") - met->set_active (2); - else if (pp->chmixerbw.met=="Ch") - met->set_active (3); - metconn.block(false); - metChanged(); - - - filconn.block(true); - if (pedited && !pedited->chmixerbw.fil) - fil->set_active (9); - else if (pp->chmixerbw.fil=="No") - fil->set_active (0); - else if (pp->chmixerbw.fil=="Re") - fil->set_active (1); - else if (pp->chmixerbw.fil=="Or") - fil->set_active (2); - else if (pp->chmixerbw.fil=="Ye") - fil->set_active (3); - else if (pp->chmixerbw.fil=="Yg") - fil->set_active (4); - else if (pp->chmixerbw.fil=="Gr") - fil->set_active (5); - else if (pp->chmixerbw.fil=="Cy") - fil->set_active (6); - else if (pp->chmixerbw.fil=="Bl") - fil->set_active (7); - else if (pp->chmixerbw.fil=="Pu") - fil->set_active (8); - filconn.block(false); - filChanged(); - - setconn.block(true); - if (pedited && !pedited->chmixerbw.set) - set->set_active (15); - else if (pp->chmixerbw.set=="Nc") - set->set_active (0); - else if (pp->chmixerbw.set=="Hc") - set->set_active (1); - else if (pp->chmixerbw.set=="Lu") - set->set_active (2); - else if (pp->chmixerbw.set=="La") - set->set_active (3); - else if (pp->chmixerbw.set=="Po") - set->set_active (4); - else if (pp->chmixerbw.set=="Ls") - set->set_active (5); - else if (pp->chmixerbw.set=="Hs") - set->set_active (6); - else if (pp->chmixerbw.set=="Pa") - set->set_active (7); - else if (pp->chmixerbw.set=="Hp") - set->set_active (8); - else if (pp->chmixerbw.set=="Or") - set->set_active (9); - else if (pp->chmixerbw.set=="Ma") - set->set_active (10); - else if (pp->chmixerbw.set=="Mr") - set->set_active (11); - else if (pp->chmixerbw.set=="Fa") - set->set_active (12); - else if (pp->chmixerbw.set=="Fr") - set->set_active (13); - else if (pp->chmixerbw.set=="Ir") - set->set_active (14); - - - setconn.block(false); - setChanged(); - - - if (pedited) { - vshape->setUnChanged (!pedited->chmixerbw.vcurve); - shape->setUnChanged (!pedited->chmixerbw.curve); - shape2->setUnChanged (!pedited->chmixerbw.curve2); - autoch->set_inconsistent (!pedited->chmixerbw.autoc); - enabled->set_inconsistent (!pedited->chmixerbw.enabled); - enabledcc->set_inconsistent (!pedited->chmixerbw.enabledcc); - bwred->setEditedState (pedited->chmixerbw.bwred ? Edited : UnEdited); - bwgreen->setEditedState (pedited->chmixerbw.bwgreen ? Edited : UnEdited); - bwblue->setEditedState (pedited->chmixerbw.bwblue ? Edited : UnEdited); - bwredgam->setEditedState (pedited->chmixerbw.bwredgam ? Edited : UnEdited); - bwgreengam->setEditedState (pedited->chmixerbw.bwgreengam ? Edited : UnEdited); - bwbluegam->setEditedState (pedited->chmixerbw.bwbluegam ? Edited : UnEdited); - bworan->setEditedState (pedited->chmixerbw.bworan ? Edited : UnEdited); - bwyell->setEditedState (pedited->chmixerbw.bwyell ? Edited : UnEdited); - bwcyan->setEditedState (pedited->chmixerbw.bwcyan ? Edited : UnEdited); - bwmag->setEditedState (pedited->chmixerbw.bwmag ? Edited : UnEdited); - bwpur->setEditedState (pedited->chmixerbw.bwpur ? Edited : UnEdited); - if (!pedited->chmixerbw.curveMode) { - toneCurveBW->set_active(4); - } - if (!pedited->chmixerbw.curveMode2) { - toneCurveBW2->set_active(1); - } - } - autoconn.block (false); + disableListener (); + methodconn.block(true); + //autoconn.block (true); + filterconn.block(true); + settingconn.block(true); enaccconn.block (true); - enabledcc->set_active (pp->chmixerbw.enabledcc); - enaccconn.block (false); - lastEnabledcc = pp->chmixerbw.enabledcc; enaconn.block (true); - enabled->set_active (pp->chmixerbw.enabled); + + + if (pedited && !pedited->blackwhite.setting) + setting->set_active (15); // "Unchanged" + else if (pp->blackwhite.setting=="NormalContrast") + setting->set_active (0); + else if (pp->blackwhite.setting=="HighContrast") + setting->set_active (1); + else if (pp->blackwhite.setting=="Luminance") + setting->set_active (2); + else if (pp->blackwhite.setting=="Landscape") + setting->set_active (3); + else if (pp->blackwhite.setting=="Portrait") + setting->set_active (4); + else if (pp->blackwhite.setting=="LowSensitivity") + setting->set_active (5); + else if (pp->blackwhite.setting=="HighSensitivity") + setting->set_active (6); + else if (pp->blackwhite.setting=="Panchromatic") + setting->set_active (7); + else if (pp->blackwhite.setting=="HyperPanchromatic") + setting->set_active (8); + else if (pp->blackwhite.setting=="Orthochromatic") + setting->set_active (9); + else if (pp->blackwhite.setting=="RGB-Abs") + setting->set_active (10); + else if (pp->blackwhite.setting=="RGB-Rel") + setting->set_active (11); + else if (pp->blackwhite.setting=="ROYGCBMP-Abs") + setting->set_active (12); + else if (pp->blackwhite.setting=="ROYGCBMP-Rel") + setting->set_active (13); + else if (pp->blackwhite.setting=="InfraRed") + setting->set_active (14); + settingChanged(); + + + if (pedited && !pedited->blackwhite.method) + method->set_active (3); // "Unchanged" + else if (pp->blackwhite.method=="Desaturation") + method->set_active (0); + else if (pp->blackwhite.method=="LumEqualizer") + method->set_active (1); + else if (pp->blackwhite.method=="ChannelMixer") + method->set_active (2); + methodChanged(); + + + if (pedited && !pedited->blackwhite.filter) + filter->set_active (9); // "Unchanged" + else if (pp->blackwhite.filter=="None") + filter->set_active (0); + else if (pp->blackwhite.filter=="Red") + filter->set_active (1); + else if (pp->blackwhite.filter=="Orange") + filter->set_active (2); + else if (pp->blackwhite.filter=="Yellow") + filter->set_active (3); + else if (pp->blackwhite.filter=="YellowGreen") + filter->set_active (4); + else if (pp->blackwhite.filter=="Green") + filter->set_active (5); + else if (pp->blackwhite.filter=="Cyan") + filter->set_active (6); + else if (pp->blackwhite.filter=="Blue") + filter->set_active (7); + else if (pp->blackwhite.filter=="Purple") + filter->set_active (8); + filterChanged(); + + enabledcc->set_active (pp->blackwhite.enabledcc); + lastEnabledcc = pp->blackwhite.enabledcc; + enabled->set_active (pp->blackwhite.enabled); + lastEnabled = pp->blackwhite.enabled; + + mixerRed->setValue (pp->blackwhite.mixerRed); + mixerGreen->setValue (pp->blackwhite.mixerGreen); + mixerBlue->setValue (pp->blackwhite.mixerBlue); + gammaRed->setValue (pp->blackwhite.gammaRed); + gammaGreen->setValue (pp->blackwhite.gammaGreen); + gammaBlue->setValue (pp->blackwhite.gammaBlue); + mixerOrange->setValue (pp->blackwhite.mixerOrange); + mixerYellow->setValue (pp->blackwhite.mixerYellow); + mixerCyan->setValue (pp->blackwhite.mixerCyan); + mixerMagenta->setValue (pp->blackwhite.mixerMagenta); + mixerPurple->setValue (pp->blackwhite.mixerPurple); + luminanceCurve->setCurve (pp->blackwhite.luminanceCurve); + beforeCurve->setCurve (pp->blackwhite.beforeCurve); + beforeCurveMode->set_active(pp->blackwhite.beforeCurveMode); + afterCurve->setCurve (pp->blackwhite.afterCurve); + afterCurveMode->set_active(pp->blackwhite.afterCurveMode); + + autoch->set_active (pp->blackwhite.autoc); + lastAuto = pp->blackwhite.autoc; + + if (pedited) { + luminanceCurve->setUnChanged (!pedited->blackwhite.luminanceCurve); + beforeCurve->setUnChanged (!pedited->blackwhite.beforeCurve); + afterCurve->setUnChanged (!pedited->blackwhite.afterCurve); + autoch->set_inconsistent (!pedited->blackwhite.autoc); + enabled->set_inconsistent (!pedited->blackwhite.enabled); + enabledcc->set_inconsistent (!pedited->blackwhite.enabledcc); + mixerRed->setEditedState (pedited->blackwhite.mixerRed ? Edited : UnEdited); + mixerGreen->setEditedState (pedited->blackwhite.mixerGreen ? Edited : UnEdited); + mixerBlue->setEditedState (pedited->blackwhite.mixerBlue ? Edited : UnEdited); + gammaRed->setEditedState (pedited->blackwhite.gammaRed ? Edited : UnEdited); + gammaGreen->setEditedState (pedited->blackwhite.gammaGreen ? Edited : UnEdited); + gammaBlue->setEditedState (pedited->blackwhite.gammaBlue ? Edited : UnEdited); + mixerOrange->setEditedState (pedited->blackwhite.mixerOrange ? Edited : UnEdited); + mixerYellow->setEditedState (pedited->blackwhite.mixerYellow ? Edited : UnEdited); + mixerCyan->setEditedState (pedited->blackwhite.mixerCyan ? Edited : UnEdited); + mixerMagenta->setEditedState (pedited->blackwhite.mixerMagenta ? Edited : UnEdited); + mixerPurple->setEditedState (pedited->blackwhite.mixerPurple ? Edited : UnEdited); + if (!pedited->blackwhite.beforeCurveMode) { + beforeCurveMode->set_active(4); // "Unchanged" + } + if (!pedited->blackwhite.afterCurveMode) { + afterCurveMode->set_active(1); // "Unchanged" + } + } + methodconn.block(false); + filterconn.block(false); + settingconn.block(false); + //autoconn.block (false); enaconn.block (false); - lastEnabled = pp->chmixerbw.enabled; - bwred->setValue (pp->chmixerbw.bwred); - bwgreen->setValue (pp->chmixerbw.bwgreen); - bwblue->setValue (pp->chmixerbw.bwblue); - bwredgam->setValue (pp->chmixerbw.bwredgam); - bwgreengam->setValue (pp->chmixerbw.bwgreengam); - bwbluegam->setValue (pp->chmixerbw.bwbluegam); - bworan->setValue (pp->chmixerbw.bworan); - bwyell->setValue (pp->chmixerbw.bwyell); - bwcyan->setValue (pp->chmixerbw.bwcyan); - bwmag->setValue (pp->chmixerbw.bwmag); - bwpur->setValue (pp->chmixerbw.bwpur); - vshape->setCurve (pp->chmixerbw.vcurve); - shape->setCurve (pp->chmixerbw.curve); - toneCurveBW->set_active(pp->chmixerbw.curveMode); - shape2->setCurve (pp->chmixerbw.curve2); - toneCurveBW2->set_active(pp->chmixerbw.curveMode2); - enableListener (); + enaccconn.block (false); + + enableListener (); } -void ChMixerbw::write (ProcParams* pp, ParamsEdited* pedited) { - pp->chmixerbw.enabledcc = enabledcc->get_active (); - pp->chmixerbw.enabled = enabled->get_active (); - pp->chmixerbw.autoc = autoch->get_active(); - pp->chmixerbw.bwred = bwred->getValue (); - pp->chmixerbw.bwgreen = bwgreen->getValue (); - pp->chmixerbw.bwblue = bwblue->getValue (); - pp->chmixerbw.bwredgam = bwredgam->getValue (); - pp->chmixerbw.bwgreengam = bwgreengam->getValue (); - pp->chmixerbw.bwbluegam = bwbluegam->getValue (); - pp->chmixerbw.bworan = bworan->getValue (); - pp->chmixerbw.bwyell = bwyell->getValue (); - pp->chmixerbw.bwcyan = bwcyan->getValue (); - pp->chmixerbw.bwmag = bwmag->getValue (); - pp->chmixerbw.bwpur = bwpur->getValue (); - pp->chmixerbw.vcurve = vshape->getCurve (); - pp->chmixerbw.curve = shape->getCurve (); - pp->chmixerbw.curve2 = shape2->getCurve (); - - int tcMode = toneCurveBW->get_active_row_number(); - if (tcMode == 0) pp->chmixerbw.curveMode = ChannelMixerbwParams::TC_MODE_STD_BW; - else if (tcMode == 1) pp->chmixerbw.curveMode = ChannelMixerbwParams::TC_MODE_WEIGHTEDSTD_BW; - else if (tcMode == 2) pp->chmixerbw.curveMode = ChannelMixerbwParams::TC_MODE_FILMLIKE_BW; - else if (tcMode == 3) pp->chmixerbw.curveMode = ChannelMixerbwParams::TC_MODE_SATANDVALBLENDING_BW; +void BlackWhite::write (ProcParams* pp, ParamsEdited* pedited) { + pp->blackwhite.enabled = enabled->get_active (); + pp->blackwhite.luminanceCurve = luminanceCurve->getCurve (); + pp->blackwhite.autoc = autoch->get_active(); + pp->blackwhite.enabledcc = enabledcc->get_active (); + pp->blackwhite.mixerRed = mixerRed->getValue (); + pp->blackwhite.mixerGreen = mixerGreen->getValue (); + pp->blackwhite.mixerBlue = mixerBlue->getValue (); + pp->blackwhite.gammaRed = gammaRed->getValue (); + pp->blackwhite.gammaGreen = gammaGreen->getValue (); + pp->blackwhite.gammaBlue = gammaBlue->getValue (); + pp->blackwhite.mixerOrange = mixerOrange->getValue (); + pp->blackwhite.mixerYellow = mixerYellow->getValue (); + pp->blackwhite.mixerCyan = mixerCyan->getValue (); + pp->blackwhite.mixerMagenta = mixerMagenta->getValue (); + pp->blackwhite.mixerPurple = mixerPurple->getValue (); + pp->blackwhite.beforeCurve = beforeCurve->getCurve (); + pp->blackwhite.afterCurve = afterCurve->getCurve (); - tcMode = toneCurveBW2->get_active_row_number(); - if (tcMode == 0) pp->chmixerbw.curveMode2 = ChannelMixerbwParams::TC_MODE_STD_BW; - // else if (tcMode == 1) pp->chmixerbw.curveMode2 = ChannelMixerbwParams::TC_MODE_WEIGHTEDSTD; + int tcMode = beforeCurveMode->get_active_row_number(); + if (tcMode == 0) pp->blackwhite.beforeCurveMode = BlackWhiteParams::TC_MODE_STD_BW; + else if (tcMode == 1) pp->blackwhite.beforeCurveMode = BlackWhiteParams::TC_MODE_WEIGHTEDSTD_BW; + else if (tcMode == 2) pp->blackwhite.beforeCurveMode = BlackWhiteParams::TC_MODE_FILMLIKE_BW; + else if (tcMode == 3) pp->blackwhite.beforeCurveMode = BlackWhiteParams::TC_MODE_SATANDVALBLENDING_BW; + + tcMode = afterCurveMode->get_active_row_number(); + if (tcMode == 0) pp->blackwhite.afterCurveMode = BlackWhiteParams::TC_MODE_STD_BW; + // else if (tcMode == 1) pp->blackwhite.afterCurveMode = BlackWhiteParams::TC_MODE_WEIGHTEDSTD; - if (pedited) { - pedited->chmixerbw.vcurve = !vshape->isUnChanged (); - pedited->chmixerbw.enabled = !enabled->get_inconsistent(); - pedited->chmixerbw.curve = !shape->isUnChanged (); - pedited->chmixerbw.autoc = !autoch->get_inconsistent(); - pedited->chmixerbw.enabledcc = !enabledcc->get_inconsistent(); - pedited->chmixerbw.bwred = bwred->getEditedState (); - pedited->chmixerbw.bwgreen = bwgreen->getEditedState (); - pedited->chmixerbw.bwblue = bwblue->getEditedState (); - pedited->chmixerbw.bwredgam = bwredgam->getEditedState (); - pedited->chmixerbw.bwgreengam = bwgreengam->getEditedState (); - pedited->chmixerbw.bwbluegam = bwbluegam->getEditedState (); - pedited->chmixerbw.fil = fil->get_active_text()!=M("GENERAL_UNCHANGED"); - pedited->chmixerbw.set = set->get_active_text()!=M("GENERAL_UNCHANGED"); - pedited->chmixerbw.met = met->get_active_text()!=M("GENERAL_UNCHANGED"); - pedited->chmixerbw.bworan = bworan->getEditedState (); - pedited->chmixerbw.bwyell = bwyell->getEditedState (); - pedited->chmixerbw.bwcyan = bwcyan->getEditedState (); - pedited->chmixerbw.bwmag = bwmag->getEditedState (); - pedited->chmixerbw.bwpur = bwpur->getEditedState (); - pedited->chmixerbw.curveMode = toneCurveBW->get_active_row_number() != 4; - pedited->chmixerbw.curveMode2 = toneCurveBW2->get_active_row_number() != 1; + if (pedited) { + pedited->blackwhite.enabled = !enabled->get_inconsistent(); + pedited->blackwhite.luminanceCurve = !luminanceCurve->isUnChanged (); + pedited->blackwhite.autoc = !autoch->get_inconsistent(); + pedited->blackwhite.enabledcc = !enabledcc->get_inconsistent(); + pedited->blackwhite.mixerRed = mixerRed->getEditedState (); + pedited->blackwhite.mixerGreen = mixerGreen->getEditedState (); + pedited->blackwhite.mixerBlue = mixerBlue->getEditedState (); + pedited->blackwhite.gammaRed = gammaRed->getEditedState (); + pedited->blackwhite.gammaGreen = gammaGreen->getEditedState (); + pedited->blackwhite.gammaBlue = gammaBlue->getEditedState (); + pedited->blackwhite.filter = filter->get_active_text()!=M("GENERAL_UNCHANGED"); + pedited->blackwhite.setting = setting->get_active_text()!=M("GENERAL_UNCHANGED"); + pedited->blackwhite.method = method->get_active_text()!=M("GENERAL_UNCHANGED"); + pedited->blackwhite.mixerOrange = mixerOrange->getEditedState (); + pedited->blackwhite.mixerYellow = mixerYellow->getEditedState (); + pedited->blackwhite.mixerCyan = mixerCyan->getEditedState (); + pedited->blackwhite.mixerMagenta = mixerMagenta->getEditedState (); + pedited->blackwhite.mixerPurple = mixerPurple->getEditedState (); + pedited->blackwhite.beforeCurve = !beforeCurve->isUnChanged (); + pedited->blackwhite.beforeCurveMode = beforeCurveMode->get_active_row_number() != 4; + pedited->blackwhite.afterCurve = !afterCurve->isUnChanged (); + pedited->blackwhite.afterCurveMode = afterCurveMode->get_active_row_number() != 1; } - if (met->get_active_row_number()==0) - pp->chmixerbw.met = "No"; - else if (met->get_active_row_number()==1) - pp->chmixerbw.met = "De"; - else if (met->get_active_row_number()==2) - pp->chmixerbw.met = "Le"; - else if (met->get_active_row_number()==3) - pp->chmixerbw.met = "Ch"; - - - if (set->get_active_row_number()==0) - pp->chmixerbw.set = "Nc"; - else if (set->get_active_row_number()==1) - pp->chmixerbw.set = "Hc"; - else if (set->get_active_row_number()==2) - pp->chmixerbw.set = "Lu"; - else if (set->get_active_row_number()==3) - pp->chmixerbw.set = "La"; - else if (set->get_active_row_number()==4) - pp->chmixerbw.set = "Po"; - else if (set->get_active_row_number()==5) - pp->chmixerbw.set = "Ls"; - else if (set->get_active_row_number()==6) - pp->chmixerbw.set = "Hs"; - else if (set->get_active_row_number()==7) - pp->chmixerbw.set = "Pa"; - else if (set->get_active_row_number()==8) - pp->chmixerbw.set = "Hp"; - else if (set->get_active_row_number()==9) - pp->chmixerbw.set = "Or"; - else if (set->get_active_row_number()==10) - pp->chmixerbw.set = "Ma"; - else if (set->get_active_row_number()==11) - pp->chmixerbw.set = "Mr"; - else if (set->get_active_row_number()==12) - pp->chmixerbw.set = "Fa"; - else if (set->get_active_row_number()==13) - pp->chmixerbw.set = "Fr"; - else if (set->get_active_row_number()==14) - pp->chmixerbw.set = "Ir"; - - - if (fil->get_active_row_number()==0) - pp->chmixerbw.fil = "No"; - else if (fil->get_active_row_number()==1) - pp->chmixerbw.fil = "Re"; - else if (fil->get_active_row_number()==2) - pp->chmixerbw.fil = "Or"; - else if (fil->get_active_row_number()==3) - pp->chmixerbw.fil = "Ye"; - else if (fil->get_active_row_number()==4) - pp->chmixerbw.fil = "Yg"; - else if (fil->get_active_row_number()==5) - pp->chmixerbw.fil = "Gr"; - else if (fil->get_active_row_number()==6) - pp->chmixerbw.fil = "Cy"; - else if (fil->get_active_row_number()==7) - pp->chmixerbw.fil = "Bl"; - else if (fil->get_active_row_number()==8) - pp->chmixerbw.fil = "Pu"; + if (method->get_active_row_number()==0) + pp->blackwhite.method = "Desaturation"; + else if (method->get_active_row_number()==1) + pp->blackwhite.method = "LumEqualizer"; + else if (method->get_active_row_number()==2) + pp->blackwhite.method = "ChannelMixer"; + + if (setting->get_active_row_number()==0) + pp->blackwhite.setting = "NormalContrast"; + else if (setting->get_active_row_number()==1) + pp->blackwhite.setting = "HighContrast"; + else if (setting->get_active_row_number()==2) + pp->blackwhite.setting = "Luminance"; + else if (setting->get_active_row_number()==3) + pp->blackwhite.setting = "Landscape"; + else if (setting->get_active_row_number()==4) + pp->blackwhite.setting = "Portrait"; + else if (setting->get_active_row_number()==5) + pp->blackwhite.setting = "LowSensitivity"; + else if (setting->get_active_row_number()==6) + pp->blackwhite.setting = "HighSensitivity"; + else if (setting->get_active_row_number()==7) + pp->blackwhite.setting = "Panchromatic"; + else if (setting->get_active_row_number()==8) + pp->blackwhite.setting = "HyperPanchromatic"; + else if (setting->get_active_row_number()==9) + pp->blackwhite.setting = "Orthochromatic"; + else if (setting->get_active_row_number()==10) + pp->blackwhite.setting = "RGB-Abs"; + else if (setting->get_active_row_number()==11) + pp->blackwhite.setting = "RGB-Rel"; + else if (setting->get_active_row_number()==12) + pp->blackwhite.setting = "ROYGCBMP-Abs"; + else if (setting->get_active_row_number()==13) + pp->blackwhite.setting = "ROYGCBMP-Rel"; + else if (setting->get_active_row_number()==14) + pp->blackwhite.setting = "InfraRed"; + + if (filter->get_active_row_number()==0) + pp->blackwhite.filter = "None"; + else if (filter->get_active_row_number()==1) + pp->blackwhite.filter = "Red"; + else if (filter->get_active_row_number()==2) + pp->blackwhite.filter = "Orange"; + else if (filter->get_active_row_number()==3) + pp->blackwhite.filter = "Yellow"; + else if (filter->get_active_row_number()==4) + pp->blackwhite.filter = "YellowGreen"; + else if (filter->get_active_row_number()==5) + pp->blackwhite.filter = "Green"; + else if (filter->get_active_row_number()==6) + pp->blackwhite.filter = "Cyan"; + else if (filter->get_active_row_number()==7) + pp->blackwhite.filter = "Blue"; + else if (filter->get_active_row_number()==8) + pp->blackwhite.filter = "Purple"; } -void ChMixerbw::curveChanged (CurveEditor* ce) { + +void BlackWhite::curveChanged (CurveEditor* ce) { if (listener) { - if (ce == shape) - listener->panelChanged (EvToneCurvebw1, M("HISTORY_CUSTOMCURVE")); - if (ce == shape2) - listener->panelChanged (EvToneCurvebw2, M("HISTORY_CUSTOMCURVE")); - if (ce == vshape) - listener->panelChanged (EvBWequalV, M("HISTORY_CUSTOMCURVE")); + if (ce == beforeCurve) + listener->panelChanged (EvBWBeforeCurve, M("HISTORY_CUSTOMCURVE")); + if (ce == afterCurve) + listener->panelChanged (EvBWAfterCurve, M("HISTORY_CUSTOMCURVE")); + if (ce == luminanceCurve) + listener->panelChanged (EvBWLuminanceEqual, M("HISTORY_CUSTOMCURVE")); } } -void ChMixerbw::curveMode1Changed () { - if (listener) Glib::signal_idle().connect (sigc::mem_fun(*this, &ChMixerbw::curveMode1Changed_)); +void BlackWhite::curveMode1Changed () { + if (listener) Glib::signal_idle().connect (sigc::mem_fun(*this, &BlackWhite::curveMode1Changed_)); } -bool ChMixerbw::curveMode1Changed_ () { - if (listener) listener->panelChanged (EvToneCurveBWMode1, toneCurveBW->get_active_text()); - return false; +bool BlackWhite::curveMode1Changed_ () { + if (listener) listener->panelChanged (EvBWBeforeCurveMode, escapeHtmlChars(beforeCurveMode->get_active_text())); + return false; } -void ChMixerbw::curveMode1Changed2 () { - if (listener) Glib::signal_idle().connect (sigc::mem_fun(*this, &ChMixerbw::curveMode1Changed2_)); +void BlackWhite::curveMode1Changed2 () { + if (listener) Glib::signal_idle().connect (sigc::mem_fun(*this, &BlackWhite::curveMode1Changed2_)); } -bool ChMixerbw::curveMode1Changed2_ () { - if (listener) listener->panelChanged (EvToneCurveBWMode2, toneCurveBW2->get_active_text()); - return false; +bool BlackWhite::curveMode1Changed2_ () { + if (listener) listener->panelChanged (EvBWAfterCurveMode, escapeHtmlChars(afterCurveMode->get_active_text())); + return false; } -void ChMixerbw::colorForValue (double valX, double valY, int callerId, ColorCaller* caller) { +void BlackWhite::colorForValue (double valX, double valY, int callerId, ColorCaller* caller) { float r, g, b; @@ -718,282 +686,93 @@ void ChMixerbw::colorForValue (double valX, double valY, int callerId, ColorCall else { printf("Error: no curve displayed!\n"); } - } -void ChMixerbw::setChanged () { +void BlackWhite::settingChanged () { - if ( set->get_active_row_number()==10 || set->get_active_row_number()==11 ) { - bwred->show(); - bwred->set_sensitive (true); - bwgreen->show(); - bwgreen->set_sensitive (true); - bwblue->show(); - bwblue->set_sensitive (true); - bwredgam->show(); - bwgreengam->show(); - bwbluegam->show(); - bworan->hide(); - bwyell->hide(); - bwcyan->hide(); - bwmag->hide(); - bwpur->hide(); - orlabel->hide(); - ylabel->hide(); - clabel->hide(); - mlabel->hide(); - plabel->hide(); - Gamlabel->show(); - rlabel->show(); - glabel->show(); - blabel->show(); - rglabel->show(); - gglabel->show(); - bglabel->show(); - enabledcc->hide(); - fil->set_sensitive (true); - + if ( setting->get_active_row_number()==10 || setting->get_active_row_number()==11 ) { + // RGB Channel Mixer + showMixer(3); + hideEnabledCC(); + showFilter(); } - else if ( set->get_active_row_number()==12 || set->get_active_row_number()==13 ) { - bwred->show(); - bwred->set_sensitive (true); - bwgreen->show(); - bwgreen->set_sensitive (true); - bwblue->show(); - bwblue->set_sensitive (true); - bwredgam->show(); - bwgreengam->show(); - bwbluegam->show(); - bworan->show(); - bwyell->show(); - bwcyan->show(); - bwmag->show(); - bwpur->show(); - orlabel->show(); - ylabel->show(); - clabel->show(); - mlabel->show(); - plabel->show(); - Gamlabel->show(); - rlabel->show(); - glabel->show(); - blabel->show(); - rglabel->show(); - gglabel->show(); - bglabel->show(); - enabledcc->show(); - fil->set_sensitive (true); - + else if ( setting->get_active_row_number()==12 || setting->get_active_row_number()==13 ) { + // ROYGCBMP Channel Mixer + showMixer(7); + showEnabledCC(); + showFilter(); } - else if ( set->get_active_row_number()==14 ) { - fil->set_active (0); - fil->set_sensitive (false); + else if ( setting->get_active_row_number()==14 ) { + // Infrared + filter->set_active (0); + hideFilter(); } - else { - bwred->show(); - bwred->set_sensitive (false); - bwgreen->show(); - bwgreen->set_sensitive (false); - bwblue->show(); - bwblue->set_sensitive (false); - rlabel->show(); - glabel->show(); - blabel->show(); - rglabel->show(); - gglabel->show(); - bglabel->show(); - Gamlabel->show(); - bwredgam->show(); - bwgreengam->show(); - bwbluegam->show(); - bworan->hide(); - bwyell->hide(); - bwcyan->hide(); - bwmag->hide(); - bwpur->hide(); - orlabel->hide(); - ylabel->hide(); - clabel->hide(); - mlabel->hide(); - plabel->hide(); - enabledcc->hide(); - fil->set_sensitive (true); - - } - - if (listener && (multiImage||enabled->get_active())) { - listener->panelChanged (EvBWset, set->get_active_text ()); - } -} - - -void ChMixerbw::filChanged () { - if (listener && (multiImage||enabled->get_active())) { - listener->panelChanged (EvBWfil, fil->get_active_text ()); - } -} - -void ChMixerbw::metChanged () { - if(met->get_active_row_number()==3) { - set->show(); - setLabel->show(); - enabled->show(); - curveEditorG->hide(); - curveEditorGBW->show(); - curveEditorGBW2->show(); - autoch->show(); - neutral->show(); - fil->show(); - filLabel->show(); - - if(set->get_active_row_number()==10 || set->get_active_row_number()==11 || set->get_active_row_number()==12 || set->get_active_row_number()==13){ - bwred->show(); - bwgreen->show(); - bwblue->show(); - rlabel->show(); - glabel->show(); - blabel->show(); - rglabel->show(); - gglabel->show(); - bglabel->show(); - bwredgam->show(); - bwgreengam->show(); - bwbluegam->show(); - Gamlabel->show(); - enabledcc->hide(); - } - if(set->get_active_row_number()==12 || set->get_active_row_number()==13) { - bworan->show(); - bwyell->show(); - bwcyan->show(); - bwmag->show(); - bwpur->show(); - orlabel->show(); - ylabel->show(); - clabel->show(); - mlabel->show(); - plabel->show(); - enabledcc->show(); - } - } - - else if(met->get_active_row_number()==2) { - curveEditorG->show(); - curveEditorGBW->show(); - curveEditorGBW2->show(); - autoch->hide(); - neutral->hide(); - set->hide(); - setLabel->hide(); - fil->hide(); - filLabel->hide(); - enabledcc->hide(); - enabled->show(); - bwred->hide(); - bwgreen->hide(); - bwblue->hide(); - rlabel->hide(); - glabel->hide(); - blabel->hide(); - bworan->hide(); - bwyell->hide(); - bwcyan->hide(); - bwmag->hide(); - bwpur->hide(); - orlabel->hide(); - ylabel->hide(); - clabel->hide(); - mlabel->hide(); - plabel->hide(); - rglabel->show(); - gglabel->show(); - bglabel->show(); - bwredgam->show(); - bwgreengam->show(); - bwbluegam->show(); - Gamlabel->show(); - } - else if(met->get_active_row_number()==1) { - curveEditorGBW->show(); - curveEditorGBW2->show(); - autoch->hide(); - neutral->hide(); - rglabel->show(); - gglabel->show(); - bglabel->show(); - bwredgam->show(); - bwgreengam->show(); - bwbluegam->show(); - Gamlabel->show(); - set->hide(); - setLabel->hide(); - fil->hide(); - filLabel->hide(); - enabledcc->hide(); - enabled->show(); - curveEditorG->hide(); - bwred->hide(); - bwgreen->hide(); - bwblue->hide(); - rlabel->hide(); - glabel->hide(); - blabel->hide(); - bworan->hide(); - bwyell->hide(); - bwcyan->hide(); - bwmag->hide(); - bwpur->hide(); - orlabel->hide(); - ylabel->hide(); - clabel->hide(); - mlabel->hide(); - plabel->hide(); - } else { - autoch->hide(); - neutral->hide(); - set->hide(); - setLabel->hide(); - fil->hide(); - filLabel->hide(); - enabledcc->hide(); - enabled->show(); - curveEditorG->hide(); - bwred->hide(); - bwgreen->hide(); - bwblue->hide(); - rlabel->hide(); - glabel->hide(); - blabel->hide(); - rglabel->hide(); - gglabel->hide(); - bglabel->hide(); - bwredgam->hide(); - bwgreengam->hide(); - bwbluegam->hide(); - Gamlabel->hide(); - bworan->hide(); - bwyell->hide(); - bwcyan->hide(); - bwmag->hide(); - bwpur->hide(); - orlabel->hide(); - ylabel->hide(); - clabel->hide(); - mlabel->hide(); - plabel->hide(); - curveEditorGBW->hide(); - curveEditorGBW2->hide(); - } + // RGB Presets + showMixer(3, false); + hideEnabledCC(); + showFilter(); + } + if (listener && (multiImage||enabled->get_active())) { - listener->panelChanged (EvBWmet, met->get_active_text ()); + listener->panelChanged (EvBWsetting, setting->get_active_text ()); } } -void ChMixerbw::enabled_toggled () { - - if (batchMode) { + +void BlackWhite::filterChanged () { + if (listener && (multiImage||enabled->get_active())) { + listener->panelChanged (EvBWfilter, filter->get_active_text ()); + } +} + +void BlackWhite::methodChanged () { + if(method->get_active_row_number()==2) { + // Channel Mixer + hideLuminance(); + + if(setting->get_active_row_number()==10 || setting->get_active_row_number()==11){ + hideEnabledCC(); + showMixer(3); + } + else if(setting->get_active_row_number()==12 || setting->get_active_row_number()==13) { + showEnabledCC(); + showMixer(7); + } + else { + hideEnabledCC(); + showMixer(3, false); + } + beforeCurveCEG->show(); + afterCurveCEG->show(); + + bool wasEnabled = disableListener(); + settingChanged(); + if (wasEnabled) enableListener(); + } + else if(method->get_active_row_number()==1) { + // Luminance Equalizer + showLuminance(); + hideMixer(); + beforeCurveCEG->show(); + afterCurveCEG->show(); + } + else if(method->get_active_row_number()==0) { + // Desaturation + hideLuminance(); + hideMixer(); + beforeCurveCEG->show(); + afterCurveCEG->show(); + } + if (listener && (multiImage||enabled->get_active())) { + listener->panelChanged (EvBWmethod, method->get_active_text ()); + } +} + +void BlackWhite::enabled_toggled () { + + if (multiImage) { if (enabled->get_inconsistent()) { enabled->set_inconsistent (false); enaconn.block (true); @@ -1007,44 +786,51 @@ void ChMixerbw::enabled_toggled () { } if (listener) { - listener->panelChanged (EvBWChmixEnabledLm, M("GENERAL_DISABLED")); - } - + if (enabled->get_inconsistent()) + listener->panelChanged (EvBWChmixEnabled, M("GENERAL_UNCHANGED")); + else if (enabled->get_active ()) { + listener->panelChanged (EvBWChmixEnabled, M("GENERAL_ENABLED")); + } + else { + listener->panelChanged (EvBWChmixEnabled, M("GENERAL_DISABLED")); + } } -void ChMixerbw::neutral_pressed () { -// This method deselects auto chmixer -// and sets "neutral" values to params - - if (batchMode) { - autoch->set_inconsistent (false); - autoconn.block (true); - autoch->set_active (false); - autoconn.block (false); - - lastAuto = autoch->get_active (); - } - else { //!batchMode - autoch->set_active (false); - autoch->set_inconsistent (false); - } - bwred->setValue(33); - bwgreen->setValue(33); - bwblue->setValue(33); - bworan->setValue(33); - bwyell->setValue(33); - bwmag->setValue(33); - bwpur->setValue(33); - bwcyan->setValue(33); - set->set_active (11); - fil->set_active (0); - - listener->panelChanged (EvNeutralBW, M("GENERAL_ENABLED")); } +void BlackWhite::neutral_pressed () { + // This method deselects auto chmixer and sets "neutral" values to params + disableListener(); -void ChMixerbw::enabledcc_toggled () { - - if (batchMode) { + if (multiImage) { + autoch->set_inconsistent (false); + autoch->set_active (false); + + lastAuto = autoch->get_active (); + } + else { //!batchMode + autoch->set_active (false); + } + mixerRed->resetValue(false); + mixerGreen->resetValue(false); + mixerBlue->resetValue(false); + mixerOrange->resetValue(false); + mixerYellow->resetValue(false); + mixerMagenta->resetValue(false); + mixerPurple->resetValue(false); + mixerCyan->resetValue(false); + int activeSetting = setting->get_active_row_number(); + if (activeSetting < 10 || activeSetting > 13) + setting->set_active (11); + filter->set_active (0); + + enableListener(); + + listener->panelChanged (EvNeutralBW, M("ADJUSTER_RESET_TO_DEFAULT")); +} + +void BlackWhite::enabledcc_toggled () { + + if (multiImage) { if (enabledcc->get_inconsistent()) { enabledcc->set_inconsistent (false); enaccconn.block (true); @@ -1056,238 +842,317 @@ void ChMixerbw::enabledcc_toggled () { lastEnabledcc = enabledcc->get_active (); } - if (listener) { - if (enabledcc->get_active ()){ - listener->panelChanged (EvBWChmixEnabled, M("GENERAL_ENABLED")); - } - else { - listener->panelChanged (EvBWChmixEnabled, M("GENERAL_DISABLED")); - } - + if (enabledcc->get_inconsistent()) + listener->panelChanged (EvBWChmixEnabledLm, M("GENERAL_UNCHANGED")); + else if (enabledcc->get_active ()) { + listener->panelChanged (EvBWChmixEnabledLm, M("GENERAL_ENABLED")); + } + else { + listener->panelChanged (EvBWChmixEnabledLm, M("GENERAL_DISABLED")); + } } } -void ChMixerbw::setDefaults (const ProcParams* defParams, const ParamsEdited* pedited) { +void BlackWhite::setDefaults (const ProcParams* defParams, const ParamsEdited* pedited) { - bwred->setDefault (defParams->chmixerbw.bwred); - bwgreen->setDefault (defParams->chmixerbw.bwgreen); - bwblue->setDefault (defParams->chmixerbw.bwblue); - bwredgam->setDefault (defParams->chmixerbw.bwredgam); - bwgreengam->setDefault (defParams->chmixerbw.bwgreengam); - bwbluegam->setDefault (defParams->chmixerbw.bwbluegam); - bworan->setDefault (defParams->chmixerbw.bworan); - bwyell->setDefault (defParams->chmixerbw.bwyell); - bwcyan->setDefault (defParams->chmixerbw.bwcyan); - bwmag->setDefault (defParams->chmixerbw.bwmag); - bwpur->setDefault (defParams->chmixerbw.bwpur); - - if (pedited) { - bwred->setDefaultEditedState (pedited->chmixerbw.bwred ? Edited : UnEdited); - bwgreen->setDefaultEditedState (pedited->chmixerbw.bwgreen ? Edited : UnEdited); - bwblue->setDefaultEditedState (pedited->chmixerbw.bwblue ? Edited : UnEdited); - bwredgam->setDefaultEditedState (pedited->chmixerbw.bwredgam ? Edited : UnEdited); - bwgreengam->setDefaultEditedState (pedited->chmixerbw.bwgreengam ? Edited : UnEdited); - bwbluegam->setDefaultEditedState (pedited->chmixerbw.bwbluegam ? Edited : UnEdited); - bworan->setDefaultEditedState (pedited->chmixerbw.bworan ? Edited : UnEdited); - bwyell->setDefaultEditedState (pedited->chmixerbw.bwyell ? Edited : UnEdited); - bwcyan->setDefaultEditedState (pedited->chmixerbw.bwcyan ? Edited : UnEdited); - bwmag->setDefaultEditedState (pedited->chmixerbw.bwmag ? Edited : UnEdited); - bwpur->setDefaultEditedState (pedited->chmixerbw.bwpur ? Edited : UnEdited); - } - else { - bwred->setDefaultEditedState (Irrelevant); - bwgreen->setDefaultEditedState (Irrelevant); - bwblue->setDefaultEditedState (Irrelevant); - bwredgam->setDefaultEditedState (Irrelevant); - bwgreengam->setDefaultEditedState (Irrelevant); - bwbluegam->setDefaultEditedState (Irrelevant); - bworan->setDefaultEditedState (Irrelevant); - bwyell->setDefaultEditedState (Irrelevant); - bwcyan->setDefaultEditedState (Irrelevant); - bwmag->setDefaultEditedState (Irrelevant); - bwpur->setDefaultEditedState (Irrelevant); - } + mixerRed->setDefault (defParams->blackwhite.mixerRed); + mixerGreen->setDefault (defParams->blackwhite.mixerGreen); + mixerBlue->setDefault (defParams->blackwhite.mixerBlue); + gammaRed->setDefault (defParams->blackwhite.gammaRed); + gammaGreen->setDefault (defParams->blackwhite.gammaGreen); + gammaBlue->setDefault (defParams->blackwhite.gammaBlue); + mixerOrange->setDefault (defParams->blackwhite.mixerOrange); + mixerYellow->setDefault (defParams->blackwhite.mixerYellow); + mixerCyan->setDefault (defParams->blackwhite.mixerCyan); + mixerMagenta->setDefault (defParams->blackwhite.mixerMagenta); + mixerPurple->setDefault (defParams->blackwhite.mixerPurple); + + if (pedited) { + mixerRed->setDefaultEditedState (pedited->blackwhite.mixerRed ? Edited : UnEdited); + mixerGreen->setDefaultEditedState (pedited->blackwhite.mixerGreen ? Edited : UnEdited); + mixerBlue->setDefaultEditedState (pedited->blackwhite.mixerBlue ? Edited : UnEdited); + gammaRed->setDefaultEditedState (pedited->blackwhite.gammaRed ? Edited : UnEdited); + gammaGreen->setDefaultEditedState (pedited->blackwhite.gammaGreen ? Edited : UnEdited); + gammaBlue->setDefaultEditedState (pedited->blackwhite.gammaBlue ? Edited : UnEdited); + mixerOrange->setDefaultEditedState (pedited->blackwhite.mixerOrange ? Edited : UnEdited); + mixerYellow->setDefaultEditedState (pedited->blackwhite.mixerYellow ? Edited : UnEdited); + mixerCyan->setDefaultEditedState (pedited->blackwhite.mixerCyan ? Edited : UnEdited); + mixerMagenta->setDefaultEditedState (pedited->blackwhite.mixerMagenta ? Edited : UnEdited); + mixerPurple->setDefaultEditedState (pedited->blackwhite.mixerPurple ? Edited : UnEdited); + } + else { + mixerRed->setDefaultEditedState (Irrelevant); + mixerGreen->setDefaultEditedState (Irrelevant); + mixerBlue->setDefaultEditedState (Irrelevant); + gammaRed->setDefaultEditedState (Irrelevant); + gammaGreen->setDefaultEditedState (Irrelevant); + gammaBlue->setDefaultEditedState (Irrelevant); + mixerOrange->setDefaultEditedState (Irrelevant); + mixerYellow->setDefaultEditedState (Irrelevant); + mixerCyan->setDefaultEditedState (Irrelevant); + mixerMagenta->setDefaultEditedState (Irrelevant); + mixerPurple->setDefaultEditedState (Irrelevant); + } } -void ChMixerbw::autoch_toggled () { +void BlackWhite::autoch_toggled () { - if (batchMode) { - if (autoch->get_inconsistent()) { - autoch->set_inconsistent (false); - autoconn.block (true); - autoch->set_active (false); - autoconn.block (false); - } - else if (lastAuto) - autoch->set_inconsistent (true); + if (batchMode) { + if (autoch->get_inconsistent()) { + autoch->set_inconsistent (false); + autoconn.block (true); + autoch->set_active (false); + autoconn.block (false); + } + else if (lastAuto) + autoch->set_inconsistent (true); - lastAuto = autoch->get_active (); + lastAuto = autoch->get_active (); - bwred->setEditedState (UnEdited); - bwgreen->setEditedState (UnEdited); - bwblue->setEditedState (UnEdited); - bworan->setEditedState (UnEdited); - bwyell->setEditedState (UnEdited); - bwpur->setEditedState (UnEdited); - bwmag->setEditedState (UnEdited); - bwcyan->setEditedState (UnEdited); + mixerRed->setEditedState (UnEdited); + mixerGreen->setEditedState (UnEdited); + mixerBlue->setEditedState (UnEdited); + mixerOrange->setEditedState (UnEdited); + mixerYellow->setEditedState (UnEdited); + mixerPurple->setEditedState (UnEdited); + mixerMagenta->setEditedState (UnEdited); + mixerCyan->setEditedState (UnEdited); - if (bwred->getAddMode()) - bwred->setValue (33); - if (bwgreen->getAddMode()) - bwgreen->setValue (33); - if (bwblue->getAddMode()) - bwblue->setValue (33); - if (bworan->getAddMode()) - bworan->setValue (33); - if (bwyell->getAddMode()) - bwyell->setValue (33); - if (bwmag->getAddMode()) - bwmag->setValue (33); - if (bwpur->getAddMode()) - bwpur->setValue (33); - if (bwmag->getAddMode()) - bwpur->setValue (33); - set->set_active (11); - fil->set_active (0); + bool wasEnabled = disableListener(); + if (mixerRed->getAddMode()) + mixerRed->resetValue(false); + if (mixerGreen->getAddMode()) + mixerGreen->resetValue(true); + if (mixerBlue->getAddMode()) + mixerBlue->resetValue(true); + if (mixerOrange->getAddMode()) + mixerOrange->resetValue(true); + if (mixerYellow->getAddMode()) + mixerYellow->resetValue(true); + if (mixerMagenta->getAddMode()) + mixerMagenta->resetValue(true); + if (mixerPurple->getAddMode()) + mixerPurple->resetValue(true); + if (mixerMagenta->getAddMode()) + mixerPurple->resetValue(true); + setting->set_active (11); + filter->set_active (0); + if (wasEnabled) enableListener(); - if (listener) { - if (!autoch->get_inconsistent()) { - if (autoch->get_active ()) { - - listener->panelChanged (EvAutoch, M("GENERAL_ENABLED"));} - else - listener->panelChanged (EvFixedch, M("GENERAL_DISABLED")); - } - } - } - else if (/* !batchMode && */ listener) { - if (autoch->get_active()) { - bwred->setValue(33); - bwgreen->setValue(33); - bwblue->setValue(33); - bworan->setValue(33); - bwyell->setValue(33); - bwmag->setValue(33); - bwpur->setValue(33); - bwcyan->setValue(33); - set->set_active (11); - fil->set_active (0); - - listener->panelChanged (EvAutoch, M("GENERAL_ENABLED")); - } - else { - listener->panelChanged (EvFixedch, M("GENERAL_DISABLED")); - } - } + if (listener) { + if (!autoch->get_inconsistent()) { + if (autoch->get_active ()) + listener->panelChanged (EvAutoch, M("GENERAL_ENABLED"));} + else + listener->panelChanged (EvAutoch, M("GENERAL_DISABLED")); + } + } + else { + if (autoch->get_active()) { + bool wasEnabled = disableListener(); + mixerRed->setValue(33); + mixerGreen->setValue(33); + mixerBlue->setValue(33); + mixerOrange->setValue(33); + mixerYellow->setValue(33); + mixerMagenta->setValue(33); + mixerPurple->setValue(33); + mixerCyan->setValue(33); + setting->set_active (11); + filter->set_active (0); + if (wasEnabled) enableListener(); + + if (listener) + listener->panelChanged (EvAutoch, M("GENERAL_ENABLED")); + } + else { + if (listener) + listener->panelChanged (EvAutoch, M("GENERAL_DISABLED")); + } + } } +void BlackWhite::adjusterChanged (Adjuster* a, double newval) { -void ChMixerbw::adjusterChanged (Adjuster* a, double newval) { + if (autoch->get_active() && (a==mixerRed || a==mixerGreen || a==mixerBlue || a==mixerOrange || a==mixerYellow || a==mixerMagenta || a==mixerPurple || a==mixerCyan )) { + autoconn.block(true); + autoch->set_active (false); + autoconn.block(false); + autoch->set_inconsistent (false); + } - if (autoch->get_active() && (a==bwred || a==bwgreen || a==bwblue || a==bworan || a==bwyell || a==bwmag || a==bwpur || a==bwcyan )) { - autoconn.block(true); - autoch->set_active (false); - autoconn.block(false); - autoch->set_inconsistent (false); - } - - if (listener && (multiImage||enabled->get_active())) { - Glib::ustring value = a->getTextValue(); - if (a == bwred) - listener->panelChanged (EvBWred, value ); - else if (a == bwgreen) + if (listener && (multiImage||enabled->get_active())) { + Glib::ustring value = a->getTextValue(); + if (a == mixerRed) + listener->panelChanged (EvBWred, value ); + else if (a == mixerGreen) listener->panelChanged (EvBWgreen, value ); - else if (a == bwblue) + else if (a == mixerBlue) listener->panelChanged (EvBWblue, value ); - else if (a == bwgreengam) + else if (a == gammaGreen) listener->panelChanged (EvBWgreengam, value ); - else if (a == bwbluegam) + else if (a == gammaBlue) listener->panelChanged (EvBWbluegam, value ); - else if (a == bwredgam) + else if (a == gammaRed) listener->panelChanged (EvBWredgam, value ); - else if (a == bworan) + else if (a == mixerOrange) listener->panelChanged (EvBWoran, value ); - else if (a == bwyell) + else if (a == mixerYellow) listener->panelChanged (EvBWyell, value ); - else if (a == bwcyan) + else if (a == mixerCyan) listener->panelChanged (EvBWcyan, value ); - else if (a == bwmag) + else if (a == mixerMagenta) listener->panelChanged (EvBWmag, value ); - else if (a == bwpur) + else if (a == mixerPurple) listener->panelChanged (EvBWpur, value ); - } + } } -void ChMixerbw::setBatchMode (bool batchMode) { - removeIfThere (abox, autoch, false); - autoch = Gtk::manage (new Gtk::CheckButton (M("TP_BWMIX_AUTOCH"))); - autoch->set_tooltip_markup (M("TP_BWMIX_AUTOCH_TIP")); - autoconn = autoch->signal_toggled().connect( sigc::mem_fun(*this, &ChMixerbw::autoch_toggled) ); - abox->pack_start (*autoch); +void BlackWhite::setBatchMode (bool batchMode) { + removeIfThere (autoHBox, autoch, false); + autoch = Gtk::manage (new Gtk::CheckButton (M("TP_BWMIX_AUTOCH"))); + autoch->set_tooltip_markup (M("TP_BWMIX_AUTOCH_TIP")); + autoconn = autoch->signal_toggled().connect( sigc::mem_fun(*this, &BlackWhite::autoch_toggled) ); + autoHBox->pack_start (*autoch); - ToolPanel::setBatchMode (batchMode); - bwred->showEditedCB (); - bwgreen->showEditedCB (); - bwblue->showEditedCB (); - bwredgam->showEditedCB (); - bwgreengam->showEditedCB (); - bwbluegam->showEditedCB (); - bworan->showEditedCB (); - bwyell->showEditedCB (); - bwcyan->showEditedCB (); - bwmag->showEditedCB (); - bwpur->showEditedCB (); - met->append_text (M("GENERAL_UNCHANGED")); - fil->append_text (M("GENERAL_UNCHANGED")); - set->append_text (M("GENERAL_UNCHANGED")); - curveEditorG->setBatchMode (batchMode); - curveEditorGBW->setBatchMode (batchMode); - toneCurveBW->append_text (M("GENERAL_UNCHANGED")); - curveEditorGBW2->setBatchMode (batchMode); - toneCurveBW2->append_text (M("GENERAL_UNCHANGED")); + ToolPanel::setBatchMode (batchMode); + mixerRed->showEditedCB (); + mixerOrange->showEditedCB (); + mixerYellow->showEditedCB (); + mixerGreen->showEditedCB (); + mixerCyan->showEditedCB (); + mixerBlue->showEditedCB (); + mixerMagenta->showEditedCB (); + mixerPurple->showEditedCB (); + gammaRed->showEditedCB (); + gammaGreen->showEditedCB (); + gammaBlue->showEditedCB (); + method->append_text (M("GENERAL_UNCHANGED")); + filter->append_text (M("GENERAL_UNCHANGED")); + setting->append_text (M("GENERAL_UNCHANGED")); + luminanceCEG->setBatchMode (batchMode); + beforeCurveCEG->setBatchMode (batchMode); + beforeCurveMode->append_text (M("GENERAL_UNCHANGED")); + afterCurveCEG->setBatchMode (batchMode); + afterCurveMode->append_text (M("GENERAL_UNCHANGED")); + + showLuminance(); + showFilter(); + showEnabledCC(); + showGamma(); + showMixer(7); } -void ChMixerbw::autoOpenCurve () { - vshape->openIfNonlinear(); - shape->openIfNonlinear(); - shape2->openIfNonlinear(); +void BlackWhite::autoOpenCurve () { + luminanceCurve->openIfNonlinear(); + beforeCurve->openIfNonlinear(); + afterCurve->openIfNonlinear(); } +void BlackWhite::setAdjusterBehavior (bool bwadd, bool bwgadd) { -void ChMixerbw::setAdjusterBehavior (bool bwadd, bool bwgadd, bool bwfadd) { + mixerRed->setAddMode(bwadd); + mixerOrange->setAddMode(bwadd); + mixerYellow->setAddMode(bwadd); + mixerGreen->setAddMode(bwadd); + mixerCyan->setAddMode(bwadd); + mixerBlue->setAddMode(bwadd); + mixerMagenta->setAddMode(bwadd); + mixerPurple->setAddMode(bwadd); - - bwred->setAddMode(bwadd); - bwgreen->setAddMode(bwadd); - bwblue->setAddMode(bwadd); - - bworan->setAddMode(bwfadd); - bwyell->setAddMode(bwfadd); - bwcyan->setAddMode(bwfadd); - bwmag->setAddMode(bwfadd); - bwpur->setAddMode(bwfadd); - - bwredgam->setAddMode(bwgadd); - bwgreengam->setAddMode(bwgadd); - bwbluegam->setAddMode(bwgadd); - + gammaRed->setAddMode(bwgadd); + gammaGreen->setAddMode(bwgadd); + gammaBlue->setAddMode(bwgadd); } -void ChMixerbw::trimValues (rtengine::procparams::ProcParams* pp) { +void BlackWhite::trimValues (rtengine::procparams::ProcParams* pp) { - bwred->trimValue (pp->chmixerbw.bwred); - bwgreen->trimValue (pp->chmixerbw.bwgreen); - bwblue->trimValue (pp->chmixerbw.bwblue); - bwredgam->trimValue (pp->chmixerbw.bwredgam); - bwgreengam->trimValue (pp->chmixerbw.bwgreengam); - bwbluegam->trimValue (pp->chmixerbw.bwbluegam); - bworan->trimValue (pp->chmixerbw.bworan); - bwyell->trimValue (pp->chmixerbw.bwyell); - bwcyan->trimValue (pp->chmixerbw.bwcyan); - bwmag->trimValue (pp->chmixerbw.bwmag); - bwpur->trimValue (pp->chmixerbw.bwpur); + mixerRed->trimValue (pp->blackwhite.mixerRed); + mixerGreen->trimValue (pp->blackwhite.mixerGreen); + mixerBlue->trimValue (pp->blackwhite.mixerBlue); + gammaRed->trimValue (pp->blackwhite.gammaRed); + gammaGreen->trimValue (pp->blackwhite.gammaGreen); + gammaBlue->trimValue (pp->blackwhite.gammaBlue); + mixerOrange->trimValue (pp->blackwhite.mixerOrange); + mixerYellow->trimValue (pp->blackwhite.mixerYellow); + mixerCyan->trimValue (pp->blackwhite.mixerCyan); + mixerMagenta->trimValue (pp->blackwhite.mixerMagenta); + mixerPurple->trimValue (pp->blackwhite.mixerPurple); +} + +void BlackWhite::showLuminance() { + luminanceCEG->show(); + luminanceSep->show(); +} + +void BlackWhite::hideLuminance() { + if (!batchMode) { + luminanceCEG->hide(); + luminanceSep->hide(); + } +} + +void BlackWhite::showFilter() { + filterHBox->show(); + filterSep->show(); +} + +void BlackWhite::hideFilter() { + if (!batchMode) { + filterHBox->hide(); + filterSep->hide(); + } +} + +void BlackWhite::showEnabledCC() { + enabledcc->show(); + enabledccSep->show(); +} + +void BlackWhite::hideEnabledCC() { + if (!batchMode) { + enabledcc->hide(); + enabledccSep->hide(); + } +} + +void BlackWhite::showMixer(int nChannels, bool RGBIsSensitive) { + if (!batchMode && nChannels == 3) { + mixerRed->show(); mixerRed->set_sensitive (RGBIsSensitive); + mixerGreen->show(); mixerGreen->set_sensitive (RGBIsSensitive); + mixerBlue->show(); mixerBlue->set_sensitive (RGBIsSensitive); + mixerOrange->hide(); + mixerYellow->hide(); + mixerCyan->hide(); + mixerMagenta->hide(); + mixerPurple->hide(); + } + else { + mixerRed->show(); mixerRed->set_sensitive (true); + mixerGreen->show(); mixerGreen->set_sensitive (true); + mixerBlue->show(); mixerBlue->set_sensitive (true); + mixerOrange->show(); + mixerYellow->show(); + mixerCyan->show(); + mixerMagenta->show(); + mixerPurple->show(); + } + mixerFrame->show(); +} + +void BlackWhite::hideMixer() { + if (!batchMode) + mixerFrame->hide(); +} + +void BlackWhite::showGamma() { + gammaFrame->show(); +} + +void BlackWhite::hideGamma() { + if (!batchMode) + gammaFrame->hide(); } diff --git a/rtgui/chmixerbw.h b/rtgui/chmixerbw.h index 27d6a4519..065544de5 100644 --- a/rtgui/chmixerbw.h +++ b/rtgui/chmixerbw.h @@ -28,98 +28,100 @@ #include "mycurve.h" #include "colorprovider.h" -class ChMixerbw : public Gtk::VBox, public AdjusterListener, public FoldableToolPanel, public rtengine::AutoBWListener, public CurveListener, public ColorProvider{ +class BlackWhite : public Gtk::VBox, public AdjusterListener, public FoldableToolPanel, public rtengine::AutoBWListener, public CurveListener, public ColorProvider{ protected: - FlatCurveEditor* vshape; - CurveEditorGroup* curveEditorG; - CurveEditorGroup* curveEditorGBW; - DiagonalCurveEditor* shape; - CurveEditorGroup* curveEditorGBW2; - DiagonalCurveEditor* shape2; - Gtk::ToggleButton* autoch; - Gtk::HBox* abox; - Gtk::Button* neutral; + FlatCurveEditor* luminanceCurve; + Gtk::HSeparator* luminanceSep; + CurveEditorGroup* luminanceCEG; + CurveEditorGroup* beforeCurveCEG; + DiagonalCurveEditor* beforeCurve; + MyComboBoxText* beforeCurveMode; + CurveEditorGroup* afterCurveCEG; + DiagonalCurveEditor* afterCurve; + MyComboBoxText* afterCurveMode; + Gtk::ToggleButton* autoch; + Gtk::HBox* autoHBox; + Gtk::Button* neutral; - Adjuster *bwred; - Adjuster *bwgreen; - Adjuster *bwblue; - Adjuster *bwredgam; - Adjuster *bwgreengam; - Adjuster *bwbluegam; - Adjuster *bworan; - Adjuster *bwyell; - Adjuster *bwcyan; - Adjuster *bwmag; - Adjuster *bwpur; - MyComboBoxText* met; - sigc::connection metconn; - MyComboBoxText* fil; - sigc::connection filconn; - MyComboBoxText* set; - sigc::connection setconn; - Gtk::Label* rlabel; - Gtk::Label* glabel; - Gtk::Label* blabel; - Gtk::Label* rglabel; - Gtk::Label* gglabel; - Gtk::Label* bglabel; - Gtk::Label* Gamlabel; - Gtk::Label* orlabel; - Gtk::Label* ylabel; - Gtk::Label* clabel; - Gtk::Label* mlabel; - Gtk::Label* plabel; - Gtk::Label* setLabel; - Gtk::Label* filLabel; - - Gtk::Image *imgIcon[11]; + Adjuster *mixerRed; + Adjuster *mixerGreen; + Adjuster *mixerBlue; + Adjuster *gammaRed; + Adjuster *gammaGreen; + Adjuster *gammaBlue; + Adjuster *mixerOrange; + Adjuster *mixerYellow; + Adjuster *mixerCyan; + Adjuster *mixerMagenta; + Adjuster *mixerPurple; + MyComboBoxText* method; + sigc::connection methodconn; + Gtk::HBox* filterHBox; + Gtk::HSeparator* filterSep; + MyComboBoxText* filter; + sigc::connection filterconn; + Gtk::HBox* settingHBox; + MyComboBoxText* setting; + sigc::connection settingconn; + Gtk::Frame* mixerFrame; + Gtk::Frame* gammaFrame; + + Gtk::Image *imgIcon[11]; Gtk::CheckButton* enabled; bool lastEnabled; sigc::connection enaconn; - + + Gtk::HSeparator* enabledccSep; Gtk::CheckButton* enabledcc; bool lastEnabledcc, lastAuto; sigc::connection enaccconn,tcmodeconn,tcmodeconn2, autoconn, neutralconn; - MyComboBoxText* toneCurveBW; - MyComboBoxText* toneCurveBW2; - + double nextredbw; double nextgreenbw; double nextbluebw; - - + + void showLuminance(); + void hideLuminance(); + void showFilter(); + void hideFilter(); + void showEnabledCC(); + void hideEnabledCC(); + void showMixer(int nChannels, bool RGBIsSensitive=true); + void hideMixer(); + void showGamma(); + void hideGamma(); public: - ChMixerbw (); - ~ChMixerbw (); + BlackWhite (); + ~BlackWhite (); - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited=NULL); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited=NULL); - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited=NULL); - void setBatchMode (bool batchMode); - void autoOpenCurve (); - - void autoch_toggled (); - void neutral_pressed (); - - void adjusterChanged (Adjuster* a, double newval); - void setAdjusterBehavior (bool bwadd, bool bwgadd, bool bwfadd); - void trimValues (rtengine::procparams::ProcParams* pp); - void enabledcc_toggled (); + void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited=NULL); + void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited=NULL); + void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited=NULL); + void setBatchMode (bool batchMode); + void autoOpenCurve (); + + void autoch_toggled (); + void neutral_pressed (); + + void adjusterChanged (Adjuster* a, double newval); + void setAdjusterBehavior (bool bwadd, bool bwgadd); + void trimValues (rtengine::procparams::ProcParams* pp); + void enabledcc_toggled (); void enabled_toggled (); - void metChanged (); - void filChanged (); - void setChanged (); - virtual void colorForValue (double valX, double valY, int callerId, ColorCaller* caller); - void BWChanged (double redbw, double greenbw, double bluebw); - bool BWComputed_ (); - void curveChanged (CurveEditor* ce); - void curveMode1Changed (); - bool curveMode1Changed_ (); - void curveMode1Changed2 (); - bool curveMode1Changed2_ (); + void methodChanged (); + void filterChanged (); + void settingChanged (); + virtual void colorForValue (double valX, double valY, int callerId, ColorCaller* caller); + void BWChanged (double redbw, double greenbw, double bluebw); + bool BWComputed_ (); + void curveChanged (CurveEditor* ce); + void curveMode1Changed (); + bool curveMode1Changed_ (); + void curveMode1Changed2 (); + bool curveMode1Changed2_ (); }; #endif diff --git a/rtgui/labcurve.cc b/rtgui/labcurve.cc index a86ba382f..6b24af21c 100644 --- a/rtgui/labcurve.cc +++ b/rtgui/labcurve.cc @@ -51,10 +51,6 @@ LCurve::LCurve () : Gtk::VBox(), FoldableToolPanel(this) { hsep2->show (); pack_start (*hsep2, Gtk::PACK_EXPAND_WIDGET, 4); - bwtoning = Gtk::manage (new Gtk::CheckButton (M("TP_LABCURVE_BWTONING"))); - bwtoning->set_tooltip_markup (M("TP_LABCURVE_BWTONING_TIP")); - pack_start (*bwtoning); - avoidcolorshift = Gtk::manage (new Gtk::CheckButton (M("TP_LABCURVE_AVOIDCOLORSHIFT"))); avoidcolorshift->set_tooltip_text (M("TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP")); pack_start (*avoidcolorshift, Gtk::PACK_SHRINK, 4); @@ -70,7 +66,6 @@ LCurve::LCurve () : Gtk::VBox(), FoldableToolPanel(this) { rstprotection->setAdjusterListener (this); rstprotection->set_tooltip_text (M("TP_LABCURVE_RSTPRO_TOOLTIP")); - bwtconn= bwtoning->signal_toggled().connect( sigc::mem_fun(*this, &LCurve::bwtoning_toggled) ); acconn = avoidcolorshift->signal_toggled().connect( sigc::mem_fun(*this, &LCurve::avoidcolorshift_toggled) ); lcconn = lcredsk->signal_toggled().connect( sigc::mem_fun(*this, &LCurve::lcredsk_toggled) ); @@ -202,7 +197,6 @@ void LCurve::read (const ProcParams* pp, const ParamsEdited* pedited) { //%%%%%%%%%%%%%%%%%%%%%% rstprotection->setEditedState (pedited->labCurve.rstprotection ? Edited : UnEdited); - bwtoning->set_inconsistent (!pedited->labCurve.bwtoning); avoidcolorshift->set_inconsistent (!pedited->labCurve.avoidcolorshift); lcredsk->set_inconsistent (!pedited->labCurve.lcredsk); @@ -216,31 +210,18 @@ void LCurve::read (const ProcParams* pp, const ParamsEdited* pedited) { lcshape->setUnChanged (!pedited->labCurve.lccurve); clshape->setUnChanged (!pedited->labCurve.clcurve); } - else { - //if bwtoning is enabled, chromaticity value, avoid color shift and rstprotection has no effect - //ccshape->set_sensitive(!(!pp->labCurve.bwtoning)); - //chshape->set_sensitive(!(!pp->labCurve.bwtoning)); - chromaticity->set_sensitive(!pp->labCurve.bwtoning); - rstprotection->set_sensitive( !pp->labCurve.bwtoning /*&& pp->labCurve.chromaticity!=0*/ );//no reason for grey rstprotection - avoidcolorshift->set_sensitive(!pp->labCurve.bwtoning); - lcredsk->set_sensitive(!pp->labCurve.bwtoning); - - std::vector milestones; - lcshape->setBottomBarBgGradient(milestones); - lcshape->refresh(); - } brightness->setValue (pp->labCurve.brightness); contrast->setValue (pp->labCurve.contrast); - chromaticity->setValue (pp->labCurve.chromaticity); - + chromaticity->setValue (pp->labCurve.chromaticity); + adjusterChanged(chromaticity, pp->labCurve.chromaticity); // To update the GUI sensitiveness + //%%%%%%%%%%%%%%%%%%%%%% rstprotection->setValue (pp->labCurve.rstprotection); bwtconn.block (true); acconn.block (true); lcconn.block (true); - bwtoning->set_active (pp->labCurve.bwtoning); avoidcolorshift->set_active (pp->labCurve.avoidcolorshift); lcredsk->set_active (pp->labCurve.lcredsk); @@ -248,7 +229,6 @@ void LCurve::read (const ProcParams* pp, const ParamsEdited* pedited) { acconn.block (false); lcconn.block (false); - lastBWTVal = pp->labCurve.bwtoning; lastACVal = pp->labCurve.avoidcolorshift; lastLCVal = pp->labCurve.lcredsk; //%%%%%%%%%%%%%%%%%%%%%% @@ -275,7 +255,6 @@ void LCurve::autoOpenCurve () { if (!active) chshape->openIfNonlinear(); if (!active) lcshape->openIfNonlinear(); if (!active) clshape->openIfNonlinear(); - } void LCurve::write (ProcParams* pp, ParamsEdited* pedited) { @@ -285,12 +264,11 @@ void LCurve::write (ProcParams* pp, ParamsEdited* pedited) { pp->labCurve.chromaticity = (int)chromaticity->getValue (); //%%%%%%%%%%%%%%%%%%%%%% - pp->labCurve.bwtoning = bwtoning->get_active (); pp->labCurve.avoidcolorshift = avoidcolorshift->get_active (); pp->labCurve.lcredsk = lcredsk->get_active (); pp->labCurve.rstprotection = rstprotection->getValue (); - //%%%%%%%%%%%%%%%%%%%%%% + //%%%%%%%%%%%%%%%%%%%%%% pp->labCurve.lcurve = lshape->getCurve (); pp->labCurve.acurve = ashape->getCurve (); @@ -306,7 +284,6 @@ void LCurve::write (ProcParams* pp, ParamsEdited* pedited) { pedited->labCurve.chromaticity = chromaticity->getEditedState (); //%%%%%%%%%%%%%%%%%%%%%% - pedited->labCurve.bwtoning = !bwtoning->get_inconsistent(); pedited->labCurve.avoidcolorshift = !avoidcolorshift->get_inconsistent(); pedited->labCurve.lcredsk = !lcredsk->get_inconsistent(); @@ -327,7 +304,7 @@ void LCurve::setDefaults (const ProcParams* defParams, const ParamsEdited* pedit brightness->setDefault (defParams->labCurve.brightness); contrast->setDefault (defParams->labCurve.contrast); - chromaticity->setDefault (defParams->labCurve.chromaticity); + chromaticity->setDefault (defParams->labCurve.chromaticity); rstprotection->setDefault (defParams->labCurve.rstprotection); if (pedited) { @@ -396,41 +373,6 @@ void LCurve::lcredsk_toggled () { } } - -//%%%%%%%%%%%%%%%%%%%%%% -//BW toning control changed -void LCurve::bwtoning_toggled () { - - if (batchMode) { - if (bwtoning->get_inconsistent()) { - bwtoning->set_inconsistent (false); - bwtconn.block (true); - bwtoning->set_active (false); - bwtconn.block (false); - } - else if (lastBWTVal) - bwtoning->set_inconsistent (true); - - lastBWTVal = bwtoning->get_active (); - } - else { - //ccshape->set_sensitive(!(!pp->labCurve.bwtoning)); - //chshape->set_sensitive(!(!pp->labCurve.bwtoning)); - chromaticity->set_sensitive( !(bwtoning->get_active ()) ); - rstprotection->set_sensitive( !(bwtoning->get_active ()) /*&& chromaticity->getIntValue()!=0*/); - avoidcolorshift->set_sensitive( !(bwtoning->get_active ()) ); - lcredsk->set_sensitive( !(bwtoning->get_active ()) ); - - } - - if (listener) { - if (bwtoning->get_active ()) - listener->panelChanged (EvLBWtoning, M("GENERAL_ENABLED")); - else - listener->panelChanged (EvLBWtoning, M("GENERAL_DISABLED")); - } -} - //%%%%%%%%%%%%%%%%%%%%%% /* @@ -461,29 +403,46 @@ void LCurve::curveChanged (CurveEditor* ce) { void LCurve::adjusterChanged (Adjuster* a, double newval) { - if (!listener) - return; - Glib::ustring costr; if (a==brightness) costr = Glib::ustring::format (std::setw(3), std::fixed, std::setprecision(2), a->getValue()); - else if (a==rstprotection) + else if (a==rstprotection) costr = Glib::ustring::format (std::setw(3), std::fixed, std::setprecision(1), a->getValue()); else costr = Glib::ustring::format ((int)a->getValue()); - if (a==brightness) - listener->panelChanged (EvLBrightness, costr); - else if (a==contrast) - listener->panelChanged (EvLContrast, costr); - else if (a==chromaticity) { - if (!batchMode) { - rstprotection->set_sensitive( !(bwtoning->get_active ())/* && chromaticity->getIntValue()!=0*/ ); - } - listener->panelChanged (EvLSaturation, costr); - } - else if (a==rstprotection) - listener->panelChanged (EvLRSTProtection, costr); + if (a==brightness) { + if (listener) listener->panelChanged (EvLBrightness, costr); + } + else if (a==contrast) { + if (listener) listener->panelChanged (EvLContrast, costr); + } + else if (a==rstprotection) { + if (listener) listener->panelChanged (EvLRSTProtection, costr); + } + else if (a==chromaticity) { + if (multiImage) { + //if chromaticity==-100 (lowest value), we enter the B&W mode and avoid color shift and rstprotection has no effect + rstprotection->set_sensitive( true ); + avoidcolorshift->set_sensitive( true ); + lcredsk->set_sensitive( true ); + + //std::vector milestones; + //lcshape->setBottomBarBgGradient(milestones); + //lcshape->refresh(); + } + else { + //if chromaticity==-100 (lowest value), we enter the B&W mode and avoid color shift and rstprotection has no effect + rstprotection->set_sensitive( int(newval)> -100 );//no reason for grey rstprotection + avoidcolorshift->set_sensitive( int(newval)> -100 ); + lcredsk->set_sensitive( int(newval)> -100 ); + + //std::vector milestones; + //lcshape->setBottomBarBgGradient(milestones); + //lcshape->refresh(); + } + if (listener) listener->panelChanged (EvLSaturation, costr); + } } void LCurve::colorForValue (double valX, double valY, int callerId, ColorCaller *caller) { diff --git a/rtgui/labcurve.h b/rtgui/labcurve.h index e48cfc909..7506ca9ce 100644 --- a/rtgui/labcurve.h +++ b/rtgui/labcurve.h @@ -43,12 +43,11 @@ class LCurve : public Gtk::VBox, public AdjusterListener, public FoldableToolPan //%%%%%%%%%%%%%%%% Gtk::CheckButton* avoidcolorshift; - Gtk::CheckButton* bwtoning; Gtk::CheckButton* lcredsk; Adjuster* rstprotection; sigc::connection bwtconn, acconn, lcconn; - bool lastBWTVal, lastACVal, lastLCVal; + bool lastACVal, lastLCVal; //%%%%%%%%%%%%%%%% @@ -68,7 +67,6 @@ class LCurve : public Gtk::VBox, public AdjusterListener, public FoldableToolPan void curveChanged (CurveEditor* ce); void adjusterChanged (Adjuster* a, double newval); void avoidcolorshift_toggled (); - void bwtoning_toggled(); void lcredsk_toggled(); void updateCurveBackgroundHistogram (LUTu & histToneCurve, LUTu & histLCurve, LUTu & histCCurve, LUTu & histCLurve, LUTu & histLLCurve, LUTu & histLCAM, LUTu & histCCAM, LUTu & histRed, LUTu & histGreen, LUTu & histBlue, LUTu & histLuma); diff --git a/rtgui/options.cc b/rtgui/options.cc index e88db465a..a06d8696d 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -426,16 +426,15 @@ void Options::setDefaults () { 0, // ADDSET_TC_HLCOMPTHRESH 0, // ADDSET_TC_SHCOMP 0, // ADDSET_DIRPYREQ - 0, // ADDSET_DIRPYRDN_LUMA - 0, // ADDSET_DIRPYRDN_LUDET + 0, // ADDSET_DIRPYRDN_LUMA + 0, // ADDSET_DIRPYRDN_LUDET 0, // ADDSET_DIRPYRDN_CHROMA 0, // ADDSET_DIRPYRDN_CHROMARED - 0, // ADDSET_DIRPYRDN_CHROMABLUE + 0, // ADDSET_DIRPYRDN_CHROMABLUE 0, // ADDSET_DIRPYRDN_GAMMA 0, // ADDSET_CHMIXER - 0, // ADDSET_CHMIXER_BW - 0, // ADDSET_CHMIXER_BWG - 0, // ADDSET_CHMIXER_BWF + 0, // ADDSET_BLACKWHITE_HUES + 0, // ADDSET_BLACKWHITE_GAMMA 0, // ADDSET_PREPROCESS_GREENEQUIL 0, // ADDSET_PREPROCESS_LINEDENOISE 0, // ADDSET_RAWCACORR diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index ae7e4e597..6e76cff63 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -58,8 +58,7 @@ void ParamsEdited::set (bool v) { labCurve.chromaticity = v; labCurve.avoidcolorshift = v; labCurve.rstprotection = v; - labCurve.bwtoning = v; - labCurve.lcredsk = v; + labCurve.lcredsk = v; rgbCurves.lumamode = v; rgbCurves.rcurve = v; rgbCurves.gcurve = v; @@ -217,29 +216,29 @@ void ParamsEdited::set (bool v) { chmixer.blue[0] = v; chmixer.blue[1] = v; chmixer.blue[2] = v; - chmixerbw.enabledcc = v; - chmixerbw.enabled = v; - chmixerbw.bwred = v; - chmixerbw.bwgreen = v; - chmixerbw.bwblue = v; - chmixerbw.bwredgam = v; - chmixerbw.bwgreengam = v; - chmixerbw.bwbluegam = v; - chmixerbw.fil = v; - chmixerbw.set = v; - chmixerbw.met = v; - chmixerbw.bworan = v; - chmixerbw.bwyell = v; - chmixerbw.bwcyan = v; - chmixerbw.bwmag = v; - chmixerbw.bwpur = v; - chmixerbw.vcurve = v; - chmixerbw.curve = v; - chmixerbw.curveMode = v; - chmixerbw.curve2 = v; - chmixerbw.curveMode2 = v; - chmixerbw.autoc = v; - + blackwhite.enabled = v; + blackwhite.enabledcc = v; + blackwhite.mixerRed = v; + blackwhite.mixerOrange = v; + blackwhite.mixerYellow = v; + blackwhite.mixerGreen = v; + blackwhite.mixerCyan = v; + blackwhite.mixerBlue = v; + blackwhite.mixerMagenta = v; + blackwhite.mixerPurple = v; + blackwhite.gammaRed = v; + blackwhite.gammaGreen = v; + blackwhite.gammaBlue = v; + blackwhite.filter = v; + blackwhite.setting = v; + blackwhite.method = v; + blackwhite.luminanceCurve = v; + blackwhite.beforeCurve = v; + blackwhite.beforeCurveMode = v; + blackwhite.afterCurve = v; + blackwhite.afterCurveMode = v; + blackwhite.autoc = v; + hlrecovery.enabled = v; hlrecovery.method = v; resize.scale = v; @@ -258,7 +257,7 @@ void ParamsEdited::set (bool v) { icm.gamma = v; icm.freegamma = v; icm.gampos = v; - icm.slpos = v; + icm.slpos = v; raw.ccSteps = v; raw.dmethod = v; raw.dcbIterations = v; @@ -331,12 +330,11 @@ void ParamsEdited::initFrom (const std::vector labCurve.chcurve = labCurve.chcurve && p.labCurve.chcurve == other.labCurve.chcurve; labCurve.lccurve = labCurve.lccurve && p.labCurve.lccurve == other.labCurve.lccurve; labCurve.clcurve = labCurve.clcurve && p.labCurve.clcurve == other.labCurve.clcurve; - labCurve.brightness = labCurve.brightness && p.labCurve.brightness == other.labCurve.brightness; + labCurve.brightness = labCurve.brightness && p.labCurve.brightness == other.labCurve.brightness; labCurve.contrast = labCurve.contrast && p.labCurve.contrast == other.labCurve.contrast; labCurve.chromaticity = labCurve.chromaticity && p.labCurve.chromaticity == other.labCurve.chromaticity; labCurve.avoidcolorshift = labCurve.avoidcolorshift && p.labCurve.avoidcolorshift == other.labCurve.avoidcolorshift; labCurve.rstprotection = labCurve.rstprotection && p.labCurve.rstprotection == other.labCurve.rstprotection; - labCurve.bwtoning = labCurve.bwtoning && p.labCurve.bwtoning == other.labCurve.bwtoning; labCurve.lcredsk = labCurve.lcredsk && p.labCurve.lcredsk == other.labCurve.lcredsk; rgbCurves.lumamode = rgbCurves.lumamode && p.rgbCurves.lumamode == other.rgbCurves.lumamode; rgbCurves.rcurve = rgbCurves.rcurve && p.rgbCurves.rcurve == other.rgbCurves.rcurve; @@ -398,9 +396,9 @@ void ParamsEdited::initFrom (const std::vector colorappearance.datacie = colorappearance.datacie && p.colorappearance.datacie == other.colorappearance.datacie; colorappearance.tonecie = colorappearance.tonecie && p.colorappearance.tonecie == other.colorappearance.tonecie; // colorappearance.sharpcie = colorappearance.sharpcie && p.colorappearance.sharpcie == other.colorappearance.sharpcie; - colorappearance.curve = colorappearance.curve && p.colorappearance.curve == other.colorappearance.curve; + colorappearance.curve = colorappearance.curve && p.colorappearance.curve == other.colorappearance.curve; colorappearance.curve3 = colorappearance.curve3 && p.colorappearance.curve3 == other.colorappearance.curve3; - colorappearance.curve2 = colorappearance.curve2 && p.colorappearance.curve2 == other.colorappearance.curve2; + colorappearance.curve2 = colorappearance.curve2 && p.colorappearance.curve2 == other.colorappearance.curve2; colorappearance.curveMode = colorappearance.curveMode && p.colorappearance.curveMode == other.colorappearance.curveMode; colorappearance.curveMode2 = colorappearance.curveMode2 && p.colorappearance.curveMode2 == other.colorappearance.curveMode2; colorappearance.curveMode3 = colorappearance.curveMode3 && p.colorappearance.curveMode3 == other.colorappearance.curveMode3; @@ -433,7 +431,7 @@ void ParamsEdited::initFrom (const std::vector dirpyrDenoise.luma = dirpyrDenoise.luma && p.dirpyrDenoise.luma == other.dirpyrDenoise.luma; dirpyrDenoise.Ldetail = dirpyrDenoise.Ldetail && p.dirpyrDenoise.Ldetail == other.dirpyrDenoise.Ldetail; dirpyrDenoise.chroma = dirpyrDenoise.chroma && p.dirpyrDenoise.chroma == other.dirpyrDenoise.chroma; - dirpyrDenoise.redchro = dirpyrDenoise.redchro && p.dirpyrDenoise.redchro == other.dirpyrDenoise.redchro; + dirpyrDenoise.redchro = dirpyrDenoise.redchro && p.dirpyrDenoise.redchro == other.dirpyrDenoise.redchro; dirpyrDenoise.bluechro = dirpyrDenoise.bluechro && p.dirpyrDenoise.bluechro == other.dirpyrDenoise.bluechro; dirpyrDenoise.gamma = dirpyrDenoise.gamma && p.dirpyrDenoise.gamma == other.dirpyrDenoise.gamma; dirpyrDenoise.dmethod = dirpyrDenoise.dmethod && p.dirpyrDenoise.dmethod == other.dirpyrDenoise.dmethod; @@ -499,28 +497,29 @@ void ParamsEdited::initFrom (const std::vector chmixer.blue[0] = chmixer.blue[0] && p.chmixer.blue[0] == other.chmixer.blue[0]; chmixer.blue[1] = chmixer.blue[1] && p.chmixer.blue[1] == other.chmixer.blue[1]; chmixer.blue[2] = chmixer.blue[2] && p.chmixer.blue[2] == other.chmixer.blue[2]; - chmixerbw.enabledcc = chmixerbw.enabledcc && p.chmixerbw.enabledcc == other.chmixerbw.enabledcc; - chmixerbw.enabled = chmixerbw.enabled && p.chmixerbw.enabled == other.chmixerbw.enabled; - chmixerbw.bwred = chmixerbw.bwred && p.chmixerbw.bwred == other.chmixerbw.bwred; - chmixerbw.bwgreen = chmixerbw.bwgreen && p.chmixerbw.bwgreen == other.chmixerbw.bwgreen; - chmixerbw.bwblue = chmixerbw.bwblue && p.chmixerbw.bwblue == other.chmixerbw.bwblue; - chmixerbw.bwredgam = chmixerbw.bwredgam && p.chmixerbw.bwredgam == other.chmixerbw.bwredgam; - chmixerbw.bwgreengam = chmixerbw.bwgreengam && p.chmixerbw.bwgreengam == other.chmixerbw.bwgreengam; - chmixerbw.bwbluegam = chmixerbw.bwbluegam && p.chmixerbw.bwbluegam == other.chmixerbw.bwbluegam; - chmixerbw.bworan = chmixerbw.bworan && p.chmixerbw.bworan == other.chmixerbw.bworan; - chmixerbw.bwyell = chmixerbw.bwyell && p.chmixerbw.bwyell == other.chmixerbw.bwyell; - chmixerbw.bwcyan = chmixerbw.bwcyan && p.chmixerbw.bwcyan == other.chmixerbw.bwcyan; - chmixerbw.bwmag = chmixerbw.bwmag && p.chmixerbw.bwmag == other.chmixerbw.bwmag; - chmixerbw.bwpur = chmixerbw.bwpur && p.chmixerbw.bwpur == other.chmixerbw.bwpur; - chmixerbw.fil = chmixerbw.fil && p.chmixerbw.fil == other.chmixerbw.fil; - chmixerbw.set = chmixerbw.set && p.chmixerbw.set == other.chmixerbw.set; - chmixerbw.vcurve = chmixerbw.vcurve && p.chmixerbw.vcurve == other.chmixerbw.vcurve; - chmixerbw.met = chmixerbw.met && p.chmixerbw.met == other.chmixerbw.met; - chmixerbw.curve = chmixerbw.curve && p.chmixerbw.curve == other.chmixerbw.curve; - chmixerbw.curve2 = chmixerbw.curve2 && p.chmixerbw.curve2 == other.chmixerbw.curve2; - chmixerbw.autoc = chmixerbw.autoc && p.chmixerbw.autoc == other.chmixerbw.autoc; - - hlrecovery.enabled = hlrecovery.enabled && p.hlrecovery.enabled == other.hlrecovery.enabled; + blackwhite.enabledcc = blackwhite.enabledcc && p.blackwhite.enabledcc == other.blackwhite.enabledcc; + blackwhite.enabled = blackwhite.enabled && p.blackwhite.enabled == other.blackwhite.enabled; + blackwhite.mixerRed = blackwhite.mixerRed && p.blackwhite.mixerRed == other.blackwhite.mixerRed; + blackwhite.mixerOrange = blackwhite.mixerOrange && p.blackwhite.mixerOrange == other.blackwhite.mixerOrange; + blackwhite.mixerYellow = blackwhite.mixerYellow && p.blackwhite.mixerYellow == other.blackwhite.mixerYellow; + blackwhite.mixerGreen = blackwhite.mixerGreen && p.blackwhite.mixerGreen == other.blackwhite.mixerGreen; + blackwhite.mixerCyan = blackwhite.mixerCyan && p.blackwhite.mixerCyan == other.blackwhite.mixerCyan; + blackwhite.mixerBlue = blackwhite.mixerBlue && p.blackwhite.mixerBlue == other.blackwhite.mixerBlue; + blackwhite.mixerMagenta = blackwhite.mixerMagenta && p.blackwhite.mixerMagenta == other.blackwhite.mixerMagenta; + blackwhite.mixerPurple = blackwhite.mixerPurple && p.blackwhite.mixerPurple == other.blackwhite.mixerPurple; + blackwhite.gammaRed = blackwhite.gammaRed && p.blackwhite.gammaRed == other.blackwhite.gammaRed; + blackwhite.gammaGreen = blackwhite.gammaGreen && p.blackwhite.gammaGreen == other.blackwhite.gammaGreen; + blackwhite.gammaBlue = blackwhite.gammaBlue && p.blackwhite.gammaBlue == other.blackwhite.gammaBlue; + blackwhite.filter = blackwhite.filter && p.blackwhite.filter == other.blackwhite.filter; + blackwhite.setting = blackwhite.setting && p.blackwhite.setting == other.blackwhite.setting; + blackwhite.luminanceCurve = blackwhite.luminanceCurve && p.blackwhite.luminanceCurve == other.blackwhite.luminanceCurve; + blackwhite.method = blackwhite.method && p.blackwhite.method == other.blackwhite.method; + blackwhite.beforeCurve = blackwhite.beforeCurve && p.blackwhite.beforeCurve == other.blackwhite.beforeCurve; + blackwhite.beforeCurveMode = blackwhite.beforeCurveMode && p.blackwhite.beforeCurveMode == other.blackwhite.beforeCurveMode; + blackwhite.afterCurve = blackwhite.afterCurve && p.blackwhite.afterCurve == other.blackwhite.afterCurve; + blackwhite.afterCurveMode = blackwhite.afterCurveMode && p.blackwhite.afterCurveMode == other.blackwhite.afterCurveMode; + blackwhite.autoc = blackwhite.autoc && p.blackwhite.autoc == other.blackwhite.autoc; + hlrecovery.enabled = hlrecovery.enabled && p.hlrecovery.enabled == other.hlrecovery.enabled; hlrecovery.method = hlrecovery.method && p.hlrecovery.method == other.hlrecovery.method; resize.scale = resize.scale && p.resize.scale == other.resize.scale; resize.appliesTo = resize.appliesTo && p.resize.appliesTo == other.resize.appliesTo; @@ -536,7 +535,7 @@ void ParamsEdited::initFrom (const std::vector icm.working = icm.working && p.icm.working == other.icm.working; icm.output = icm.output && p.icm.output == other.icm.output; icm.gamma = icm.gamma && p.icm.gamma == other.icm.gamma; - icm.freegamma = icm.freegamma && p.icm.freegamma == other.icm.freegamma; + icm.freegamma = icm.freegamma && p.icm.freegamma == other.icm.freegamma; icm.gampos = icm.gampos && p.icm.gampos == other.icm.gampos; icm.slpos = icm.slpos && p.icm.slpos == other.icm.slpos; raw.ccSteps = raw.ccSteps && p.raw.ccSteps == other.raw.ccSteps; @@ -610,8 +609,7 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten if (labCurve.chromaticity) toEdit.labCurve.chromaticity = dontforceSet && options.baBehav[ADDSET_LC_CHROMATICITY] ? toEdit.labCurve.chromaticity + mods.labCurve.chromaticity : mods.labCurve.chromaticity; if (labCurve.avoidcolorshift) toEdit.labCurve.avoidcolorshift = mods.labCurve.avoidcolorshift; if (labCurve.rstprotection) toEdit.labCurve.rstprotection = mods.labCurve.rstprotection; - if (labCurve.bwtoning) toEdit.labCurve.bwtoning = mods.labCurve.bwtoning; - if (labCurve.lcredsk) toEdit.labCurve.lcredsk = mods.labCurve.lcredsk; + if (labCurve.lcredsk) toEdit.labCurve.lcredsk = mods.labCurve.lcredsk; if (rgbCurves.lumamode) toEdit.rgbCurves.lumamode = mods.rgbCurves.lumamode; if (rgbCurves.rcurve) toEdit.rgbCurves.rcurve = mods.rgbCurves.rcurve; @@ -630,36 +628,6 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten if (sharpening.radius) toEdit.sharpening.radius = mods.sharpening.radius; if (sharpening.amount) toEdit.sharpening.amount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.sharpening.amount + mods.sharpening.amount : mods.sharpening.amount; if (sharpening.threshold) toEdit.sharpening.threshold = mods.sharpening.threshold; - - for (int i=0; i<3; i++) { - if (chmixer.red[i]) toEdit.chmixer.red[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.red[i] + mods.chmixer.red[i] : mods.chmixer.red[i]; - if (chmixer.green[i]) toEdit.chmixer.green[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.green[i] + mods.chmixer.green[i] : mods.chmixer.green[i]; - if (chmixer.blue[i]) toEdit.chmixer.blue[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.blue[i] + mods.chmixer.blue[i] : mods.chmixer.blue[i]; - } - if (chmixerbw.enabledcc) toEdit.chmixerbw.enabledcc = mods.chmixerbw.enabledcc; - if (chmixerbw.enabled) toEdit.chmixerbw.enabled = mods.chmixerbw.enabled; - if (chmixerbw.bwgreen) toEdit.chmixerbw.bwgreen = dontforceSet && options.baBehav[ADDSET_CHMIXER_BW] ? toEdit.chmixerbw.bwgreen + mods.chmixerbw.bwgreen : mods.chmixerbw.bwgreen; - if (chmixerbw.bwred) toEdit.chmixerbw.bwred = dontforceSet && options.baBehav[ADDSET_CHMIXER_BW] ? toEdit.chmixerbw.bwred + mods.chmixerbw.bwred : mods.chmixerbw.bwred; - if (chmixerbw.bwblue) toEdit.chmixerbw.bwblue = dontforceSet && options.baBehav[ADDSET_CHMIXER_BW] ? toEdit.chmixerbw.bwblue + mods.chmixerbw.bwblue : mods.chmixerbw.bwblue; - if (chmixerbw.bwgreengam) toEdit.chmixerbw.bwgreengam = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWG] ? toEdit.chmixerbw.bwgreengam + mods.chmixerbw.bwgreengam : mods.chmixerbw.bwgreengam; - if (chmixerbw.bwredgam) toEdit.chmixerbw.bwredgam = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWG] ? toEdit.chmixerbw.bwredgam + mods.chmixerbw.bwredgam : mods.chmixerbw.bwredgam; - if (chmixerbw.bwbluegam) toEdit.chmixerbw.bwbluegam = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWG] ? toEdit.chmixerbw.bwbluegam + mods.chmixerbw.bwbluegam : mods.chmixerbw.bwbluegam; - if (chmixerbw.bworan) toEdit.chmixerbw.bworan = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWF] ? toEdit.chmixerbw.bworan + mods.chmixerbw.bworan : mods.chmixerbw.bworan; - if (chmixerbw.bwyell) toEdit.chmixerbw.bwyell = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWF] ? toEdit.chmixerbw.bwyell + mods.chmixerbw.bwyell : mods.chmixerbw.bwyell; - if (chmixerbw.bwcyan) toEdit.chmixerbw.bwcyan = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWF] ? toEdit.chmixerbw.bwcyan + mods.chmixerbw.bwcyan : mods.chmixerbw.bwcyan; - if (chmixerbw.bwmag) toEdit.chmixerbw.bwmag = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWF] ? toEdit.chmixerbw.bwmag + mods.chmixerbw.bwmag : mods.chmixerbw.bwmag; - if (chmixerbw.bwpur) toEdit.chmixerbw.bwpur = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWF] ? toEdit.chmixerbw.bwpur + mods.chmixerbw.bwpur : mods.chmixerbw.bwpur; - if (chmixerbw.fil) toEdit.chmixerbw.fil = mods.chmixerbw.fil; - if (chmixerbw.set) toEdit.chmixerbw.set = mods.chmixerbw.set; - if (chmixerbw.met) toEdit.chmixerbw.met = mods.chmixerbw.met; - if (chmixerbw.curve) toEdit.chmixerbw.curve = mods.chmixerbw.curve; - if (chmixerbw.curveMode) toEdit.chmixerbw.curveMode = mods.chmixerbw.curveMode; - if (chmixerbw.curve2) toEdit.chmixerbw.curve2 = mods.chmixerbw.curve2; - if (chmixerbw.curveMode2) toEdit.chmixerbw.curveMode2 = mods.chmixerbw.curveMode2; - if (chmixerbw.vcurve) toEdit.chmixerbw.vcurve = mods.chmixerbw.vcurve; - if (chmixerbw.autoc) toEdit.chmixerbw.autoc = mods.chmixerbw.autoc; - - if (sharpening.edgesonly) toEdit.sharpening.edgesonly = mods.sharpening.edgesonly; if (sharpening.edges_radius) toEdit.sharpening.edges_radius = mods.sharpening.edges_radius; if (sharpening.edges_tolerance) toEdit.sharpening.edges_tolerance = mods.sharpening.edges_tolerance; @@ -804,17 +772,28 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten if (chmixer.green[i]) toEdit.chmixer.green[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.green[i] + mods.chmixer.green[i] : mods.chmixer.green[i]; if (chmixer.blue[i]) toEdit.chmixer.blue[i] = dontforceSet && options.baBehav[ADDSET_CHMIXER] ? toEdit.chmixer.blue[i] + mods.chmixer.blue[i] : mods.chmixer.blue[i]; } - if (chmixerbw.bwred) toEdit.chmixerbw.bwred = dontforceSet && options.baBehav[ADDSET_CHMIXER_BW] ? toEdit.chmixerbw.bwred + mods.chmixerbw.bwred : mods.chmixerbw.bwred; - if (chmixerbw.bwgreen) toEdit.chmixerbw.bwgreen = dontforceSet && options.baBehav[ADDSET_CHMIXER_BW] ? toEdit.chmixerbw.bwgreen + mods.chmixerbw.bwgreen : mods.chmixerbw.bwgreen; - if (chmixerbw.bwblue) toEdit.chmixerbw.bwblue = dontforceSet && options.baBehav[ADDSET_CHMIXER_BW] ? toEdit.chmixerbw.bwblue + mods.chmixerbw.bwblue : mods.chmixerbw.bwblue; - if (chmixerbw.bwredgam) toEdit.chmixerbw.bwredgam = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWG] ? toEdit.chmixerbw.bwredgam + mods.chmixerbw.bwredgam : mods.chmixerbw.bwredgam; - if (chmixerbw.bwgreengam) toEdit.chmixerbw.bwgreengam = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWG] ? toEdit.chmixerbw.bwgreengam + mods.chmixerbw.bwgreengam : mods.chmixerbw.bwgreengam; - if (chmixerbw.bwbluegam) toEdit.chmixerbw.bwbluegam = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWG] ? toEdit.chmixerbw.bwbluegam + mods.chmixerbw.bwbluegam : mods.chmixerbw.bwbluegam; - if (chmixerbw.bworan) toEdit.chmixerbw.bworan = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWF] ? toEdit.chmixerbw.bworan + mods.chmixerbw.bworan : mods.chmixerbw.bworan; - if (chmixerbw.bwyell) toEdit.chmixerbw.bwyell = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWF] ? toEdit.chmixerbw.bwyell + mods.chmixerbw.bwyell : mods.chmixerbw.bwyell; - if (chmixerbw.bwcyan) toEdit.chmixerbw.bwcyan = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWF] ? toEdit.chmixerbw.bwcyan + mods.chmixerbw.bwcyan : mods.chmixerbw.bwcyan; - if (chmixerbw.bwmag) toEdit.chmixerbw.bwmag = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWF] ? toEdit.chmixerbw.bwmag + mods.chmixerbw.bwmag : mods.chmixerbw.bwmag; - if (chmixerbw.bwpur) toEdit.chmixerbw.bwpur = dontforceSet && options.baBehav[ADDSET_CHMIXER_BWF] ? toEdit.chmixerbw.bwpur + mods.chmixerbw.bwpur : mods.chmixerbw.bwpur; + if (blackwhite.enabled) toEdit.blackwhite.enabled = mods.blackwhite.enabled; + if (blackwhite.method) toEdit.blackwhite.method = mods.blackwhite.method; + if (blackwhite.luminanceCurve) toEdit.blackwhite.luminanceCurve = mods.blackwhite.luminanceCurve; + if (blackwhite.autoc) toEdit.blackwhite.autoc = mods.blackwhite.autoc; + if (blackwhite.setting) toEdit.blackwhite.setting = mods.blackwhite.setting; + if (blackwhite.enabledcc) toEdit.blackwhite.enabledcc = mods.blackwhite.enabledcc; + if (blackwhite.filter) toEdit.blackwhite.filter = mods.blackwhite.filter; + if (blackwhite.mixerRed) toEdit.blackwhite.mixerRed = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerRed + mods.blackwhite.mixerRed : mods.blackwhite.mixerRed; + if (blackwhite.mixerOrange) toEdit.blackwhite.mixerOrange = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerOrange + mods.blackwhite.mixerOrange : mods.blackwhite.mixerOrange; + if (blackwhite.mixerYellow) toEdit.blackwhite.mixerYellow = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerYellow + mods.blackwhite.mixerYellow : mods.blackwhite.mixerYellow; + if (blackwhite.mixerGreen) toEdit.blackwhite.mixerGreen = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerGreen + mods.blackwhite.mixerGreen : mods.blackwhite.mixerGreen; + if (blackwhite.mixerCyan) toEdit.blackwhite.mixerCyan = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerCyan + mods.blackwhite.mixerCyan : mods.blackwhite.mixerCyan; + if (blackwhite.mixerBlue) toEdit.blackwhite.mixerBlue = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerBlue + mods.blackwhite.mixerBlue : mods.blackwhite.mixerBlue; + if (blackwhite.mixerMagenta) toEdit.blackwhite.mixerMagenta = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerMagenta + mods.blackwhite.mixerMagenta : mods.blackwhite.mixerMagenta; + if (blackwhite.mixerPurple) toEdit.blackwhite.mixerPurple = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_HUES] ? toEdit.blackwhite.mixerPurple + mods.blackwhite.mixerPurple : mods.blackwhite.mixerPurple; + if (blackwhite.gammaRed) toEdit.blackwhite.gammaRed = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_GAMMA] ? toEdit.blackwhite.gammaRed + mods.blackwhite.gammaRed : mods.blackwhite.gammaRed; + if (blackwhite.gammaGreen) toEdit.blackwhite.gammaGreen = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_GAMMA] ? toEdit.blackwhite.gammaGreen + mods.blackwhite.gammaGreen : mods.blackwhite.gammaGreen; + if (blackwhite.gammaBlue) toEdit.blackwhite.gammaBlue = dontforceSet && options.baBehav[ADDSET_BLACKWHITE_GAMMA] ? toEdit.blackwhite.gammaBlue + mods.blackwhite.gammaBlue : mods.blackwhite.gammaBlue; + if (blackwhite.beforeCurve) toEdit.blackwhite.beforeCurve = mods.blackwhite.beforeCurve; + if (blackwhite.beforeCurveMode) toEdit.blackwhite.beforeCurveMode = mods.blackwhite.beforeCurveMode; + if (blackwhite.afterCurve) toEdit.blackwhite.afterCurve = mods.blackwhite.afterCurve; + if (blackwhite.afterCurveMode) toEdit.blackwhite.afterCurveMode = mods.blackwhite.afterCurveMode; if (hlrecovery.enabled) toEdit.hlrecovery.enabled = mods.hlrecovery.enabled; if (hlrecovery.method) toEdit.hlrecovery.method = mods.hlrecovery.method; @@ -891,7 +870,7 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten bool RAWParamsEdited::isUnchanged() const { return ccSteps && dmethod && dcbIterations && dcbEnhance && lmmseIterations/*&& allEnhance*/ && caCorrection && caRed && caBlue && greenEq && hotDeadPixelFilter && hotDeadPixelThresh && linenoise && darkFrame && dfAuto && ff_file && ff_AutoSelect && ff_BlurRadius && ff_BlurType - && exPos && exPreser && exBlackzero && exBlackone && exBlacktwo && exBlackthree && exTwoGreen; + && exPos && exPreser && exBlackzero && exBlackone && exBlacktwo && exBlackthree && exTwoGreen; } bool LensProfParamsEdited::isUnchanged() const { diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index eb5602ec4..1c422acee 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -62,8 +62,7 @@ class LCurveParamsEdited { bool lcurve; bool acurve; bool bcurve; - bool bwtoning; - bool lcredsk; + bool lcredsk; bool cccurve; bool chcurve; bool lccurve; @@ -170,7 +169,7 @@ class WBParamsEdited { };*/ class DefringeParamsEdited { - + public: bool enabled; bool radius; @@ -190,20 +189,20 @@ class ColorAppearanceParamsEdited { public: bool curve; bool curve2; - bool curve3; + bool curve3; bool curveMode; bool curveMode2; bool curveMode3; bool enabled; bool degree; bool autodegree; - bool autoadapscen; + bool autoadapscen; bool surround; bool adapscen; bool adaplum; - bool badpixsl; + bool badpixsl; bool wbmodel; - bool algo; + bool algo; bool jlight; bool qbright; bool chroma; @@ -212,17 +211,15 @@ public: bool contrast; bool qcontrast; bool colorh; - bool rstprotection; - bool surrsource; - bool gamut; -// bool badpix; - bool datacie; - bool tonecie; -// bool sharpcie; - + bool rstprotection; + bool surrsource; + bool gamut; +// bool badpix; + bool datacie; + bool tonecie; +// bool sharpcie; }; - class DirPyrDenoiseParamsEdited { public: @@ -230,8 +227,8 @@ public: bool Ldetail; bool luma; bool chroma; - bool redchro; - bool bluechro; + bool redchro; + bool bluechro; bool gamma; // bool perform; bool dmethod; @@ -284,8 +281,8 @@ class CoarseTransformParamsEdited { class CommonTransformParamsEdited { - public: - bool autofill; + public: + bool autofill; }; class RotateParamsEdited { @@ -309,9 +306,9 @@ class LensProfParamsEdited { class PerspectiveParamsEdited { - public: - bool horizontal; - bool vertical; + public: + bool horizontal; + bool vertical; }; class GradientParamsEdited { @@ -352,33 +349,31 @@ class ChannelMixerParamsEdited { bool blue[3]; }; -class ChannelMixerbwParamsEdited { +class BlackWhiteParamsEdited { public: - bool enabledcc; - bool enabled; - bool bwred; - bool bwgreen; - bool bwblue; - bool bwredgam; - bool bwgreengam; - bool bwbluegam; - bool met; - bool fil; - bool set; - bool bworan; - bool bwyell; - bool bwcyan; - bool bwmag; - bool bwpur; - bool vcurve; - bool curve; - bool curveMode; - bool curve2; - bool curveMode2; + bool enabledcc; + bool enabled; + bool method; + bool filter; + bool setting; + bool mixerRed; + bool mixerOrange; + bool mixerYellow; + bool mixerGreen; + bool mixerCyan; + bool mixerBlue; + bool mixerMagenta; + bool mixerPurple; + bool gammaRed; + bool gammaGreen; + bool gammaBlue; + bool luminanceCurve; + bool beforeCurve; + bool beforeCurveMode; + bool afterCurve; + bool afterCurveMode; bool autoc; - - }; class CACorrParamsEdited { @@ -392,7 +387,7 @@ class HRecParamsEdited { public: bool enabled; - bool method; + bool method; }; class ResizeParamsEdited { @@ -416,23 +411,23 @@ class ColorManagementParamsEdited { bool dcpIlluminant; bool working; bool output; - bool gamma; - bool gampos; - bool slpos; - bool gamfree; - bool freegamma; + bool gamma; + bool gampos; + bool slpos; + bool gamfree; + bool freegamma; }; class DirPyrEqualizerParamsEdited { - -public: - bool enabled; - bool mult[8]; + + public: + bool enabled; + bool mult[8]; }; class HSVEqualizerParamsEdited { - -public: + + public: bool hcurve; bool scurve; bool vcurve; @@ -445,7 +440,7 @@ class RAWParamsEdited { bool dmethod; bool dcbIterations; bool dcbEnhance; - bool lmmseIterations; + bool lmmseIterations; //bool allEnhance; bool caCorrection; bool caRed; @@ -505,7 +500,7 @@ class ParamsEdited { CACorrParamsEdited cacorrection; VignettingParamsEdited vignetting; ChannelMixerParamsEdited chmixer; - ChannelMixerbwParamsEdited chmixerbw; + BlackWhiteParamsEdited blackwhite; HRecParamsEdited hlrecovery; ResizeParamsEdited resize; ColorManagementParamsEdited icm; diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index 999ff668d..dd8ad4965 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -64,7 +64,7 @@ PartialPasteDlg::PartialPasteDlg (Glib::ustring title) { // options in color: vibrance = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_VIBRANCE"))); chmixer = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_CHANNELMIXER"))); - chmixerbw = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_CHANNELMIXERBW"))); + blackwhite = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_CHANNELMIXERBW"))); dirpyrden = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_DIRPYRDENOISE"))); hsveq = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_HSVEQUALIZER"))); rgbcurves = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RGBCURVES"))); @@ -149,7 +149,7 @@ PartialPasteDlg::PartialPasteDlg (Glib::ustring title) { vboxes[2]->pack_start (*hseps[2], Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*vibrance, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*chmixer, Gtk::PACK_SHRINK, 2); - vboxes[2]->pack_start (*chmixerbw, Gtk::PACK_SHRINK, 2); + vboxes[2]->pack_start (*blackwhite, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*hsveq, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*rgbcurves, Gtk::PACK_SHRINK, 2); @@ -268,7 +268,7 @@ PartialPasteDlg::PartialPasteDlg (Glib::ustring title) { vibranceConn = vibrance->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); chmixerConn = chmixer->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); - chmixerbwConn = chmixerbw->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); + chmixerbwConn = blackwhite->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); hsveqConn = hsveq->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); rgbcurvesConn = rgbcurves->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); @@ -508,7 +508,7 @@ void PartialPasteDlg::colorToggled () { vibrance->set_active (color->get_active ()); chmixer->set_active (color->get_active ()); - chmixerbw->set_active (color->get_active ()); + blackwhite->set_active (color->get_active ()); hsveq->set_active (color->get_active ()); rgbcurves->set_active (color->get_active ()); icm->set_active (color->get_active ()); @@ -631,7 +631,7 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param if (!vibrance->get_active ()) filterPE.vibrance = falsePE.vibrance; if (!chmixer->get_active ()) filterPE.chmixer = falsePE.chmixer; - if (!chmixerbw->get_active ()) filterPE.chmixerbw = falsePE.chmixerbw; + if (!blackwhite->get_active ()) filterPE.blackwhite = falsePE.blackwhite; if (!hsveq->get_active ()) filterPE.hsvequalizer = falsePE.hsvequalizer; if (!rgbcurves->get_active ()) filterPE.rgbCurves = falsePE.rgbCurves; if (!icm->get_active ()) filterPE.icm = falsePE.icm; diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h index a41bd04bf..cf7cb5e5c 100644 --- a/rtgui/partialpastedlg.h +++ b/rtgui/partialpastedlg.h @@ -61,7 +61,7 @@ class PartialPasteDlg : public Gtk::Dialog { // options in color: Gtk::CheckButton* vibrance; Gtk::CheckButton* chmixer; - Gtk::CheckButton* chmixerbw; + Gtk::CheckButton* blackwhite; Gtk::CheckButton* hsveq; Gtk::CheckButton* rgbcurves; // Gtk::CheckButton* icm; diff --git a/rtgui/ppversion.h b/rtgui/ppversion.h index e469b2891..3bb4a79d9 100644 --- a/rtgui/ppversion.h +++ b/rtgui/ppversion.h @@ -2,7 +2,7 @@ #define _PPVERSION_ // This number have to be incremented whenever the PP3 file format is modified -#define PPVERSION 313 +#define PPVERSION 314 #define PPVERSION_AEXP 301 //value of PPVERSION when auto exposure algorithm was modified /* diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 369969dea..dfa635e07 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -238,9 +238,8 @@ Gtk::Widget* Preferences::getBatchProcPanel () { mi = behModel->append (); mi->set_value (behavColumns.label, M("TP_BWMIX_LABEL")); - appendBehavList (mi, M("TP_BWMIX_MIXC"), ADDSET_CHMIXER_BW, false); - appendBehavList (mi, M("TP_BWMIX_GAMMA"), ADDSET_CHMIXER_BWG, false); - appendBehavList (mi, M("TP_BWMIX_MIXF"),ADDSET_CHMIXER_BWF, false); + appendBehavList (mi, M("TP_BWMIX_MIXC"), ADDSET_BLACKWHITE_HUES, false); + appendBehavList (mi, M("TP_BWMIX_GAMMA"), ADDSET_BLACKWHITE_GAMMA, false); mi = behModel->append (); mi->set_value (behavColumns.label, M("TP_ROTATE_LABEL")); diff --git a/rtgui/toolpanel.h b/rtgui/toolpanel.h index 749c5217f..946ca3fc6 100644 --- a/rtgui/toolpanel.h +++ b/rtgui/toolpanel.h @@ -59,12 +59,19 @@ class ToolPanel { virtual void trimValues (rtengine::procparams::ProcParams* pp) { return; } virtual void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited=NULL) {} virtual void autoOpenCurve () {} - - void disableListener () { if (tmp==NULL) tmp = listener; listener = NULL; } + + /** @brief Disable the event broadcasting mechanism + * + * @return Return the previous state of the broadcast (true: enabled ; false: disabled) + */ + bool disableListener () { if (tmp==NULL) tmp = listener; bool prevState = listener!=NULL; listener = NULL; return prevState; } + + /** @brief Enable the event broadcasting mechanism + */ void enableListener () { if (tmp!=NULL) listener = tmp; tmp = NULL; } - + virtual void setBatchMode (bool batchMode) { this->batchMode = batchMode; } - + }; class FoldableToolPanel : public ToolPanel { diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 1b8bbec66..c0a2620e7 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -65,7 +65,7 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) { cacorrection = Gtk::manage (new CACorrection ()); hlrecovery = Gtk::manage (new HLRecovery ()); chmixer = Gtk::manage (new ChMixer ()); - chmixerbw = Gtk::manage (new ChMixerbw ()); + blackwhite = Gtk::manage (new BlackWhite ()); resize = Gtk::manage (new Resize ()); crop = Gtk::manage (new Crop ()); icm = Gtk::manage (new ICMPanel ()); @@ -85,7 +85,7 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) { addPanel (exposurePanel, hlrecovery, M("TP_HLREC_LABEL")); toolPanels.push_back (hlrecovery); addPanel (colorPanel, vibrance, M("TP_VIBRANCE_LABEL")); toolPanels.push_back (vibrance); addPanel (colorPanel, chmixer, M("TP_CHMIXER_LABEL")); toolPanels.push_back (chmixer); - addPanel (colorPanel, chmixerbw, M("TP_BWMIX_LABEL")); toolPanels.push_back (chmixerbw); + addPanel (colorPanel, blackwhite, M("TP_BWMIX_LABEL")); toolPanels.push_back (blackwhite); addPanel (exposurePanel, shadowshighlights, M("TP_SHADOWSHLIGHTS_LABEL")); toolPanels.push_back (shadowshighlights); addPanel (detailsPanel, sharpening, M("TP_SHARPENING_LABEL")); toolPanels.push_back (sharpening); addPanel (detailsPanel, sharpenEdge, M("TP_SHARPENEDGE_LABEL")); toolPanels.push_back (sharpenEdge); @@ -213,7 +213,7 @@ void ToolPanelCoordinator::addPanel (Gtk::Box* where, FoldableToolPanel* panel, } panel->setParent(where); - panel->setLabel(label); + panel->setLabel(escapeHtmlChars(label)); expList.push_back (panel->exp); where->pack_start(*panel->exp, false, false); @@ -364,8 +364,8 @@ void ToolPanelCoordinator::initImage (rtengine::StagedImageProcessor* ipc_, bool if (ipc) { ipc->setAutoExpListener (toneCurve); ipc->setAutoCamListener (colorappearance); - ipc->setAutoBWListener (chmixerbw); - + ipc->setAutoBWListener (blackwhite); + ipc->setSizeListener (crop); ipc->setSizeListener (resize); } @@ -382,7 +382,7 @@ void ToolPanelCoordinator::initImage (rtengine::StagedImageProcessor* ipc_, bool void ToolPanelCoordinator::closeImage () { if (ipc) { - ipc->stopProcessing (); + ipc->stopProcessing (); ipc = NULL; } } diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h index 22b82dbca..f174973ca 100644 --- a/rtgui/toolpanelcoord.h +++ b/rtgui/toolpanelcoord.h @@ -101,7 +101,7 @@ class ToolPanelCoordinator : public ToolPanelListener, ColorAppearance* colorappearance; Vibrance* vibrance; ChMixer* chmixer; - ChMixerbw* chmixerbw; + BlackWhite* blackwhite; Resize* resize; ICMPanel* icm; Crop* crop; diff --git a/rtgui/vibrance.cc b/rtgui/vibrance.cc index d5ecda832..0eab03a0b 100644 --- a/rtgui/vibrance.cc +++ b/rtgui/vibrance.cc @@ -40,6 +40,8 @@ Vibrance::Vibrance () : Gtk::VBox(), FoldableToolPanel(this) { enabled->set_active (false); pack_start(*enabled, Gtk::PACK_SHRINK, 0); + pack_start (*Gtk::manage (new Gtk::HSeparator())); + saturated = Gtk::manage(new Adjuster (M("TP_VIBRANCE_SATURATED"),-100.,100.,1.,0.)); saturated->setAdjusterListener (this); saturated->set_sensitive(false); @@ -333,7 +335,7 @@ void Vibrance::setDefaults(const ProcParams* defParams, const ParamsEdited* pedi } } -void Vibrance::setAdjusterBehavior (bool pastelsadd, bool saturatedadd, bool psthreshdadd) { +void Vibrance::setAdjusterBehavior (bool pastelsadd, bool saturatedadd) { pastels->setAddMode (pastelsadd); saturated->setAddMode (saturatedadd); } diff --git a/rtgui/vibrance.h b/rtgui/vibrance.h index 20b08f0a6..440afa0bb 100644 --- a/rtgui/vibrance.h +++ b/rtgui/vibrance.h @@ -62,7 +62,7 @@ public: void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited=NULL); void setBatchMode (bool batchMode); void trimValues (rtengine::procparams::ProcParams* pp); - void setAdjusterBehavior (bool amountadd, bool passadd, bool psthreshdadd); + void setAdjusterBehavior (bool pastelsadd, bool saturatedadd); void adjusterChanged (Adjuster* a, double newval); void adjusterChanged (ThresholdAdjuster* a, int newBottom, int newTop); void curveChanged ();