Replace RouteGroup's collection of apply() methods with a single one.
git-svn-id: svn://localhost/ardour2/branches/3.0@8485 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
@@ -577,7 +577,7 @@ GainMeterBase::set_mix_group_meter_point (Route& route, MeterPoint mp)
|
||||
RouteGroup* mix_group;
|
||||
|
||||
if((mix_group = route.route_group()) != 0){
|
||||
mix_group->apply (&Route::set_meter_point, mp);
|
||||
mix_group->foreach_route (boost::bind (&Route::set_meter_point, _1, mp));
|
||||
} else {
|
||||
route.set_meter_point (mp);
|
||||
}
|
||||
|
||||
@@ -92,33 +92,10 @@ class RouteGroup : public SessionObject
|
||||
int add (boost::shared_ptr<Route>);
|
||||
int remove (boost::shared_ptr<Route>);
|
||||
|
||||
void apply (void (Route::*func)(void *), void *src) {
|
||||
template<typename Function>
|
||||
void foreach_route (Function f) {
|
||||
for (RouteList::iterator i = routes->begin(); i != routes->end(); ++i) {
|
||||
((*i).get()->*func)(src);
|
||||
}
|
||||
}
|
||||
|
||||
void apply (void (Route::*func)()) {
|
||||
for (RouteList::iterator i = routes->begin(); i != routes->end(); ++i) {
|
||||
((*i).get()->*func)();
|
||||
}
|
||||
}
|
||||
|
||||
template<class T> void apply (void (Route::*func)(T, void *), T val, void *src) {
|
||||
for (RouteList::iterator i = routes->begin(); i != routes->end(); ++i) {
|
||||
((*i).get()->*func)(val, src);
|
||||
}
|
||||
}
|
||||
|
||||
template<class T> void apply (void (Route::*func)(T), T val) {
|
||||
for (RouteList::iterator i = routes->begin(); i != routes->end(); ++i) {
|
||||
((*i).get()->*func)(val);
|
||||
}
|
||||
}
|
||||
|
||||
template<class T> void foreach_route (T *obj, void (T::*func)(Route&)) {
|
||||
for (RouteList::iterator i = routes->begin(); i != routes->end(); ++i) {
|
||||
(obj->*func)(**i);
|
||||
f (i->get());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -353,11 +353,11 @@ Route::set_gain (gain_t val, void *src)
|
||||
}
|
||||
}
|
||||
|
||||
_route_group->apply (&Route::inc_gain, factor, _route_group);
|
||||
_route_group->foreach_route (boost::bind (&Route::inc_gain, _1, factor, _route_group));
|
||||
|
||||
} else {
|
||||
|
||||
_route_group->apply (&Route::set_gain, val, _route_group);
|
||||
_route_group->foreach_route (boost::bind (&Route::set_gain, _1, val, _route_group));
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -614,7 +614,7 @@ Route::set_solo (bool yn, void *src)
|
||||
}
|
||||
|
||||
if (_route_group && src != _route_group && _route_group->is_active() && _route_group->is_solo()) {
|
||||
_route_group->apply (&Route::set_solo, yn, _route_group);
|
||||
_route_group->foreach_route (boost::bind (&Route::set_solo, _1, yn, _route_group));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -724,7 +724,7 @@ Route::set_solo_isolated (bool yn, void *src)
|
||||
}
|
||||
|
||||
if (_route_group && src != _route_group && _route_group->is_active() && _route_group->is_solo()) {
|
||||
_route_group->apply (&Route::set_solo_isolated, yn, _route_group);
|
||||
_route_group->foreach_route (boost::bind (&Route::set_solo_isolated, _1, yn, _route_group));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -792,7 +792,7 @@ void
|
||||
Route::set_mute (bool yn, void *src)
|
||||
{
|
||||
if (_route_group && src != _route_group && _route_group->is_active() && _route_group->is_mute()) {
|
||||
_route_group->apply (&Route::set_mute, yn, _route_group);
|
||||
_route_group->foreach_route (boost::bind (&Route::set_mute, _1, yn, _route_group));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user