From 2e3d6d156e1472edfefeb850a8bef9834cbd204e Mon Sep 17 00:00:00 2001 From: Ilia Popov Date: Sat, 3 Jul 2010 00:58:14 +0200 Subject: [PATCH] Wavelet equalizer: added buttons C+,N,C-; some small fixes --- rtdata/languages/English (UK) | 3 ++ rtdata/languages/English (US) | 3 ++ rtengine/ipequalizer.cc | 6 ++-- rtengine/wavelet_level.h | 4 +-- rtgui/colorboost.h | 4 +-- rtgui/equalizer.cc | 57 ++++++++++++++++++++++++++++++++--- rtgui/equalizer.h | 12 ++++++-- 7 files changed, 74 insertions(+), 15 deletions(-) diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index db41c25cd..2b4e0656b 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -528,6 +528,9 @@ TP_DISTORTION_LABEL;Distortion TP_EQUALIZER_LABEL;Wavelet equalizer TP_EQUALIZER_FINEST;finest TP_EQUALIZER_LARGEST;coarsest +TP_EQUALIZER_NEUTRAL;Neutral +TP_EQUALIZER_CONTRAST_PLUS;Contrast+ +TP_EQUALIZER_CONTRAST_MINUS;Contrast- TP_EXPOSURE_AUTOLEVELS;Auto Levels TP_EXPOSURE_BLACKLEVEL;Black TP_EXPOSURE_BRIGHTNESS;Brightness diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 497b132bf..166886f31 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -530,6 +530,9 @@ TP_DISTORTION_LABEL;Distortion TP_EQUALIZER_LABEL;Wavelet equalizer TP_EQUALIZER_FINEST;finest TP_EQUALIZER_LARGEST;coarsest +TP_EQUALIZER_NEUTRAL;Neutral +TP_EQUALIZER_CONTRAST_PLUS;Contrast+ +TP_EQUALIZER_CONTRAST_MINUS;Contrast- TP_EXPOSURE_AUTOLEVELS;Auto Levels TP_EXPOSURE_BLACKLEVEL;Black TP_EXPOSURE_BRIGHTNESS;Brightness diff --git a/rtengine/ipequalizer.cc b/rtengine/ipequalizer.cc index 8371605f3..a9fab7b42 100644 --- a/rtengine/ipequalizer.cc +++ b/rtengine/ipequalizer.cc @@ -22,7 +22,7 @@ #include -#include +//#include namespace rtengine { @@ -51,7 +51,7 @@ void ImProcFunctions :: waveletEqualizer (LabImage * image, bool luminance, bool return; } - clock_t start = clock(); + //clock_t start = clock(); if (luminance) { limiter l1(0, 65535); @@ -70,7 +70,7 @@ void ImProcFunctions :: waveletEqualizer (LabImage * image, bool luminance, bool b.reconstruct(image->b, params->equalizer.c, l2); } - std::cout << "Wavelets done in " << (double)(clock() - start) / CLOCKS_PER_SEC << std::endl; + //std::cout << "Wavelets done in " << (double)(clock() - start) / CLOCKS_PER_SEC << std::endl; } diff --git a/rtengine/wavelet_level.h b/rtengine/wavelet_level.h index c70bbde1c..76d402e3b 100644 --- a/rtengine/wavelet_level.h +++ b/rtengine/wavelet_level.h @@ -157,7 +157,7 @@ void wavelet_level::dwt_2d(size_t w, size_t h) dwt_53(&m_coeffs[0][i], m_pitch, buffer, h); } - delete buffer; + delete[] buffer; } template @@ -177,7 +177,7 @@ void wavelet_level::idwt_2d(size_t w, size_t h, int alpha) idwt_53(&m_coeffs[0][i], m_pitch, buffer, h, alpha); } - delete buffer; + delete[] buffer; } diff --git a/rtgui/colorboost.h b/rtgui/colorboost.h index 12fd7903c..d7efc4ad6 100644 --- a/rtgui/colorboost.h +++ b/rtgui/colorboost.h @@ -20,8 +20,8 @@ #define _COLORBOOST_H_ #include -#include "adjuster.h" -#include "toolpanel.h" +#include +#include class ColorBoost : public Gtk::VBox, public AdjusterListener, public ToolPanel { diff --git a/rtgui/equalizer.cc b/rtgui/equalizer.cc index 74bf84a61..6fe4a6ea1 100644 --- a/rtgui/equalizer.cc +++ b/rtgui/equalizer.cc @@ -27,11 +27,30 @@ Equalizer::Equalizer () : ToolPanel() { enabled = Gtk::manage (new Gtk::CheckButton (M("GENERAL_ENABLED"))); enabled->set_active (true); pack_start(*enabled); - enabled->show(); - enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Equalizer::enabled_toggled) ); + enaConn = enabled->signal_toggled().connect( sigc::mem_fun(*this, &Equalizer::enabledToggled) ); - Gtk::HSeparator *separator = Gtk::manage (new Gtk::HSeparator()); - pack_start(*separator, Gtk::PACK_SHRINK, 2); + Gtk::HSeparator *separator1 = Gtk::manage (new Gtk::HSeparator()); + pack_start(*separator1, Gtk::PACK_SHRINK, 2); + + Gtk::HBox * buttonBox = Gtk::manage (new Gtk::HBox()); + pack_start(*buttonBox, Gtk::PACK_SHRINK, 2); + + Gtk::Button * contrastMinusButton = Gtk::manage (new Gtk::Button(M("TP_EQUALIZER_CONTRAST_MINUS"))); + buttonBox->pack_start(*contrastMinusButton, Gtk::PACK_SHRINK, 2); + contrastMinusPressedConn = contrastMinusButton->signal_pressed().connect( sigc::mem_fun(*this, &Equalizer::contrastMinusPressed)); + + Gtk::Button * neutralButton = Gtk::manage (new Gtk::Button(M("TP_EQUALIZER_NEUTRAL"))); + buttonBox->pack_start(*neutralButton, Gtk::PACK_SHRINK, 2); + neutralPressedConn = neutralButton->signal_pressed().connect( sigc::mem_fun(*this, &Equalizer::neutralPressed)); + + Gtk::Button * contrastPlusButton = Gtk::manage (new Gtk::Button(M("TP_EQUALIZER_CONTRAST_PLUS"))); + buttonBox->pack_start(*contrastPlusButton, Gtk::PACK_SHRINK, 2); + contrastPlusPressedConn = contrastPlusButton->signal_pressed().connect( sigc::mem_fun(*this, &Equalizer::contrastPlusPressed)); + + buttonBox->show_all_children(); + + Gtk::HSeparator *separator2 = Gtk::manage (new Gtk::HSeparator()); + pack_start(*separator2, Gtk::PACK_SHRINK, 2); for(int i = 0; i < 8; i++) { @@ -141,7 +160,7 @@ void Equalizer::adjusterChanged (Adjuster* a, double newval) { } } -void Equalizer::enabled_toggled () { +void Equalizer::enabledToggled () { if (batchMode) { if (enabled->get_inconsistent()) { @@ -165,3 +184,31 @@ void Equalizer::enabled_toggled () { } +void Equalizer::neutralPressed () { + + for (int i = 0; i < 8; i++) { + correction[i]->setValue(0); + adjusterChanged(correction[i], 0); + } +} + + +void Equalizer::contrastPlusPressed () { + + for (int i = 0; i < 8; i++) { + int inc = 1 * (8 - i); + correction[i]->setValue(correction[i]->getValue() + inc); + adjusterChanged(correction[i], correction[i]->getValue()); + } +} + + +void Equalizer::contrastMinusPressed () { + + for (int i = 0; i < 8; i++) { + int inc = -1 * (8 - i); + correction[i]->setValue(correction[i]->getValue() + inc); + adjusterChanged(correction[i], correction[i]->getValue()); + } +} + diff --git a/rtgui/equalizer.h b/rtgui/equalizer.h index 3d663f4e3..85790f952 100644 --- a/rtgui/equalizer.h +++ b/rtgui/equalizer.h @@ -17,8 +17,8 @@ * 2010 Ilya Popov */ -#ifndef EQUALIZE_H_INCLUDED -#define EQUALIZE_H_INCLUDED +#ifndef EQUALIZER_H_INCLUDED +#define EQUALIZER_H_INCLUDED #include #include @@ -33,6 +33,9 @@ protected: Adjuster* correction[8]; sigc::connection enaConn; + sigc::connection neutralPressedConn; + sigc::connection contrastPlusPressedConn; + sigc::connection contrastMinusPressedConn; bool lastEnabled; @@ -47,7 +50,10 @@ public: void setBatchMode (bool batchMode); void adjusterChanged (Adjuster* a, double newval); - void enabled_toggled (); + void enabledToggled (); + void neutralPressed (); + void contrastPlusPressed (); + void contrastMinusPressed (); }; #endif