Fix crash on out of range MIDI events (though this shouldn't be possible at all....
[ardour.git] / libs / ardour / jack_audio_port.cc
index 83a6875f7d9b82102697c17cd56a5ac1c10b5258..7ce00b8f11da24b96223418ac719c9d0fa253153 100644 (file)
 
 using namespace ARDOUR;
 
-JackAudioPort::JackAudioPort(const std::string& name, Flags 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;
 }
+