lots of keybinding changes. added a new action to allow removing markers at the...
authorBen Loftis <ben@harrisonconsoles.com>
Thu, 3 Jul 2014 22:50:14 +0000 (17:50 -0500)
committerBen Loftis <ben@harrisonconsoles.com>
Thu, 3 Jul 2014 22:50:14 +0000 (17:50 -0500)
gtk2_ardour/ardour.menus.in
gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui.h
gtk2_ardour/ardour_ui_ed.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_actions.cc
gtk2_ardour/editor_ops.cc
gtk2_ardour/keyboard.cc
gtk2_ardour/mnemonic-us.bindings.in
gtk2_ardour/public_editor.h

index 5ce4cf973668c7dc6e4b626292352ce8549af0d4..8336a55035570ce8c38923871b91e4bf85b7bc89 100644 (file)
   <accelerator action='toggle-midi-input-active'/>
   <accelerator action='escape'/>
 
+  <accelerator action='alternate-add-location-from-playhead'/>
+  <accelerator action='alternate-remove-location-from-playhead'/>
+
+  <accelerator action='alternate-editor-delete'/>
+
   <accelerator action='alt-start-range'/>
   <accelerator action='alt-finish-range'/>
 
+<accelerator action='alternate-ToggleRoll'/>
+<accelerator action='alternate-record-roll'/>
+<accelerator action='alternate-GotoStart'/>
+
+<accelerator action='alternate-redo'/>
+<accelerator action='alternate-alternate-redo'/>
+
+<accelerator action='alternate-select-all-after-edit-cursor'/>
+<accelerator action='alternate-select-all-after-edit-cursor'/>
+<accelerator action='alternate-set-fade-in-length'/>
+<accelerator action='alternate-set-fade-out-length'/>
+<accelerator action='alternate-tab-to-transient-forwards'/>
+<accelerator action='alternate-tab-to-transient-backwards'/>
+<accelerator action='alternate-nudge-forward'/>
+<accelerator action='alternate-nudge-backward'/>
+
+<accelerator action='numpad-0'/>
+<accelerator action='numpad-1'/>
+<accelerator action='numpad-2'/>
+<accelerator action='numpad-3'/>
+<accelerator action='numpad-4'/>
+<accelerator action='numpad-5'/>
+<accelerator action='numpad-6'/>
+<accelerator action='numpad-7'/>
+<accelerator action='numpad-8'/>
+<accelerator action='numpad-9'/>
+<accelerator action='numpad-decimal'/>
+
+
 #ifdef GTKOSX
   <accelerator action='Quit'/>
 #endif
         <menuitem action='selected-marker-to-previous-region-boundary'/>
         <menuitem action='edit-cursor-to-next-region-sync'/>
         <menuitem action='edit-cursor-to-previous-region-sync'/>
-        <separator/>
-        <menuitem action='edit-to-playhead'/>
-        <menuitem action='set-edit-point'/>
       </menu>
 
       <menu action="MarkerMenu">
         <menuitem action='add-location-from-playhead'/>
+               <menuitem action='remove-location-from-playhead'/>
         <separator/>
         <menuitem action='goto-mark-1'/>
         <menuitem action='goto-mark-2'/>
         <menuitem action='select-all-in-punch-range'/>
         <menuitem action='select-all-in-loop-range'/>
         <separator/>
-        <menuitem action='select-range-between-cursors'/>
         <menuitem action='move-range-start-to-previous-region-boundary'/>
         <menuitem action='move-range-start-to-next-region-boundary'/>
         <menuitem action='move-range-end-to-previous-region-boundary'/>
         <menuitem action='move-range-end-to-next-region-boundary'/>
+        <separator/>
         <menuitem action='start-range'/>
         <menuitem action='finish-range'/>
         <separator/>
       <separator/>
 
       <menu action="PrimaryClockMenu">
+               <menuitem action='focus-on-clock'/>
         <menuitem action="primary-clock-timecode"/>
         <menuitem action="primary-clock-bbt"/>
         <menuitem action="primary-clock-minsec"/>
