r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / cinelerra / pluginarray.h
blob164e6cb436582b1100d32fa47b13ac54acda5617
1 #ifndef PLUGINARRAY_H
2 #define PLUGINARRAY_H
5 #include "arraylist.h"
6 #include "cache.inc"
7 #include "edl.inc"
8 #include "file.inc"
9 #include "keyframe.inc"
10 #include "module.inc"
11 #include "mwindow.inc"
12 #include "pluginserver.inc"
13 #include "recordableatracks.inc"
14 #include "track.inc"
17 #include <stdint.h>
18 // The plugin array does the real work of a non realtime effect.
21 class PluginArray : public ArrayList<PluginServer*>
23 public:
24 PluginArray();
25 virtual ~PluginArray();
27 PluginServer* scan_plugindb(char *title);
28 int start_plugins(MWindow *mwindow,
29 EDL *edl,
30 PluginServer *plugin_server,
31 KeyFrame *keyframe,
32 int64_t start,
33 int64_t end,
34 File *file);
35 int run_plugins();
36 int stop_plugins();
37 virtual void create_modules() {};
38 virtual void create_buffers() {};
39 virtual void load_module(int module, int64_t input_position, int64_t len) {};
40 virtual void process_realtime(int module, int64_t input_position, int64_t len) {};
41 virtual int process_loop(int module, int64_t &write_length) {};
42 virtual int write_buffers(int64_t len) { return 0; };
43 virtual int64_t get_bufsize() { return 0; };
44 virtual int total_tracks() { return 0; };
45 virtual void get_recordable_tracks() {};
46 virtual Track* track_number(int number) { return 0; };
47 virtual int write_samples_derived(int64_t samples_written) { return 0; };
48 virtual int write_frames_derived(int64_t frames_written) { return 0; };
49 virtual int start_plugins_derived() { return 0; };
50 virtual int start_realtime_plugins_derived() { return 0; };
51 virtual int stop_plugins_derived() { return 0; };
52 virtual int render_track(int track, int64_t fragment_len, int64_t position) { return 0; };
54 Module **modules;
55 MWindow *mwindow;
56 CICache *cache;
57 EDL *edl;
58 PluginServer *plugin_server;
59 KeyFrame *keyframe;
60 // output file
61 File *file;
62 int64_t buffer_size;
63 // Start and end of segment in units
64 int64_t start, end;
65 int done;
66 int error;
71 #endif