From 3d256ff2c250f8d74ee13547691725f42121306e Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 30 Sep 2016 16:47:57 +0200 Subject: [PATCH] Constrain Samplerate selection when session is loaded Ardour does not allow to change the rate of a session itself. --- gtk2_ardour/engine_dialog.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index ffbf787b6a..8a6c42fd8c 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -852,11 +852,17 @@ EngineControl::update_sensitivity () } if (get_popdown_string_count (sample_rate_combo) > 0) { + bool allow_to_set_rate = false; if (!ARDOUR::AudioEngine::instance()->running()) { - sample_rate_combo.set_sensitive (true); - } else { - sample_rate_combo.set_sensitive (false); + if (!ARDOUR_UI::instance()->session_loaded) { + // engine is not running, no session loaded -> anything goes. + allow_to_set_rate = true; + } else if (_desired_sample_rate > 0 && get_rate () != _desired_sample_rate) { + // only allow to change if the current setting is not the native session rate. + allow_to_set_rate = true; + } } + sample_rate_combo.set_sensitive (allow_to_set_rate); } else { sample_rate_combo.set_sensitive (false); valid = false;