index a11c4d556c82df0ed8ec6c86ac45d80890c21434..ef3dbe2de952b9185df61fade80d48032e7c0bc4 100644 (file)
@@ -221,6 +221,8 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
 
        splash = 0;
 
+       _numpad_locate_happening = false;
+
        if (theArdourUI == 0) {
                theArdourUI = this;
        }
@@ -4411,3 +4413,47 @@ ARDOUR_UI::do_audio_midi_setup (uint32_t desired_sample_rate)
 }
 
 
+gint
+ARDOUR_UI::transport_numpad_timeout ()
+{
+       _numpad_locate_happening = false;
+       if (_numpad_timeout_connection.connected() )
+               _numpad_timeout_connection.disconnect();
+       return 1;
+}
+
+void
+ARDOUR_UI::transport_numpad_decimal ()
+{
+       _numpad_timeout_connection.disconnect();
+
+       if (_numpad_locate_happening) {
+               if (editor) editor->goto_nth_marker(_pending_locate_num - 1);
+               _numpad_locate_happening = false;
+       } else {
+               _pending_locate_num = 0;
+               _numpad_locate_happening = true;
+               _numpad_timeout_connection = Glib::signal_timeout().connect (mem_fun(*this, &ARDOUR_UI::transport_numpad_timeout), 2*1000);
+       }
+}
+
+void
+ARDOUR_UI::transport_numpad_event (int num)
+{
+       if ( _numpad_locate_happening ) {
+               _pending_locate_num = _pending_locate_num*10 + num;
+       } else {
+               switch (num) {          
+                       case 0:  toggle_roll(false, false);             break;
+                       case 1:  transport_rewind(1);                           break;
+                       case 2:  transport_forward(1);                          break;
+                       case 3:  transport_record(true);                        break;
+                       case 4:  if (_session) _session->request_play_loop(true);                                       break;
+                       case 5:  if (_session) _session->request_play_loop(true); transport_record(false);      break;
+                       case 6:  toggle_punch();                                                break;
+                       case 7:  toggle_click();                                break;
+                       case 8:  toggle_auto_return();                  break;
+                       case 9:  toggle_follow_edits();         break;
+               }
+       }
+}
index 701be1dfc2bbe299ec5a6071e074557aefa33348..5d10c6f13dcf441621cc6fdeaa6c3f9fba38924e 100644 (file)
@@ -561,6 +561,15 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
 
        void set_transport_sensitivity (bool);
 
+       //stuff for ProTools-style numpad
+       void transport_numpad_event (int num);
+       void transport_numpad_decimal ();
+       bool _numpad_locate_happening;
+       int _pending_locate_num;
+       gint transport_numpad_timeout ();
+       sigc::connection _numpad_timeout_connection;
+
+       void transport_goto_nth_marker (int nth);
        void transport_goto_zero ();
        void transport_goto_start ();
        void transport_goto_end ();
index 2c3e7fc56957097cc16c047617bb92b178e0e819..90d297ab9be3db137dc3d32ea5ca280230eddbdb 100644 (file)
@@ -229,6 +229,9 @@ ARDOUR_UI::install_actions ()
        act = ActionManager::register_action (transport_actions, X_("ToggleRoll"), _("Start/Stop"), sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_roll), false, false));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("alternate-ToggleRoll"), _("Start/Stop"), sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_roll), false, false));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
        act = ActionManager::register_action (transport_actions, X_("ToggleRollMaybe"), _("Start/Continue/Stop"), sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_roll), false, true));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::transport_sensitive_actions.push_back (act);
@@ -267,6 +270,10 @@ ARDOUR_UI::install_actions ()
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::write_sensitive_actions.push_back (act);
        ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("alternate-record-roll"), _("Start Recording"), sigc::bind (sigc::mem_fun(*this, &ARDOUR_UI::transport_record), true));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::write_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
        act = ActionManager::register_action (transport_actions, X_("Rewind"), _("Rewind"), sigc::bind (sigc::mem_fun(*this, &ARDOUR_UI::transport_rewind), 0));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::transport_sensitive_actions.push_back (act);
