add action and menu item to control use of skip playback
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 17 Sep 2014 16:28:36 +0000 (12:28 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 17 Sep 2014 16:28:36 +0000 (12:28 -0400)
gtk2_ardour/ardour.menus.in
gtk2_ardour/editor.h
gtk2_ardour/editor_actions.cc

index a4f89558430ff13c901b96c359fc861f97278e56..066420be883dc86d37792a65ccaf4b775023d8aa 100644 (file)
@@ -62,6 +62,7 @@
       <menuitem action='Record'/>
       <menuitem action='ToggleRollMaybe'/>
       <menuitem action='ToggleRollForgetCapture'/>
+      <menuitem action='toggle-skip-playback'/>
       <menu action="SetLoopMenu">
         <menuitem action='set-loop-from-edit-range'/>
         <menuitem action='set-loop-from-region'/>
index 4a62d3a0cb6e7500ad8d5fdee8404bd039da9098..cadde181b5f267910a7879e0c997a3225362e9a3 100644 (file)
@@ -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 ();
index 01777f46a62d979e3ab495ac7567c8f0d7751605..b598d606c547651516b6344bb7314c30618b9164 100644 (file)
@@ -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<Action> act = ActionManager::get_action (X_("Editor"), "toggle-skip-playback");
+
+       if (act) {
+               Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::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<Action> act = ActionManager::get_action (X_("Editor"), X_("toggle-skip-playback"));
+
+               if (act) {
+                       bool s = Config->get_skip_playback ();
+                       Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+                       if (tact->get_active () != s) {
+                               tact->set_active (s);
+                       }
+               }
        }
 }