diff options
author | Robin Gareus <robin@gareus.org> | 2016-05-03 20:12:58 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-05-03 20:12:58 +0200 |
commit | e48da9d5d0e64230eba852bbb9338fc074e0c96a (patch) | |
tree | 1d19678778a9c1399927a4568dcf7d76cc922087 /libs | |
parent | abb3c0f2201792c21455d6f24f180d53ebbc7fae (diff) |
tweak cases where pin-mapping is reset & always sanitize map
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/plugin_insert.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc index 7aed4cfa0b..7ae6eb6a0c 100644 --- a/libs/ardour/plugin_insert.cc +++ b/libs/ardour/plugin_insert.cc @@ -1477,13 +1477,15 @@ PluginInsert::configure_io (ChanCount in, ChanCount out) break; } - DEBUG_TRACE (DEBUG::ChanMapping, string_compose ("%1: cfg:%2 state:%3 chn-in:%4 chn-out:%5 match:%6 size-in:%7 size-out:%8\n", + DEBUG_TRACE (DEBUG::ChanMapping, string_compose ("%1: cfg:%2 state:%3 chn-in:%4 chn-out:%5 inpin:%6 match:%7 cust:%8 size-in:%9 size-out:%10\n", name (), _configured ? "Y" : "N", _maps_from_state ? "Y" : "N", old_in == in ? "==" : "!=", old_out == out ? "==" : "!=", + old_pins == natural_input_streams () ? "==" : "!=", old_match.method == _match.method ? "==" : "!=", + old_match.custom_cfg == _match.custom_cfg ? "==" : "!=", _in_map.size() == get_count () ? "==" : "!=", _out_map.size() == get_count () ? "==" : "!=" )); @@ -1491,17 +1493,18 @@ PluginInsert::configure_io (ChanCount in, ChanCount out) bool mapping_changed = false; if (old_in == in && old_out == out && _configured + && old_pins == natural_input_streams () && old_match.method == _match.method + && old_match.custom_cfg == _match.custom_cfg && _in_map.size() == _out_map.size() && _in_map.size() == get_count () ) { assert (_maps_from_state == false); /* If the configuration has not changed, keep the mapping */ - if (old_internal != _configured_internal) { - mapping_changed = sanitize_maps (); - } + mapping_changed = sanitize_maps (); } else if (_match.custom_cfg && _configured) { assert (_maps_from_state == false); + /* don't touch the map in manual mode */ mapping_changed = sanitize_maps (); } else { #ifdef MIXBUS |