@@ -291,6 +298,9 @@ ARDOUR_UI::install_actions ()
        act = ActionManager::register_action (transport_actions, X_("GotoStart"), _("Goto Start"), sigc::mem_fun(*this, &ARDOUR_UI::transport_goto_start));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("alternate-GotoStart"), _("Goto Start"), sigc::mem_fun(*this, &ARDOUR_UI::transport_goto_start));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
        act = ActionManager::register_action (transport_actions, X_("GotoEnd"), _("Goto End"), sigc::mem_fun(*this, &ARDOUR_UI::transport_goto_end));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::transport_sensitive_actions.push_back (act);
@@ -298,6 +308,41 @@ ARDOUR_UI::install_actions ()
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::transport_sensitive_actions.push_back (act);
 
+       //these actions handle the numpad events, ProTools style
+       act = ActionManager::register_action (transport_actions, X_("numpad-decimal"), _("Numpad Decimal"), mem_fun(*this, &ARDOUR_UI::transport_numpad_decimal));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("numpad-0"), _("Numpad 0"), bind (mem_fun(*this, &ARDOUR_UI::transport_numpad_event), 0));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("numpad-1"), _("Numpad 1"), bind (mem_fun(*this, &ARDOUR_UI::transport_numpad_event), 1));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("numpad-2"), _("Numpad 2"), bind (mem_fun(*this, &ARDOUR_UI::transport_numpad_event), 2));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("numpad-3"), _("Numpad 3"), bind (mem_fun(*this, &ARDOUR_UI::transport_numpad_event), 3));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("numpad-4"), _("Numpad 4"), bind (mem_fun(*this, &ARDOUR_UI::transport_numpad_event), 4));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("numpad-5"), _("Numpad 5"), bind (mem_fun(*this, &ARDOUR_UI::transport_numpad_event), 5));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("numpad-6"), _("Numpad 6"), bind (mem_fun(*this, &ARDOUR_UI::transport_numpad_event), 6));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("numpad-7"), _("Numpad 7"), bind (mem_fun(*this, &ARDOUR_UI::transport_numpad_event), 7));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("numpad-8"), _("Numpad 8"), bind (mem_fun(*this, &ARDOUR_UI::transport_numpad_event), 8));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (transport_actions, X_("numpad-9"), _("Numpad 9"), bind (mem_fun(*this, &ARDOUR_UI::transport_numpad_event), 9));
+       ActionManager::session_sensitive_actions.push_back (act);
+       ActionManager::transport_sensitive_actions.push_back (act);
+
        act = ActionManager::register_action (transport_actions, X_("focus-on-clock"), _("Focus On Clock"), sigc::mem_fun(*this, &ARDOUR_UI::focus_on_clock));
        ActionManager::session_sensitive_actions.push_back (act);
        ActionManager::transport_sensitive_actions.push_back (act);
index e8f3804fd5fc8d75546a2d8cc87891fdcc293f3e..b5533ec689098cc0ddf0b0bf3009fa5018c4661b 100644 (file)
@@ -1328,6 +1328,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void set_punch_range (framepos_t start, framepos_t end, std::string cmd);
 
        void add_location_from_playhead_cursor ();
+       void remove_location_at_playhead_cursor ();
        bool select_new_marker;
 
        void reverse_selection ();
index 4570736617da8739697ec6bba9f06334c6d15476..751de09311587f51d19fa3ee88b1a6f52d462bf2 100644 (file)
@@ -194,8 +194,11 @@ Editor::register_actions ()
        reg_sens (editor_actions, "select-all", _("Select All"), sigc::bind (sigc::mem_fun(*this, &Editor::select_all), Selection::Set));
        reg_sens (editor_actions, "deselect-all", _("Deselect All"), sigc::mem_fun(*this, &Editor::deselect_all));
        reg_sens (editor_actions, "invert-selection", _("Invert Selection"), sigc::mem_fun(*this, &Editor::invert_selection));
