mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 03:36:32 +01:00
Refactor port change handling part of PA Backend process function into new method
This commit is contained in:
parent
684701427e
commit
7b23f80b03
2 changed files with 35 additions and 29 deletions
|
|
@ -1601,6 +1601,24 @@ PortAudioBackend::main_blocking_process_thread ()
|
|||
Glib::usleep (100); // don't hog cpu
|
||||
}
|
||||
|
||||
process_port_connection_changes();
|
||||
}
|
||||
_pcmio->close_stream();
|
||||
_active = false;
|
||||
if (_run) {
|
||||
engine.halted_callback(get_error_string(AudioDeviceIOError).c_str());
|
||||
}
|
||||
|
||||
#ifdef USE_MMCSS_THREAD_PRIORITIES
|
||||
mmcss::revert_thread_characteristics (task_handle);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
PortAudioBackend::process_port_connection_changes ()
|
||||
{
|
||||
bool connections_changed = false;
|
||||
bool ports_changed = false;
|
||||
if (!pthread_mutex_trylock (&_port_callback_mutex)) {
|
||||
|
|
@ -1629,22 +1647,8 @@ PortAudioBackend::main_blocking_process_thread ()
|
|||
engine.latency_callback(false);
|
||||
engine.latency_callback(true);
|
||||
}
|
||||
|
||||
}
|
||||
_pcmio->close_stream();
|
||||
_active = false;
|
||||
if (_run) {
|
||||
engine.halted_callback(get_error_string(AudioDeviceIOError).c_str());
|
||||
}
|
||||
|
||||
#ifdef USE_MMCSS_THREAD_PRIORITIES
|
||||
mmcss::revert_thread_characteristics (task_handle);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static boost::shared_ptr<PortAudioBackend> _instance;
|
||||
|
|
|
|||
|
|
@ -323,6 +323,8 @@ class PortAudioBackend : public AudioBackend {
|
|||
bool start_blocking_process_thread ();
|
||||
bool stop_blocking_process_thread ();
|
||||
|
||||
void process_port_connection_changes ();
|
||||
|
||||
private:
|
||||
std::string _instance_name;
|
||||
PortAudioIO *_pcmio;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue