r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / plugins / delayvideo / delayvideo.h
blob669f8c7c70a95e14bb4ec138929e7173befe92f0
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 double length;
37 class DelayVideoSlider : public BC_TextBox
39 public:
40 DelayVideoSlider(DelayVideo *plugin, int x, int y);
42 int handle_event();
44 DelayVideo *plugin;
49 class DelayVideoWindow : public BC_Window
51 public:
52 DelayVideoWindow(DelayVideo *plugin, int x, int y);
53 ~DelayVideoWindow();
55 void create_objects();
56 int close_event();
57 void update_gui();
59 DelayVideo *plugin;
60 DelayVideoSlider *slider;
65 class DelayVideoThread : public Thread
67 public:
68 DelayVideoThread(DelayVideo *plugin);
69 ~DelayVideoThread();
71 void run();
73 DelayVideo *plugin;
74 DelayVideoWindow *window;
75 Mutex completion;
82 class DelayVideo : public PluginVClient
84 public:
85 DelayVideo(PluginServer *server);
86 ~DelayVideo();
88 int process_realtime(VFrame *input_ptr, VFrame *output_ptr);
89 int is_realtime();
90 char* plugin_title();
91 int show_gui();
92 void raise_window();
93 int set_string();
94 void save_data(KeyFrame *keyframe);
95 void read_data(KeyFrame *keyframe);
96 VFrame* new_picon();
97 void reset();
98 void reconfigure();
102 int load_configuration();
103 int load_defaults();
104 int save_defaults();
105 void update_gui();
108 int need_reconfigure;
109 int allocation;
110 DelayVideoConfig config;
111 DelayVideoThread *thread;
112 VFrame **buffer;
113 Defaults *defaults;
114 VFrame *input, *output;
119 #endif