+
        reg_sens (editor_actions, "select-all-after-edit-cursor", _("Select All After Edit Point"), sigc::bind (sigc::mem_fun(*this, &Editor::select_all_selectables_using_edit), true));
+       reg_sens (editor_actions, "alternate-select-all-after-edit-cursor", _("Select All After Edit Point"), sigc::bind (sigc::mem_fun(*this, &Editor::select_all_selectables_using_edit), true));
        reg_sens (editor_actions, "select-all-before-edit-cursor", _("Select All Before Edit Point"), sigc::bind (sigc::mem_fun(*this, &Editor::select_all_selectables_using_edit), false));
+       reg_sens (editor_actions, "alternate-select-all-before-edit-cursor", _("Select All Before Edit Point"), sigc::bind (sigc::mem_fun(*this, &Editor::select_all_selectables_using_edit), false));
 
        reg_sens (editor_actions, "select-all-between-cursors", _("Select All Overlapping Edit Range"), sigc::bind (sigc::mem_fun(*this, &Editor::select_all_selectables_between), false));
        reg_sens (editor_actions, "select-all-within-cursors", _("Select All Inside Edit Range"), sigc::bind (sigc::mem_fun(*this, &Editor::select_all_selectables_between), true));
@@ -237,7 +240,12 @@ Editor::register_actions ()
 
        reg_sens (editor_actions, "jump-forward-to-mark", _("Jump to Next Mark"), sigc::mem_fun(*this, &Editor::jump_forward_to_mark));
        reg_sens (editor_actions, "jump-backward-to-mark", _("Jump to Previous Mark"), sigc::mem_fun(*this, &Editor::jump_backward_to_mark));
+
        reg_sens (editor_actions, "add-location-from-playhead", _("Add Mark from Playhead"), sigc::mem_fun(*this, &Editor::add_location_from_playhead_cursor));
+       reg_sens (editor_actions, "alternate-add-location-from-playhead", _("Add Mark from Playhead"), sigc::mem_fun(*this, &Editor::add_location_from_playhead_cursor));
+
+       reg_sens (editor_actions, "remove-location-from-playhead", _("Remove Mark at Playhead"), sigc::mem_fun(*this, &Editor::remove_location_at_playhead_cursor));
+       reg_sens (editor_actions, "alternate-remove-location-from-playhead", _("Remove Mark at Playhead"), sigc::mem_fun(*this, &Editor::remove_location_at_playhead_cursor));
 
        reg_sens (editor_actions, "nudge-next-forward", _("Nudge Next Later"), sigc::bind (sigc::mem_fun(*this, &Editor::nudge_forward), true, false));
        reg_sens (editor_actions, "nudge-next-backward", _("Nudge Next Earlier"), sigc::bind (sigc::mem_fun(*this, &Editor::nudge_backward), true, false));
@@ -298,7 +306,10 @@ Editor::register_actions ()
        reg_sens (editor_actions, "duplicate-range", _("Duplicate Range"), sigc::bind (sigc::mem_fun(*this, &Editor::duplicate_range), false));
 
        undo_action = reg_sens (editor_actions, "undo", S_("Command|Undo"), sigc::bind (sigc::mem_fun(*this, &Editor::undo), 1U));
+
        redo_action = reg_sens (editor_actions, "redo", _("Redo"), sigc::bind (sigc::mem_fun(*this, &Editor::redo), 1U));
+       redo_action = reg_sens (editor_actions, "alternate-redo", _("Redo"), sigc::bind (sigc::mem_fun(*this, &Editor::redo), 1U));
+       redo_action = reg_sens (editor_actions, "alternate-alternate-redo", _("Redo"), sigc::bind (sigc::mem_fun(*this, &Editor::redo), 1U));
 
        reg_sens (editor_actions, "export-audio", _("Export Audio"), sigc::mem_fun(*this, &Editor::export_audio));
        reg_sens (editor_actions, "export-range", _("Export Range"), sigc::mem_fun(*this, &Editor::export_range));
