12 #include "filexml.inc"
14 #include "loadbalance.h"
15 #include "overlayframe.inc"
16 #include "plugincolors.h"
17 #include "pluginvclient.h"
26 int equivalent(TimeFrontConfig
&that
);
27 void copy_from(TimeFrontConfig
&that
);
28 void interpolate(TimeFrontConfig
&prev
,
29 TimeFrontConfig
&next
,
33 // Int to hex triplet conversion
39 // LINEAR or LOG or SQUARE
69 class TimeFrontShape
: public BC_PopupMenu
72 TimeFrontShape(TimeFrontMain
*plugin
,
76 void create_objects();
77 static char* to_text(int shape
);
78 static int from_text(char *text
);
80 TimeFrontMain
*plugin
;
84 class TimeFrontTrackUsage
: public BC_PopupMenu
87 TimeFrontTrackUsage(TimeFrontMain
*plugin
,
91 void create_objects();
92 static char* to_text(int track_usage
);
93 static int from_text(char *text
);
95 TimeFrontMain
*plugin
;
100 class TimeFrontRate
: public BC_PopupMenu
103 TimeFrontRate(TimeFrontMain
*plugin
,
106 void create_objects();
107 static char* to_text(int shape
);
108 static int from_text(char *text
);
110 TimeFrontMain
*plugin
;
111 TimeFrontWindow
*gui
;
114 class TimeFrontCenterX
: public BC_FPot
117 TimeFrontCenterX(TimeFrontMain
*plugin
, int x
, int y
);
119 TimeFrontMain
*plugin
;
122 class TimeFrontCenterY
: public BC_FPot
125 TimeFrontCenterY(TimeFrontMain
*plugin
, int x
, int y
);
127 TimeFrontMain
*plugin
;
130 class TimeFrontAngle
: public BC_FPot
133 TimeFrontAngle(TimeFrontMain
*plugin
, int x
, int y
);
135 TimeFrontMain
*plugin
;
138 class TimeFrontInRadius
: public BC_FSlider
141 TimeFrontInRadius(TimeFrontMain
*plugin
, int x
, int y
);
143 TimeFrontMain
*plugin
;
146 class TimeFrontOutRadius
: public BC_FSlider
149 TimeFrontOutRadius(TimeFrontMain
*plugin
, int x
, int y
);
151 TimeFrontMain
*plugin
;
154 class TimeFrontFrameRange
: public BC_ISlider
157 TimeFrontFrameRange(TimeFrontMain
*plugin
, int x
, int y
);
159 TimeFrontMain
*plugin
;
163 class TimeFrontInvert
: public BC_CheckBox
166 TimeFrontInvert(TimeFrontMain
*plugin
, int x
, int y
);
168 TimeFrontMain
*plugin
;
171 class TimeFrontShowGrayscale
: public BC_CheckBox
174 TimeFrontShowGrayscale(TimeFrontMain
*plugin
, int x
, int y
);
176 TimeFrontMain
*plugin
;
180 class TimeFrontWindow
: public BC_Window
183 TimeFrontWindow(TimeFrontMain
*plugin
, int x
, int y
);
186 int create_objects();
190 TimeFrontMain
*plugin
;
191 BC_Title
*angle_title
;
192 BC_Title
*rate_title
, *in_radius_title
, *out_radius_title
, *track_usage_title
;
193 TimeFrontAngle
*angle
;
194 TimeFrontInRadius
*in_radius
;
195 TimeFrontOutRadius
*out_radius
;
196 TimeFrontFrameRange
*frame_range
;
197 TimeFrontShape
*shape
;
198 TimeFrontTrackUsage
*track_usage
;
199 BC_Title
*shape_title
;
200 TimeFrontCenterX
*center_x
;
201 BC_Title
*center_x_title
;
202 BC_Title
*center_y_title
;
203 TimeFrontCenterY
*center_y
;
205 TimeFrontShowGrayscale
*show_grayscale
;
206 TimeFrontInvert
*invert
;
207 int frame_range_x
, frame_range_y
;
208 int shape_x
, shape_y
;
213 PLUGIN_THREAD_HEADER(TimeFrontMain
, TimeFrontThread
, TimeFrontWindow
)
216 class TimeFrontMain
: public PluginVClient
219 TimeFrontMain(PluginServer
*server
);
222 // int process_realtime(VFrame *input_ptr, VFrame *output_ptr);
223 int process_buffer(VFrame
**frame
,
224 int64_t start_position
,
228 int is_multichannel();
231 void save_data(KeyFrame
*keyframe
);
232 void read_data(KeyFrame
*keyframe
);
236 PLUGIN_CLASS_MEMBERS(TimeFrontConfig
, TimeFrontThread
)
238 int need_reconfigure
;
240 OverlayFrame
*overlayer
;
242 VFrame
*input
, *output
;
243 TimeFrontServer
*engine
;
246 class TimeFrontPackage
: public LoadPackage
254 class TimeFrontUnit
: public LoadClient
257 TimeFrontUnit(TimeFrontServer
*server
, TimeFrontMain
*plugin
);
258 void process_package(LoadPackage
*package
);
259 TimeFrontServer
*server
;
260 TimeFrontMain
*plugin
;
264 class TimeFrontServer
: public LoadServer
267 TimeFrontServer(TimeFrontMain
*plugin
, int total_clients
, int total_packages
);
268 void init_packages();
269 LoadClient
* new_client();
270 LoadPackage
* new_package();
271 TimeFrontMain
*plugin
;