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

virtualvnode.h

Go to the documentation of this file.
00001 #ifndef VIRTUALVNODE_H
00002 #define VIRTUALVNODE_H
00003 
00004 #include "fadeengine.inc"
00005 #include "maskengine.inc"
00006 #include "plugin.inc"
00007 #include "renderengine.inc"
00008 #include "vframe.inc"
00009 #include "virtualnode.h"
00010 #include "vrender.inc"
00011 
00012 class VirtualVNode : public VirtualNode
00013 {
00014 public:
00015 // construct as a module or a plugin
00016         VirtualVNode(RenderEngine *renderengine, 
00017                 VirtualConsole *vconsole, 
00018                 Module *real_module, 
00019                 Plugin *real_plugin,
00020                 Track *track, 
00021                 VirtualNode *parent_module);
00022 
00023         ~VirtualVNode();
00024 
00025 // expansions
00026         VirtualNode* create_module(Plugin *real_plugin, 
00027                                                         Module *real_module, 
00028                                                         Track *track);
00029         VirtualNode* create_plugin(Plugin *real_plugin);
00030         void arm_attachmentpoint();
00031 
00032 // Called by VirtualVConsole::process_buffer to process exit nodes.
00033 // start_position - end of frame if reverse.  start of frame if forward.
00034 // frame_rate - rate start_position is relative to
00035         int render(VFrame *output_temp, 
00036                 int64_t start_position,
00037                 double frame_rate);
00038 
00039 // Read data from what comes before this node.
00040         int read_data(VFrame *output_temp,
00041                 int64_t start_position,
00042                 double frame_rate);
00043 
00044 private:
00045         int render_as_module(VFrame **video_out, 
00046                 VFrame *output_temp,
00047                 int64_t start_position,
00048                 double frame_rate);
00049         void render_as_plugin(VFrame *output_temp, 
00050                 int64_t start_position,
00051                 double frame_rate);
00052 
00053         int render_projector(VFrame *input,
00054                         VFrame **output,
00055                         int64_t start_position,
00056                         double frame_rate);  // Start of input fragment in project if forward.  End of input fragment if reverse.
00057 
00058         int render_fade(VFrame *output,        // start of output fragment
00059                         int64_t start_position,  // start of input fragment in project if forward / end of input fragment if reverse
00060                         double frame_rate, 
00061                         Autos *autos,
00062                         int direction);
00063 
00064 
00065         FadeEngine *fader;
00066         MaskEngine *masker;
00067 };
00068 
00069 
00070 #endif

Generated on Sun Jan 8 13:39:02 2006 for Cinelerra-svn by  doxygen 1.4.4