13
0

Fix all-tracks-soloed on session reload in PFL/AFL (#3791).

git-svn-id: svn://localhost/ardour2/branches/3.0@8929 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2011-02-22 21:15:07 +00:00
parent 458925dba5
commit 0146b3ab88

View File

@ -2363,7 +2363,6 @@ Route::set_processor_state (const XMLNode& node)
if (prop->value() == "intsend") {
processor.reset (new InternalSend (_session, _pannable, _mute_master, boost::shared_ptr<Route>(), Delivery::Role (0)));
} else if (prop->value() == "ladspa" || prop->value() == "Ladspa" ||
prop->value() == "lv2" ||
prop->value() == "vst" ||
@ -2389,6 +2388,14 @@ Route::set_processor_state (const XMLNode& node)
processor.reset (new UnknownProcessor (_session, **niter));
}
/* we have to note the monitor send here, otherwise a new one will be created
and the state of this one will be lost.
*/
boost::shared_ptr<InternalSend> isend = boost::dynamic_pointer_cast<InternalSend> (processor);
if (isend && isend->role() == Delivery::Listen) {
_monitor_send = isend;
}
/* it doesn't matter if invisible processors are added here, as they
will be sorted out by setup_invisible_processors () shortly.
*/
@ -2493,7 +2500,7 @@ Route::remove_send_from_internal_return (InternalSend* send)
}
}
/** Add a monitor send, if we don't already have one */
/** Add a monitor send (if we don't already have one) but don't activate it */
int
Route::listen_via_monitor ()
{
@ -2503,7 +2510,6 @@ Route::listen_via_monitor ()
/* make sure we have one */
if (!_monitor_send) {
_monitor_send.reset (new InternalSend (_session, _pannable, _mute_master, _session.monitor_out(), Delivery::Listen));
_monitor_send->activate ();
_monitor_send->set_display_to_user (false);
}