r854: Merge 2.1:
[cinelerra_cv/ct.git] / cinelerra / vmodule.h
blob5c2ed700bd47459fcaab4410b6b182518483f411
1 #ifndef VMODULE_H
2 #define VMODULE_H
4 class VModuleGUI;
5 class VModuleTitle;
6 class VModuleFade;
7 class VModuleMute;
8 class VModuleMode;
10 #define VMODULEHEIGHT 91
11 #define VMODULEWIDTH 106
14 #include "guicast.h"
15 #include "datatype.h"
16 #include "edl.inc"
17 #include "filexml.inc"
18 #include "floatautos.inc"
19 #include "maxchannels.h"
20 #include "module.h"
21 #include "overlayframe.inc"
22 #include "sharedlocation.inc"
23 #include "track.inc"
24 #include "vedit.inc"
25 #include "vframe.inc"
26 #include "maskengine.inc"
28 class VModule : public Module
30 public:
31 VModule() {};
32 VModule(RenderEngine *renderengine,
33 CommonRender *commonrender,
34 PluginArray *plugin_array,
35 Track *track);
36 virtual ~VModule();
38 void create_objects();
39 AttachmentPoint* new_attachment(Plugin *plugin);
40 int get_buffer_size();
42 CICache* get_cache();
43 // Read frame from file and perform camera transformation
44 int import_frame(VFrame *output,
45 VEdit *current_edit,
46 int64_t input_position,
47 double frame_rate,
48 int direction,
49 int use_opengl);
50 int render(VFrame *output,
51 int64_t start_position,
52 int direction,
53 double frame_rate,
54 int use_nudge,
55 int debug_render,
56 int use_opengl = 0);
58 // synchronization with tracks
59 FloatAutos* get_fade_automation(); // get the fade automation for this module
61 // Temp frames for loading from file handlers
62 VFrame *input_temp;
63 // For use when no VRender is available.
64 // Temp frame for transition
65 VFrame *transition_temp;
66 // Engine for transferring from file to buffer_in
67 OverlayFrame *overlay_temp;
68 MaskEngine *masker;
71 #endif