@@ -317,6 +328,7 @@ Editor::register_actions ()
 
        reg_sens (editor_actions, "editor-cut", _("Cut"), sigc::mem_fun(*this, &Editor::cut));
        reg_sens (editor_actions, "editor-delete", _("Delete"), sigc::mem_fun(*this, &Editor::delete_));
+       reg_sens (editor_actions, "alternate-editor-delete", _("Delete"), sigc::mem_fun(*this, &Editor::delete_));
 
        reg_sens (editor_actions, "editor-copy", _("Copy"), sigc::mem_fun(*this, &Editor::copy));
        reg_sens (editor_actions, "editor-paste", _("Paste"), sigc::mem_fun(*this, &Editor::keyboard_paste));
@@ -327,7 +339,9 @@ Editor::register_actions ()
                        sigc::mem_fun (ARDOUR_UI::instance(), &ARDOUR_UI::toggle_errors));
 
        reg_sens (editor_actions, "tab-to-transient-forwards", _("Move Later to Transient"), sigc::bind (sigc::mem_fun(*this, &Editor::tab_to_transient), true));
+       reg_sens (editor_actions, "alternate-tab-to-transient-forwards", _("Move Later to Transient"), sigc::bind (sigc::mem_fun(*this, &Editor::tab_to_transient), true));
        reg_sens (editor_actions, "tab-to-transient-backwards", _("Move Earlier to Transient"), sigc::bind (sigc::mem_fun(*this, &Editor::tab_to_transient), false));
+       reg_sens (editor_actions, "alternate-tab-to-transient-backwards", _("Move Earlier to Transient"), sigc::bind (sigc::mem_fun(*this, &Editor::tab_to_transient), false));
 
        reg_sens (editor_actions, "crop", _("Crop"), sigc::mem_fun(*this, &Editor::crop_region_to_selection));
 
@@ -1868,7 +1882,10 @@ Editor::register_region_actions ()
                );
 
        reg_sens (_region_actions, "set-fade-in-length", _("Set Fade In Length"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_length), true));
+       reg_sens (_region_actions, "alternate-set-fade-in-length", _("Set Fade In Length"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_length), true));
        reg_sens (_region_actions, "set-fade-out-length", _("Set Fade Out Length"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_length), false));
+       reg_sens (_region_actions, "alternate-set-fade-out-length", _("Set Fade Out Length"), sigc::bind (sigc::mem_fun (*this, &Editor::set_fade_length), false));
+
        reg_sens (_region_actions, "set-tempo-from-region", _("Set Tempo from Region = Bar"), sigc::mem_fun (*this, &Editor::set_tempo_from_region));
 
        reg_sens (
@@ -1912,7 +1929,9 @@ Editor::register_region_actions ()
        reg_sens (_region_actions, "set-selection-from-region", _("Set Range Selection"), sigc::mem_fun (*this, &Editor::set_selection_from_region));
 
        reg_sens (_region_actions, "nudge-forward", _("Nudge Later"), sigc::bind (sigc::mem_fun (*this, &Editor::nudge_forward), false, false));
+       reg_sens (_region_actions, "alternate-nudge-forward", _("Nudge Later"), sigc::bind (sigc::mem_fun (*this, &Editor::nudge_forward), false, false));
        reg_sens (_region_actions, "nudge-backward", _("Nudge Earlier"), sigc::bind (sigc::mem_fun (*this, &Editor::nudge_backward), false, false));
+       reg_sens (_region_actions, "alternate-nudge-backward", _("Nudge Earlier"), sigc::bind (sigc::mem_fun (*this, &Editor::nudge_backward), false, false));
 
        reg_sens (_region_actions, "sequence-regions", _("Sequence Regions"), sigc::mem_fun (*this, &Editor::sequence_regions));
 
index 3c89ddc44807576f7e167c33a60d1fa4e7764e22..74891995047c6944e04ce095e459e89f8582db70 100644 (file)
@@ -1892,6 +1892,35 @@ Editor::add_location_from_playhead_cursor ()
        add_location_mark (_session->audible_frame());
 }
 
