fix awdw solo vicon crash, fix nested clip for binfolders, open edit edl
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / scopewindow.h
index 44b2f8fd80503b803480384d3cc7ceb014a15638..385ecaf239ce21a77827b112e7fa126079cbf95b 100644 (file)
@@ -26,6 +26,7 @@
 #include "guicast.h"
 #include "loadbalance.h"
 #include "mwindow.h"
+#include "overlayframe.inc"
 #include "pluginclient.h"
 #include "recordmonitor.inc"
 #include "scopewindow.inc"
@@ -35,6 +36,7 @@ enum {
        SCOPE_HISTOGRAM, SCOPE_HISTOGRAM_RGB,
        SCOPE_WAVEFORM, SCOPE_WAVEFORM_RGB, SCOPE_WAVEFORM_PLY,
        SCOPE_VECTORSCOPE, SCOPE_VECTORWHEEL,
+       SCOPE_SMOOTH, SCOPE_REFRESH, SCOPE_RELEASE,
 };
 
 // Number of divisions in histogram.
@@ -49,7 +51,7 @@ enum {
 #define HISTOGRAM_MAX 110
 #define FLOAT_MAX 1.1
 
-#define MIN_SCOPE_W xS(640)
+#define MIN_SCOPE_W xS(320)
 #define MIN_SCOPE_H yS(320)
 
 
@@ -166,31 +168,44 @@ public:
        ScopeScopesOn *vect_wheel;
 };
 
+class ScopeSettingOn : public BC_MenuItem
+{
+public:
+       ScopeSettingOn(ScopeSettings *settings, const char *text, int id);
+       int handle_event();
 
-class ScopeGradPaths : public ArrayList<const char *>
+       ScopeSettings *settings;
+       int id;
+};
+
+class ScopeGratPaths : public ArrayList<const char *>
 {
 public:
-       ScopeGradPaths() { set_array_delete(); }
-       ~ScopeGradPaths() { remove_all_objects(); }
+       ScopeGratPaths() { set_array_delete(); }
+       ~ScopeGratPaths() { remove_all_objects(); }
 };
 
-class ScopeGradItem : public BC_MenuItem
+class ScopeGratItem : public BC_MenuItem
 {
 public:
-       ScopeGradItem(ScopeVectGrads *vect_grads, const char *text, int idx);
+       ScopeGratItem(ScopeSettings *settings, const char *text, int idx);
        int handle_event();
 
-       ScopeVectGrads *vect_grads;
+       ScopeSettings *settings;
        int idx;
 };
 
-class ScopeVectGrads : public BC_PopupMenu
+class ScopeSettings : public BC_PopupMenu
 {
 public:
-       ScopeVectGrads(ScopeGUI *gui, int x, int y);
+       ScopeSettings(ScopeGUI *gui, int x, int y);
        void create_objects();
+       void update_toggles();
 
        ScopeGUI *gui;
+       ScopeSettingOn *smooth_on;
+       ScopeSettingOn *refresh_on;
+       ScopeSettingOn *release_on;
 };
 
 
@@ -248,15 +263,6 @@ public:
 };
 
 
-class ScopeSmooth : public BC_CheckBox
-{
-public:
-       ScopeSmooth(ScopeGUI *gui, int x, int y);
-       int handle_event();
-       ScopeGUI *gui;
-};
-
-
 class ScopeGUI : public PluginClientWindow
 {
 public:
@@ -279,9 +285,9 @@ public:
        void calculate_sizes(int w, int h);
        void allocate_vframes();
        void draw_overlays(int overlays, int borders, int flush);
-       void update_gradical(int idx);
+       void update_graticule(int idx);
        void draw_colorwheel(VFrame *dst, int bg_color);
-       void draw_gradical();
+       void draw_scope();
        void process(VFrame *output_frame);
        void draw(int flash, int flush);
        void clear_points(int flash);
@@ -300,11 +306,9 @@ public:
        ScopeMenu *scope_menu;
        ScopeWaveSlider *wave_slider;
        ScopeVectSlider *vect_slider;
-       ScopeVectGrads *vect_grads;
-       ScopeSmooth *smooth;
-       BC_Title *value_text;
-       VFrame *grad_image;
-       BC_Pixmap *grad_pixmap;
+       ScopeSettings *settings;
+       VFrame *grat_image;
+       OverlayFrame *overlay;
 
        int x, y, w, h;
        int vector_x, vector_y, vector_w, vector_h;
@@ -313,8 +317,8 @@ public:
        int hist_x, hist_y, hist_w, hist_h;
        int text_color, dark_color;
 
-       ScopeGradPaths grad_paths;
-       int grad_idx, vector_gradical;
+       ScopeGratPaths grat_paths;
+       int grat_idx, use_graticule;
 
        int cpus;
        int use_hist, use_wave, use_vector;
@@ -322,6 +326,7 @@ public:
 
        int bins[HIST_SECTIONS][TOTAL_BINS];
        int frame_w, use_smooth;
+       int use_refresh, use_release;
        int use_wave_gain, use_vect_gain;
 };