boost::shared_ptr<VCA> vca (group_master.lock());
if (vca) {
- r->assign (vca, false);
+ r->assign (vca);
}
_session.set_dirty ();
node->set_property ("id", id());
node->set_property ("rgba", _rgba);
node->set_property ("used-to-share-gain", _used_to_share_gain);
+ if (_subgroup_bus) {
+ node->set_property ("subgroup-bus", _subgroup_bus->id ());
+ }
add_properties (*node);
}
}
+ PBD::ID subgroup_id (0);
+ if (node.get_property ("subgroup-bus", subgroup_id)) {
+ boost::shared_ptr<Route> r = _session.route_by_id (subgroup_id);
+ if (r) {
+ _subgroup_bus = r;
+ }
+ }
+
if (_group_master_number.val() > 0) {
boost::shared_ptr<VCA> vca = _session.vca_manager().vca_by_number (_group_master_number.val());
if (vca) {
return;
}
- subgroup_bus = rl.front();
- subgroup_bus->set_name (_name);
+ _subgroup_bus = rl.front();
+ _subgroup_bus->set_name (_name);
if (aux) {
- _session.add_internal_sends (subgroup_bus, placement, routes);
+ _session.add_internal_sends (_subgroup_bus, placement, routes);
} else {
- boost::shared_ptr<Bundle> bundle = subgroup_bus->input()->bundle ();
+ boost::shared_ptr<Bundle> bundle = _subgroup_bus->input()->bundle ();
for (RouteList::iterator i = routes->begin(); i != routes->end(); ++i) {
(*i)->output()->disconnect (this);
void
RouteGroup::destroy_subgroup ()
{
- if (!subgroup_bus) {
+ if (!_subgroup_bus) {
return;
}
/* XXX find a new bundle to connect to */
}
- _session.remove_route (subgroup_bus);
- subgroup_bus.reset ();
+ _session.remove_route (_subgroup_bus);
+ _subgroup_bus.reset ();
}
bool
RouteGroup::has_subgroup() const
{
- return subgroup_bus != 0;
+ return _subgroup_bus != 0;
}
bool
}
for (RouteList::iterator r = routes->begin(); r != routes->end(); ++r) {
- (*r)->assign (master, false);
+ (*r)->assign (master);
}
group_master = master;