add new boxblur plugin, mods to videoscope, fix segv for menu btns kfrm-tweak/kfrm...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / scopewindow.h
index 74201e460f4520a88ee50be2c531c6c3550fe304..86f9efa91155147d2c94fc6988057ace0dd9d21a 100644 (file)
@@ -22,6 +22,7 @@
 #define SCOPEWINDOW_H
 
 
+#include "boxblur.inc"
 #include "guicast.h"
 #include "loadbalance.h"
 #include "mwindow.h"
@@ -161,22 +162,61 @@ public:
        ScopeScopesOn *vect_on;
 };
 
-class ScopeWaveSlider : public BC_ISlider
+
+class ScopeGainReset : public BC_Button
 {
 public:
-       ScopeWaveSlider(ScopeGUI *gui, int x, int y, int w);
+       ScopeGainReset(ScopeGain *gain, int x, int y);
+       static int calculate_w(BC_Theme *theme);
        int handle_event();
-       ScopeGUI *gui;
+
+       ScopeGain *gain;
 };
 
-class ScopeVectSlider : public BC_ISlider
+class ScopeGainSlider : public BC_ISlider
 {
 public:
-       ScopeVectSlider(ScopeGUI *gui, int x, int y, int w);
+       ScopeGainSlider(ScopeGain *gain, int x, int y, int w);
+
        int handle_event();
+       ScopeGain *gain;
+};
+
+class ScopeGain
+{
+public:
+       ScopeGain(ScopeGUI *gui, int x, int y, int w, int *value);
+       ~ScopeGain();
+       static int calculate_h();
+       void create_objects();
+       void reposition_window(int x, int y);
+       int handle_event();
+
        ScopeGUI *gui;
+       int x, y, w, *value;
+       int reset_w;
+       ScopeGainReset *reset;
+       ScopeGainSlider *slider;
+
+       int get_x() { return x; }
+       int get_y() { return y; }
+       int get_w() { return w; }
+       int get_h() { return calculate_h(); }
+};
+
+class ScopeWaveSlider : public ScopeGain
+{
+public:
+       ScopeWaveSlider(ScopeGUI *gui, int x, int y, int w);
 };
 
+class ScopeVectSlider : public ScopeGain
+{
+public:
+       ScopeVectSlider(ScopeGUI *gui, int x, int y, int w);
+};
+
+
 class ScopeSmooth : public BC_CheckBox
 {
 public:
@@ -242,45 +282,4 @@ public:
        int use_wave_gain, use_vect_gain;
 };
 
-
-class BoxBlurPackage : public LoadPackage
-{
-public:
-       BoxBlurPackage();
-       int u1, u2;
-};
-
-class BoxBlurUnit : public LoadClient
-{
-public:
-       BoxBlurUnit(BoxBlur*server);
-       template<class dst_t, class src_t>
-               void blurt_package(LoadPackage *package);
-       void process_package(LoadPackage *package);
-};
-
-class BoxBlur : public LoadServer
-{
-public:
-       BoxBlur(int cpus);
-       virtual ~BoxBlur();
-       void init_packages();
-       LoadClient* new_client();
-       LoadPackage* new_package();
-       void process(VFrame *dst, VFrame *src, int uv,
-               int radius, int power, int comp);
-       void hblur(VFrame *dst, VFrame *src,
-               int radius, int power, int comp=-1);
-       void vblur(VFrame *dst, VFrame *src,
-               int radius, int power, int comp=-1);
-       void blur(VFrame *dst, VFrame *src,
-               int radius, int power, int comp=-1);
-       const uint8_t *src_data;
-       uint8_t *dst_data;
-       int src_ustep, dst_ustep;
-       int src_vstep, dst_vstep;
-       int radius, power;
-       int ulen, vlen, c0, c1;
-};
-
 #endif