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

attachmentpoint.h

Go to the documentation of this file.
00001 #ifndef ATTACHMENTPOINT_H
00002 #define ATTACHMENTPOINT_H
00003 
00004 #include "arraylist.h"
00005 #include "filexml.inc"
00006 #include "floatauto.inc"
00007 #include "floatautos.inc"
00008 #include "mwindow.inc"
00009 #include "messages.inc"
00010 #include "plugin.inc"
00011 #include "pluginserver.inc"
00012 #include "renderengine.inc"
00013 #include "sharedlocation.h"
00014 #include "vframe.inc"
00015 #include "virtualnode.inc"
00016 
00017 #include <stdint.h>
00018 
00019 // Attachment points for Modules to attach plugins
00020 class AttachmentPoint
00021 {
00022 public:
00023         AttachmentPoint(RenderEngine *renderengine, 
00024                 Plugin *plugin, 
00025                 int data_type);
00026         virtual ~AttachmentPoint();
00027 
00028         virtual int reset_parameters();
00029 // Used by Module::swap_attachments before virtual console expansion.
00030 // Return 1 if the plugin id is the same
00031         int identical(AttachmentPoint *old);
00032 
00033 // Move new_virtual_plugins to virtual_plugins.
00034 // Called after virtual console expansion.
00035         int render_init();
00036 
00037 // Called before every buffer processing
00038         void reset_status();
00039 
00040 // Attach a virtual plugin for realtime playback.  Returns the number
00041 // of the buffer assigned to a multichannel plugin.
00042         int attach_virtual_plugin(VirtualNode *virtual_plugin);
00043         virtual void delete_buffer_vector() {};
00044 
00045 // return 0 if ready to render
00046 // check all the virtual plugins for waiting status
00047 // all virtual plugins attached to this must be waiting for a render
00048 //      int sort(VirtualNode *virtual_plugin);
00049 // Called by plugin server to render GUI with data.
00050         void render_gui(void *data);
00051         void render_gui(void *data, int size);
00052         virtual int get_buffer_size() { return 0; };
00053 
00054 // For unshared plugins, virtual plugins to send configuration events to and 
00055 // read data from.
00056 // For shared plugins, virtual plugins to allocate buffers for and read 
00057 // data from.
00058         ArrayList<VirtualNode*> virtual_plugins;
00059 
00060 // List for a new virtual console which is transferred to virtual_plugins after
00061 // virtual console expansion.
00062         ArrayList<VirtualNode*> new_virtual_plugins;
00063 
00064 // Plugin servers to do signal processing
00065         ArrayList<PluginServer*> plugin_servers;
00066 
00067 // renderengine Plugindb entry
00068         PluginServer *plugin_server;
00069 // Pointer to the plugin object in EDL
00070         Plugin *plugin;
00071 // ID of plugin object in EDL
00072         int plugin_id;
00073         RenderEngine *renderengine;
00074 // Current input buffer being loaded.  Determines when the plugin server is run
00075 //      int current_buffer;
00076 
00077 // Status of last buffer processed.
00078 // Used in shared multichannel plugin to tell of it's already been processed
00079 // or needs to be processed again for a different target.
00080 // start_position is the end of the range if playing in reverse.
00081         int64_t start_position;
00082         int64_t len;
00083         int64_t sample_rate;
00084         double frame_rate;
00085         int is_processed;
00086         int data_type;  
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095 
00096 
00097 
00098         int multichannel_shared(int search_new);
00099         int singlechannel();
00100 
00101 // Simply deletes the virtual plugin 
00102         int render_stop(int duplicate);
00103 
00104 
00105         int dump();
00106 
00107 };
00108 
00109 #endif

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