adjust the way we use a pair of iterators into the tempo map so that the iterators are always local to the scope where they are used, which fixes at least one tempo-map related crash; also fix correct setting of join-object-range parameter, where the property wasn't actually used

git-svn-id: svn://localhost/ardour2/branches/3.0@13559 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2012-11-27 22:48:59 +00:00
parent 3755d8876c
commit b286b45ea8
4 changed files with 90 additions and 49 deletions

View file

@ -2107,10 +2107,17 @@ Editor::set_snap_to (SnapType st)
case SnapToBeatDiv5: case SnapToBeatDiv5:
case SnapToBeatDiv4: case SnapToBeatDiv4:
case SnapToBeatDiv3: case SnapToBeatDiv3:
case SnapToBeatDiv2: case SnapToBeatDiv2: {
compute_bbt_ruler_scale (leftmost_frame, leftmost_frame + current_page_frames()); ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin;
update_tempo_based_rulers (); ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end;
compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames(),
current_bbt_points_begin, current_bbt_points_end);
compute_bbt_ruler_scale (leftmost_frame, leftmost_frame + current_page_frames(),
current_bbt_points_begin, current_bbt_points_end);
update_tempo_based_rulers (current_bbt_points_begin, current_bbt_points_end);
break; break;
}
case SnapToRegionStart: case SnapToRegionStart:
case SnapToRegionEnd: case SnapToRegionEnd:
@ -2317,6 +2324,7 @@ Editor::set_state (const XMLNode& node, int /*version*/)
if ((prop = node.property ("join-object-range"))) { if ((prop = node.property ("join-object-range"))) {
RefPtr<Action> act = ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-object-range")); RefPtr<Action> act = ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-object-range"));
bool yn = string_is_affirmative (prop->value());
if (act) { if (act) {
RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic(act); RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic(act);
tact->set_active (!yn); tact->set_active (!yn);
@ -3653,9 +3661,10 @@ Editor::set_show_measures (bool yn)
hide_measures (); hide_measures ();
if ((_show_measures = yn) == true) { if ((_show_measures = yn) == true) {
if (tempo_lines) if (tempo_lines) {
tempo_lines->show(); tempo_lines->show();
draw_measures (); }
(void) redraw_measures ();
} }
instant_save (); instant_save ();
} }
@ -4261,9 +4270,15 @@ Editor::idle_visual_changer ()
set_frames_per_unit (pending_visual_change.frames_per_unit); set_frames_per_unit (pending_visual_change.frames_per_unit);
compute_fixed_ruler_scale (); compute_fixed_ruler_scale ();
compute_current_bbt_points(pending_visual_change.time_origin, pending_visual_change.time_origin + current_page_frames());
compute_bbt_ruler_scale (pending_visual_change.time_origin, pending_visual_change.time_origin + current_page_frames()); ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin;
update_tempo_based_rulers (); ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end;
compute_current_bbt_points (pending_visual_change.time_origin, pending_visual_change.time_origin + current_page_frames(),
current_bbt_points_begin, current_bbt_points_end);
compute_bbt_ruler_scale (pending_visual_change.time_origin, pending_visual_change.time_origin + current_page_frames(),
current_bbt_points_begin, current_bbt_points_end);
update_tempo_based_rulers (current_bbt_points_end, current_bbt_points_begin);
} }
if (p & VisualChange::TimeOrigin) { if (p & VisualChange::TimeOrigin) {
set_horizontal_position (pending_visual_change.time_origin / frames_per_unit); set_horizontal_position (pending_visual_change.time_origin / frames_per_unit);
@ -5300,8 +5315,6 @@ Editor::session_going_away ()
stop_step_editing (); stop_step_editing ();
current_bbt_points_begin = current_bbt_points_end;
/* get rid of any existing editor mixer strip */ /* get rid of any existing editor mixer strip */
WindowTitle title(Glib::get_application_name()); WindowTitle title(Glib::get_application_name());

View file

@ -809,7 +809,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void update_just_timecode (); void update_just_timecode ();
void compute_fixed_ruler_scale (); //calculates the RulerScale of the fixed rulers void compute_fixed_ruler_scale (); //calculates the RulerScale of the fixed rulers
void update_fixed_rulers (); void update_fixed_rulers ();
void update_tempo_based_rulers (); void update_tempo_based_rulers (ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
ARDOUR::TempoMap::BBTPointList::const_iterator& end);
void popup_ruler_menu (framepos_t where = 0, ItemType type = RegionItem); void popup_ruler_menu (framepos_t where = 0, ItemType type = RegionItem);
void update_ruler_visibility (); void update_ruler_visibility ();
void set_ruler_visible (RulerType, bool); void set_ruler_visible (RulerType, bool);
@ -873,7 +874,9 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
gint bbt_nmarks; gint bbt_nmarks;
uint32_t bbt_bar_helper_on; uint32_t bbt_bar_helper_on;
uint32_t bbt_accent_modulo; uint32_t bbt_accent_modulo;
void compute_bbt_ruler_scale (framepos_t lower, framepos_t upper); void compute_bbt_ruler_scale (framepos_t lower, framepos_t upper,
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin,
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end);
gint metric_get_timecode (GtkCustomRulerMark **, gdouble, gdouble, gint); gint metric_get_timecode (GtkCustomRulerMark **, gdouble, gdouble, gint);
gint metric_get_bbt (GtkCustomRulerMark **, gdouble, gdouble, gint); gint metric_get_bbt (GtkCustomRulerMark **, gdouble, gdouble, gint);
@ -1478,15 +1481,13 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
/// true if we are in fullscreen mode /// true if we are in fullscreen mode
bool _maximised; bool _maximised;
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin;
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end;
TempoLines* tempo_lines; TempoLines* tempo_lines;
ArdourCanvas::Group* time_line_group; ArdourCanvas::Group* time_line_group;
void hide_measures (); void hide_measures ();
void draw_measures (); void draw_measures (ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
ARDOUR::TempoMap::BBTPointList::const_iterator& end);
bool redraw_measures (); bool redraw_measures ();
void new_tempo_section (); void new_tempo_section ();
@ -1551,7 +1552,10 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void remove_metric_marks (); void remove_metric_marks ();
void draw_metric_marks (const ARDOUR::Metrics& metrics); void draw_metric_marks (const ARDOUR::Metrics& metrics);
void compute_current_bbt_points (framepos_t left, framepos_t right); void compute_current_bbt_points (framepos_t left, framepos_t right,
ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
ARDOUR::TempoMap::BBTPointList::const_iterator& end);
void tempo_map_changed (const PBD::PropertyChange&); void tempo_map_changed (const PBD::PropertyChange&);
void redisplay_tempo (bool immediate_redraw); void redisplay_tempo (bool immediate_redraw);

View file

@ -847,7 +847,8 @@ Editor::update_fixed_rulers ()
} }
void void
Editor::update_tempo_based_rulers () Editor::update_tempo_based_rulers (ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
ARDOUR::TempoMap::BBTPointList::const_iterator& end)
{ {
if (_session == 0) { if (_session == 0) {
return; return;
@ -1146,7 +1147,9 @@ Editor::metric_get_timecode (GtkCustomRulerMark **marks, gdouble lower, gdouble
void void
Editor::compute_bbt_ruler_scale (framepos_t lower, framepos_t upper) Editor::compute_bbt_ruler_scale (framepos_t lower, framepos_t upper,
ARDOUR::TempoMap::BBTPointList::const_iterator begin,
ARDOUR::TempoMap::BBTPointList::const_iterator end)
{ {
if (_session == 0) { if (_session == 0) {
return; return;
@ -1237,18 +1240,18 @@ Editor::compute_bbt_ruler_scale (framepos_t lower, framepos_t upper)
break; break;
} }
if (distance (current_bbt_points_begin, current_bbt_points_end) == 0) { if (distance (begin, end) == 0) {
return; return;
} }
i = current_bbt_points_end; i = end;
i--; i--;
if ((*i).beat >= (*current_bbt_points_begin).beat) { if ((*i).beat >= (*begin).beat) {
bbt_bars = (*i).bar - (*current_bbt_points_begin).bar; bbt_bars = (*i).bar - (*begin).bar;
} else { } else {
bbt_bars = (*i).bar - (*current_bbt_points_begin).bar - 1; bbt_bars = (*i).bar - (*begin).bar - 1;
} }
beats = distance (current_bbt_points_begin, current_bbt_points_end) - bbt_bars; beats = distance (begin, end) - bbt_bars;
/* Only show the bar helper if there aren't many bars on the screen */ /* Only show the bar helper if there aren't many bars on the screen */
if ((bbt_bars < 2) || (beats < 5)) { if ((bbt_bars < 2) || (beats < 5)) {
@ -1279,7 +1282,7 @@ Editor::compute_bbt_ruler_scale (framepos_t lower, framepos_t upper)
} }
gint gint
Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upper*/, gint /*maxchars*/) Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble upper, gint /*maxchars*/)
{ {
if (_session == 0) { if (_session == 0) {
return 0; return 0;
@ -1304,14 +1307,19 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
bool i_am_accented = false; bool i_am_accented = false;
bool helper_active = false; bool helper_active = false;
if (distance (current_bbt_points_begin, current_bbt_points_end) == 0) { ARDOUR::TempoMap::BBTPointList::const_iterator begin;
ARDOUR::TempoMap::BBTPointList::const_iterator end;
compute_current_bbt_points (lower, upper, begin, end);
if (distance (begin, end) == 0) {
return 0; return 0;
} }
switch (bbt_ruler_scale) { switch (bbt_ruler_scale) {
case bbt_show_beats: case bbt_show_beats:
beats = distance (current_bbt_points_begin, current_bbt_points_end); beats = distance (begin, end);
bbt_nmarks = beats + 2; bbt_nmarks = beats + 2;
*marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * bbt_nmarks); *marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * bbt_nmarks);
@ -1320,7 +1328,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
(*marks)[0].position = lower; (*marks)[0].position = lower;
(*marks)[0].style = GtkCustomRulerMarkMicro; (*marks)[0].style = GtkCustomRulerMarkMicro;
for (n = 1, i = current_bbt_points_begin; n < bbt_nmarks && i != current_bbt_points_end; ++i) { for (n = 1, i = begin; n < bbt_nmarks && i != end; ++i) {
if ((*i).frame < lower && (bbt_bar_helper_on)) { if ((*i).frame < lower && (bbt_bar_helper_on)) {
snprintf (buf, sizeof(buf), "<%" PRIu32 "|%" PRIu32, (*i).bar, (*i).beat); snprintf (buf, sizeof(buf), "<%" PRIu32 "|%" PRIu32, (*i).bar, (*i).beat);
@ -1347,7 +1355,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
case bbt_show_ticks: case bbt_show_ticks:
beats = distance (current_bbt_points_begin, current_bbt_points_end); beats = distance (begin, end);
bbt_nmarks = (beats + 2) * bbt_beat_subdivision; bbt_nmarks = (beats + 2) * bbt_beat_subdivision;
bbt_position_of_helper = lower + (30 * Editor::get_current_zoom ()); bbt_position_of_helper = lower + (30 * Editor::get_current_zoom ());
@ -1357,7 +1365,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
(*marks)[0].position = lower; (*marks)[0].position = lower;
(*marks)[0].style = GtkCustomRulerMarkMicro; (*marks)[0].style = GtkCustomRulerMarkMicro;
for (n = 1, i = current_bbt_points_begin; n < bbt_nmarks && i != current_bbt_points_end; ++i) { for (n = 1, i = begin; n < bbt_nmarks && i != end; ++i) {
if ((*i).frame < lower && (bbt_bar_helper_on)) { if ((*i).frame < lower && (bbt_bar_helper_on)) {
snprintf (buf, sizeof(buf), "<%" PRIu32 "|%" PRIu32, (*i).bar, (*i).beat); snprintf (buf, sizeof(buf), "<%" PRIu32 "|%" PRIu32, (*i).bar, (*i).beat);
@ -1437,7 +1445,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
case bbt_show_ticks_detail: case bbt_show_ticks_detail:
beats = distance (current_bbt_points_begin, current_bbt_points_end); beats = distance (begin, end);
bbt_nmarks = (beats + 2) * bbt_beat_subdivision; bbt_nmarks = (beats + 2) * bbt_beat_subdivision;
bbt_position_of_helper = lower + (30 * Editor::get_current_zoom ()); bbt_position_of_helper = lower + (30 * Editor::get_current_zoom ());
@ -1447,7 +1455,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
(*marks)[0].position = lower; (*marks)[0].position = lower;
(*marks)[0].style = GtkCustomRulerMarkMicro; (*marks)[0].style = GtkCustomRulerMarkMicro;
for (n = 1, i = current_bbt_points_begin; n < bbt_nmarks && i != current_bbt_points_end; ++i) { for (n = 1, i = begin; n < bbt_nmarks && i != end; ++i) {
if ((*i).frame < lower && (bbt_bar_helper_on)) { if ((*i).frame < lower && (bbt_bar_helper_on)) {
snprintf (buf, sizeof(buf), "<%" PRIu32 "|%" PRIu32, (*i).bar, (*i).beat); snprintf (buf, sizeof(buf), "<%" PRIu32 "|%" PRIu32, (*i).bar, (*i).beat);
@ -1532,7 +1540,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
case bbt_show_ticks_super_detail: case bbt_show_ticks_super_detail:
beats = distance (current_bbt_points_begin, current_bbt_points_end); beats = distance (begin, end);
bbt_nmarks = (beats + 2) * bbt_beat_subdivision; bbt_nmarks = (beats + 2) * bbt_beat_subdivision;
bbt_position_of_helper = lower + (30 * Editor::get_current_zoom ()); bbt_position_of_helper = lower + (30 * Editor::get_current_zoom ());
@ -1542,7 +1550,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
(*marks)[0].position = lower; (*marks)[0].position = lower;
(*marks)[0].style = GtkCustomRulerMarkMicro; (*marks)[0].style = GtkCustomRulerMarkMicro;
for (n = 1, i = current_bbt_points_begin; n < bbt_nmarks && i != current_bbt_points_end; ++i) { for (n = 1, i = begin; n < bbt_nmarks && i != end; ++i) {
if ((*i).frame < lower && (bbt_bar_helper_on)) { if ((*i).frame < lower && (bbt_bar_helper_on)) {
snprintf (buf, sizeof(buf), "<%" PRIu32 "|%" PRIu32, (*i).bar, (*i).beat); snprintf (buf, sizeof(buf), "<%" PRIu32 "|%" PRIu32, (*i).bar, (*i).beat);
@ -1639,7 +1647,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
case bbt_show_64: case bbt_show_64:
bbt_nmarks = (gint) (bbt_bars / 64) + 1; bbt_nmarks = (gint) (bbt_bars / 64) + 1;
*marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * bbt_nmarks); *marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * bbt_nmarks);
for (n = 0, i = current_bbt_points_begin; i != current_bbt_points_end && n < bbt_nmarks; i++) { for (n = 0, i = begin; i != end && n < bbt_nmarks; i++) {
if ((*i).is_bar()) { if ((*i).is_bar()) {
if ((*i).bar % 64 == 1) { if ((*i).bar % 64 == 1) {
if ((*i).bar % 256 == 1) { if ((*i).bar % 256 == 1) {
@ -1664,7 +1672,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
case bbt_show_16: case bbt_show_16:
bbt_nmarks = (bbt_bars / 16) + 1; bbt_nmarks = (bbt_bars / 16) + 1;
*marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * bbt_nmarks); *marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * bbt_nmarks);
for (n = 0, i = current_bbt_points_begin; i != current_bbt_points_end && n < bbt_nmarks; i++) { for (n = 0, i = begin; i != end && n < bbt_nmarks; i++) {
if ((*i).is_bar()) { if ((*i).is_bar()) {
if ((*i).bar % 16 == 1) { if ((*i).bar % 16 == 1) {
if ((*i).bar % 64 == 1) { if ((*i).bar % 64 == 1) {
@ -1689,7 +1697,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
case bbt_show_4: case bbt_show_4:
bbt_nmarks = (bbt_bars / 4) + 1; bbt_nmarks = (bbt_bars / 4) + 1;
*marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * bbt_nmarks); *marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * bbt_nmarks);
for (n = 0, i = current_bbt_points_begin; i != current_bbt_points_end && n < bbt_nmarks; ++i) { for (n = 0, i = begin; i != end && n < bbt_nmarks; ++i) {
if ((*i).is_bar()) { if ((*i).is_bar()) {
if ((*i).bar % 4 == 1) { if ((*i).bar % 4 == 1) {
if ((*i).bar % 16 == 1) { if ((*i).bar % 16 == 1) {
@ -1715,7 +1723,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble /*upp
// default: // default:
bbt_nmarks = bbt_bars + 2; bbt_nmarks = bbt_bars + 2;
*marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * bbt_nmarks ); *marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * bbt_nmarks );
for (n = 0, i = current_bbt_points_begin; i != current_bbt_points_end && n < bbt_nmarks; i++) { for (n = 0, i = begin; i != end && n < bbt_nmarks; i++) {
if ((*i).is_bar()) { if ((*i).is_bar()) {
if ((*i).bar % 4 == 1) { if ((*i).bar % 4 == 1) {
snprintf (buf, sizeof(buf), "%" PRIu32, (*i).bar); snprintf (buf, sizeof(buf), "%" PRIu32, (*i).bar);

View file

@ -114,10 +114,13 @@ Editor::tempo_map_changed (const PropertyChange& /*ignored*/)
tempo_lines->tempo_map_changed(); tempo_lines->tempo_map_changed();
} }
compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames()); ARDOUR::TempoMap::BBTPointList::const_iterator begin;
ARDOUR::TempoMap::BBTPointList::const_iterator end;
compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames(), begin, end);
_session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks); // redraw metric markers _session->tempo_map().apply_with_metrics (*this, &Editor::draw_metric_marks); // redraw metric markers
redraw_measures (); redraw_measures ();
update_tempo_based_rulers (); update_tempo_based_rulers (begin, end);
} }
void void
@ -127,7 +130,12 @@ Editor::redisplay_tempo (bool immediate_redraw)
return; return;
} }
compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames()); // redraw rulers and measures ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_begin;
ARDOUR::TempoMap::BBTPointList::const_iterator current_bbt_points_end;
compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames(),
current_bbt_points_begin, current_bbt_points_begin);
if (immediate_redraw) { if (immediate_redraw) {
redraw_measures (); redraw_measures ();
@ -138,11 +146,13 @@ Editor::redisplay_tempo (bool immediate_redraw)
Glib::signal_idle().connect (sigc::mem_fun (*this, &Editor::redraw_measures)); Glib::signal_idle().connect (sigc::mem_fun (*this, &Editor::redraw_measures));
#endif #endif
} }
update_tempo_based_rulers (); // redraw rulers and measures update_tempo_based_rulers (current_bbt_points_begin, current_bbt_points_end); // redraw rulers and measures
} }
void void
Editor::compute_current_bbt_points (framepos_t leftmost, framepos_t rightmost) Editor::compute_current_bbt_points (framepos_t leftmost, framepos_t rightmost,
ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
ARDOUR::TempoMap::BBTPointList::const_iterator& end)
{ {
if (!_session) { if (!_session) {
return; return;
@ -151,7 +161,7 @@ Editor::compute_current_bbt_points (framepos_t leftmost, framepos_t rightmost)
/* prevent negative values of leftmost from creeping into tempomap /* prevent negative values of leftmost from creeping into tempomap
*/ */
_session->tempo_map().get_grid (current_bbt_points_begin, current_bbt_points_end, max (leftmost, (framepos_t) 0), rightmost); _session->tempo_map().get_grid (begin, end, max (leftmost, (framepos_t) 0), rightmost);
} }
void void
@ -164,14 +174,20 @@ Editor::hide_measures ()
bool bool
Editor::redraw_measures () Editor::redraw_measures ()
{ {
draw_measures (); ARDOUR::TempoMap::BBTPointList::const_iterator begin;
ARDOUR::TempoMap::BBTPointList::const_iterator end;
compute_current_bbt_points (leftmost_frame, leftmost_frame + current_page_frames(), begin, end);
draw_measures (begin, end);
return false; return false;
} }
void void
Editor::draw_measures () Editor::draw_measures (ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
ARDOUR::TempoMap::BBTPointList::const_iterator& end)
{ {
if (_session == 0 || _show_measures == false || distance (current_bbt_points_begin, current_bbt_points_end) == 0) { if (_session == 0 || _show_measures == false || distance (begin, end) == 0) {
return; return;
} }
@ -179,7 +195,7 @@ Editor::draw_measures ()
tempo_lines = new TempoLines(*track_canvas, time_line_group, physical_screen_height(get_window())); tempo_lines = new TempoLines(*track_canvas, time_line_group, physical_screen_height(get_window()));
} }
tempo_lines->draw (current_bbt_points_begin, current_bbt_points_end, frames_per_unit); tempo_lines->draw (begin, end, frames_per_unit);
} }
void void