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
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
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
00033
00034
00035 int render(VFrame *output_temp,
00036 int64_t start_position,
00037 double frame_rate);
00038
00039
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);
00057
00058 int render_fade(VFrame *output,
00059 int64_t start_position,
00060 double frame_rate,
00061 Autos *autos,
00062 int direction);
00063
00064
00065 FadeEngine *fader;
00066 MaskEngine *masker;
00067 };
00068
00069
00070 #endif