mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-19 21:26:26 +01:00
[Summary] Fixing bug: disconnect_all did not wipe input port’s buffer.
This commit is contained in:
parent
4e49f90be0
commit
33349b260d
2 changed files with 12 additions and 4 deletions
|
|
@ -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<WavesDataPort*>::const_iterator it = _connections.begin (); it != _connections.end (); ++it) {
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ private:
|
|||
std::vector<WavesDataPort*> _connections;
|
||||
|
||||
void _connect (WavesDataPort* port, bool api_call);
|
||||
void _disconnect_all ();
|
||||
void _disconnect (WavesDataPort* port, bool api_call);
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue