r370: Heroine Virutal's official release 1.2.1
[cinelerra_cv/mob.git] / hvirtual / plugins / delayvideo / delayvideo.h
blobe99fe1973d18c4e89c623079e0bc801a06483907
1 #ifndef DELAYVIDEO_H
2 #define DELAYVIDEO_H
6 #include "defaults.inc"
7 #include "guicast.h"
8 #include "mutex.h"
9 #include "pluginvclient.h"
10 #include "vframe.inc"
14 class DelayVideo;
20 class DelayVideoConfig
22 public:
23 DelayVideoConfig();
25 int equivalent(DelayVideoConfig &that);
26 void copy_from(DelayVideoConfig &that);
27 void interpolate(DelayVideoConfig &prev,
28 DelayVideoConfig &next,
29 int64_t prev_frame,
30 int64_t next_frame,
31 int64_t current_frame);
33 // kjb - match defined update() type of float instead of double.
34 float length;
38 class DelayVideoSlider : public BC_TextBox
40 public:
41 DelayVideoSlider(DelayVideo *plugin, int x, int y);
43 int handle_event();
45 DelayVideo *plugin;
50 class DelayVideoWindow : public BC_Window
52 public:
53 DelayVideoWindow(DelayVideo *plugin, int x, int y);
54 ~DelayVideoWindow();
56 void create_objects();
57 int close_event();
58 void update_gui();
60 DelayVideo *plugin;
61 DelayVideoSlider *slider;
65 PLUGIN_THREAD_HEADER(DelayVideo, DelayVideoThread, DelayVideoWindow)
70 class DelayVideo : public PluginVClient
72 public:
73 DelayVideo(PluginServer *server);
74 ~DelayVideo();
76 int process_realtime(VFrame *input_ptr, VFrame *output_ptr);
77 int is_realtime();
78 char* plugin_title();
79 int show_gui();
80 void raise_window();
81 int set_string();
82 void save_data(KeyFrame *keyframe);
83 void read_data(KeyFrame *keyframe);
84 VFrame* new_picon();
85 void reset();
86 void reconfigure();
90 int load_configuration();
91 int load_defaults();
92 int save_defaults();
93 void update_gui();
96 int need_reconfigure;
97 int allocation;
98 DelayVideoConfig config;
99 DelayVideoThread *thread;
100 VFrame **buffer;
101 Defaults *defaults;
102 VFrame *input, *output;
107 #endif