r864: Merge 2.1:
[cinelerra_cv.git] / plugins / holo / holo.h
blob691431dae38f646fada29333dda2a2adae658d1b
1 #ifndef HOLO_H
2 #define HOLO_H
4 class HoloMain;
5 class HoloEngine;
7 #include "bchash.h"
8 #include "effecttv.h"
9 #include "holowindow.h"
10 #include "loadbalance.h"
11 #include "mutex.h"
12 #include "plugincolors.inc"
13 #include "pluginvclient.h"
15 #include <stdint.h>
18 class HoloConfig
20 public:
21 HoloConfig();
24 int threshold;
25 double recycle; // Number of seconds between recycles
28 class HoloPackage : public LoadPackage
30 public:
31 HoloPackage();
33 int row1, row2;
36 class HoloServer : public LoadServer
38 public:
39 HoloServer(HoloMain *plugin, int total_clients, int total_packages);
41 LoadClient* new_client();
42 LoadPackage* new_package();
43 void init_packages();
44 HoloMain *plugin;
47 class HoloClient : public LoadClient
49 public:
50 HoloClient(HoloServer *server);
52 void process_package(LoadPackage *package);
54 HoloMain *plugin;
55 int phase;
59 class HoloMain : public PluginVClient
61 public:
62 HoloMain(PluginServer *server);
63 ~HoloMain();
65 // required for all realtime plugins
66 int process_realtime(VFrame *input_ptr, VFrame *output_ptr);
67 int is_realtime();
68 char* plugin_title();
69 int show_gui();
70 void raise_window();
71 int set_string();
72 void load_configuration();
73 void save_data(KeyFrame *keyframe);
74 void read_data(KeyFrame *keyframe);
76 int load_defaults();
77 int save_defaults();
78 VFrame* new_picon();
79 void reconfigure();
82 void add_frames(VFrame *output, VFrame *input);
83 void set_background();
85 // a thread for the GUI
86 HoloThread *thread;
87 HoloServer *holo_server;
88 HoloConfig config;
90 BC_Hash *defaults;
91 VFrame *input_ptr, *output_ptr;
92 int do_reconfigure;
93 EffectTV *effecttv;
95 unsigned int noisepattern[256];
96 VFrame *bgimage, *tmp;
97 YUV *yuv;
98 int total;
110 #endif