fix restore of master send from XML
This commit is contained in:
parent
5e0f7a0e42
commit
dd9ac897e9
|
@ -703,6 +703,8 @@ protected:
|
|||
std::shared_ptr<TriggerBox> _triggerbox;
|
||||
std::shared_ptr<InternalSend> _master_send;
|
||||
|
||||
void create_master_send ();
|
||||
|
||||
bool _volume_applies_to_output;
|
||||
|
||||
std::shared_ptr<DelayLine> _delayline;
|
||||
|
|
|
@ -3325,7 +3325,16 @@ Route::set_processor_state (XMLNode const& node, int version, XMLProperty const*
|
|||
|
||||
if (prop->value() == "intsend") {
|
||||
|
||||
processor.reset (new InternalSend (_session, _pannable, _mute_master, std::dynamic_pointer_cast<ARDOUR::Route>(shared_from_this()), std::shared_ptr<Route>(), Delivery::Aux, true));
|
||||
XMLProperty const * role_prop = node.property (X_("role"));
|
||||
if (role_prop && role_prop->value() == "MasterSend") {
|
||||
if (Profile->get_livetrax()) {
|
||||
create_master_send ();
|
||||
assert (_master_send);
|
||||
processor = _master_send;
|
||||
}
|
||||
} else {
|
||||
processor.reset (new InternalSend (_session, _pannable, _mute_master, std::dynamic_pointer_cast<ARDOUR::Route>(shared_from_this()), std::shared_ptr<Route>(), Delivery::Aux, true));
|
||||
}
|
||||
|
||||
} else if (prop->value() == "ladspa" || prop->value() == "Ladspa" ||
|
||||
prop->value() == "lv2" ||
|
||||
|
@ -3517,6 +3526,14 @@ Route::remove_monitor_send ()
|
|||
_monitor_send.reset ();
|
||||
}
|
||||
|
||||
void
|
||||
Route::create_master_send ()
|
||||
{
|
||||
_master_send.reset (new InternalSend (_session, pannable(), _mute_master, std::dynamic_pointer_cast<Route> (shared_from_this()), _session.master_out(), Delivery::MasterSend, false));
|
||||
_master_send->set_display_to_user (false);
|
||||
_master_send->gain_control()->set_value (dB_to_coefficient (0.0), Controllable::NoGroup);
|
||||
}
|
||||
|
||||
void
|
||||
Route::enable_master_send()
|
||||
{
|
||||
|
@ -3533,9 +3550,7 @@ Route::enable_master_send()
|
|||
/* make sure we have one */
|
||||
if (!_master_send) {
|
||||
/* An internal send with its own panner to deliver to the master bus */
|
||||
_master_send.reset (new InternalSend (_session, pannable(), _mute_master, std::dynamic_pointer_cast<Route> (shared_from_this()), _session.master_out(), Delivery::MasterSend, false));
|
||||
_master_send->set_display_to_user (false);
|
||||
_master_send->gain_control()->set_value (dB_to_coefficient (0.0), Controllable::NoGroup);
|
||||
create_master_send ();
|
||||
}
|
||||
|
||||
/* set it up */
|
||||
|
|
Loading…
Reference in New Issue