X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fdelivery.cc;h=79c44ce94a0efa8bd6d9e7b80ea62fe33c9f9212;hb=be6d6231fbe56875815c81999e1fc41db0e21a23;hp=3b95c5ee3d521918e22e2cd424202ab19a071316;hpb=36ec03358fd3f124217416f3db67f9f1aba72aa9;p=ardour.git diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc index 3b95c5ee3d..79c44ce94a 100644 --- a/libs/ardour/delivery.cc +++ b/libs/ardour/delivery.cc @@ -22,32 +22,27 @@ #include "pbd/enumwriter.h" #include "pbd/convert.h" -#include "ardour/midi_buffer.h" - -#include "ardour/debug.h" -#include "ardour/delivery.h" -#include "ardour/audio_buffer.h" -#include "ardour/audio_port.h" #include "ardour/amp.h" +#include "ardour/audioengine.h" #include "ardour/buffer_set.h" -#include "ardour/configuration.h" +#include "ardour/debug.h" +#include "ardour/delivery.h" #include "ardour/io.h" -#include "ardour/meter.h" #include "ardour/mute_master.h" -#include "ardour/panner.h" -#include "ardour/panner_shell.h" #include "ardour/pannable.h" +#include "ardour/panner_shell.h" #include "ardour/port.h" #include "ardour/session.h" -#include "ardour/audioengine.h" #include "i18n.h" +namespace ARDOUR { class Panner; } + using namespace std; using namespace PBD; using namespace ARDOUR; -PBD::Signal0 Delivery::PannersLegal; +PBD::Signal0 Delivery::PannersLegal; bool Delivery::panners_legal = false; /* deliver to an existing IO object */ @@ -76,7 +71,7 @@ Delivery::Delivery (Session& s, boost::shared_ptr io, boost::shared_ptr pannable, boost::shared_ptr mm, const string& name, Role r) - : IOProcessor(s, false, (role_requires_output_ports (r) ? true : false), name) + : IOProcessor(s, false, (role_requires_output_ports (r) ? true : false), name, "", DataType::AUDIO, (r == Send)) , _role (r) , _output_buffers (new BufferSet()) , _current_gain (1.0) @@ -129,7 +124,7 @@ Delivery::display_name () const } bool -Delivery::can_support_io_configuration (const ChanCount& in, ChanCount& out) const +Delivery::can_support_io_configuration (const ChanCount& in, ChanCount& out) { if (_role == Main) { @@ -184,7 +179,10 @@ Delivery::can_support_io_configuration (const ChanCount& in, ChanCount& out) con bool Delivery::configure_io (ChanCount in, ChanCount out) { - assert (!AudioEngine::instance()->process_lock().trylock()); +#ifndef NDEBUG + bool r = AudioEngine::instance()->process_lock().trylock(); + assert (!r && "trylock inside Delivery::configure_io"); +#endif /* check configuration by comparison with our I/O port configuration, if appropriate. see ::can_support_io_configuration() for comments @@ -247,7 +245,7 @@ Delivery::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, pf processing pathway that wants to use this->output_buffers() for some reason. */ - output_buffers().get_jack_port_addresses (ports, nframes); + output_buffers().get_backend_port_addresses (ports, nframes); // this Delivery processor is not a derived type, and thus we assume // we really can modify the buffers passed in (it is almost certainly @@ -402,7 +400,7 @@ Delivery::reset_panner () } } -int +void Delivery::panners_became_legal () { if (_panshell) { @@ -414,7 +412,6 @@ Delivery::panners_became_legal () } panner_legal_c.disconnect (); - return 0; } void @@ -438,15 +435,15 @@ Delivery::disable_panners () return 0; } -int +void Delivery::reset_panners () { panners_legal = true; - return *PannersLegal (); + PannersLegal (); } void -Delivery::flush_buffers (framecnt_t nframes, framepos_t time) +Delivery::flush_buffers (framecnt_t nframes) { /* io_lock, not taken: function must be called from Session::process() calltree */ @@ -457,7 +454,7 @@ Delivery::flush_buffers (framecnt_t nframes, framepos_t time) PortSet& ports (_output->ports()); for (PortSet::iterator i = ports.begin(); i != ports.end(); ++i) { - i->flush_buffers (nframes, time); + i->flush_buffers (nframes); } }