implement set-send-gains-to-{track_level,zero,unity}

git-svn-id: svn://localhost/ardour2/branches/3.0@5401 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2009-07-21 12:05:44 +00:00
parent 20342cf264
commit 2093d59a96
3 changed files with 59 additions and 0 deletions

View File

@ -543,16 +543,19 @@ RouteUI::create_sends (Placement p)
void
RouteUI::set_sends_gain_from_track ()
{
_session.globally_set_send_gains_from_track (_route);
}
void
RouteUI::set_sends_gain_to_zero ()
{
_session.globally_set_send_gains_to_zero (_route);
}
void
RouteUI::set_sends_gain_to_unity ()
{
_session.globally_set_send_gains_to_unity (_route);
}
bool

View File

@ -741,6 +741,9 @@ class Session : public PBD::StatefulDestructible, public boost::noncopyable
boost::shared_ptr<Route> master_out() const { return _master_out; }
void globally_add_internal_sends (boost::shared_ptr<Route> dest, Placement p);
void globally_set_send_gains_from_track (boost::shared_ptr<Route> dest);
void globally_set_send_gains_to_zero (boost::shared_ptr<Route> dest);
void globally_set_send_gains_to_unity (boost::shared_ptr<Route> dest);
void add_internal_sends (boost::shared_ptr<Route> dest, Placement p, boost::shared_ptr<RouteList> senders);
static void set_disable_all_loaded_plugins (bool yn) {

View File

@ -43,6 +43,7 @@
#include "pbd/stacktrace.h"
#include "pbd/file_utils.h"
#include "ardour/amp.h"
#include "ardour/analyser.h"
#include "ardour/audio_buffer.h"
#include "ardour/audio_diskstream.h"
@ -2166,6 +2167,57 @@ Session::add_routes (RouteList& new_routes, bool save)
RouteAdded (new_routes); /* EMIT SIGNAL */
}
void
Session::globally_set_send_gains_to_zero (boost::shared_ptr<Route> dest)
{
boost::shared_ptr<RouteList> r = routes.reader ();
boost::shared_ptr<Send> s;
/* only tracks */
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
if (boost::dynamic_pointer_cast<Track>(*i)) {
if ((s = (*i)->internal_send_for (dest)) != 0) {
s->amp()->gain_control()->set_value (0.0);
}
}
}
}
void
Session::globally_set_send_gains_to_unity (boost::shared_ptr<Route> dest)
{
boost::shared_ptr<RouteList> r = routes.reader ();
boost::shared_ptr<Send> s;
/* only tracks */
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
if (boost::dynamic_pointer_cast<Track>(*i)) {
if ((s = (*i)->internal_send_for (dest)) != 0) {
s->amp()->gain_control()->set_value (1.0);
}
}
}
}
void
Session::globally_set_send_gains_from_track(boost::shared_ptr<Route> dest)
{
boost::shared_ptr<RouteList> r = routes.reader ();
boost::shared_ptr<Send> s;
/* only tracks */
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
if (boost::dynamic_pointer_cast<Track>(*i)) {
if ((s = (*i)->internal_send_for (dest)) != 0) {
s->amp()->gain_control()->set_value ((*i)->gain_control()->get_value());
}
}
}
}
void
Session::globally_add_internal_sends (boost::shared_ptr<Route> dest, Placement p)
{
@ -2183,6 +2235,7 @@ Session::globally_add_internal_sends (boost::shared_ptr<Route> dest, Placement p
add_internal_sends (dest, p, t);
}
void
Session::add_internal_sends (boost::shared_ptr<Route> dest, Placement p, boost::shared_ptr<RouteList> senders)
{