00001 #ifndef HOLO_H 00002 #define HOLO_H 00003 00004 class HoloMain; 00005 class HoloEngine; 00006 00007 #include "bchash.h" 00008 #include "effecttv.h" 00009 #include "holowindow.h" 00010 #include "loadbalance.h" 00011 #include "mutex.h" 00012 #include "plugincolors.inc" 00013 #include "pluginvclient.h" 00014 00015 #include <stdint.h> 00016 00017 00018 class HoloConfig 00019 { 00020 public: 00021 HoloConfig(); 00022 00023 00024 int threshold; 00025 double recycle; // Number of seconds between recycles 00026 }; 00027 00028 class HoloPackage : public LoadPackage 00029 { 00030 public: 00031 HoloPackage(); 00032 00033 int row1, row2; 00034 }; 00035 00036 class HoloServer : public LoadServer 00037 { 00038 public: 00039 HoloServer(HoloMain *plugin, int total_clients, int total_packages); 00040 00041 LoadClient* new_client(); 00042 LoadPackage* new_package(); 00043 void init_packages(); 00044 HoloMain *plugin; 00045 }; 00046 00047 class HoloClient : public LoadClient 00048 { 00049 public: 00050 HoloClient(HoloServer *server); 00051 00052 void process_package(LoadPackage *package); 00053 00054 HoloMain *plugin; 00055 int phase; 00056 }; 00057 00058 00059 class HoloMain : public PluginVClient 00060 { 00061 public: 00062 HoloMain(PluginServer *server); 00063 ~HoloMain(); 00064 00065 // required for all realtime plugins 00066 int process_realtime(VFrame *input_ptr, VFrame *output_ptr); 00067 int is_realtime(); 00068 char* plugin_title(); 00069 int show_gui(); 00070 void raise_window(); 00071 int set_string(); 00072 void load_configuration(); 00073 void save_data(KeyFrame *keyframe); 00074 void read_data(KeyFrame *keyframe); 00075 00076 int load_defaults(); 00077 int save_defaults(); 00078 VFrame* new_picon(); 00079 void reconfigure(); 00080 00081 00082 void add_frames(VFrame *output, VFrame *input); 00083 void set_background(); 00084 00085 // a thread for the GUI 00086 HoloThread *thread; 00087 HoloServer *holo_server; 00088 HoloConfig config; 00089 00090 BC_Hash *defaults; 00091 VFrame *input_ptr, *output_ptr; 00092 int do_reconfigure; 00093 EffectTV *effecttv; 00094 00095 unsigned int noisepattern[256]; 00096 VFrame *bgimage, *tmp; 00097 YUV *yuv; 00098 int total; 00099 }; 00100 00101 00102 00103 00104 00105 00106 00107 00108 00109 00110 #endif
1.5.5