diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour.menus.in | 41 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 46 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 9 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_ed.cc | 45 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/editor_actions.cc | 19 | ||||
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 29 | ||||
-rw-r--r-- | gtk2_ardour/keyboard.cc | 1 | ||||
-rw-r--r-- | gtk2_ardour/mnemonic-us.bindings.in | 46 | ||||
-rw-r--r-- | gtk2_ardour/public_editor.h | 3 |
10 files changed, 214 insertions, 26 deletions
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index 5ce4cf9736..8336a55035 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -14,9 +14,43 @@ <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 @@ -135,13 +169,11 @@ <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'/> @@ -188,11 +220,11 @@ <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/> @@ -357,6 +389,7 @@ <separator/> <menu action="PrimaryClockMenu"> + <menuitem action='focus-on-clock'/> <menuitem action="primary-clock-timecode"/> <menuitem action="primary-clock-bbt"/> <menuitem action="primary-clock-minsec"/> diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index a11c4d556c..ef3dbe2de9 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -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; + } + } +} diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 701be1dfc2..5d10c6f13d 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -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 (); diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 2c3e7fc569..90d297ab9b 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -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); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index e8f3804fd5..b5533ec689 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -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 (); diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 4570736617..751de09311 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -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)); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 3c89ddc448..7489199504 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -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 () diff --git a/gtk2_ardour/keyboard.cc b/gtk2_ardour/keyboard.cc index 3b5b207ce2..d4bf237780 100644 --- a/gtk2_ardour/keyboard.cc +++ b/gtk2_ardour/keyboard.cc @@ -23,6 +23,7 @@ #include "ardour/filesystem_paths.h" #include "ardour_ui.h" +#include "public_editor.h" #include "keyboard.h" #include "opts.h" diff --git a/gtk2_ardour/mnemonic-us.bindings.in b/gtk2_ardour/mnemonic-us.bindings.in index 8ab050e867..1b0ee2430f 100644 --- a/gtk2_ardour/mnemonic-us.bindings.in +++ b/gtk2_ardour/mnemonic-us.bindings.in @@ -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 diff --git a/gtk2_ardour/public_editor.h b/gtk2_ardour/public_editor.h index 9eac1be2f7..722f5e2f2b 100644 --- a/gtk2_ardour/public_editor.h +++ b/gtk2_ardour/public_editor.h @@ -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; |