raise vwdw stacking tweak, drag handle for transitions, cleanup histogram plugin...
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / histogram / histogram.h
index 6a5d527bc100d8ecb5728a36c3da4e532d156501..0051243855f9f8413fcf569d10edde6fb184b26e 100644 (file)
@@ -60,13 +60,14 @@ public:
 // Value is only calculated for preview.
        void calculate_histogram(VFrame *data, int do_value);
 // Calculate the linear, smoothed, lookup curves
-       void tabulate_curve(int subscript, int use_value);
-
-
+       void tabulate_curve(int **table, int idx, int len, int use_value);
+       void tabulate_curve(int idx, int use_value);
 
 
        VFrame *input, *output;
        HistogramEngine *engine;
+       HistStripeEngine *stripe_engine;
+
        int *lookup[HISTOGRAM_MODES];
 // No value applied to this
        int *preview_lookup[HISTOGRAM_MODES];
@@ -80,8 +81,42 @@ public:
        int point_y_offset;
        int w, h;
        int parade;
+       VFrame *fframe;
+       int64_t last_position;
+       int last_frames;
+};
+
+enum { ADD_TEMP, ADD_FFRM, ADD_FFRMS, ADD_TEMPS, SUB_TEMPS };
+
+class HistStripePackage : public LoadPackage
+{
+public:
+       HistStripePackage();
+       int y0, y1;
+};
+
+class HistStripeUnit : public LoadClient
+{
+public:
+       HistStripeUnit(HistStripeEngine *server, HistogramMain *plugin);
+       void process_package(LoadPackage *package);
+       HistStripeEngine *server;
+       HistogramMain *plugin;
 };
 
+class HistStripeEngine : public LoadServer
+{
+public:
+       HistStripeEngine(HistogramMain *plugin, int total_clients, int total_packages);
+       void process_packages(int operation);
+       void init_packages();
+       LoadClient *new_client();
+       LoadPackage *new_package();
+       HistogramMain *plugin;
+       int operation;
+};
+
+
 class HistogramPackage : public LoadPackage
 {
 public: