r370: Heroine Virutal's official release 1.2.1
[cinelerra_cv/mob.git] / hvirtual / cinelerra / pluginset.h
blob28a69629af6a798e088b953487c7e12a5130a354
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 void paste_keyframes(int64_t start,
40 int64_t length,
41 FileXML *file,
42 int default_only);
43 // Return the nearest boundary of any kind in the plugin edits
44 int64_t plugin_change_duration(int64_t input_position,
45 int64_t input_length,
46 int reverse);
47 void shift_effects(int64_t start, int64_t length);
48 Edit* insert_edit_after(Edit *previous_edit);
49 Edit* create_edit();
50 // For testing output equivalency when a new pluginset is added.
51 Plugin* get_first_plugin();
52 // The plugin set number in the track
53 int get_number();
54 void save(FileXML *file);
55 void load(FileXML *file, uint32_t load_flags);
56 void dump();
57 int optimize();
59 // Insert a new plugin
60 Plugin* insert_plugin(char *title,
61 int64_t unit_position,
62 int64_t unit_length,
63 int plugin_type,
64 SharedLocation *shared_location,
65 KeyFrame *default_keyframe,
66 int do_optimize);
68 PluginAutos *automation;
69 int record;
73 #endif