Add a couple of missing attach_buffers() calls after _ports has been changed. I think this fixes #3856.
git-svn-id: svn://localhost/ardour2/branches/3.0@9858 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
84e10e93d1
commit
16db8b5972
|
@ -87,6 +87,8 @@ BufferSet::clear()
|
|||
/** Set up this BufferSet so that its data structures mirror a PortSet's buffers.
|
||||
* This is quite expensive and not RT-safe, so it should not be called in a process context;
|
||||
* get_jack_port_addresses() will fill in a structure set up by this method.
|
||||
*
|
||||
* XXX: this *is* called in a process context; I'm not sure quite what `should not' means above.
|
||||
*/
|
||||
void
|
||||
BufferSet::attach_buffers (PortSet& ports)
|
||||
|
|
|
@ -267,7 +267,7 @@ IO::remove_port (Port* port, void* src)
|
|||
|
||||
if (change.type != IOChange::NoChange) {
|
||||
changed (change, src);
|
||||
_session.set_dirty ();
|
||||
_buffers.attach_buffers (_ports);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -279,6 +279,8 @@ IO::remove_port (Port* port, void* src)
|
|||
return -1;
|
||||
}
|
||||
|
||||
_session.set_dirty ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -332,6 +334,7 @@ IO::add_port (string destination, void* src, DataType type)
|
|||
change.type = IOChange::ConfigurationChanged;
|
||||
change.after = _ports.count ();
|
||||
changed (change, src); /* EMIT SIGNAL */
|
||||
_buffers.attach_buffers (_ports);
|
||||
}
|
||||
|
||||
if (destination.length()) {
|
||||
|
@ -1531,6 +1534,7 @@ IO::connected_to (const string& str) const
|
|||
return false;
|
||||
}
|
||||
|
||||
/** Caller must hold process lock */
|
||||
void
|
||||
IO::process_input (boost::shared_ptr<Processor> proc, framepos_t start_frame, framepos_t end_frame, pframes_t nframes)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user