if (!_have_control) {
// set settings from backend that we do have control over
+ set_buffersize_popdown_strings ();
set_active_text_if_present (buffer_size_combo, bufsize_as_string (backend->buffer_size()));
}
if (!s.empty()) {
if (ARDOUR::AudioEngine::instance()->running()) {
sample_rate_combo.set_active_text (rate_as_string (backend->sample_rate()));
- }
- else if (desired.empty ()) {
+ } else if (ARDOUR_UI::instance()->session_loaded) {
+ float active_sr = ARDOUR_UI::instance()->the_session()->nominal_sample_rate ();
+
+ if (std::find (sr.begin (), sr.end (), active_sr) == sr.end ()) {
+ active_sr = sr.front ();
+ }
+
+ sample_rate_combo.set_active_text (rate_as_string (active_sr));
+ } else if (desired.empty ()) {
float new_active_sr = backend->default_sample_rate ();
if (std::find (sr.begin (), sr.end (), new_active_sr) == sr.end ()) {
} else {
sample_rate_combo.set_active_text (desired);
}
-
}
update_sensitivity ();
}
DEBUG_ECONTROL ("Restoring saved state");
PBD::Unwinder<uint32_t> protect_ignore_changes (ignore_changes, ignore_changes + 1);
- if (!_desired_sample_rate) {
+ if (0 == _desired_sample_rate && sample_rate_combo.get_sensitive ()) {
sample_rate_combo.set_active_text (rate_as_string (state->sample_rate));
}
set_active_text_if_present (buffer_size_combo, bufsize_as_string (state->buffer_size));
device_combo.set_active_text (state->device);
input_device_combo.set_active_text (state->input_device);
output_device_combo.set_active_text (state->output_device);
- if (!_desired_sample_rate) {
+ if (0 == _desired_sample_rate && sample_rate_combo.get_sensitive ()) {
sample_rate_combo.set_active_text (rate_as_string (state->sample_rate));
}
set_active_text_if_present (buffer_size_combo, bufsize_as_string (state->buffer_size));
}
char buf[256];
- ARDOUR::framecnt_t const sample_rate = ARDOUR::AudioEngine::instance()->sample_rate();
+ ARDOUR::samplecnt_t const sample_rate = ARDOUR::AudioEngine::instance()->sample_rate();
if (sample_rate == 0) {
lm_results.set_markup (string_compose (results_markup, _("Disconnected from audio engine")));
return false;
}
- int frames_total = mtdm->del();
- int extra = frames_total - ARDOUR::AudioEngine::instance()->latency_signal_delay();
+ int samples_total = mtdm->del();
+ int extra = samples_total - ARDOUR::AudioEngine::instance()->latency_signal_delay();
snprintf (buf, sizeof (buf), "%s%d samples (%.3lf ms)\n%s%d samples (%.3lf ms)",
_("Detected roundtrip latency: "),
- frames_total, frames_total * 1000.0f/sample_rate,
+ samples_total, samples_total * 1000.0f/sample_rate,
_("Systemic latency: "),
extra, extra * 1000.0f/sample_rate);
}
char buf[256];
- ARDOUR::framecnt_t const sample_rate = ARDOUR::AudioEngine::instance()->sample_rate();
+ ARDOUR::samplecnt_t const sample_rate = ARDOUR::AudioEngine::instance()->sample_rate();
if (sample_rate == 0) {
lm_results.set_markup (string_compose (results_markup, _("Disconnected from audio engine")));
return false;
}
- ARDOUR::framecnt_t frames_total = mididm->latency();
- ARDOUR::framecnt_t extra = frames_total - ARDOUR::AudioEngine::instance()->latency_signal_delay();
+ ARDOUR::samplecnt_t samples_total = mididm->latency();
+ ARDOUR::samplecnt_t extra = samples_total - ARDOUR::AudioEngine::instance()->latency_signal_delay();
snprintf (buf, sizeof (buf), "%s%" PRId64" samples (%.1lf ms) dev: %.2f[spl]\n%s%" PRId64" samples (%.1lf ms)",
_("Detected roundtrip latency: "),
- frames_total, frames_total * 1000.0f / sample_rate, mididm->deviation (),
+ samples_total, samples_total * 1000.0f / sample_rate, mididm->deviation (),
_("Systemic latency: "),
extra, extra * 1000.0f / sample_rate);
if (!mididm) {
return;
}
- ARDOUR::framecnt_t frames_total = mididm->latency();
- ARDOUR::framecnt_t extra = frames_total - ARDOUR::AudioEngine::instance()->latency_signal_delay();
- uint32_t one_way = max ((ARDOUR::framecnt_t) 0, extra / 2);
+ ARDOUR::samplecnt_t samples_total = mididm->latency();
+ ARDOUR::samplecnt_t extra = samples_total - ARDOUR::AudioEngine::instance()->latency_signal_delay();
+ uint32_t one_way = max ((ARDOUR::samplecnt_t) 0, extra / 2);
_measure_midi->input_latency = one_way;
_measure_midi->output_latency = one_way;
if (backend->can_change_systemic_latency_when_running ()) {