From: Paul Davis Date: Mon, 13 Jun 2011 15:52:31 +0000 (+0000) Subject: remove Pannable/PanShell from the Monitor bus X-Git-Tag: 3.0-alpha10~199 X-Git-Url: https://main.carlh.net/gitweb/?p=ardour.git;a=commitdiff_plain;h=37e9a53180877db90e3d9e88ac916a2ed0473ae3 remove Pannable/PanShell from the Monitor bus git-svn-id: svn://localhost/ardour2/branches/3.0@9720 d708f5d6-7413-0410-9779-e7cbd77b26cf --- diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc index c192a22184..44782650c1 100644 --- a/libs/ardour/delivery.cc +++ b/libs/ardour/delivery.cc @@ -64,7 +64,10 @@ Delivery::Delivery (Session& s, boost::shared_ptr io, boost::shared_ptr(new PannerShell (_name, _session, pannable)); + if (pannable) { + _panshell = boost::shared_ptr(new PannerShell (_name, _session, pannable)); + } + _display_to_user = false; if (_output) { @@ -86,7 +89,10 @@ Delivery::Delivery (Session& s, boost::shared_ptr pannable, boost::sha , no_panner_reset (false) , scnt (0) { - _panshell = boost::shared_ptr(new PannerShell (_name, _session, pannable)); + if (pannable) { + _panshell = boost::shared_ptr(new PannerShell (_name, _session, pannable)); + } + _display_to_user = false; if (_output) { @@ -280,7 +286,9 @@ Delivery::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, pf Amp::apply_simple_gain (bufs, nframes, tgain); } - panner = _panshell->panner(); + if (_panshell) { + panner = _panshell->panner(); + } #if 0 if (_session.transport_rolling()) { @@ -339,7 +347,10 @@ Delivery::state (bool full_state) } node.add_property("role", enum_2_string(_role)); - node.add_child_nocopy (_panshell->state (full_state)); + + if (_panshell) { + node.add_child_nocopy (_panshell->state (full_state)); + } return node; } @@ -362,7 +373,7 @@ Delivery::set_state (const XMLNode& node, int version) XMLNode* pan_node = node.child (X_("Panner")); - if (pan_node) { + if (pan_node && _panshell) { _panshell->set_state (*pan_node, version); } @@ -390,11 +401,13 @@ Delivery::reset_panner () ntargets = _configured_output.n_audio(); } - _panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, ntargets)); - - if (_role == Main) { - _panshell->pannable()->set_panner (_panshell->panner()); - } + if (_panshell) { + _panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, ntargets)); + + if (_role == Main) { + _panshell->pannable()->set_panner (_panshell->panner()); + } + } } } else { @@ -414,11 +427,13 @@ Delivery::panners_became_legal () ntargets = _configured_output.n_audio(); } - _panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, ntargets)); - - if (_role == Main) { - _panshell->pannable()->set_panner (_panshell->panner()); - } + if (_panshell) { + _panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, ntargets)); + + if (_role == Main) { + _panshell->pannable()->set_panner (_panshell->panner()); + } + } panner_legal_c.disconnect (); return 0; @@ -468,7 +483,10 @@ void Delivery::transport_stopped (framepos_t now) { Processor::transport_stopped (now); - _panshell->pannable()->transport_stopped (now); + + if (_panshell) { + _panshell->pannable()->transport_stopped (now); + } if (_output) { PortSet& ports (_output->ports()); @@ -574,5 +592,9 @@ Delivery::output_changed (IOChange change, void* /*src*/) boost::shared_ptr Delivery::panner () const { - return _panshell->panner(); + if (_panshell) { + return _panshell->panner(); + } else { + return boost::shared_ptr(); + } } diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 459ea67480..111c22cfd4 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -125,11 +125,13 @@ Route::init () /* panning */ - Pannable* p = new Pannable (_session); + if (!(_flags & Route::MonitorOut)) { + Pannable* p = new Pannable (_session); #ifdef BOOST_SP_ENABLE_DEBUG_HOOKS - boost_debug_shared_ptr_mark_interesting (p, "Pannable"); + boost_debug_shared_ptr_mark_interesting (p, "Pannable"); #endif - _pannable.reset (p); + _pannable.reset (p); + } /* input and output objects */ @@ -1843,7 +1845,9 @@ Route::state(bool full_state) cmt->add_content (_comment); } - node->add_child_nocopy (_pannable->state (full_state)); + if (_pannable) { + node->add_child_nocopy (_pannable->state (full_state)); + } for (i = _processors.begin(); i != _processors.end(); ++i) { node->add_child_nocopy((*i)->state (full_state)); @@ -1926,7 +1930,11 @@ Route::_set_state (const XMLNode& node, int version, bool /*call_base*/) if (child->name() == X_("Pannable")) { - _pannable->set_state (*child, version); + if (_pannable) { + _pannable->set_state (*child, version); + } else { + warning << string_compose (_("Pannable state found for route (%1) without a panner!"), name()) << endmsg; + } } } @@ -3064,7 +3072,10 @@ Route::set_latency_compensation (framecnt_t longest_session_latency) void Route::automation_snapshot (framepos_t now, bool force) { - _pannable->automation_snapshot (now, force); + if (_pannable) { + _pannable->automation_snapshot (now, force); + } + for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) { (*i)->automation_snapshot (now, force); } @@ -3204,7 +3215,7 @@ Route::shift (framepos_t pos, framecnt_t frames) } /* pan automation */ - { + if (_pannable) { ControlSet::Controls& c (_pannable->controls()); for (ControlSet::Controls::const_iterator ci = c.begin(); ci != c.end(); ++ci) {