when a session goes away, deliver silence to all current ports to prevent a horrible screech during cleanup/destruction
git-svn-id: svn://localhost/ardour2/branches/3.0@12806 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
b8d724d57a
commit
83941f9988
|
@ -475,21 +475,30 @@ AudioEngine::process_callback (pframes_t nframes)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (_session == 0) {
|
||||
if (!_freewheeling) {
|
||||
MIDI::Manager::instance()->cycle_start(nframes);
|
||||
MIDI::Manager::instance()->cycle_end();
|
||||
}
|
||||
_processed_frames = next_processed_frames;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (session_remove_pending) {
|
||||
/* perform the actual session removal */
|
||||
_session = 0;
|
||||
session_remove_pending = false;
|
||||
session_removed.signal();
|
||||
}
|
||||
|
||||
if (_session == 0) {
|
||||
if (!_freewheeling) {
|
||||
MIDI::Manager::instance()->cycle_start(nframes);
|
||||
MIDI::Manager::instance()->cycle_end();
|
||||
|
||||
boost::shared_ptr<Ports> p = ports.reader();
|
||||
|
||||
for (Ports::iterator i = p->begin(); i != p->end(); ++i) {
|
||||
|
||||
if (i->second->sends_output()) {
|
||||
i->second->get_buffer (nframes).silence (nframes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_processed_frames = next_processed_frames;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user