00001 #ifndef PLUGINSET_H
00002 #define PLUGINSET_H
00003
00004 #include <stdint.h>
00005
00006 #include "edits.h"
00007 #include "edl.inc"
00008 #include "keyframe.inc"
00009 #include "module.inc"
00010 #include "plugin.inc"
00011 #include "pluginautos.inc"
00012 #include "sharedlocation.inc"
00013 #include "track.inc"
00014
00015 class PluginSet : public Edits
00016 {
00017 public:
00018 PluginSet(EDL *edl, Track *track);
00019 virtual ~PluginSet();
00020
00021 virtual void synchronize_params(PluginSet *plugin_set);
00022 virtual PluginSet& operator=(PluginSet& plugins);
00023 virtual Plugin* create_plugin() { return 0; };
00024
00025
00026 void clear_keyframes(int64_t start, int64_t end);
00027
00028 void clear_recursive(int64_t start, int64_t end);
00029 void shift_keyframes_recursive(int64_t position, int64_t length);
00030 void shift_effects_recursive(int64_t position, int64_t length);
00031 void clear(int64_t start, int64_t end);
00032 void copy_from(PluginSet *src);
00033 void copy(int64_t start, int64_t end, FileXML *file);
00034 void copy_keyframes(int64_t start,
00035 int64_t end,
00036 FileXML *file,
00037 int default_only,
00038 int autos_only);
00039 static void paste_keyframes(int64_t start,
00040 int64_t length,
00041 FileXML *file,
00042 int default_only,
00043 Track *track);
00044
00045 int64_t plugin_change_duration(int64_t input_position,
00046 int64_t input_length,
00047 int reverse);
00048 void shift_effects(int64_t start, int64_t length);
00049 Edit* insert_edit_after(Edit *previous_edit);
00050 Edit* create_edit();
00051
00052 Plugin* get_first_plugin();
00053
00054 int get_number();
00055 void save(FileXML *file);
00056 void load(FileXML *file, uint32_t load_flags);
00057 void dump();
00058 int optimize();
00059
00060
00061 Plugin* insert_plugin(char *title,
00062 int64_t unit_position,
00063 int64_t unit_length,
00064 int plugin_type,
00065 SharedLocation *shared_location,
00066 KeyFrame *default_keyframe,
00067 int do_optimize);
00068
00069 PluginAutos *automation;
00070 int record;
00071 };
00072
00073
00074 #endif