add step-rest keybinding for step editing

git-svn-id: svn://localhost/ardour2/branches/3.0@5653 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2009-09-10 22:20:37 +00:00
parent 2ff1cd99af
commit 42e1e00f06
3 changed files with 16 additions and 3 deletions

View file

@ -321,7 +321,12 @@ MidiRegionView::canvas_event(GdkEvent* ev)
} else if (ev->key.keyval == GDK_Control_L) {
return true;
} else if (ev->key.keyval == GDK_r) {
/* if we're not step editing, this really doesn't matter */
midi_view()->step_edit_rest ();
return true;
}
return false;
case GDK_KEY_RELEASE:

View file

@ -117,6 +117,8 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session& sess,
mute_button->set_active (false);
solo_button->set_active (false);
step_edit_insert_position = 0;
if (is_midi_track()) {
controls_ebox.set_name ("MidiTimeAxisViewControlsBaseUnselected");
@ -610,7 +612,6 @@ MidiTimeAxisView::check_step_edit ()
if ((buf[0] & 0xf0) == MIDI_CMD_NOTE_ON) {
if (step_edit_region == 0) {
cerr << "Add new region first ..\n";
step_edit_region = add_region (step_edit_insert_position);
RegionView* rv = view()->find_view (step_edit_region);
@ -632,7 +633,6 @@ MidiTimeAxisView::check_step_edit ()
continue;
}
cerr << "will add note at " << step_edit_beat_pos << endl;
step_edit_region_view->add_note (buf[0] & 0xf, buf[1], buf[2], step_edit_beat_pos, beats);
step_edit_beat_pos += beats;
}
@ -641,6 +641,14 @@ MidiTimeAxisView::check_step_edit ()
}
}
void
MidiTimeAxisView::step_edit_rest ()
{
bool success;
Evoral::MusicalTime beats = _editor.get_grid_type_as_beats (success, step_edit_insert_position);
step_edit_beat_pos += beats;
}
boost::shared_ptr<Region>
MidiTimeAxisView::add_region (nframes64_t pos)
{

View file

@ -91,7 +91,7 @@ class MidiTimeAxisView : public RouteTimeAxisView
void start_step_editing ();
void stop_step_editing ();
void check_step_edit ();
void step_edit_rest ();
private:
sigc::signal<void, std::string, std::string> _midi_patch_settings_changed;