From: Robin Gareus Date: Tue, 1 Sep 2015 11:26:31 +0000 (+0200) Subject: Prepare option to disable Plugins completely X-Git-Tag: 4.3~583 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=531e71b4859787805024151dc8659118b0a9e868;p=ardour.git Prepare option to disable Plugins completely old behavior to only bypassed plugins is being renamed. --- diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index a0017717e2..f5ff34e72d 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -760,6 +760,12 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop static bool get_disable_all_loaded_plugins() { return _disable_all_loaded_plugins; } + static void set_bypass_all_loaded_plugins (bool yn) { + _bypass_all_loaded_plugins = yn; + } + static bool get_bypass_all_loaded_plugins() { + return _bypass_all_loaded_plugins; + } uint32_t next_send_id(); uint32_t next_aux_send_id(); @@ -1733,6 +1739,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop void set_history_depth (uint32_t depth); static bool _disable_all_loaded_plugins; + static bool _bypass_all_loaded_plugins; mutable bool have_looped; ///< Used in ::audible_frame(*) diff --git a/libs/ardour/processor.cc b/libs/ardour/processor.cc index caa240ce22..aca9ccaab1 100644 --- a/libs/ardour/processor.cc +++ b/libs/ardour/processor.cc @@ -225,7 +225,7 @@ Processor::set_state (const XMLNode& node, int version) } } - bool const a = string_is_affirmative (prop->value ()) && !_session.get_disable_all_loaded_plugins(); + bool const a = string_is_affirmative (prop->value ()) && !_session.get_bypass_all_loaded_plugins(); if (_active != a) { if (a) { activate (); diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 55e1be2662..f128fa3cf5 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -1239,7 +1239,7 @@ Route::add_processor (boost::shared_ptr processor, boost::shared_ptr< } - if (activation_allowed && (!_session.get_disable_all_loaded_plugins () || !processor->display_to_user ())) { + if (activation_allowed && (!_session.get_bypass_all_loaded_plugins () || !processor->display_to_user ())) { processor->activate (); } @@ -1292,7 +1292,11 @@ Route::add_processor_from_xml_2X (const XMLNode& node, int version) prop->value() == "lxvst" || prop->value() == "audiounit") { - processor.reset (new PluginInsert (_session)); + if (_session.get_disable_all_loaded_plugins ()) { + processor.reset (new UnknownProcessor (_session, node)); + } else { + processor.reset (new PluginInsert (_session)); + } } else { @@ -1319,7 +1323,7 @@ Route::add_processor_from_xml_2X (const XMLNode& node, int version) //A2 uses the "active" flag in the toplevel redirect node, not in the child plugin/IO if (i != children.end()) { if ((prop = (*i)->property (X_("active"))) != 0) { - if ( string_is_affirmative (prop->value()) && (!_session.get_disable_all_loaded_plugins () || !processor->display_to_user () ) ) + if ( string_is_affirmative (prop->value()) && (!_session.get_bypass_all_loaded_plugins () || !processor->display_to_user () ) ) processor->activate(); else processor->deactivate(); @@ -2866,8 +2870,11 @@ Route::set_processor_state (const XMLNode& node) prop->value() == "lxvst" || prop->value() == "audiounit") { - processor.reset (new PluginInsert(_session)); - + if (_session.get_disable_all_loaded_plugins ()) { + processor.reset (new UnknownProcessor (_session, **niter)); + } else { + processor.reset (new PluginInsert (_session)); + } } else if (prop->value() == "port") { processor.reset (new PortInsert (_session, _pannable, _mute_master)); @@ -4238,6 +4245,11 @@ Route::unknown_processors () const { list p; + if (_session.get_disable_all_loaded_plugins ()) { + // Do not list "missing plugins" if they are explicitly disabled + return p; + } + Glib::Threads::RWLock::ReaderLock lm (_processor_lock); for (ProcessorList::const_iterator i = _processors.begin(); i != _processors.end(); ++i) { if (boost::dynamic_pointer_cast (*i)) { diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 85a2c67f43..fae67b164b 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -118,6 +118,7 @@ using namespace ARDOUR; using namespace PBD; bool Session::_disable_all_loaded_plugins = false; +bool Session::_bypass_all_loaded_plugins = false; PBD::Signal1 Session::AudioEngineSetupRequired; PBD::Signal1 Session::Dialog;