void PluginDialogThread::apply()
{
- if( mwindow->edl )
- mwindow->edl->session->single_standalone = single_standalone;
+ Plugin *plugin = 0;
+ EDL *edl = mwindow->edl;
+ if( edl )
+ edl->session->single_standalone = single_standalone;
if(plugin_type) {
mwindow->gui->lock_window("PluginDialogThread::run 3");
mwindow->undo->update_undo_before();
mwindow->insert_effect(plugin_title, &shared_location,
data_type, plugin_type, single_standalone);
}
- else {
- Plugin *plugin = mwindow->edl->tracks->plugin_exists(plugin_id);
- if( plugin ) {
- plugin->change_plugin(plugin_title,
+ else if( (plugin=edl->tracks->plugin_exists(plugin_id)) != 0 ) {
+ plugin->change_plugin(plugin_title,
&shared_location, plugin_type);
+ }
+ else if( edl->tracks->track_exists(track) ) {
+ double start = edl->local_session->get_selectionstart(1);
+ double end = edl->local_session->get_selectionend(1);
+ if( start >= end ) {
+ start = 0;
+ end = track->get_length();
}
- else if( mwindow->edl->tracks->track_exists(track) ) {
- mwindow->insert_effect(plugin_title, &shared_location,
- track, 0, 0, 0, plugin_type);
- }
+ double length = end - start;
+ mwindow->insert_effect(plugin_title, &shared_location,
+ track, 0, start, length, plugin_type);
}
mwindow->save_backup();