9 #include "keyframe.inc"
11 #include "mwindow.inc"
12 #include "pluginserver.inc"
13 #include "recordableatracks.inc"
18 // The plugin array does the real work of a non realtime effect.
21 class PluginArray
: public ArrayList
<PluginServer
*>
24 PluginArray(int data_type
);
25 virtual ~PluginArray();
27 PluginServer
* scan_plugindb(char *title
);
28 int start_plugins(MWindow
*mwindow
,
30 PluginServer
*plugin_server
,
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,
45 virtual void process_realtime(int module
,
46 int64_t input_position
,
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; };
65 PluginServer
*plugin_server
;
70 // Start and end of segment in units