6 #include "filethread.inc" // RING_BUFFERS
7 #include "maxchannels.h"
10 #include "virtualnode.h"
12 class VirtualANode
: public VirtualNode
15 VirtualANode(RenderEngine
*renderengine
,
16 VirtualConsole
*vconsole
,
20 VirtualNode
*parent_module
);
24 VirtualNode
* create_module(Plugin
*real_plugin
,
27 VirtualNode
* create_plugin(Plugin
*real_plugin
);
29 // Called by VirtualAConsole::process_buffer to process exit_nodes.
30 // read_data recurses down the tree.
31 int render(double *output_temp
,
32 int64_t start_position
,
36 // Read data from whatever comes before this node.
37 // Calls render in either the parent node or the module for the track.
38 int read_data(double *output_temp
,
39 int64_t start_position
,
44 // need *arender for peak updating
45 int render_as_module(double **audio_out
,
47 int64_t start_position
,
50 void render_as_plugin(double *output_temp
,
51 int64_t start_position
,
55 int render_fade(double *buffer
,
57 int64_t input_position
,
62 int render_pan(double *input
, // start of input fragment
63 double *output
, // start of output fragment
64 int64_t fragment_len
, // fragment length in input scale
65 int64_t input_position
, // starting sample of input buffer in project
71 void get_pan_automation(double &slope
,
73 int64_t input_position
,
80 * double* get_module_input(int double_buffer, int64_t fragment_position);
81 * double* get_module_output(int double_buffer, int64_t fragment_position);
86 Auto
*pan_before
[MAXCHANNELS
], *pan_after
[MAXCHANNELS
];