5 #include "filethread.inc" // RING_BUFFERS
6 #include "maxchannels.h"
9 #include "virtualnode.h"
11 class VirtualANode
: public VirtualNode
14 VirtualANode(RenderEngine
*renderengine
,
15 VirtualConsole
*vconsole
,
19 VirtualNode
*parent_module
,
29 void new_output_buffer();
30 void new_input_buffer();
31 VirtualNode
* create_module(Plugin
*real_plugin
,
34 VirtualNode
* create_plugin(Plugin
*real_plugin
);
36 // need *arender for peak updating
37 int render(double **audio_out
,
38 int64_t audio_out_position
,
40 int64_t fragment_position
,
42 int64_t real_position
,
43 int64_t source_length
,
47 // Pointers to data, whether drive read buffers or temp buffers
48 double *buffer_in
[RING_BUFFERS
];
49 double *buffer_out
[RING_BUFFERS
];
52 // need *arender for peak updating
53 int render_as_module(double **audio_out
,
54 int64_t audio_out_position
,
56 int64_t fragment_position
,
58 int64_t real_position
,
60 void render_as_plugin(int64_t real_position
,
61 int64_t fragment_position
,
65 int render_fade(double *input
, // start of input fragment
66 double *output
, // start of output fragment
67 int64_t buffer_len
, // fragment length in input scale
68 int64_t input_position
, // starting sample of input buffer in project
69 Autos
*autos
); // DB not used in pan
70 int render_pan(double *input
, // start of input fragment
71 double *output
, // start of output fragment
72 int64_t fragment_len
, // fragment length in input scale
73 int64_t input_position
, // starting sample of input buffer in project
77 double* get_module_input(int double_buffer
, int64_t fragment_position
);
78 double* get_module_output(int double_buffer
, int64_t fragment_position
);
82 Auto
*pan_before
[MAXCHANNELS
], *pan_after
[MAXCHANNELS
];