summaryrefslogtreecommitdiff
path: root/gtk2_ardour/engine_dialog.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-09-30 16:47:57 +0200
committerRobin Gareus <robin@gareus.org>2016-09-30 16:50:00 +0200
commit3d256ff2c250f8d74ee13547691725f42121306e (patch)
treebf20266b43517643bfab6ccf1f50e99adf3226f3 /gtk2_ardour/engine_dialog.cc
parent7f8ec25e259d9f93eb4f1b4e6c8fa81414619890 (diff)
Constrain Samplerate selection when session is loaded
Ardour does not allow to change the rate of a session itself.
Diffstat (limited to 'gtk2_ardour/engine_dialog.cc')
-rw-r--r--gtk2_ardour/engine_dialog.cc12
1 files 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;