REGISTER_PLUGIN(BrightnessMain)
-
BrightnessConfig::BrightnessConfig()
+{
+ reset();
+}
+
+void BrightnessConfig::reset()
+
{
brightness = 0;
contrast = 0;
BrightnessConfig();
int equivalent(BrightnessConfig &that);
+ void reset();
void copy_from(BrightnessConfig &that);
void interpolate(BrightnessConfig &prev,
BrightnessConfig &next,
add_tool(luma = new BrightnessLuma(client,
x,
y));
+
+ y += 35;
+ add_subwindow(reset = new BrightnessReset(client, this, x, y));
+
show_window();
flush();
}
+// for Reset button
+void BrightnessWindow::update()
+{
+ brightness->update(client->config.brightness);
+ contrast->update(client->config.contrast);
+ luma->update(client->config.luma);
+}
BrightnessSlider::BrightnessSlider(BrightnessMain *client,
float *output,
client->send_configure_change();
return 1;
}
+
+
+BrightnessReset::BrightnessReset(BrightnessMain *client, BrightnessWindow *window, int x, int y)
+ : BC_GenericButton(x, y, _("Reset"))
+{
+ this->client = client;
+ this->window = window;
+}
+BrightnessReset::~BrightnessReset()
+{
+}
+int BrightnessReset::handle_event()
+{
+ client->config.reset();
+ window->update();
+ client->send_configure_change();
+ return 1;
+}
+
class BrightnessWindow;
class BrightnessSlider;
class BrightnessLuma;
+class BrightnessReset;
#include "brightness.h"
#include "guicast.h"
public:
BrightnessWindow(BrightnessMain *client);
~BrightnessWindow();
-
+ void update();
void create_objects();
BrightnessMain *client;
BrightnessSlider *brightness;
BrightnessSlider *contrast;
BrightnessLuma *luma;
+ BrightnessReset *reset;
};
class BrightnessSlider : public BC_FSlider
BrightnessMain *client;
};
+class BrightnessReset : public BC_GenericButton
+{
+public:
+ BrightnessReset(BrightnessMain *client, BrightnessWindow *window, int x, int y);
+ ~BrightnessReset();
+ int handle_event();
+ BrightnessMain *client;
+ BrightnessWindow *window;
+};
+
#endif
GammaConfig::GammaConfig()
+{
+ reset();
+}
+
+void GammaConfig::reset()
{
max = 1;
gamma = 0.6;
GammaConfig();
int equivalent(GammaConfig &that);
+ void reset();
void copy_from(GammaConfig &that);
void interpolate(GammaConfig &prev,
GammaConfig &next,
-
-
-
-
-
-
-
GammaWindow::GammaWindow(GammaMain *client)
: PluginClientWindow(client,
400,
void GammaWindow::create_objects()
{
- int x = 10, y = 10;
+ int x = 10, y = 10, x1 = x;
add_subwindow(histogram = new BC_SubWindow(x,
y,
get_w() - x * 2,
BC_Title *title;
add_tool(title = new BC_Title(x, y, _("Maximum:")));
x += title->get_w() + 10;
+ x1 = x; // save x to align the two sliders
add_tool(max_slider = new MaxSlider(client,
this,
x,
y += max_text->get_h() + 10;
x = 10;
add_tool(automatic = new GammaAuto(client, x, y));
-
y += automatic->get_h() + 10;
add_tool(title = new BC_Title(x, y, _("Gamma:")));
x += title->get_w() + 10;
+ x = x1; // recover x of the "MaxSlider" to align the "GammaSlider"
add_tool(gamma_slider = new GammaSlider(client,
this,
x,
add_tool(new GammaColorPicker(client, this, x, y));
+ add_tool(reset = new GammaReset(client, this, get_w()-110, y));
+
show_window();
flush();
}
}
+GammaReset::GammaReset(GammaMain *plugin, GammaWindow *gui, int x, int y)
+ : BC_GenericButton(x, y, _("Reset"))
+{
+ this->plugin = plugin;
+ this->gui = gui;
+}
+
+int GammaReset::handle_event()
+{
+ plugin->config.reset();
+ gui->update();
+ plugin->send_configure_change();
+ return 1;
+}
+
class GammaAuto;
class GammaPlot;
class GammaColorPicker;
+class GammaReset;
#include "filexml.h"
#include "guicast.h"
GammaText *gamma_text;
GammaAuto *automatic;
GammaPlot *plot;
+ GammaReset *reset;
};
class MaxSlider : public BC_FSlider
GammaWindow *gui;
};
+class GammaReset : public BC_GenericButton
+{
+public:
+ GammaReset(GammaMain *plugin, GammaWindow *gui, int x, int y);
+ int handle_event();
+ GammaMain *plugin;
+ GammaWindow *gui;
+};
+
#endif
#include "clip.h"
#include "bchash.h"
#include "filexml.h"
+#include "huesaturation.h"
#include "guicast.h"
#include "language.h"
#include "loadbalance.h"
#include <string.h>
-class HueEffect;
-
-#define MINHUE -180
-#define MAXHUE 180
-#define MINSATURATION -100
-#define MAXSATURATION 100
-#define MINVALUE -100
-#define MAXVALUE 100
-
-
-
-
-
-
-class HueConfig
-{
-public:
- HueConfig();
-
- void copy_from(HueConfig &src);
- int equivalent(HueConfig &src);
- void interpolate(HueConfig &prev,
- HueConfig &next,
- long prev_frame,
- long next_frame,
- long current_frame);
- float hue, saturation, value;
-};
-
-class HueSlider : public BC_FSlider
-{
-public:
- HueSlider(HueEffect *plugin, int x, int y, int w);
- int handle_event();
- HueEffect *plugin;
-};
-
-class SaturationSlider : public BC_FSlider
-{
-public:
- SaturationSlider(HueEffect *plugin, int x, int y, int w);
- int handle_event();
- char* get_caption();
- HueEffect *plugin;
- char string[BCTEXTLEN];
-};
-
-class ValueSlider : public BC_FSlider
-{
-public:
- ValueSlider(HueEffect *plugin, int x, int y, int w);
- int handle_event();
- char* get_caption();
- HueEffect *plugin;
- char string[BCTEXTLEN];
-};
-
-class HueWindow : public PluginClientWindow
-{
-public:
- HueWindow(HueEffect *plugin);
- void create_objects();
- HueEffect *plugin;
- HueSlider *hue;
- SaturationSlider *saturation;
- ValueSlider *value;
-};
+REGISTER_PLUGIN(HueEffect)
-class HueEngine : public LoadServer
-{
-public:
- HueEngine(HueEffect *plugin, int cpus);
- void init_packages();
- LoadClient* new_client();
- LoadPackage* new_package();
- HueEffect *plugin;
-};
-class HuePackage : public LoadPackage
-{
-public:
- HuePackage();
- int row1, row2;
-};
-class HueUnit : public LoadClient
-{
-public:
- HueUnit(HueEffect *plugin, HueEngine *server);
- void process_package(LoadPackage *package);
- HueEffect *plugin;
-};
-class HueEffect : public PluginVClient
+HueConfig::HueConfig()
{
-public:
- HueEffect(PluginServer *server);
- ~HueEffect();
-
-
- PLUGIN_CLASS_MEMBERS(HueConfig);
- int process_buffer(VFrame *frame,
- int64_t start_position,
- double frame_rate);
- int is_realtime();
- void save_data(KeyFrame *keyframe);
- void read_data(KeyFrame *keyframe);
- void update_gui();
- int handle_opengl();
-
- VFrame *input, *output;
- HueEngine *engine;
-};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ reset();
+}
-HueConfig::HueConfig()
+void HueConfig::reset()
{
hue = saturation = value = 0;
}
}
-
+HueReset::HueReset(HueEffect *plugin, HueWindow *gui, int x, int y)
+ : BC_GenericButton(x, y, _("Reset"))
+{
+ this->plugin = plugin;
+ this->gui = gui;
+}
+HueReset::~HueReset()
+{
+}
+int HueReset::handle_event()
+{
+ plugin->config.reset();
+ gui->update();
+ plugin->send_configure_change();
+ return 1;
+}
HueWindow::HueWindow(HueEffect *plugin)
- : PluginClientWindow(plugin, 345, 100, 345, 100, 0)
+ : PluginClientWindow(plugin, 345, 145, 345, 145, 0)
{
this->plugin = plugin;
}
y += 30;
add_subwindow(new BC_Title(x, y, _("Value:")));
add_subwindow(value = new ValueSlider(plugin, x1, y, 200));
+ y += 40;
+ add_subwindow(reset = new HueReset(plugin, this, x, y));
show_window();
flush();
}
-
+// for Reset button
+void HueWindow::update()
+{
+ hue->update(plugin->config.hue);
+ saturation->update(plugin->config.saturation);
+ value->update(plugin->config.value);
+}
-REGISTER_PLUGIN(HueEffect)
HueEffect::HueEffect(PluginServer *server)
--- /dev/null
+
+/*
+ * CINELERRA
+ * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#ifndef HUESATURATION_H
+#define HUESATURATION_H
+
+#include "bccolors.h"
+#include "bcdisplayinfo.h"
+#include "clip.h"
+#include "bchash.h"
+#include "filexml.h"
+#include "guicast.h"
+#include "language.h"
+#include "loadbalance.h"
+#include "bccolors.h"
+#include "playback3d.h"
+#include "pluginvclient.h"
+#include "vframe.h"
+
+#include <stdint.h>
+#include <string.h>
+
+
+class HueEffect;
+class HueWindow;
+class HueReset;
+
+#define MINHUE -180
+#define MAXHUE 180
+#define MINSATURATION -100
+#define MAXSATURATION 100
+#define MINVALUE -100
+#define MAXVALUE 100
+
+
+
+
+
+
+class HueConfig
+{
+public:
+ HueConfig();
+
+ void copy_from(HueConfig &src);
+ int equivalent(HueConfig &src);
+ void reset();
+ void interpolate(HueConfig &prev,
+ HueConfig &next,
+ long prev_frame,
+ long next_frame,
+ long current_frame);
+ float hue, saturation, value;
+};
+
+class HueSlider : public BC_FSlider
+{
+public:
+ HueSlider(HueEffect *plugin, int x, int y, int w);
+ int handle_event();
+ HueEffect *plugin;
+};
+
+class SaturationSlider : public BC_FSlider
+{
+public:
+ SaturationSlider(HueEffect *plugin, int x, int y, int w);
+ int handle_event();
+ char* get_caption();
+ HueEffect *plugin;
+ char string[BCTEXTLEN];
+};
+
+class ValueSlider : public BC_FSlider
+{
+public:
+ ValueSlider(HueEffect *plugin, int x, int y, int w);
+ int handle_event();
+ char* get_caption();
+ HueEffect *plugin;
+ char string[BCTEXTLEN];
+};
+
+class HueReset : public BC_GenericButton
+{
+public:
+ HueReset(HueEffect *plugin, HueWindow *gui, int x, int y);
+ ~HueReset();
+ int handle_event();
+ HueEffect *plugin;
+ HueWindow *gui;
+};
+
+class HueWindow : public PluginClientWindow
+{
+public:
+ HueWindow(HueEffect *plugin);
+ void create_objects();
+ void update();
+ HueEffect *plugin;
+ HueSlider *hue;
+ SaturationSlider *saturation;
+ ValueSlider *value;
+ HueReset *reset;
+};
+
+
+class HueEngine : public LoadServer
+{
+public:
+ HueEngine(HueEffect *plugin, int cpus);
+ void init_packages();
+ LoadClient* new_client();
+ LoadPackage* new_package();
+ HueEffect *plugin;
+};
+
+class HuePackage : public LoadPackage
+{
+public:
+ HuePackage();
+ int row1, row2;
+};
+
+class HueUnit : public LoadClient
+{
+public:
+ HueUnit(HueEffect *plugin, HueEngine *server);
+ void process_package(LoadPackage *package);
+ HueEffect *plugin;
+};
+
+class HueEffect : public PluginVClient
+{
+public:
+ HueEffect(PluginServer *server);
+ ~HueEffect();
+
+
+ PLUGIN_CLASS_MEMBERS(HueConfig);
+ int process_buffer(VFrame *frame,
+ int64_t start_position,
+ double frame_rate);
+ int is_realtime();
+ void save_data(KeyFrame *keyframe);
+ void read_data(KeyFrame *keyframe);
+ void update_gui();
+ int handle_opengl();
+
+ VFrame *input, *output;
+ HueEngine *engine;
+};
+
+#endif
+
#include "clip.h"
#include "bchash.h"
#include "filexml.h"
+#include "reframert.h"
#include "guicast.h"
#include "language.h"
#include "pluginvclient.h"
#include <string.h>
-class ReframeRT;
-class ReframeRTWindow;
-
-class ReframeRTConfig
-{
-public:
- ReframeRTConfig();
- void boundaries();
- int equivalent(ReframeRTConfig &src);
- void copy_from(ReframeRTConfig &src);
- void interpolate(ReframeRTConfig &prev,
- ReframeRTConfig &next,
- int64_t prev_frame,
- int64_t next_frame,
- int64_t current_frame);
-// was scale
- double num;
- double denom;
- int stretch;
- int interp;
- int optic_flow;
-};
-
-
-class ReframeRTNum : public BC_TumbleTextBox
-{
-public:
- ReframeRTNum(ReframeRT *plugin,
- ReframeRTWindow *gui,
- int x,
- int y);
- int handle_event();
- ReframeRT *plugin;
-};
-
-class ReframeRTDenom : public BC_TumbleTextBox
-{
-public:
- ReframeRTDenom(ReframeRT *plugin,
- ReframeRTWindow *gui,
- int x,
- int y);
- int handle_event();
- ReframeRT *plugin;
-};
-
-class ReframeRTStretch : public BC_Radial
-{
-public:
- ReframeRTStretch(ReframeRT *plugin,
- ReframeRTWindow *gui,
- int x,
- int y);
- int handle_event();
- ReframeRT *plugin;
- ReframeRTWindow *gui;
-};
-
-class ReframeRTDownsample : public BC_Radial
-{
-public:
- ReframeRTDownsample(ReframeRT *plugin,
- ReframeRTWindow *gui,
- int x,
- int y);
- int handle_event();
- ReframeRT *plugin;
- ReframeRTWindow *gui;
-};
-
-class ReframeRTInterpolate : public BC_CheckBox
-{
-public:
- ReframeRTInterpolate(ReframeRT *plugin,
- ReframeRTWindow *gui,
- int x,
- int y);
- int handle_event();
- ReframeRT *plugin;
- ReframeRTWindow *gui;
-};
-
-class ReframeRTWindow : public PluginClientWindow
-{
-public:
- ReframeRTWindow(ReframeRT *plugin);
- ~ReframeRTWindow();
- void create_objects();
- ReframeRT *plugin;
- ReframeRTNum *num;
- ReframeRTDenom *denom;
- ReframeRTStretch *stretch;
- ReframeRTDownsample *downsample;
- ReframeRTInterpolate *interpolate;
-};
-
-
-class ReframeRT : public PluginVClient
-{
-public:
- ReframeRT(PluginServer *server);
- ~ReframeRT();
-
- PLUGIN_CLASS_MEMBERS(ReframeRTConfig)
-
- void save_data(KeyFrame *keyframe);
- void read_data(KeyFrame *keyframe);
- void update_gui();
- int is_realtime();
- int is_synthesis();
- int process_buffer(VFrame *frame,
- int64_t start_position,
- double frame_rate);
-};
-
-
-
-
ReframeRTConfig::ReframeRTConfig()
+{
+ reset();
+}
+
+void ReframeRTConfig::reset()
{
num = 1.0;
denom = 1.0;
ReframeRTWindow::ReframeRTWindow(ReframeRT *plugin)
- : PluginClientWindow(plugin, 230, 190, 230, 190, 0)
+ : PluginClientWindow(plugin, 230, 235, 230, 235, 0)
{
this->plugin = plugin;
}
add_subwindow(downsample = new ReframeRTDownsample(plugin, this, x, y));
y += 30;
add_subwindow(interpolate = new ReframeRTInterpolate(plugin, this, x, y));
- y += 30;
- add_subwindow(stretch = new ReframeRTStretch(plugin, this, x, y));
- y += stretch->get_h() + plugin->get_theme()->widget_border;
- add_subwindow(downsample = new ReframeRTDownsample(plugin, this, x, y));
+ y += 40;
+ add_subwindow(reset = new ReframeRTReset(plugin, this, x, y));
show_window();
}
-
+void ReframeRTWindow::update()
+{
+ num->update((float)plugin->config.num);
+ denom->update((float)plugin->config.denom);
+ stretch->update(plugin->config.stretch);
+ downsample->update(!plugin->config.stretch);
+ interpolate->update(plugin->config.interp);
+}
return 1;
}
+
+ReframeRTReset::ReframeRTReset(ReframeRT *plugin, ReframeRTWindow *gui, int x, int y)
+ : BC_GenericButton(x, y, _("Reset"))
+{
+ this->plugin = plugin;
+ this->gui = gui;
+}
+ReframeRTReset::~ReframeRTReset()
+{
+}
+int ReframeRTReset::handle_event()
+{
+ plugin->config.reset();
+ gui->update();
+ plugin->send_configure_change();
+ return 1;
+}
+
+
+
ReframeRT::ReframeRT(PluginServer *server)
: PluginVClient(server)
{
--- /dev/null
+
+/*
+ * CINELERRA
+ * Copyright (C) 2008-2016 Adam Williams <broadcast at earthling dot net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#ifndef REFRAMERT_H
+#define REFRAMERT_H
+
+
+#include "bcdisplayinfo.h"
+#include "clip.h"
+#include "bchash.h"
+#include "filexml.h"
+#include "guicast.h"
+#include "language.h"
+#include "pluginvclient.h"
+#include "theme.h"
+#include "transportque.h"
+
+
+class ReframeRT;
+class ReframeRTWindow;
+class ReframeRTReset;
+
+class ReframeRTConfig
+{
+public:
+ ReframeRTConfig();
+ void boundaries();
+ int equivalent(ReframeRTConfig &src);
+ void reset();
+ void copy_from(ReframeRTConfig &src);
+ void interpolate(ReframeRTConfig &prev,
+ ReframeRTConfig &next,
+ int64_t prev_frame,
+ int64_t next_frame,
+ int64_t current_frame);
+// was scale
+ double num;
+ double denom;
+ int stretch;
+ int interp;
+ int optic_flow;
+};
+
+
+class ReframeRTNum : public BC_TumbleTextBox
+{
+public:
+ ReframeRTNum(ReframeRT *plugin,
+ ReframeRTWindow *gui,
+ int x,
+ int y);
+ int handle_event();
+ ReframeRT *plugin;
+};
+
+class ReframeRTDenom : public BC_TumbleTextBox
+{
+public:
+ ReframeRTDenom(ReframeRT *plugin,
+ ReframeRTWindow *gui,
+ int x,
+ int y);
+ int handle_event();
+ ReframeRT *plugin;
+};
+
+class ReframeRTStretch : public BC_Radial
+{
+public:
+ ReframeRTStretch(ReframeRT *plugin,
+ ReframeRTWindow *gui,
+ int x,
+ int y);
+ int handle_event();
+ ReframeRT *plugin;
+ ReframeRTWindow *gui;
+};
+
+class ReframeRTDownsample : public BC_Radial
+{
+public:
+ ReframeRTDownsample(ReframeRT *plugin,
+ ReframeRTWindow *gui,
+ int x,
+ int y);
+ int handle_event();
+ ReframeRT *plugin;
+ ReframeRTWindow *gui;
+};
+
+class ReframeRTInterpolate : public BC_CheckBox
+{
+public:
+ ReframeRTInterpolate(ReframeRT *plugin,
+ ReframeRTWindow *gui,
+ int x,
+ int y);
+ int handle_event();
+ ReframeRT *plugin;
+ ReframeRTWindow *gui;
+};
+
+class ReframeRTReset : public BC_GenericButton
+{
+public:
+ ReframeRTReset(ReframeRT *plugin, ReframeRTWindow *gui, int x, int y);
+ ~ReframeRTReset();
+ int handle_event();
+ ReframeRT *plugin;
+ ReframeRTWindow *gui;
+};
+
+class ReframeRTWindow : public PluginClientWindow
+{
+public:
+ ReframeRTWindow(ReframeRT *plugin);
+ ~ReframeRTWindow();
+ void create_objects();
+ void update();
+ ReframeRT *plugin;
+ ReframeRTNum *num;
+ ReframeRTDenom *denom;
+ ReframeRTStretch *stretch;
+ ReframeRTDownsample *downsample;
+ ReframeRTInterpolate *interpolate;
+ ReframeRTReset *reset;
+};
+
+
+class ReframeRT : public PluginVClient
+{
+public:
+ ReframeRT(PluginServer *server);
+ ~ReframeRT();
+
+ PLUGIN_CLASS_MEMBERS(ReframeRTConfig)
+
+ void save_data(KeyFrame *keyframe);
+ void read_data(KeyFrame *keyframe);
+ void update_gui();
+ int is_realtime();
+ int is_synthesis();
+ int process_buffer(VFrame *frame,
+ int64_t start_position,
+ double frame_rate);
+};
+
+#endif
\ No newline at end of file
SharpenConfig::SharpenConfig()
+{
+ reset();
+}
+
+void SharpenConfig::reset()
{
horizontal = 0;
interlace = 0;
void copy_from(SharpenConfig &that);
int equivalent(SharpenConfig &that);
+ void reset();
void interpolate(SharpenConfig &prev,
SharpenConfig &next,
long prev_frame,
SharpenWindow::SharpenWindow(SharpenMain *client)
- : PluginClientWindow(client, 230, 150, 230, 150, 0)
+ : PluginClientWindow(client, 230, 195, 230, 195, 0) //195 was 150
{
this->client = client;
}
add_tool(sharpen_horizontal = new SharpenHorizontal(client, x, y));
y += 30;
add_tool(sharpen_luminance = new SharpenLuminance(client, x, y));
+ y += 40;
+ add_tool(reset = new SharpenReset(client, this, x, y));
show_window();
flush();
}
-
-
-
-
+void SharpenWindow::update()
+{
+ sharpen_slider->update(client->config.sharpness);
+ sharpen_interlace->update(client->config.interlace);
+ sharpen_horizontal->update(client->config.horizontal);
+ sharpen_luminance->update(client->config.luminance);
+}
SharpenSlider::SharpenSlider(SharpenMain *client, float *output, int x, int y)
: BC_ISlider(x,
}
-
-
SharpenInterlace::SharpenInterlace(SharpenMain *client, int x, int y)
: BC_CheckBox(x, y, client->config.interlace, _("Interlace"))
{
}
-
-
SharpenHorizontal::SharpenHorizontal(SharpenMain *client, int x, int y)
: BC_CheckBox(x, y, client->config.horizontal, _("Horizontal only"))
{
}
-
SharpenLuminance::SharpenLuminance(SharpenMain *client, int x, int y)
: BC_CheckBox(x, y, client->config.luminance, _("Luminance only"))
{
return 1;
}
+
+SharpenReset::SharpenReset(SharpenMain *client, SharpenWindow *gui, int x, int y)
+ : BC_GenericButton(x, y, _("Reset"))
+{
+ this->client = client;
+ this->gui = gui;
+}
+SharpenReset::~SharpenReset()
+{
+}
+int SharpenReset::handle_event()
+{
+ client->config.reset();
+ gui->update();
+ client->send_configure_change();
+ return 1;
+}
+
class SharpenSlider;
class SharpenHorizontal;
class SharpenLuminance;
+class SharpenReset;
class SharpenWindow : public PluginClientWindow
{
~SharpenWindow();
void create_objects();
+ void update();
SharpenMain *client;
SharpenSlider *sharpen_slider;
SharpenInterlace *sharpen_interlace;
SharpenHorizontal *sharpen_horizontal;
SharpenLuminance *sharpen_luminance;
+ SharpenReset *reset;
};
class SharpenSlider : public BC_ISlider
SharpenMain *client;
};
+class SharpenReset : public BC_GenericButton
+{
+public:
+ SharpenReset(SharpenMain *client, SharpenWindow *gui, int x, int y);
+ ~SharpenReset();
+ int handle_event();
+ SharpenMain *client;
+ SharpenWindow *gui;
+};
#endif