summaryrefslogtreecommitdiff
path: root/gtk2_ardour/tempo_lines.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-04-21 13:10:42 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-04-21 15:35:20 -0400
commitb02a7445bfa11d1c1ea1f6762b7e845b780ab4ea (patch)
treeb146dedc8b854adda7073b89a9bb7ba26315aa0d /gtk2_ardour/tempo_lines.h
parentfca81c9a6a591b6f94223454a981d919c9ad51a5 (diff)
Revert "add Group::clear(), do not clear _canvas member of Item when unparented (only the parent is changed)"
This reverts commit a4df65a56f83823aba27432685977f420458a213.
Diffstat (limited to 'gtk2_ardour/tempo_lines.h')
-rw-r--r--gtk2_ardour/tempo_lines.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/gtk2_ardour/tempo_lines.h b/gtk2_ardour/tempo_lines.h
index f4ee293e29..a0c7650516 100644
--- a/gtk2_ardour/tempo_lines.h
+++ b/gtk2_ardour/tempo_lines.h
@@ -19,29 +19,39 @@
#ifndef __ardour_tempo_lines_h__
#define __ardour_tempo_lines_h__
-#include <list>
+#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;
+
class TempoLines {
public:
TempoLines(ArdourCanvas::Canvas& canvas, ArdourCanvas::Group* 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(const ARDOUR::TempoMap::BBTPointList::const_iterator& begin,
+ const ARDOUR::TempoMap::BBTPointList::const_iterator& end,
+ double frames_per_unit);
void show();
void hide();
private:
- typedef std::list<ArdourCanvas::Line*> Lines;
+ typedef std::map<double, ArdourCanvas::Line*, std::less<double>, MapAllocator> Lines;
Lines _lines;
- Lines _cache;
ArdourCanvas::Canvas& _canvas;
ArdourCanvas::Group* _group;
+ double _clean_left;
+ double _clean_right;
double _height;
};