+ points->push_back (ArdourCanvas::Duple (0.0, curve_height));
+
+ if (sample >= end_sample) {
+ /* shouldn't happen but ..*/
+ const double tempo_at = _tempo.note_types_per_minute();
+ const double y_pos = (curve_height) - (((tempo_at - _min_tempo) / (_max_tempo - _min_tempo)) * curve_height);
+
+ points->push_back (ArdourCanvas::Duple (0.0, y_pos));
+ points->push_back (ArdourCanvas::Duple (1.0, y_pos));
+
+ } else if (_tempo.type() == ARDOUR::TempoSection::Constant || _tempo.c() == 0.0) {
+ const double tempo_at = _tempo.note_types_per_minute();
+ const double y_pos = (curve_height) - (((tempo_at - _min_tempo) / (_max_tempo - _min_tempo)) * curve_height);
+
+ points->push_back (ArdourCanvas::Duple (0.0, y_pos));
+ points->push_back (ArdourCanvas::Duple (editor.sample_to_pixel (end_sample - sample), y_pos));