r870: Merge 2.1:
[cinelerra_cv.git] / cinelerra / amodule.h
blobab7bede72d6d320a11137f19fb38b49f61f7cc0e
1 #ifndef AMODULE_H
2 #define AMODULE_H
4 class AModuleGUI;
5 class AModuleTitle;
6 class AModulePan;
7 class AModuleFade;
8 class AModuleInv;
9 class AModuleMute;
10 class AModuleReset;
12 #include "amodule.inc"
13 #include "aplugin.inc"
14 #include "datatype.h"
15 #include "edl.inc"
16 #include "filexml.inc"
17 #include "floatautos.inc"
18 #include "maxchannels.h"
19 #include "module.h"
20 #include "sharedlocation.inc"
21 #include "track.inc"
22 #include "units.h"
24 class AModule : public Module
26 public:
27 AModule(RenderEngine *renderengine,
28 CommonRender *commonrender,
29 PluginArray *plugin_array,
30 Track *track);
31 virtual ~AModule();
33 void create_objects();
34 CICache* get_cache();
35 int render(double *buffer,
36 int64_t input_position,
37 int input_len,
38 int direction,
39 int sample_rate,
40 int use_nudge);
41 void reverse_buffer(double *buffer, int64_t len);
42 int get_buffer_size();
44 AttachmentPoint* new_attachment(Plugin *plugin);
49 // synchronization with tracks
50 FloatAutos* get_pan_automation(int channel); // get pan automation
51 FloatAutos* get_fade_automation(); // get the fade automation for this module
54 double *level_history;
55 int64_t *level_samples;
56 int current_level;
58 // Temporary buffer for rendering transitions
59 double *transition_temp;
60 int transition_temp_alloc;
64 #endif