00001 #ifndef SVG_H
00002 #define SVG_H
00003
00004
00005
00006 class SvgMain;
00007 class SvgThread;
00008
00009 #include "bchash.h"
00010 #include "mutex.h"
00011 #include "svgwin.h"
00012 #include "overlayframe.h"
00013 #include "pluginvclient.h"
00014 #include "thread.h"
00015
00016 class SvgConfig
00017 {
00018 public:
00019 SvgConfig();
00020 int equivalent(SvgConfig &that);
00021 void copy_from(SvgConfig &that);
00022 void interpolate(SvgConfig &prev,
00023 SvgConfig &next,
00024 long prev_frame,
00025 long next_frame,
00026 long current_frame);
00027
00028 float in_x, in_y, in_w, in_h, out_x, out_y, out_w, out_h;
00029 char svg_file[BCTEXTLEN];
00030 int64_t last_load;
00031 };
00032
00033
00034 class SvgMain : public PluginVClient
00035 {
00036 public:
00037 SvgMain(PluginServer *server);
00038 ~SvgMain();
00039
00040
00041 int process_realtime(VFrame *input_ptr, VFrame *output_ptr);
00042 int is_realtime();
00043 int is_synthesis();
00044 char* plugin_title();
00045 int show_gui();
00046 void raise_window();
00047 void update_gui();
00048 int set_string();
00049 void save_data(KeyFrame *keyframe);
00050 void read_data(KeyFrame *keyframe);
00051 VFrame* new_picon();
00052 int load_defaults();
00053 int save_defaults();
00054 int load_configuration();
00055
00056
00057 SvgThread *thread;
00058
00059 OverlayFrame *overlayer;
00060 VFrame *temp_frame;
00061 BC_Hash *defaults;
00062 SvgConfig config;
00063 int need_reconfigure;
00064 int force_raw_render;
00065 };
00066
00067
00068 #endif