4 * Copyright (C) 2008-2013 Adam Williams <broadcast at earthling dot net>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 #include "arraylist.h"
29 #include "autoconf.inc"
30 #include "automation.inc"
33 #include "filexml.inc"
34 #include "maxchannels.h"
41 Automation(EDL *edl, Track *track);
42 virtual ~Automation();
44 virtual void create_objects();
45 void equivalent_output(Automation *automation, int64_t *result);
46 virtual Automation& operator=(Automation& automation);
47 virtual void copy_from(Automation *automation);
48 int load(FileXML *file);
49 // For copy automation, copy, and save
50 int copy(int64_t start,
55 virtual void dump(FILE *fp);
56 virtual int direct_copy_possible(int64_t start, int direction);
57 virtual int direct_copy_possible_derived(int64_t start, int direction) { return 1; };
58 // For paste automation only
59 int paste(int64_t start,
67 // Get projector coordinates if this is video automation
68 virtual void get_projector(float *x,
73 // Get camera coordinates if this is video automation
74 virtual void get_camera(float *x,
80 // Returns the point to restart background rendering at.
81 // -1 means nothing changed.
82 void clear(int64_t start,
86 void set_automation_mode(int64_t start,
90 void paste_silence(int64_t start, int64_t end);
91 void insert_track(Automation *automation,
93 // Pad keyframes to this length.
96 void resample(double old_rate, double new_rate);
98 virtual void get_extents(float *min,
100 int *coords_undefined,
108 Autos *autos[AUTOMATION_TOTAL];