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) { } else if (ev->key.keyval == GDK_Control_L) {
return true; 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; return false;
case GDK_KEY_RELEASE: case GDK_KEY_RELEASE:

View file

@ -118,6 +118,8 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session& sess,
mute_button->set_active (false); mute_button->set_active (false);
solo_button->set_active (false); solo_button->set_active (false);
step_edit_insert_position = 0;
if (is_midi_track()) { if (is_midi_track()) {
controls_ebox.set_name ("MidiTimeAxisViewControlsBaseUnselected"); controls_ebox.set_name ("MidiTimeAxisViewControlsBaseUnselected");
_note_mode = midi_track()->note_mode(); _note_mode = midi_track()->note_mode();
@ -610,7 +612,6 @@ MidiTimeAxisView::check_step_edit ()
if ((buf[0] & 0xf0) == MIDI_CMD_NOTE_ON) { if ((buf[0] & 0xf0) == MIDI_CMD_NOTE_ON) {
if (step_edit_region == 0) { if (step_edit_region == 0) {
cerr << "Add new region first ..\n";
step_edit_region = add_region (step_edit_insert_position); step_edit_region = add_region (step_edit_insert_position);
RegionView* rv = view()->find_view (step_edit_region); RegionView* rv = view()->find_view (step_edit_region);
@ -632,7 +633,6 @@ MidiTimeAxisView::check_step_edit ()
continue; 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_region_view->add_note (buf[0] & 0xf, buf[1], buf[2], step_edit_beat_pos, beats);
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> boost::shared_ptr<Region>
MidiTimeAxisView::add_region (nframes64_t pos) MidiTimeAxisView::add_region (nframes64_t pos)
{ {

View file

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