Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

pluginarray.h

Go to the documentation of this file.
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 // The plugin array does the real work of a non realtime effect.
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  *      virtual void load_module(int module, 
00042  *              int64_t input_position, 
00043  *              int64_t len) {};
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 // output file
00068         File *file;             
00069         int64_t buffer_size;  
00070 // Start and end of segment in units
00071         int64_t start, end;
00072         int done;
00073         int error;
00074         int data_type;
00075 };
00076 
00077 
00078 
00079 #endif

Generated on Sun Jan 8 13:38:58 2006 for Cinelerra-svn by  doxygen 1.4.4