r864: Merge 2.1:
[cinelerra_cv.git] / plugins / svg / svg.h
blobc50a273a89e9327ba188a3d16b6bfac1966dd98f
1 #ifndef SVG_H
2 #define SVG_H
4 // the simplest plugin possible
6 class SvgMain;
7 class SvgThread;
9 #include "bchash.h"
10 #include "mutex.h"
11 #include "svgwin.h"
12 #include "overlayframe.h"
13 #include "pluginvclient.h"
14 #include "thread.h"
16 class SvgConfig
18 public:
19 SvgConfig();
20 int equivalent(SvgConfig &that);
21 void copy_from(SvgConfig &that);
22 void interpolate(SvgConfig &prev,
23 SvgConfig &next,
24 long prev_frame,
25 long next_frame,
26 long current_frame);
28 float in_x, in_y, in_w, in_h, out_x, out_y, out_w, out_h;
29 char svg_file[BCTEXTLEN];
30 int64_t last_load;
34 class SvgMain : public PluginVClient
36 public:
37 SvgMain(PluginServer *server);
38 ~SvgMain();
40 // required for all realtime plugins
41 int process_realtime(VFrame *input_ptr, VFrame *output_ptr);
42 int is_realtime();
43 int is_synthesis();
44 char* plugin_title();
45 int show_gui();
46 void raise_window();
47 void update_gui();
48 int set_string();
49 void save_data(KeyFrame *keyframe);
50 void read_data(KeyFrame *keyframe);
51 VFrame* new_picon();
52 int load_defaults();
53 int save_defaults();
54 int load_configuration();
56 // a thread for the GUI
57 SvgThread *thread;
59 OverlayFrame *overlayer; // To translate images
60 VFrame *temp_frame; // Used if buffers are the same
61 BC_Hash *defaults;
62 SvgConfig config;
63 int need_reconfigure;
64 int force_raw_render; //force rendering of PNG on first start
68 #endif