00001 #ifndef BLURZOOM_H 00002 #define BLURZOOM_H 00003 00004 class BlurZoomMain; 00005 class BlurZoomEngine; 00006 00007 #include "bchash.h" 00008 #include "loadbalance.h" 00009 #include "mutex.h" 00010 #include "pluginvclient.h" 00011 #include "blurzoomwindow.h" 00012 #include <sys/types.h> 00013 00014 #define SCRATCH_MAX 20 00015 00016 00017 typedef struct _scratch 00018 { 00019 int life; 00020 int x; 00021 int dx; 00022 int init; 00023 } scratch_t; 00024 00025 class BlurZoomConfig 00026 { 00027 public: 00028 BlurZoomConfig(); 00029 00030 }; 00031 00032 class BlurZoomPackage : public LoadPackage 00033 { 00034 public: 00035 BlurZoomPackage(); 00036 00037 int row1, row2; 00038 }; 00039 00040 class BlurZoomServer : public LoadServer 00041 { 00042 public: 00043 BlurZoomServer(BlurZoomMain *plugin, int total_clients, int total_packages); 00044 00045 LoadClient* new_client(); 00046 LoadPackage* new_package(); 00047 void init_packages(); 00048 BlurZoomMain *plugin; 00049 }; 00050 00051 class BlurZoomClient : public LoadClient 00052 { 00053 public: 00054 BlurZoomClient(BlurZoomServer *server); 00055 00056 void process_package(LoadPackage *package); 00057 00058 BlurZoomMain *plugin; 00059 }; 00060 00061 00062 class BlurZoomMain : public PluginVClient 00063 { 00064 public: 00065 BlurZoomMain(PluginServer *server); 00066 ~BlurZoomMain(); 00067 00068 // required for all realtime plugins 00069 int process_realtime(VFrame *input_ptr, VFrame *output_ptr); 00070 int is_realtime(); 00071 char* plugin_title(); 00072 int start_realtime(); 00073 int stop_realtime(); 00074 int show_gui(); 00075 void raise_window(); 00076 int set_string(); 00077 void load_configuration(); 00078 void save_data(KeyFrame *keyframe); 00079 void read_data(KeyFrame *keyframe); 00080 00081 int load_defaults(); 00082 int save_defaults(); 00083 VFrame* new_picon(); 00084 00085 // a thread for the GUI 00086 BlurZoomThread *thread; 00087 BlurZoomServer *blurzoom_server; 00088 BlurZoomClient *blurzoom_client; 00089 BlurZoomConfig config; 00090 00091 unsigned char *blurzoombuf; 00092 int *blurzoomx; 00093 int *blurzoomy; 00094 int buf_width_blocks; 00095 int buf_width; 00096 int buf_height; 00097 int buf_area; 00098 int buf_margin_right; 00099 int buf_margin_left; 00100 00101 #define COLORS 32 00102 int palette_r[COLORS]; 00103 int palette_g[COLORS]; 00104 int palette_b[COLORS]; 00105 00106 int y_threshold; 00107 00108 BC_Hash *defaults; 00109 BlurZoomEngine **engine; 00110 VFrame *input_ptr, *output_ptr; 00111 }; 00112 00113 00114 00115 00116 00117 00118 00119 00120 00121 00122 #endif
1.5.5