summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/TypedPort.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/engine/TypedPort.cpp')
-rw-r--r--src/libs/engine/TypedPort.cpp154
1 files changed, 0 insertions, 154 deletions
diff --git a/src/libs/engine/TypedPort.cpp b/src/libs/engine/TypedPort.cpp
deleted file mode 100644
index 0432ec4c..00000000
--- a/src/libs/engine/TypedPort.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 Dave Robillard <http://drobilla.net>
- *
- * Ingen is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option) any later
- * version.
- *
- * Ingen is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "TypedPort.h"
-#include <cmath>
-#include <cstdlib>
-#include <iostream>
-#include <cassert>
-#include <sys/mman.h>
-#include "util.h"
-#include "Node.h"
-#include "MidiMessage.h"
-
-namespace Ingen {
-
-
-/** Constructor for a Port.
- */
-template <typename T>
-TypedPort<T>::TypedPort(Node* parent, const string& name, size_t index, size_t poly, DataType type, size_t buffer_size)
-: Port(parent, name, index, poly, type, buffer_size)
-, _fixed_buffers(false)
-{
- allocate_buffers();
- clear_buffers();
-
- assert(_buffers.size() > 0);
-}
-template
-TypedPort<Sample>::TypedPort(Node* parent, const string& name, size_t index, size_t poly, DataType type, size_t buffer_size);
-template
-TypedPort<MidiMessage>::TypedPort(Node* parent, const string& name, size_t index, size_t poly, DataType type, size_t buffer_size);
-
-
-template <typename T>
-TypedPort<T>::~TypedPort()
-{
- for (size_t i=0; i < _poly; ++i)
- delete _buffers.at(i);
-}
-template TypedPort<Sample>::~TypedPort();
-template TypedPort<MidiMessage>::~TypedPort();
-
-
-/** Set the port's value for all voices.
- */
-template<>
-void
-TypedPort<Sample>::set_value(Sample val, size_t offset)
-{
- if (offset >= _buffer_size)
- offset = 0;
- assert(offset < _buffer_size);
-
- for (size_t v=0; v < _poly; ++v)
- _buffers.at(v)->set(val, offset);
-}
-
-/** Set the port's value for a specific voice.
- */
-template<>
-void
-TypedPort<Sample>::set_value(size_t voice, Sample val, size_t offset)
-{
- if (offset >= _buffer_size)
- offset = 0;
- assert(offset < _buffer_size);
-
- cerr << path() << " setting voice value " << val << endl;
-
- _buffers.at(voice)->set(val, offset);
-}
-
-
-template <typename T>
-void
-TypedPort<T>::allocate_buffers()
-{
- _buffers.alloc(_poly);
-
- for (size_t i=0; i < _poly; ++i)
- _buffers.at(i) = new Buffer<T>(_buffer_size);
-}
-template void TypedPort<Sample>::allocate_buffers();
-template void TypedPort<MidiMessage>::allocate_buffers();
-
-
-template <typename T>
-void
-TypedPort<T>::set_buffer_size(size_t size)
-{
- _buffer_size = size;
-
- for (size_t i=0; i < _poly; ++i)
- _buffers.at(i)->resize(size);
-
- connect_buffers();
-}
-template void TypedPort<Sample>::set_buffer_size(size_t size);
-template void TypedPort<MidiMessage>::set_buffer_size(size_t size);
-
-
-/** Update any changed buffers with the plugin this is a port on.
- *
- * This calls ie the LADSPA connect_port function when buffers have been changed
- * due to a connection, disconnection, resize, etc.
- */
-template <typename T>
-void
-TypedPort<T>::connect_buffers()
-{
- for (size_t i=0; i < _poly; ++i)
- TypedPort<T>::parent_node()->set_port_buffer(i, _index, _buffers.at(i)->data());
-}
-template void TypedPort<Sample>::connect_buffers();
-template void TypedPort<MidiMessage>::connect_buffers();
-
-
-template<typename T>
-void
-TypedPort<T>::clear_buffers()
-{
- for (size_t i=0; i < _poly; ++i)
- _buffers.at(i)->clear();
-}
-template void TypedPort<Sample>::clear_buffers();
-template void TypedPort<MidiMessage>::clear_buffers();
-
-
-template <typename T>
-void
-TypedPort<T>::process(SampleCount nframes, FrameTime start, FrameTime end)
-{
- for (size_t i=0; i < _poly; ++i)
- _buffers.at(i)->prepare(nframes);
-}
-
-
-} // namespace Ingen
-