summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/DuplexPort.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-04-08 08:11:59 +0000
committerDavid Robillard <d@drobilla.net>2007-04-08 08:11:59 +0000
commitb59584b387c4b77d09ba4c791eb711597f67c8c8 (patch)
treecef114efdfc9807124b243c09547cfb9f6004a48 /src/libs/engine/DuplexPort.cpp
parente96c36c1a7abb062e36efc0ac95c35fedcef922e (diff)
downloadingen-b59584b387c4b77d09ba4c791eb711597f67c8c8.tar.gz
ingen-b59584b387c4b77d09ba4c791eb711597f67c8c8.tar.bz2
ingen-b59584b387c4b77d09ba4c791eb711597f67c8c8.zip
MIDI patching fixes (clean disconnecting).
git-svn-id: http://svn.drobilla.net/lad/ingen@416 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/DuplexPort.cpp')
-rw-r--r--src/libs/engine/DuplexPort.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/libs/engine/DuplexPort.cpp b/src/libs/engine/DuplexPort.cpp
index f4a71aae..c498c774 100644
--- a/src/libs/engine/DuplexPort.cpp
+++ b/src/libs/engine/DuplexPort.cpp
@@ -40,5 +40,31 @@ DuplexPort::DuplexPort(Node* parent, const string& name, size_t index, size_t po
}
+void
+DuplexPort::pre_process(SampleCount nframes, FrameTime start, FrameTime end)
+{
+ if (_is_output) {
+ for (size_t i=0; i < _poly; ++i)
+ _buffers.at(i)->prepare_write(nframes);
+ } else {
+ for (size_t i=0; i < _poly; ++i)
+ _buffers.at(i)->prepare_read(nframes);
+ }
+}
+
+
+void
+DuplexPort::post_process(SampleCount nframes, FrameTime start, FrameTime end)
+{
+ if (_is_output) {
+ for (size_t i=0; i < _poly; ++i)
+ _buffers.at(i)->prepare_read(nframes);
+ } else {
+ for (size_t i=0; i < _poly; ++i)
+ _buffers.at(i)->prepare_write(nframes);
+ }
+}
+
+
} // namespace Ingen