+void
+Editor::remove_location_at_playhead_cursor ()
+{
+       if (_session) {
+
+               //set up for undo
+               _session->begin_reversible_command (_("remove marker"));
+               XMLNode &before = _session->locations()->get_state();
+               bool removed = false;
+
+               //find location(s) at this time
+               Locations::LocationList locs;
+               _session->locations()->find_all_between (_session->audible_frame(), _session->audible_frame()+1, locs, Location::Flags(0));
+               for (Locations::LocationList::iterator i = locs.begin(); i != locs.end(); ++i) {
+                       if ((*i)->is_mark()) {
+                               _session->locations()->remove (*i);
+                               removed = true;
+                       }
+               }
+               
+               //store undo
+               if (removed) {
+                       XMLNode &after = _session->locations()->get_state();
+                       _session->add_command(new MementoCommand<Locations>(*(_session->locations()), &before, &after));
+                       _session->commit_reversible_command ();
+               }
+       }
+}
+
 /** Add a range marker around each selected region */
 void
 Editor::add_locations_from_region ()
index 3b5b207ce2b8923add6fd83bf9a096352704c46c..d4bf2377805178560cd18d3e0adeda74ec9cae44 100644 (file)
@@ -23,6 +23,7 @@
 #include "ardour/filesystem_paths.h"
 
 #include "ardour_ui.h"
+#include "public_editor.h"
 #include "keyboard.h"
 #include "opts.h"
 
index 8ab050e8673c0c021ca761afbc427c6a3d40cfc1..1b0ee2430f9ab1ec39f278826a6a50223aba8798 100644 (file)
@@ -97,11 +97,6 @@ This mode provides many different operations on both regions and control points,
 @eep|Editor/cycle-edit-point|grave|next EP w/o marker
 @eep|Editor/cycle-edit-point-with-marker|<@PRIMARY@>grave|next EP w/marker
 
-@aep|Editor/move-range-start-to-previous-region-boundary|less|range start to prev region edge
-@aep|Editor/move-range-start-to-next-region-boundary|<@PRIMARY@>less|range start to next region edge
-@aep|Editor/move-range-end-to-previous-region-boundary|<@PRIMARY@>greater|range end to next prev edge
-@aep|Editor/move-range-end-to-next-region-boundary|greater|range end to next region edge
-
 @trans|Transport/ToggleRoll|space|toggle roll
 @epp|Editor/play-edit-range|<@SECONDARY@>space|play edit range
 @epp|Editor/play-from-edit-point-and-return|<@LEVEL4@>space|play from EP \& return
@@ -109,6 +104,12 @@ This mode provides many different operations on both regions and control points,
 @trans|Transport/ToggleRollForgetCapture|<@PRIMARY@>space|stop and destroy
 @trans|Transport/record-roll|<@TERTIARY@>space|start recording
 
+@trans|Transport/add-location-from-playhead|Tab|add marker
+@trans|Transport/remove-location-from-playhead|<@PRIMARY@>nabla|add marker
+;@trans|Transport/GotoStart|3270_enter|Return
+;@trans|Transport/GotoStart|F35|Return (numpad)
+@movp|Transport/alternate-GotoStart|Return|to edit point   THIS KEYBINDING WORKS.  WHY!!???!
+
 @rop|Region/set-fade-in-length|slash|set fade in length
 @rop|Region/toggle-region-fade-out|<@PRIMARY@>slash|toggle fade in active
 @rop|Region/set-fade-out-length|backslash|set fade out length
@@ -143,6 +144,8 @@ This mode provides many different operations on both regions and control points,
 @wvis|Common/goto-editor|<@WINDOW@>e|toggle editor window
 @mmode|MouseMode/set-mouse-mode-range|r|range mode
 @edit|Editor/redo|<@PRIMARY@>r|redo
+@edit|Editor/alternate-redo|<@PRIMARY@>y|redo
+@edit|Editor/alternate-alternate-redo|<@PRIMARY@><@TERTIARY@>z|redo
 @rop|Region/reverse-region|<@SECONDARY@>r|reverse
 @trans|Transport/Record|<@TERTIARY@>r|engage record
 @mmode|MouseMode/set-mouse-mode-timefx|t|timefx mode
