fix restore of master send from XML

This commit is contained in:
Paul Davis 2024-04-02 22:43:33 -06:00
parent 5e0f7a0e42
commit dd9ac897e9
2 changed files with 21 additions and 4 deletions

View File

@ -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;

View File

@ -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 */