diff options
Diffstat (limited to 'libs/ardour/jack_audio_port.cc')
-rw-r--r-- | libs/ardour/jack_audio_port.cc | 20 |
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; } + |