- if( autos_follow_edits ) {
- for( int i=0; i<AUTOMATION_TOTAL; ++i ) {
- Autos *old_autos = old_track->automation->autos[i];
- Autos *new_autos = new_track->automation->autos[i];
- Auto *old_auto = old_autos ? old_autos->first : 0;
- Auto *new_auto = new_autos ? new_autos->first : 0;
- while( old_auto && new_auto ) {
- int64_t auto_pos = old_auto->position;
- if( old_speed || new_speed ) {
- double orig_pos = old_speeds->automation_integral(0, auto_pos, PLAY_FORWARD);
- auto_pos = new_track->frame_align(new_speeds->speed_position(orig_pos), 1);
- result = 1;
- }
- new_auto->position = auto_pos;
- old_auto = old_auto->next;
- new_auto = new_auto->next;
- }
- }
- }
- if( !plugins_follow_edits ) continue;
- int old_size = old_track->plugin_set.size();
- int new_size = new_track->plugin_set.size();
- int n = bmin(old_size, new_size);
- for( int i=0; i<n; ++i ) {
- PluginSet *old_plugin_set = old_track->plugin_set[i];
- Plugin *old_plugin = (Plugin *)(old_plugin_set ? old_plugin_set->first : 0);
- PluginSet *new_plugin_set = new_track->plugin_set[i];
- Plugin *new_plugin = (Plugin *)(new_plugin_set ? new_plugin_set->first : 0);
- while( old_plugin && new_plugin ) {
- int64_t plugin_start = old_plugin->startproject;
- int64_t plugin_end = plugin_start + old_plugin->length;
- if( old_speed || new_speed ) {
+ if( edit_plugins ) {
+ int old_size = old_track->plugin_set.size();
+ int new_size = new_track->plugin_set.size();
+ int n = bmin(old_size, new_size);
+ for( int i=0; i<n; ++i ) {
+ PluginSet *old_plugin_set = old_track->plugin_set[i];
+ if( !old_plugin_set ) continue;
+ PluginSet *new_plugin_set = new_track->plugin_set[i];
+ if( !new_plugin_set ) continue;
+ Plugin *old_plugin = (Plugin *)old_plugin_set->first;
+ for( ; old_plugin; old_plugin=(Plugin *)old_plugin->next ) {
+ Plugin *new_plugin = (Plugin *)new_plugin_set->get_edit(old_plugin->orig_id);
+ if( !new_plugin ) continue;
+ int64_t plugin_start = old_plugin->startproject;
+ int64_t plugin_end = plugin_start + old_plugin->length;