r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / plugins / brightness / brightness.h
blob5ec9bccc85c84b9ab18738f59cfc7146cb4a8200
1 #ifndef BRIGHTNESS_H
2 #define BRIGHTNESS_H
4 class BrightnessEngine;
5 class BrightnessMain;
7 #include "brightnesswindow.h"
8 #include "loadbalance.h"
9 #include "plugincolors.h"
10 #include "pluginvclient.h"
12 class BrightnessConfig
14 public:
15 BrightnessConfig();
17 int equivalent(BrightnessConfig &that);
18 void copy_from(BrightnessConfig &that);
19 void interpolate(BrightnessConfig &prev,
20 BrightnessConfig &next,
21 int64_t prev_frame,
22 int64_t next_frame,
23 int64_t current_frame);
25 float brightness;
26 float contrast;
27 int luma;
30 class BrightnessMain : public PluginVClient
32 public:
33 BrightnessMain(PluginServer *server);
34 ~BrightnessMain();
36 // required for all realtime plugins
37 int process_realtime(VFrame *input_ptr, VFrame *output_ptr);
38 int is_realtime();
39 char* plugin_title();
40 int show_gui();
41 void raise_window();
42 void update_gui();
43 int set_string();
44 int load_configuration();
45 void save_data(KeyFrame *keyframe);
46 void read_data(KeyFrame *keyframe);
47 int load_defaults();
48 int save_defaults();
49 VFrame* new_picon();
58 BrightnessConfig config;
59 // a thread for the GUI
60 BrightnessThread *thread;
61 BrightnessEngine *engine;
62 Defaults *defaults;
63 int redo_buffers;
64 static YUV yuv;
66 VFrame *input, *output;
74 class BrightnessPackage : public LoadPackage
76 public:
77 BrightnessPackage();
79 int row1, row2;
82 class BrightnessUnit : public LoadClient
84 public:
85 BrightnessUnit(BrightnessEngine *server, BrightnessMain *plugin);
86 ~BrightnessUnit();
88 void process_package(LoadPackage *package);
90 BrightnessMain *plugin;
93 class BrightnessEngine : public LoadServer
95 public:
96 BrightnessEngine(BrightnessMain *plugin, int cpus);
97 ~BrightnessEngine();
99 void init_packages();
100 LoadClient* new_client();
101 LoadPackage* new_package();
103 BrightnessMain *plugin;
114 #endif