r870: Merge 2.1:
[cinelerra_cv.git] / cinelerra / automation.h
blobbe3b79428369f4aa55826ce7a5c1a1c60f468d01
1 #ifndef AUTOMATION_H
2 #define AUTOMATION_H
4 #include "arraylist.h"
5 #include "autoconf.inc"
6 #include "automation.inc"
7 #include "autos.inc"
8 #include "edl.inc"
9 #include "filexml.inc"
10 #include "maxchannels.h"
11 #include "module.inc"
12 #include "track.inc"
14 #include <stdint.h>
16 class Automation
18 public:
19 Automation(EDL *edl, Track *track);
20 virtual ~Automation();
22 virtual int create_objects();
23 void equivalent_output(Automation *automation, int64_t *result);
24 virtual Automation& operator=(Automation& automation);
25 virtual void copy_from(Automation *automation);
26 int load(FileXML *file);
27 // For copy automation, copy, and save
28 int copy(int64_t start,
29 int64_t end,
30 FileXML *xml,
31 int default_only,
32 int autos_only);
33 virtual void dump();
34 virtual int direct_copy_possible(int64_t start, int direction);
35 virtual int direct_copy_possible_derived(int64_t start, int direction) { return 1; };
36 // For paste automation only
37 int paste(int64_t start,
38 int64_t length,
39 double scale,
40 FileXML *file,
41 int default_only,
42 AutoConf *autoconf);
44 // Get projector coordinates if this is video automation
45 virtual void get_projector(float *x,
46 float *y,
47 float *z,
48 int64_t position,
49 int direction);
50 // Get camera coordinates if this is video automation
51 virtual void get_camera(float *x,
52 float *y,
53 float *z,
54 int64_t position,
55 int direction);
57 // Returns the point to restart background rendering at.
58 // -1 means nothing changed.
59 void clear(int64_t start,
60 int64_t end,
61 AutoConf *autoconf,
62 int shift_autos);
63 void straighten(int64_t start,
64 int64_t end,
65 AutoConf *autoconf);
66 void paste_silence(int64_t start, int64_t end);
67 void insert_track(Automation *automation,
68 int64_t start_unit,
69 int64_t length_units,
70 int replace_default);
71 void resample(double old_rate, double new_rate);
72 int64_t get_length();
73 virtual void get_extents(float *min,
74 float *max,
75 int *coords_undefined,
76 int64_t unit_start,
77 int64_t unit_end);
83 Autos *autos[AUTOMATION_TOTAL];
86 EDL *edl;
87 Track *track;
90 #endif