4 * Copyright (C) 2008 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
29 #include "filexml.inc"
30 #include "keyframes.inc"
31 #include "messages.inc"
33 // The default constructor is used for menu effects and pasting effects.
35 class KeyFrame : public Auto
39 KeyFrame(EDL *edl, KeyFrames *autos);
42 void load(FileXML *file);
45 void copy(int64_t start, int64_t end, FileXML *file, int default_only);
46 // Copy data + everything else from that to this
47 void copy_from(Auto *that);
48 void copy_from(KeyFrame *that);
49 void copy_from_common(KeyFrame *that);
50 int operator==(Auto &that);
51 int operator==(KeyFrame &that);
52 void copy_data(KeyFrame *src);
53 void dump(FILE *fp=stdout);
54 int identical(KeyFrame *src);
55 // Generate pointers to parameters which are different than *src.
56 // User must free nonzero return arguments.
57 void get_diff(KeyFrame *src,
62 void set_data(char *data);
64 // Get parameters in a hash table,
65 // the anonymous text in a newly allocated string.
66 // extra text in a newly allocated string
67 void get_contents(BC_Hash *ptr, char **text, char **extra);
68 // Update a single parameter or the anonymous text depending on which argument is nonzero
69 void update_parameter(BC_Hash *params,
74 char data[MESSAGESIZE];