Merge branch 'ct' of git.pipapo.org:cinelerra-ct into ct
[cinelerra_cv/ct.git] / cinelerra / pluginarray.h
blobbf70410786b5bc69867d45a82b95c09c84d9e6d7
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(int data_type);
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 get_buffers() {};
41 * virtual void load_module(int module,
42 * int64_t input_position,
43 * int64_t len) {};
45 virtual void process_realtime(int module,
46 int64_t input_position,
47 int64_t len) {};
48 virtual int process_loop(int module, int64_t &write_length) {};
49 virtual int write_buffers(int64_t len) { return 0; };
50 virtual int64_t get_bufsize() { return 0; };
51 virtual int total_tracks() { return 0; };
52 virtual void get_recordable_tracks() {};
53 virtual Track* track_number(int number) { return 0; };
54 virtual int write_samples_derived(int64_t samples_written) { return 0; };
55 virtual int write_frames_derived(int64_t frames_written) { return 0; };
56 virtual int start_plugins_derived() { return 0; };
57 virtual int start_realtime_plugins_derived() { return 0; };
58 virtual int stop_plugins_derived() { return 0; };
59 virtual int render_track(int track, int64_t fragment_len, int64_t position) { return 0; };
61 Module **modules;
62 MWindow *mwindow;
63 CICache *cache;
64 EDL *edl;
65 PluginServer *plugin_server;
66 KeyFrame *keyframe;
67 // output file
68 File *file;
69 int64_t buffer_size;
70 // Start and end of segment in units
71 int64_t start, end;
72 int done;
73 int error;
74 int data_type;
79 #endif
81 // Local Variables:
82 // mode: C++
83 // c-file-style: "linux"
84 // End: