int edit_autos)
{
// Extend plugins if no incoming plugins
- if(!track->plugin_set.total)
- {
- shift_effects(position,
- min_length,
- edit_autos);
- }
- else
- for(int i = 0; i < track->plugin_set.total; i++)
- {
- if(i >= plugin_set.total)
- plugin_set.append(new PluginSet(edl, this));
+ if( track->plugin_set.total ) {
+ for(int i = 0; i < track->plugin_set.total; i++) {
+ if(i >= plugin_set.total)
+ plugin_set.append(new PluginSet(edl, this));
- plugin_set.values[i]->insert_edits(track->plugin_set.values[i],
- position,
- min_length,
- edit_autos);
+ plugin_set.values[i]->insert_edits(track->plugin_set.values[i],
+ position, min_length, edit_autos);
+ }
}
+ else
+ shift_effects(position, min_length, edit_autos, 0);
}
// Effect keyframes are shifted in shift_effects
}
-void Track::shift_effects(int64_t position, int64_t length, int edit_autos)
+void Track::shift_effects(int64_t position, int64_t length, int edit_autos, Edits *trim_edits)
{
- for(int i = 0; i < plugin_set.total; i++)
- {
- plugin_set.values[i]->shift_effects(position, length, edit_autos);
+ for( int i=0; i<plugin_set.total; ++i ) {
+ if( !trim_edits || trim_edits == (Edits*)plugin_set.values[i] )
+ plugin_set.values[i]->shift_effects(position, length, edit_autos);
}
}
-int Track::modify_edithandles(double oldposition,
- double newposition,
- int currentend,
- int handle_mode,
- int edit_labels,
- int edit_plugins,
- int edit_autos)
+int Track::modify_edithandles(double oldposition, double newposition,
+ int currentend, int handle_mode, int edit_labels,
+ int edit_plugins, int edit_autos, int group_id)
{
- edits->modify_handles(oldposition,
- newposition,
- currentend,
- handle_mode,
- 1,
- edit_labels,
- edit_plugins,
- edit_autos,
- 0);
-
-
+ edits->modify_handles(oldposition, newposition,
+ currentend, handle_mode, 1, edit_labels, edit_plugins,
+ edit_autos, 0, group_id);
return 0;
}
for(int i = 0; i < plugin_set.total; i++)
{
if(!trim_edits || trim_edits == (Edits*)plugin_set.values[i])
- plugin_set.values[i]->modify_handles(oldposition,
- newposition,
- currentend,
- handle_mode,
+ plugin_set.values[i]->modify_handles(oldposition, newposition,
// Don't allow plugin tweeks to affect edits.
- 0,
- edit_labels,
- 1,
- edit_autos,
- trim_edits);
+ currentend, handle_mode, 0, 0, 0, 0, 0, 0);
}
return 0;
}
if( edit_autos )
shift_keyframes(start, end - start);
if( edit_plugins )
- shift_effects(start, end - start, edit_autos);
+ shift_effects(start, end - start, edit_autos, 0);
edits->optimize();
return 0;
}