00001 #ifndef IRISSQUARE_H
00002 #define IRISSQUARE_H
00003
00004 class IrisSquareMain;
00005 class IrisSquareWindow;
00006
00007
00008 #include "overlayframe.inc"
00009 #include "pluginvclient.h"
00010 #include "vframe.inc"
00011
00012
00013
00014
00015 class IrisSquareIn : public BC_Radial
00016 {
00017 public:
00018 IrisSquareIn(IrisSquareMain *plugin,
00019 IrisSquareWindow *window,
00020 int x,
00021 int y);
00022 int handle_event();
00023 IrisSquareMain *plugin;
00024 IrisSquareWindow *window;
00025 };
00026
00027 class IrisSquareOut : public BC_Radial
00028 {
00029 public:
00030 IrisSquareOut(IrisSquareMain *plugin,
00031 IrisSquareWindow *window,
00032 int x,
00033 int y);
00034 int handle_event();
00035 IrisSquareMain *plugin;
00036 IrisSquareWindow *window;
00037 };
00038
00039
00040
00041
00042 class IrisSquareWindow : public BC_Window
00043 {
00044 public:
00045 IrisSquareWindow(IrisSquareMain *plugin, int x, int y);
00046 void create_objects();
00047 int close_event();
00048 IrisSquareMain *plugin;
00049 IrisSquareIn *in;
00050 IrisSquareOut *out;
00051 };
00052
00053
00054 PLUGIN_THREAD_HEADER(IrisSquareMain, IrisSquareThread, IrisSquareWindow)
00055
00056
00057 class IrisSquareMain : public PluginVClient
00058 {
00059 public:
00060 IrisSquareMain(PluginServer *server);
00061 ~IrisSquareMain();
00062
00063
00064 void load_configuration();
00065 int process_realtime(VFrame *incoming, VFrame *outgoing);
00066 int load_defaults();
00067 int save_defaults();
00068 void save_data(KeyFrame *keyframe);
00069 void read_data(KeyFrame *keyframe);
00070 int show_gui();
00071 void raise_window();
00072 int uses_gui();
00073 int is_transition();
00074 int is_video();
00075 char* plugin_title();
00076 int set_string();
00077 VFrame* new_picon();
00078
00079 int direction;
00080 IrisSquareThread *thread;
00081 BC_Hash *defaults;
00082 };
00083
00084 #endif