summaryrefslogtreecommitdiff
path: root/libs/ardour/jack_audio_port.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/jack_audio_port.cc')
-rw-r--r--libs/ardour/jack_audio_port.cc20
1 files changed, 17 insertions, 3 deletions
diff --git a/libs/ardour/jack_audio_port.cc b/libs/ardour/jack_audio_port.cc
index e4bdcb5d72..3a0b34ab19 100644
--- a/libs/ardour/jack_audio_port.cc
+++ b/libs/ardour/jack_audio_port.cc
@@ -22,10 +22,23 @@
using namespace ARDOUR;
-JackAudioPort::JackAudioPort(const std::string& name, Flags flgs)
- : Port (DataType::AUDIO, flgs), AudioPort (flgs), JackPort (name, DataType::AUDIO, flgs)
+JackAudioPort::JackAudioPort (const std::string& name, Flags flgs, AudioBuffer* buf)
+ : Port (name, flgs)
+ , JackPort (name, DataType::AUDIO, flgs)
+ , BaseAudioPort (name, flgs)
{
+ if (buf) {
+ _buffer = buf;
+ _own_buffer = false;
+
+ } else {
+
+ /* data space will be provided by JACK */
+
+ _buffer = new AudioBuffer (0);
+ _own_buffer = true;
+ }
}
int
@@ -34,8 +47,9 @@ JackAudioPort::reestablish ()
int ret = JackPort::reestablish ();
if (ret == 0 && _flags & IsOutput) {
- _buffer.silence (jack_get_buffer_size (engine->jack()));
+ _buffer->clear ();
}
return ret;
}
+