diff options
Diffstat (limited to 'libs/ardour/control_outputs.cc')
-rw-r--r-- | libs/ardour/control_outputs.cc | 55 |
1 files changed, 7 insertions, 48 deletions
diff --git a/libs/ardour/control_outputs.cc b/libs/ardour/control_outputs.cc index 2acd3c6d9e..8efb75145c 100644 --- a/libs/ardour/control_outputs.cc +++ b/libs/ardour/control_outputs.cc @@ -16,64 +16,23 @@ 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <cmath> -#include <algorithm> #include "ardour/control_outputs.h" -#include "ardour/audio_buffer.h" -#include "ardour/buffer_set.h" -#include "ardour/configuration.h" -#include "ardour/io.h" -#include "ardour/session.h" using namespace std; +using namespace ARDOUR; -namespace ARDOUR { +const std::string ControlOutputs::processor_type_name = "control-outputs"; -ControlOutputs::ControlOutputs(Session& s, IO* io) - : IOProcessor(s, io, "Control Outs") - , _deliver(true) +ControlOutputs::ControlOutputs(Session& s, IO* io, const std::string& name) + : Delivery (s, io, name) { } -bool -ControlOutputs::can_support_io_configuration (const ChanCount& in, ChanCount& out) const -{ - out = in; - return true; -} - -bool -ControlOutputs::configure_io (ChanCount in, ChanCount out) -{ - if (out != in) { // always 1:1 - return false; - } - - return Processor::configure_io (in, out); -} - -void -ControlOutputs::run_in_place (BufferSet& bufs, nframes_t start_frame, nframes_t end_frame, nframes_t nframes) -{ - if (_deliver) { - _io->deliver_output (bufs, start_frame, end_frame, nframes); - } else { - _io->silence (nframes); - } -} - -XMLNode& -ControlOutputs::state (bool full_state) -{ - return get_state(); -} - XMLNode& ControlOutputs::get_state() { - XMLNode* node = new XMLNode(state_node_name); - node->add_property("type", "control-outputs"); - return *node; + XMLNode& node (Delivery::get_state()); + node.add_property ("type", processor_type_name); + return node; } -} // namespace ARDOUR |