00001 #ifndef PLUGINARRAY_H
00002 #define PLUGINARRAY_H
00003
00004
00005 #include "arraylist.h"
00006 #include "cache.inc"
00007 #include "edl.inc"
00008 #include "file.inc"
00009 #include "keyframe.inc"
00010 #include "module.inc"
00011 #include "mwindow.inc"
00012 #include "pluginserver.inc"
00013 #include "recordableatracks.inc"
00014 #include "track.inc"
00015
00016
00017 #include <stdint.h>
00018
00019
00020
00021 class PluginArray : public ArrayList<PluginServer*>
00022 {
00023 public:
00024 PluginArray(int data_type);
00025 virtual ~PluginArray();
00026
00027 PluginServer* scan_plugindb(char *title);
00028 int start_plugins(MWindow *mwindow,
00029 EDL *edl,
00030 PluginServer *plugin_server,
00031 KeyFrame *keyframe,
00032 int64_t start,
00033 int64_t end,
00034 File *file);
00035 int run_plugins();
00036 int stop_plugins();
00037 virtual void create_modules() {};
00038 virtual void create_buffers() {};
00039 virtual void get_buffers() {};
00040
00041
00042
00043
00044
00045 virtual void process_realtime(int module,
00046 int64_t input_position,
00047 int64_t len) {};
00048 virtual int process_loop(int module, int64_t &write_length) {};
00049 virtual int write_buffers(int64_t len) { return 0; };
00050 virtual int64_t get_bufsize() { return 0; };
00051 virtual int total_tracks() { return 0; };
00052 virtual void get_recordable_tracks() {};
00053 virtual Track* track_number(int number) { return 0; };
00054 virtual int write_samples_derived(int64_t samples_written) { return 0; };
00055 virtual int write_frames_derived(int64_t frames_written) { return 0; };
00056 virtual int start_plugins_derived() { return 0; };
00057 virtual int start_realtime_plugins_derived() { return 0; };
00058 virtual int stop_plugins_derived() { return 0; };
00059 virtual int render_track(int track, int64_t fragment_len, int64_t position) { return 0; };
00060
00061 Module **modules;
00062 MWindow *mwindow;
00063 CICache *cache;
00064 EDL *edl;
00065 PluginServer *plugin_server;
00066 KeyFrame *keyframe;
00067
00068 File *file;
00069 int64_t buffer_size;
00070
00071 int64_t start, end;
00072 int done;
00073 int error;
00074 int data_type;
00075 };
00076
00077
00078
00079 #endif