13
0

Editing from a control surface must have the ability to ignore mouse location.

Add mark_in and mark_out actions that explicitly use the playhead as the edit location.
This commit is contained in:
Ben Loftis 2016-01-28 13:43:47 -06:00
parent 458a2b723c
commit 3332633d19
4 changed files with 17 additions and 12 deletions

View File

@ -1497,8 +1497,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void set_loop_start_from_edit_point ();
void set_loop_end_from_edit_point ();
void keyboard_selection_begin ();
void keyboard_selection_finish (bool add);
void keyboard_selection_begin ( Editing::EditIgnoreOption = Editing::EDIT_IGNORE_NONE );
void keyboard_selection_finish (bool add, Editing::EditIgnoreOption = Editing::EDIT_IGNORE_NONE);
bool have_pending_keyboard_selection;
framepos_t pending_keyboard_selection_start;

View File

@ -375,8 +375,11 @@ Editor::register_actions ()
reg_sens (editor_actions, "crop", _("Crop"), sigc::mem_fun(*this, &Editor::crop_region_to_selection));
reg_sens (editor_actions, "start-range", _("Start Range"), sigc::mem_fun(*this, &Editor::keyboard_selection_begin));
reg_sens (editor_actions, "finish-range", _("Finish Range"), sigc::bind (sigc::mem_fun(*this, &Editor::keyboard_selection_finish), false));
reg_sens (editor_actions, "start-range-from-playhead", _("Start Range from Playhead"), sigc::bind (sigc::mem_fun(*this, &Editor::keyboard_selection_begin), EDIT_IGNORE_MOUSE ));
reg_sens (editor_actions, "finish-range-from-playhead", _("Finish Range from Playhead"), sigc::bind (sigc::mem_fun(*this, &Editor::keyboard_selection_finish), false, EDIT_IGNORE_MOUSE ));
reg_sens (editor_actions, "start-range", _("Start Range"), sigc::bind (sigc::mem_fun(*this, &Editor::keyboard_selection_begin), EDIT_IGNORE_NONE));
reg_sens (editor_actions, "finish-range", _("Finish Range"), sigc::bind (sigc::mem_fun(*this, &Editor::keyboard_selection_finish), false, EDIT_IGNORE_NONE));
reg_sens (editor_actions, "start-punch-range", _("Start Punch Range"), sigc::mem_fun(*this, &Editor::set_punch_start_from_edit_point));
reg_sens (editor_actions, "finish-punch-range", _("Finish Punch Range"), sigc::mem_fun(*this, &Editor::set_punch_end_from_edit_point));
@ -384,8 +387,8 @@ Editor::register_actions ()
reg_sens (editor_actions, "start-loop-range", _("Start Loop Range"), sigc::mem_fun(*this, &Editor::set_loop_start_from_edit_point));
reg_sens (editor_actions, "finish-loop-range", _("Finish Loop Range"), sigc::mem_fun(*this, &Editor::set_loop_end_from_edit_point));
reg_sens (editor_actions, "alt-start-range", _("Start Range"), sigc::mem_fun(*this, &Editor::keyboard_selection_begin));
reg_sens (editor_actions, "alt-finish-range", _("Finish Range"), sigc::bind (sigc::mem_fun(*this, &Editor::keyboard_selection_finish), false));
reg_sens (editor_actions, "alt-start-range", _("Start Range"), sigc::bind (sigc::mem_fun(*this, &Editor::keyboard_selection_begin), EDIT_IGNORE_NONE));
reg_sens (editor_actions, "alt-finish-range", _("Finish Range"), sigc::bind (sigc::mem_fun(*this, &Editor::keyboard_selection_finish), false, EDIT_IGNORE_NONE));
// reg_sens (editor_actions, "finish-add-range", _("Finish Add Range"), sigc::bind (sigc::mem_fun(*this, &Editor::keyboard_selection_finish), true));

View File

@ -39,7 +39,7 @@ using namespace PBD;
using namespace Editing;
void
Editor::keyboard_selection_finish (bool /*add*/)
Editor::keyboard_selection_finish (bool /*add*/, Editing::EditIgnoreOption ign)
{
if (_session) {
@ -49,7 +49,7 @@ Editor::keyboard_selection_finish (bool /*add*/)
if ((_edit_point == EditAtPlayhead) && _session->transport_rolling()) {
end = _session->audible_frame();
} else {
end = get_preferred_edit_position();
end = get_preferred_edit_position(ign);
}
//snap the selection start/end
@ -69,7 +69,7 @@ Editor::keyboard_selection_finish (bool /*add*/)
}
void
Editor::keyboard_selection_begin ()
Editor::keyboard_selection_begin (Editing::EditIgnoreOption ign)
{
if (_session) {
@ -77,9 +77,11 @@ Editor::keyboard_selection_begin ()
framepos_t end = selection->time.end_frame(); //0 if no current selection
if ((_edit_point == EditAtPlayhead) && _session->transport_rolling()) {
printf("if you don't wait a second, this wil be wrong");
start = _session->audible_frame();
} else {
start = get_preferred_edit_position();
printf("keyboard_selection_begin:: getting pref\n");
start = get_preferred_edit_position(ign);
}
//snap the selection start/end

View File

@ -357,8 +357,8 @@ BasicUI::jump_by_bars (double bars)
session->request_locate ( session->convert_to_frames (any) );
}
void BasicUI::mark_in () { access_action("Editor/start-range"); }
void BasicUI::mark_out () { access_action("Editor/finish-range"); }
void BasicUI::mark_in () { access_action("Editor/start-range-from-playhead"); }
void BasicUI::mark_out () { access_action("Editor/finish-range-from-playhead"); }
void BasicUI::toggle_click () { access_action("Transport/ToggleClick"); }
void BasicUI::midi_panic () { access_action("MIDI/panic"); }