void
AudioPort::cycle_end (pframes_t nframes)
{
- if (sends_output() && !_buffer->written()) {
+ if (sends_output() && !_buffer->written() && _port_handle) {
+ if (!_buffer->data (0)) {
+ get_audio_buffer (nframes);
+ }
if (_buffer->capacity() >= nframes) {
_buffer->silence (nframes);
}
AudioPort::get_audio_buffer (pframes_t nframes)
{
/* caller must hold process lock */
+ assert (_port_handle);
_buffer->set_data ((Sample *) port_engine.get_buffer (_port_handle, _cycle_nframes) +
_global_port_buffer_offset + _port_buffer_offset, nframes);
return *_buffer;
}
-Sample*
+Sample*
AudioPort::engine_get_whole_audio_buffer ()
{
/* caller must hold process lock */
+ assert (_port_handle);
return (Sample *) port_engine.get_buffer (_port_handle, _cycle_nframes);
}