#ifndef __ardour_tempo_lines_h__
#define __ardour_tempo_lines_h__
-#include <map>
-#include <boost/pool/pool.hpp>
-#include <boost/pool/pool_alloc.hpp>
#include "ardour/tempo.h"
-typedef boost::fast_pool_allocator<
- std::pair<const double, ArdourCanvas::Line*>,
- boost::default_user_allocator_new_delete,
- boost::details::pool::null_mutex,
- 8192>
- MapAllocator;
+#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,
- double frames_per_unit);
+ 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::map<double, ArdourCanvas::Line*, std::less<double>, MapAllocator> Lines;
- Lines _lines;
-
- ArdourCanvas::Canvas& _canvas;
- ArdourCanvas::Group* _group;
- double _clean_left;
- double _clean_right;
- double _height;
+ void draw_ticks (std::vector<ARDOUR::TempoMap::BBTPoint>& grid,
+ unsigned divisions,
+ ARDOUR::framecnt_t leftmost_frame,
+ ARDOUR::framecnt_t frame_rate);
+
+ ArdourCanvas::LineSet lines;
};
#endif /* __ardour_tempo_lines_h__ */