diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-06-13 15:52:31 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-06-13 15:52:31 +0000 |
commit | 37e9a53180877db90e3d9e88ac916a2ed0473ae3 (patch) | |
tree | 2a0dafa021931b1c49903b692cdc1593e81bafee /libs/ardour/delivery.cc | |
parent | 961e25d90e94f0139f834913ffbac3c9886b7113 (diff) |
remove Pannable/PanShell from the Monitor bus
git-svn-id: svn://localhost/ardour2/branches/3.0@9720 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/delivery.cc')
-rw-r--r-- | libs/ardour/delivery.cc | 56 |
1 files changed, 39 insertions, 17 deletions
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> io, boost::shared_ptr<Pann , no_panner_reset (false) , scnt (0) { - _panshell = boost::shared_ptr<PannerShell>(new PannerShell (_name, _session, pannable)); + if (pannable) { + _panshell = boost::shared_ptr<PannerShell>(new PannerShell (_name, _session, pannable)); + } + _display_to_user = false; if (_output) { @@ -86,7 +89,10 @@ Delivery::Delivery (Session& s, boost::shared_ptr<Pannable> pannable, boost::sha , no_panner_reset (false) , scnt (0) { - _panshell = boost::shared_ptr<PannerShell>(new PannerShell (_name, _session, pannable)); + if (pannable) { + _panshell = boost::shared_ptr<PannerShell>(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<Panner> Delivery::panner () const { - return _panshell->panner(); + if (_panshell) { + return _panshell->panner(); + } else { + return boost::shared_ptr<Panner>(); + } } |