r123: Merged HEAD and TEST. New stuff shall be committed to HEAD from now on.
[cinelerra_cv/mob.git] / plugins / huesaturation / huesaturation.h
blob6196109a44e775e98df6129954843d644ed3ae73
1 #ifndef HUESATURATION_H
2 #define HUESATURATION_H
4 #define MAXHUE 180
5 #define MAXVALUE 100
7 class HueMain;
8 class HueEngine;
10 #include "bcbase.h"
11 #include "../colors/colors.h"
12 #include "huewindow.h"
13 #include "pluginvclient.h"
16 class HueMain : public PluginVClient
18 public:
19 HueMain(int argc, char *argv[]);
20 ~HueMain();
22 // required for all realtime plugins
23 int process_realtime(long size, VFrame **input_ptr, VFrame **output_ptr);
24 int plugin_is_realtime();
25 int plugin_is_multi_channel();
26 char* plugin_title();
27 int start_realtime();
28 int stop_realtime();
29 int start_gui();
30 int stop_gui();
31 int show_gui();
32 int hide_gui();
33 int set_string();
34 int load_defaults();
35 int save_defaults();
36 int save_data(char *text);
37 int read_data(char *text);
38 void update_gui();
40 // parameters needed
41 int reconfigure(); // Rebuild tables
42 int hue;
43 int saturation;
44 int value;
45 int automated_function;
46 int reconfigure_flag;
48 // a thread for the GUI
49 HueThread *thread;
51 private:
52 Defaults *defaults;
53 HueEngine **engine;
56 class HueEngine : public Thread
58 public:
59 HueEngine(HueMain *plugin, int start_y, int end_y);
60 ~HueEngine();
62 int start_process_frame(VFrame **output, VFrame **input, int size);
63 int wait_process_frame();
64 void run();
66 HueMain *plugin;
67 int start_y;
68 int end_y;
69 int size;
70 VFrame **output, **input;
71 int last_frame;
72 Mutex input_lock, output_lock;
73 HSV hsv;
77 #endif