r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / cinelerra / automation.h
blob3dc8c7c8f7783be421ecc99efccf941b658431bc
1 #ifndef AUTOMATION_H
2 #define AUTOMATION_H
4 #include "arraylist.h"
5 #include "autoconf.inc"
6 #include "bezierautos.inc"
7 #include "edl.inc"
8 #include "filexml.inc"
9 #include "floatautos.inc"
10 #include "intautos.inc"
11 #include "maskautos.inc"
12 #include "maxchannels.h"
13 #include "module.inc"
14 #include "panautos.inc"
15 #include "intautos.inc"
16 #include "track.inc"
18 #include <stdint.h>
20 class Automation
22 public:
23 Automation(EDL *edl, Track *track);
24 virtual ~Automation();
26 virtual int create_objects();
27 void equivalent_output(Automation *automation, int64_t *result);
28 virtual Automation& operator=(Automation& automation);
29 virtual void copy_from(Automation *automation);
30 int load(FileXML *file);
31 // For copy automation, copy, and save
32 int copy(int64_t start,
33 int64_t end,
34 FileXML *xml,
35 int default_only,
36 int autos_only);
37 virtual void dump();
38 virtual int direct_copy_possible(int64_t start, int direction);
39 virtual int direct_copy_possible_derived(int64_t start, int direction) { return 1; };
40 // For paste automation only
41 void paste(int64_t start,
42 int64_t length,
43 double scale,
44 FileXML *file,
45 int default_only,
46 AutoConf *autoconf);
48 // Returns the point to restart background rendering at.
49 // -1 means nothing changed.
50 void clear(int64_t start,
51 int64_t end,
52 AutoConf *autoconf,
53 int shift_autos);
54 void paste_silence(int64_t start, int64_t end);
55 void insert_track(Automation *automation,
56 int64_t start_unit,
57 int64_t length_units,
58 int replace_default);
59 void resample(double old_rate, double new_rate);
60 int64_t get_length();
62 IntAutos *mute_autos;
63 BezierAutos *camera_autos;
64 BezierAutos *projector_autos;
65 FloatAutos *fade_autos;
66 FloatAutos *czoom_autos;
67 FloatAutos *pzoom_autos;
68 PanAutos *pan_autos;
69 // Overlay mode
70 IntAutos *mode_autos;
71 MaskAutos *mask_autos;
73 EDL *edl;
74 Track *track;
77 #endif