#include "ardour/internal_return.h"
#include "ardour/internal_send.h"
#include "ardour/meter.h"
-#include "ardour/panner.h"
#include "ardour/panner_shell.h"
#include "ardour/route.h"
#include "ardour/session.h"
#include "i18n.h"
+namespace ARDOUR { class MuteMaster; class Pannable; }
+
using namespace PBD;
using namespace ARDOUR;
using namespace std;
+PBD::Signal1<void, pframes_t> InternalSend::CycleStart;
+
InternalSend::InternalSend (Session& s, boost::shared_ptr<Pannable> p, boost::shared_ptr<MuteMaster> mm, boost::shared_ptr<Route> sendto, Delivery::Role role)
: Send (s, p, mm, role)
{
}
init_gain ();
+
+ CycleStart.connect_same_thread (*this, boost::bind (&InternalSend::cycle_start, this, _1));
}
InternalSend::~InternalSend ()
Amp::apply_simple_gain (mixbufs, nframes, tgain);
}
- // Can't automate gain for sends or returns yet because we need different buffers
- // so that we don't overwrite the main automation data for the route amp
- // _amp->setup_gain_automation (start_frame, end_frame, nframes);
-
+ _amp->set_gain_automation_buffer (_session.send_gain_automation_buffer ());
+ _amp->setup_gain_automation (start_frame, end_frame, nframes);
_amp->run (mixbufs, start_frame, end_frame, nframes, true);
/* consider metering */
boost::shared_ptr<Route> sendto;
if ((sendto = _session.route_by_id (_send_to_id)) == 0) {
- error << X_("cannot find route to connect to") << endmsg;
+ error << string_compose (_("%1 - cannot find any track/bus with the ID %2 to connect to"), display_name(), _send_to_id) << endmsg;
+ cerr << string_compose (_("%1 - cannot find any track/bus with the ID %2 to connect to"), display_name(), _send_to_id) << endl;
return -1;
}
InternalSend::display_name () const
{
if (_role == Aux) {
- return string_compose (X_("aux-%1"), _name);
+ return string_compose (X_("%1"), _name);
} else {
return _name;
}
}
void
-InternalSend::cycle_start (pframes_t nframes)
+InternalSend::cycle_start (pframes_t /*nframes*/)
{
- Delivery::cycle_start (nframes);
-
for (BufferSet::audio_iterator b = mixbufs.audio_begin(); b != mixbufs.audio_end(); ++b) {
- (*b).prepare ();
+ b->prepare ();
}
}