diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-09-11 02:57:05 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-09-11 02:57:05 +0000 |
commit | 7933b74f419a5f859ef64c8002b5effb686d8196 (patch) | |
tree | 3f4bf414b2e648b46ddeb505ae802a16f535e3b1 /gtk2_ardour/ardour_ui_ed.cc | |
parent | 93dc1bc0d6aea354e75712896416b8b9e0236eed (diff) |
try to fix async peaks issue; fix crasher caused by previous lock changes in AudioSource; unselect everything after Apply; save tags correctly (?)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2450 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/ardour_ui_ed.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui_ed.cc | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index b5a6281c1b..4777617a77 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -423,22 +423,41 @@ ARDOUR_UI::install_actions () RadioAction::Group denormal_group; ActionManager::register_toggle_action (option_actions, X_("DenormalProtection"), _("Use DC bias"), mem_fun (*this, &ARDOUR_UI::toggle_denormal_protection)); - - FPU fpu; ActionManager::register_radio_action (option_actions, denormal_group, X_("DenormalNone"), _("No processor handling"), bind (mem_fun (*this, &ARDOUR_UI::set_denormal_model), DenormalNone)); - act = ActionManager::register_radio_action (option_actions, denormal_group, X_("DenormalFTZ"), _("Use FlushToZero"), bind (mem_fun (*this, &ARDOUR_UI::set_denormal_model), DenormalFTZ)); - if (!fpu.has_flush_to_zero()) { + // as of September 10th 2007, Valgrind cannot handle various FPU flag setting instructions + // so avoid them + + if (getenv ("ARDOUR_RUNNING_UNDER_VALGRIND")) { + + /* we still need these actions to exist, but make them all insensitive */ + + act = ActionManager::register_radio_action (option_actions, denormal_group, X_("DenormalFTZ"), _("Use FlushToZero"), bind (mem_fun (*this, &ARDOUR_UI::set_denormal_model), DenormalFTZ)); act->set_sensitive (false); - } - act = ActionManager::register_radio_action (option_actions, denormal_group, X_("DenormalDAZ"), _("Use DenormalsAreZero"), bind (mem_fun (*this, &ARDOUR_UI::set_denormal_model), DenormalDAZ)); - if (!fpu.has_denormals_are_zero()) { + act = ActionManager::register_radio_action (option_actions, denormal_group, X_("DenormalDAZ"), _("Use DenormalsAreZero"), bind (mem_fun (*this, &ARDOUR_UI::set_denormal_model), DenormalDAZ)); act->set_sensitive (false); - } - act = ActionManager::register_radio_action (option_actions, denormal_group, X_("DenormalFTZDAZ"), _("Use FlushToZero & DenormalsAreZero"), bind (mem_fun (*this, &ARDOUR_UI::set_denormal_model), DenormalFTZDAZ)); - if (!fpu.has_flush_to_zero() || !fpu.has_denormals_are_zero()) { + act = ActionManager::register_radio_action (option_actions, denormal_group, X_("DenormalFTZDAZ"), _("Use FlushToZero & DenormalsAreZero"), bind (mem_fun (*this, &ARDOUR_UI::set_denormal_model), DenormalFTZDAZ)); act->set_sensitive (false); + + } else { + + FPU fpu; + + act = ActionManager::register_radio_action (option_actions, denormal_group, X_("DenormalFTZ"), _("Use FlushToZero"), bind (mem_fun (*this, &ARDOUR_UI::set_denormal_model), DenormalFTZ)); + if (!fpu.has_flush_to_zero()) { + act->set_sensitive (false); + } + + act = ActionManager::register_radio_action (option_actions, denormal_group, X_("DenormalDAZ"), _("Use DenormalsAreZero"), bind (mem_fun (*this, &ARDOUR_UI::set_denormal_model), DenormalDAZ)); + if (!fpu.has_denormals_are_zero()) { + act->set_sensitive (false); + } + + act = ActionManager::register_radio_action (option_actions, denormal_group, X_("DenormalFTZDAZ"), _("Use FlushToZero & DenormalsAreZero"), bind (mem_fun (*this, &ARDOUR_UI::set_denormal_model), DenormalFTZDAZ)); + if (!fpu.has_flush_to_zero() || !fpu.has_denormals_are_zero()) { + act->set_sensitive (false); + } } act = ActionManager::register_toggle_action (option_actions, X_("DoNotRunPluginsWhileRecording"), _("Do not run plugins while recording"), mem_fun (*this, &ARDOUR_UI::toggle_DoNotRunPluginsWhileRecording)); |