#ifndef __ardour_tempo_lines_h__
#define __ardour_tempo_lines_h__
-#include <list>
#include "ardour/tempo.h"
+#include "canvas/line_set.h"
+
class TempoLines {
public:
- TempoLines(ArdourCanvas::Canvas& canvas, ArdourCanvas::Group* group, double screen_height);
+ TempoLines (ArdourCanvas::Container* group, double screen_height);
void tempo_map_changed();
- void draw (const ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
- const ARDOUR::TempoMap::BBTPointList::const_iterator& end);
+ void draw (std::vector<ARDOUR::TempoMap::BBTPoint>& grid,
+ unsigned divisions,
+ ARDOUR::framecnt_t leftmost_frame,
+ ARDOUR::framecnt_t frame_rate);
void show();
void hide();
private:
- typedef std::list<ArdourCanvas::Line*> Lines;
- Lines _lines;
- Lines _cache;
+ void draw_ticks (std::vector<ARDOUR::TempoMap::BBTPoint>& grid,
+ unsigned divisions,
+ ARDOUR::framecnt_t leftmost_frame,
+ ARDOUR::framecnt_t frame_rate);
- ArdourCanvas::Canvas& _canvas;
- ArdourCanvas::Group* _group;
- double _height;
+ ArdourCanvas::LineSet lines;
};
#endif /* __ardour_tempo_lines_h__ */