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
*>
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 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; };
58 PluginServer
*plugin_server
;
63 // Start and end of segment in units