NO-OP; clean up script spacing and remove goto
[ardour.git] / gtk2_ardour / step_editor.cc
index e19f89fa4a0458ee53ba2a1fc13fddab543e8f1f..ac51076a46a11d31acdebd7026600b7e2a8ee572 100644 (file)
@@ -115,10 +115,13 @@ StepEditor::prepare_step_edit_region ()
 
        } else {
 
-               const Meter& m = _mtv.session()->tempo_map().meter_at (step_edit_insert_position);
-               const Tempo& t = _mtv.session()->tempo_map().tempo_at (step_edit_insert_position);
+               const Meter& m = _mtv.session()->tempo_map().meter_at_frame (step_edit_insert_position);
+               double baf = max (0.0, _mtv.session()->tempo_map().beat_at_frame (step_edit_insert_position));
+               double next_bar_in_beats =  baf + m.divisions_per_bar();
+               framecnt_t next_bar_pos = _mtv.session()->tempo_map().frame_at_beat (next_bar_in_beats);
+               framecnt_t len = next_bar_pos - step_edit_insert_position;
 
-               step_edit_region = _mtv.add_region (step_edit_insert_position, floor (m.frames_per_bar (t, _mtv.session()->frame_rate())), true);
+               step_edit_region = _mtv.add_region (step_edit_insert_position, len, true);
 
                RegionView* rv = _mtv.midi_view()->find_view (step_edit_region);
                step_edit_region_view = dynamic_cast<MidiRegionView*>(rv);
@@ -320,6 +323,8 @@ StepEditor::step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity, Evo
                _step_edit_chord_duration = max (_step_edit_chord_duration, beat_duration);
        }
 
+       step_edit_region_view->set_step_edit_cursor_width (step_editor->note_length());
+
        return 0;
 }
 
@@ -405,7 +410,7 @@ StepEditor::step_edit_bar_sync ()
        }
 
        framepos_t fpos = step_edit_region_view->region_beats_to_absolute_frames (step_edit_beat_pos);
-       fpos = _session->tempo_map().round_to_bar (fpos, RoundUpAlways);
+       fpos = _session->tempo_map().round_to_bar (fpos, RoundUpAlways).frame;
        step_edit_beat_pos = step_edit_region_view->region_frames_to_region_beats (fpos - step_edit_region->position()).round_up_to_beat();
        step_edit_region_view->move_step_edit_cursor (step_edit_beat_pos);
 }