diff --git a/libs/backends/wavesaudio/waves_dataport.cc b/libs/backends/wavesaudio/waves_dataport.cc index d1dacc90eb..3bb76c4786 100644 --- a/libs/backends/wavesaudio/waves_dataport.cc +++ b/libs/backends/wavesaudio/waves_dataport.cc @@ -35,7 +35,7 @@ WavesDataPort::WavesDataPort (const std::string& inport_name, PortFlags inflags) WavesDataPort::~WavesDataPort () { - disconnect_all (); + _disconnect_all (); } @@ -115,14 +115,22 @@ void WavesDataPort::_disconnect (WavesDataPort *port, bool api_call) port->_disconnect (this, false); } - if (is_input() && _connections.empty()) - { + if (is_input() && _connections.empty()) { _wipe_buffer(); } } void WavesDataPort::disconnect_all () +{ + _disconnect_all (); + + if (is_input()) { + _wipe_buffer(); + } +} + +void WavesDataPort::_disconnect_all () { while (!_connections.empty ()) { _connections.back ()->_disconnect (this, false); @@ -130,7 +138,6 @@ void WavesDataPort::disconnect_all () } } - bool WavesDataPort::is_physically_connected () const { for (std::vector::const_iterator it = _connections.begin (); it != _connections.end (); ++it) { diff --git a/libs/backends/wavesaudio/waves_dataport.h b/libs/backends/wavesaudio/waves_dataport.h index 1b2f26f3f1..a5b8243bbe 100644 --- a/libs/backends/wavesaudio/waves_dataport.h +++ b/libs/backends/wavesaudio/waves_dataport.h @@ -106,6 +106,7 @@ private: std::vector _connections; void _connect (WavesDataPort* port, bool api_call); + void _disconnect_all (); void _disconnect (WavesDataPort* port, bool api_call); };