GUI handling for live latency-measurement
This commit is contained in:
parent
95f91d9dbd
commit
2529b9db96
@ -421,9 +421,9 @@ EngineControl::start_engine ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
EngineControl::stop_engine ()
|
EngineControl::stop_engine (bool for_latency)
|
||||||
{
|
{
|
||||||
if (ARDOUR::AudioEngine::instance()->stop()) {
|
if (ARDOUR::AudioEngine::instance()->stop(for_latency)) {
|
||||||
MessageDialog msg(*this,
|
MessageDialog msg(*this,
|
||||||
ARDOUR::AudioEngine::instance()->get_last_backend_error());
|
ARDOUR::AudioEngine::instance()->get_last_backend_error());
|
||||||
msg.run();
|
msg.run();
|
||||||
@ -2301,7 +2301,8 @@ EngineControl::push_state_to_backend (bool start)
|
|||||||
|
|
||||||
/* determine if we need to stop the backend before changing parameters */
|
/* determine if we need to stop the backend before changing parameters */
|
||||||
|
|
||||||
if (change_driver || change_device || change_channels || change_latency ||
|
if (change_driver || change_device || change_channels ||
|
||||||
|
(change_latency && !backend->can_change_systemic_latency_when_running ()) ||
|
||||||
(change_rate && !backend->can_change_sample_rate_when_running()) ||
|
(change_rate && !backend->can_change_sample_rate_when_running()) ||
|
||||||
change_midi ||
|
change_midi ||
|
||||||
(change_bufsize && !backend->can_change_buffer_size_when_running())) {
|
(change_bufsize && !backend->can_change_buffer_size_when_running())) {
|
||||||
@ -2379,6 +2380,10 @@ EngineControl::push_state_to_backend (bool start)
|
|||||||
} else {
|
} else {
|
||||||
backend->set_midi_device_enabled ((*p)->name, false);
|
backend->set_midi_device_enabled ((*p)->name, false);
|
||||||
}
|
}
|
||||||
|
if (backend->can_change_systemic_latency_when_running ()) {
|
||||||
|
backend->set_systemic_midi_input_latency ((*p)->name, 0);
|
||||||
|
backend->set_systemic_midi_output_latency ((*p)->name, 0);
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
backend->set_midi_device_enabled ((*p)->name, (*p)->enabled);
|
backend->set_midi_device_enabled ((*p)->name, (*p)->enabled);
|
||||||
@ -2630,8 +2635,7 @@ EngineControl::on_switch_page (GtkNotebookPage*, guint page_num)
|
|||||||
/* latency tab */
|
/* latency tab */
|
||||||
|
|
||||||
if (ARDOUR::AudioEngine::instance()->running()) {
|
if (ARDOUR::AudioEngine::instance()->running()) {
|
||||||
// TODO - mark as 'stopped for latency
|
stop_engine (true);
|
||||||
stop_engine ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -304,7 +304,7 @@ class EngineControl : public ArdourDialog, public PBD::ScopedConnectionList {
|
|||||||
void post_push ();
|
void post_push ();
|
||||||
void update_sensitivity ();
|
void update_sensitivity ();
|
||||||
bool start_engine ();
|
bool start_engine ();
|
||||||
bool stop_engine ();
|
bool stop_engine (bool for_latency = false);
|
||||||
|
|
||||||
/* latency measurement */
|
/* latency measurement */
|
||||||
void latency_button_clicked ();
|
void latency_button_clicked ();
|
||||||
|
Loading…
Reference in New Issue
Block a user