r956: README.BUILD - add more library recommendations
[cinelerra_cv/ct.git] / cinelerra / pluginset.h
blob59602479360edb63fa531acf64516626fc1cac1f
1 #ifndef PLUGINSET_H
2 #define PLUGINSET_H
4 #include <stdint.h>
6 #include "edits.h"
7 #include "edl.inc"
8 #include "keyframe.inc"
9 #include "module.inc"
10 #include "plugin.inc"
11 #include "pluginautos.inc"
12 #include "sharedlocation.inc"
13 #include "track.inc"
15 class PluginSet : public Edits
17 public:
18 PluginSet(EDL *edl, Track *track);
19 virtual ~PluginSet();
21 virtual void synchronize_params(PluginSet *plugin_set);
22 virtual PluginSet& operator=(PluginSet& plugins);
23 virtual Plugin* create_plugin() { return 0; };
24 // Returns the point to restart background rendering at.
25 // -1 means nothing changed.
26 void clear_keyframes(int64_t start, int64_t end);
27 // Clear edits only for a handle modification
28 void clear_recursive(int64_t start, int64_t end);
29 void shift_keyframes_recursive(int64_t position, int64_t length);
30 void shift_effects_recursive(int64_t position, int64_t length);
31 void clear(int64_t start, int64_t end);
32 void copy_from(PluginSet *src);
33 void copy(int64_t start, int64_t end, FileXML *file);
34 void copy_keyframes(int64_t start,
35 int64_t end,
36 FileXML *file,
37 int default_only,
38 int autos_only);
39 static void paste_keyframes(int64_t start,
40 int64_t length,
41 FileXML *file,
42 int default_only,
43 Track *track);
44 // Return the nearest boundary of any kind in the plugin edits
45 int64_t plugin_change_duration(int64_t input_position,
46 int64_t input_length,
47 int reverse);
48 void shift_effects(int64_t start, int64_t length);
49 Edit* insert_edit_after(Edit *previous_edit);
50 Edit* create_edit();
51 // For testing output equivalency when a new pluginset is added.
52 Plugin* get_first_plugin();
53 // The plugin set number in the track
54 int get_number();
55 void save(FileXML *file);
56 void load(FileXML *file, uint32_t load_flags);
57 void dump();
58 int optimize();
60 // Insert a new plugin
61 Plugin* insert_plugin(char *title,
62 int64_t unit_position,
63 int64_t unit_length,
64 int plugin_type,
65 SharedLocation *shared_location,
66 KeyFrame *default_keyframe,
67 int do_optimize);
69 PluginAutos *automation;
70 int record;
74 #endif