mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-05 05:05:43 +01:00
en/disable internal send+returns with tracks en/disable.
This commit is contained in:
parent
14c6dfab07
commit
f6aaa1660b
5 changed files with 23 additions and 13 deletions
|
|
@ -2111,8 +2111,8 @@ ProcessorBox::paste_processor_state (const XMLNodeList& nlist, boost::shared_ptr
|
|||
|
||||
boost::shared_ptr<Pannable> sendpan(new Pannable (*_session));
|
||||
XMLNode n (**niter);
|
||||
InternalSend* s = new InternalSend (*_session, sendpan, _route->mute_master(),
|
||||
boost::shared_ptr<Route>(), Delivery::Aux);
|
||||
InternalSend* s = new InternalSend (*_session, sendpan, _route->mute_master(),
|
||||
_route, boost::shared_ptr<Route>(), Delivery::Aux);
|
||||
|
||||
IOProcessor::prepare_for_reset (n, s->name());
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace ARDOUR {
|
|||
class LIBARDOUR_API InternalSend : public Send
|
||||
{
|
||||
public:
|
||||
InternalSend (Session&, boost::shared_ptr<Pannable>, boost::shared_ptr<MuteMaster>, boost::shared_ptr<Route> send_to, Delivery::Role role = Delivery::Aux, bool ignore_bitslot = false);
|
||||
InternalSend (Session&, boost::shared_ptr<Pannable>, boost::shared_ptr<MuteMaster>, boost::shared_ptr<Route> send_from, boost::shared_ptr<Route> send_to, Delivery::Role role = Delivery::Aux, bool ignore_bitslot = false);
|
||||
virtual ~InternalSend ();
|
||||
|
||||
std::string display_name() const;
|
||||
|
|
@ -46,6 +46,7 @@ class LIBARDOUR_API InternalSend : public Send
|
|||
bool configure_io (ChanCount in, ChanCount out);
|
||||
int set_block_size (pframes_t);
|
||||
|
||||
boost::shared_ptr<Route> source_route() const { return _send_from; }
|
||||
boost::shared_ptr<Route> target_route() const { return _send_to; }
|
||||
const PBD::ID& target_id() const { return _send_to_id; }
|
||||
|
||||
|
|
@ -60,6 +61,7 @@ class LIBARDOUR_API InternalSend : public Send
|
|||
|
||||
private:
|
||||
BufferSet mixbufs;
|
||||
boost::shared_ptr<Route> _send_from;
|
||||
boost::shared_ptr<Route> _send_to;
|
||||
PBD::ID _send_to_id;
|
||||
PBD::ScopedConnection connect_c;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "ardour/internal_return.h"
|
||||
#include "ardour/internal_send.h"
|
||||
#include "ardour/route.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace ARDOUR;
|
||||
|
|
@ -41,7 +42,7 @@ InternalReturn::run (BufferSet& bufs, framepos_t /*start_frame*/, framepos_t /*e
|
|||
|
||||
if (lm.locked ()) {
|
||||
for (list<InternalSend*>::iterator i = _sends.begin(); i != _sends.end(); ++i) {
|
||||
if ((*i)->active ()) {
|
||||
if ((*i)->active () && (!(*i)->source_route() || (*i)->source_route()->active())) {
|
||||
bufs.merge_from ((*i)->get_buffers(), nframes);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,14 +40,21 @@ 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, bool ignore_bitslot)
|
||||
InternalSend::InternalSend (Session& s,
|
||||
boost::shared_ptr<Pannable> p,
|
||||
boost::shared_ptr<MuteMaster> mm,
|
||||
boost::shared_ptr<Route> sendfrom,
|
||||
boost::shared_ptr<Route> sendto,
|
||||
Delivery::Role role,
|
||||
bool ignore_bitslot)
|
||||
: Send (s, p, mm, role, ignore_bitslot)
|
||||
, _send_from (sendfrom)
|
||||
{
|
||||
if (sendto) {
|
||||
if (use_target (sendto)) {
|
||||
throw failed_constructor();
|
||||
}
|
||||
}
|
||||
if (sendto) {
|
||||
if (use_target (sendto)) {
|
||||
throw failed_constructor();
|
||||
}
|
||||
}
|
||||
|
||||
init_gain ();
|
||||
|
||||
|
|
|
|||
|
|
@ -2643,7 +2643,7 @@ Route::set_processor_state (const XMLNode& node)
|
|||
|
||||
if (prop->value() == "intsend") {
|
||||
|
||||
processor.reset (new InternalSend (_session, _pannable, _mute_master, boost::shared_ptr<Route>(), Delivery::Aux, true));
|
||||
processor.reset (new InternalSend (_session, _pannable, _mute_master, boost::shared_ptr<ARDOUR::Route>(this), boost::shared_ptr<Route>(), Delivery::Aux, true));
|
||||
|
||||
} else if (prop->value() == "ladspa" || prop->value() == "Ladspa" ||
|
||||
prop->value() == "lv2" ||
|
||||
|
|
@ -2812,7 +2812,7 @@ Route::enable_monitor_send ()
|
|||
|
||||
/* make sure we have one */
|
||||
if (!_monitor_send) {
|
||||
_monitor_send.reset (new InternalSend (_session, _pannable, _mute_master, _session.monitor_out(), Delivery::Listen));
|
||||
_monitor_send.reset (new InternalSend (_session, _pannable, _mute_master, boost::shared_ptr<ARDOUR::Route>(this), _session.monitor_out(), Delivery::Listen));
|
||||
_monitor_send->set_display_to_user (false);
|
||||
}
|
||||
|
||||
|
|
@ -2850,7 +2850,7 @@ Route::add_aux_send (boost::shared_ptr<Route> route, boost::shared_ptr<Processor
|
|||
{
|
||||
Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ());
|
||||
boost::shared_ptr<Pannable> sendpan (new Pannable (_session));
|
||||
listener.reset (new InternalSend (_session, sendpan, _mute_master, route, Delivery::Aux));
|
||||
listener.reset (new InternalSend (_session, sendpan, _mute_master, boost::shared_ptr<ARDOUR::Route>(this), route, Delivery::Aux));
|
||||
}
|
||||
|
||||
add_processor (listener, before);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue