summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-05-03 20:12:58 +0200
committerRobin Gareus <robin@gareus.org>2016-05-03 20:12:58 +0200
commite48da9d5d0e64230eba852bbb9338fc074e0c96a (patch)
tree1d19678778a9c1399927a4568dcf7d76cc922087 /libs
parentabb3c0f2201792c21455d6f24f180d53ebbc7fae (diff)
tweak cases where pin-mapping is reset & always sanitize map
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/plugin_insert.cc11
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