@@ -257,12 +260,9 @@ This mode provides many different operations on both regions and control points,
 @movp|Transport/GotoStart|Home|to start marker
 @movp|Transport/GotoEnd|End|to end marker
 @edit|Editor/editor-delete|Delete|delete
+@edit|Editor/alternate-editor-delete|BackSpace|backspace (delete)
 
-@movp|Editor/playhead-to-edit|Return|to edit point
-@eep|Editor/edit-to-playhead|<@SECONDARY@>Return|move EP to playhead
-@trans|Editor/remove-last-capture|<@PRIMARY@>Delete|destroy last recording
-
-@-group|Editor/escape|Escape|break drag or deselect all
+@select|Editor/escape|Escape|break drag or deselect all
 
 ;; keypad
 
@@ -280,26 +280,28 @@ This mode provides many different operations on both regions and control points,
 @-group|Editor/alt-start-range|<@PRIMARY@>KP_Down|some text
 @-group|Editor/alt-finish-range|<@PRIMARY@>KP_Up|some text
 
-@markers|Editor/add-location-from-playhead|KP_Enter|add mark at playhead
+@markers|Editor/alternate-add-location-from-playhead|KP_Enter|add mark at playhead
+@markers|Editor/alternate-remove-location-from-playhead|<@PRIMARY@>KP_Enter|add mark at playhead
 @wvis|Transport/focus-on-clock|KP_Divide|focus on main clock
 
-@movp|Transport/GotoZero|KP_0|to zero
-@-group|Editor/goto-mark-1|KP_1|some text
-@-group|Editor/goto-mark-2|KP_2|some text
-@-group|Editor/goto-mark-3|KP_3|some text
-@-group|Editor/goto-mark-4|KP_4|some text
-@-group|Editor/goto-mark-5|KP_5|some text
-@-group|Editor/goto-mark-6|KP_6|some text
-@-group|Editor/goto-mark-7|KP_7|some text
-@-group|Editor/goto-mark-8|KP_8|some text
-@-group|Editor/goto-mark-9|KP_9|some text
+@movp|Transport/numpad-decimal|KP_Decimal|numpad decimal should initiate and finalize a locate-to-marker
+
+@movp|Transport/numpad-0|KP_0|some text
+@-group|Transport/numpad-1|KP_1|some text
+@-group|Transport/numpad-2|KP_2|some text
+@-group|Transport/numpad-3|KP_3|some text
+@-group|Transport/numpad-4|KP_4|some text
+@-group|Transport/numpad-5|KP_5|some text
+@-group|Transport/numpad-6|KP_6|some text
+@-group|Transport/numpad-7|KP_7|some text
+@-group|Transport/numpad-8|KP_8|some text
+@-group|Transport/numpad-9|KP_9|some text
 
 ;; F-N keys
 
 @-group|Editor/edit-cursor-to-range-start|F1|some text
 @-group|Editor/edit-cursor-to-range-end|F2|some text
 @-group|Editor/pitch-shift-region|F5|some text
-@select|Editor/select-range-between-cursors|F6|convert edit range to range
 
 @-group|Editor/save-visual-state-1|<@PRIMARY@>F1|some text
 @-group|Editor/save-visual-state-2|<@PRIMARY@>F2|some text
index 9eac1be2f71919ede945a1295773d193a4f1a137..722f5e2f2bcacbcef246bfac7ee2e877b18aedee 100644 (file)
@@ -213,6 +213,9 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible, publi
        virtual void play_selection () = 0;
        virtual void play_with_preroll () = 0;
        virtual void maybe_locate_with_edit_preroll (framepos_t location) = 0;
+       virtual void goto_nth_marker (int nth) = 0;
+       virtual void add_location_from_playhead_cursor () = 0;
+       virtual void remove_location_at_playhead_cursor () = 0;
        virtual void set_show_measures (bool yn) = 0;
        virtual bool show_measures () const = 0;