X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fplugin.C;h=d28087b838a86b838165bfb316dc79cf678b0448;hb=033efab12586e8086014c814a5360f211d228ac3;hp=b4c8e4431c216913772eca95c41c3032ea5f329f;hpb=0c086b3e7b552e0f6b06c8696d7682d9d4bd91db;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/plugin.C b/cinelerra-5.1/cinelerra/plugin.C index b4c8e443..d28087b8 100644 --- a/cinelerra-5.1/cinelerra/plugin.C +++ b/cinelerra-5.1/cinelerra/plugin.C @@ -49,6 +49,7 @@ Plugin::Plugin(EDL *edl, Track *track, const char *title) out = 1; show = 0; on = 1; + gui_id = -1; keyframes = new KeyFrames(edl, track); keyframes->create_objects(); } @@ -66,6 +67,7 @@ Plugin::Plugin(EDL *edl, PluginSet *plugin_set, const char *title) out = 1; show = 0; on = 1; + gui_id = -1; keyframes = new KeyFrames(edl, track); keyframes->create_objects(); } @@ -109,6 +111,20 @@ void Plugin::clear_keyframes(int64_t start, int64_t end) } +void Plugin::init(const char *title, + int64_t unit_position, int64_t unit_length, int plugin_type, + SharedLocation *shared_location, KeyFrame *default_keyframe) +{ + if( title ) strcpy(this->title, title); + if( shared_location ) this->shared_location = *shared_location; + this->plugin_type = plugin_type; + if( default_keyframe ) + *this->keyframes->default_auto = *default_keyframe; + this->keyframes->default_auto->position = unit_position; + this->startproject = unit_position; + this->length = unit_length; +} + void Plugin::copy_base(Edit *edit) { Plugin *plugin = (Plugin*)edit; @@ -123,6 +139,7 @@ void Plugin::copy_base(Edit *edit) this->out = plugin->out; this->show = plugin->show; this->on = plugin->on; +// dont copy gui_id, it will be a duplicate ref // Should reconfigure this based on where the first track is now. this->shared_location = plugin->shared_location; strcpy(this->title, plugin->title); @@ -161,6 +178,7 @@ void Plugin::synchronize_params(Edit *edit) this->in = plugin->in; this->out = plugin->out; this->show = plugin->show; + this->gui_id = plugin->gui_id; this->on = plugin->on; strcpy(this->title, plugin->title); copy_keyframes(plugin); @@ -281,19 +299,6 @@ int Plugin::identical(Plugin *that) ((KeyFrame*)that->keyframes->default_auto))); } -int Plugin::identical_location(Plugin *that) -{ - if(!plugin_set || !plugin_set->track) return 0; - if(!that->plugin_set || !that->plugin_set->track) return 0; - - if(plugin_set->track->number_of() == that->plugin_set->track->number_of() && - plugin_set->get_number() == that->plugin_set->get_number() && - startproject == that->startproject) return 1; - - return 0; - -} - int Plugin::keyframe_exists(KeyFrame *ptr) { for(KeyFrame *current = (KeyFrame*)keyframes->first; @@ -580,8 +585,8 @@ void Plugin::shift(int64_t difference) void Plugin::dump(FILE *fp) { - fprintf(fp," PLUGIN: type=%d title=\"%s\" on=%d track=%d plugin=%d\n", - plugin_type, title, on, shared_location.module, shared_location.plugin); + fprintf(fp," PLUGIN: type=%d title=\"%s\" on=%d track=%d plugin=%d gui_id=%d\n", + plugin_type, title, on, shared_location.module, shared_location.plugin, gui_id); fprintf(fp," startproject %jd length %jd\n", startproject, length); keyframes->dump(fp);