From: Paul Davis Date: Wed, 17 Sep 2014 16:28:36 +0000 (-0400) Subject: add action and menu item to control use of skip playback X-Git-Tag: 4.0-rc1~1601^2~127 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=e9ab53402c9263b21303388bc203b50b50876455;p=ardour.git add action and menu item to control use of skip playback --- diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index a4f8955843..066420be88 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -62,6 +62,7 @@ + diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 4a62d3a0cb..cadde181b5 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -1310,6 +1310,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void jump_forward_to_mark (); void jump_backward_to_mark (); void cursor_align (bool playhead_to_edit); + void toggle_skip_playback (); void remove_last_capture (); void select_all_selectables_using_time_selection (); diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 01777f46a6..b598d606c5 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -295,6 +295,8 @@ Editor::register_actions () reg_sens (editor_actions, "playhead-to-edit", _("Playhead to Active Mark"), sigc::bind (sigc::mem_fun(*this, &Editor::cursor_align), true)); reg_sens (editor_actions, "edit-to-playhead", _("Active Mark to Playhead"), sigc::bind (sigc::mem_fun(*this, &Editor::cursor_align), false)); + toggle_reg_sens (editor_actions, "toggle-skip-playback", _("Use Skip Ranges"), sigc::mem_fun(*this, &Editor::toggle_skip_playback)); + reg_sens (editor_actions, "set-loop-from-edit-range", _("Set Loop from Edit Range"), sigc::bind (sigc::mem_fun(*this, &Editor::set_loop_from_edit_range), false)); reg_sens (editor_actions, "set-punch-from-edit-range", _("Set Punch from Edit Range"), sigc::mem_fun(*this, &Editor::set_punch_from_edit_range)); @@ -745,6 +747,20 @@ Editor::load_bindings () } } +void +Editor::toggle_skip_playback () +{ + Glib::RefPtr act = ActionManager::get_action (X_("Editor"), "toggle-skip-playback"); + + if (act) { + Glib::RefPtr tact = Glib::RefPtr::cast_dynamic(act); + bool s = Config->get_skip_playback (); + if (tact->get_active() != s) { + Config->set_skip_playback (tact->get_active()); + } + } +} + void Editor::toggle_ruler_visibility (RulerType rt) { @@ -1721,6 +1737,16 @@ Editor::parameter_changed (std::string p) } else { Gtkmm2ext::disable_tooltips (); } + } else if (p == "skip-playback") { + Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("toggle-skip-playback")); + + if (act) { + bool s = Config->get_skip_playback (); + Glib::RefPtr tact = Glib::RefPtr::cast_dynamic (act); + if (tact->get_active () != s) { + tact->set_active (s); + } + } } }