From 3160904a5ef46d0ae0a66ef8c3e6fddcfff7ed83 Mon Sep 17 00:00:00 2001 From: Nikolaus Gullotta Date: Mon, 26 Aug 2019 14:31:09 -0500 Subject: [PATCH] only add vca or group state IFF it has not been added before --- libs/ardour/mixer_snapshot.cc | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/libs/ardour/mixer_snapshot.cc b/libs/ardour/mixer_snapshot.cc index c7b5c3d64f..30e04f749b 100644 --- a/libs/ardour/mixer_snapshot.cc +++ b/libs/ardour/mixer_snapshot.cc @@ -158,7 +158,17 @@ void MixerSnapshot::snap(boost::shared_ptr route) if(group) { XMLNode* group_node = copy.add_child(X_("Group")); group_node->set_property(X_("name"), group->name()); - snap(group); + + bool need_to_be_made = true; + for(vector::const_iterator it = group_states.begin(); it != group_states.end(); it++) { + if((*it).name == group->name()) { + need_to_be_made = false; + break; + } + } + if(need_to_be_made) { + snap(group); + } } XMLNode* slavable = find_named_node(copy, "Slavable"); @@ -173,9 +183,18 @@ void MixerSnapshot::snap(boost::shared_ptr route) boost::shared_ptr vca = _session->vca_manager().vca_by_number(i); if(vca) { + bool need_to_be_made = true; + for(vector::const_iterator it = vca_states.begin(); it != vca_states.end(); it++) { + if((*it).name == vca->name()) { + need_to_be_made = false; + break; + } + } + if(need_to_be_made) { + snap(vca); + } //we will need this for later recollection (*niter)->set_property(X_("name"), vca->name()); - snap(vca); } } }