19 #ifndef __push2_meter_h__
20 #define __push2_meter_h__
23 #include <boost/tuple/tuple.hpp>
24 #include <boost/tuple/tuple_comparison.hpp>
26 #include <cairomm/pattern.h>
27 #include <cairomm/region.h>
44 int clr0=0x008800ff,
int clr1=0x008800ff,
45 int clr2=0x00ff00ff,
int clr3=0x00ff00ff,
46 int clr4=0xffaa00ff,
int clr5=0xffaa00ff,
47 int clr6=0xffff00ff,
int clr7=0xffff00ff,
48 int clr8=0xff0000ff,
int clr9=0xff0000ff,
49 int bgc0=0x333333ff,
int bgc1=0x444444ff,
50 int bgh0=0x991122ff,
int bgh1=0x551111ff,
60 int clr0=0x008800ff,
int clr1=0x008800ff,
61 int clr2=0x00ff00ff,
int clr3=0x00ff00ff,
62 int clr4=0xffaa00ff,
int clr5=0xffaa00ff,
63 int clr6=0xffff00ff,
int clr7=0xffff00ff,
64 int clr8=0xff0000ff,
int clr9=0xff0000ff,
65 int bgc0=0x333333ff,
int bgc1=0x444444ff,
66 int bgh0=0x991122ff,
int bgh1=0x551111ff,
115 void init (
int clr0,
int clr1,
int clr2,
int clr3,
116 int clr4,
int clr5,
int clr6,
int clr7,
120 float stp0,
float stp1,
121 float stp2,
float stp3,
143 float stp0,
float stp1,
float stp2,
float stp3,
144 int c0,
int c1,
int c2,
int c3,
145 int c4,
int c5,
int c6,
int c7,
146 int c8,
int c9,
int st
149 ,
stp(stp0, stp1, stp2, stp3)
150 ,
cols(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9)
159 boost::tuple<int, int>
dim;
160 boost::tuple<float, float, float, float>
stp;
161 boost::tuple<int, int, int, int, int, int, int, int, int, int>
cols;
164 typedef std::map<Pattern10MapKey, Cairo::RefPtr<Cairo::Pattern> >
Pattern10Map;
175 boost::tuple<int, int>
dim;
179 typedef std::map<PatternBgMapKey, Cairo::RefPtr<Cairo::Pattern> >
PatternBgMap;
void init(int clr0, int clr1, int clr2, int clr3, int clr4, int clr5, int clr6, int clr7, int clr8, int clr9, int bgc0, int bgc1, int bgh0, int bgh1, float stp0, float stp1, float stp2, float stp3, int dimen, int len)
Cairo::RectangleInt last_peak_rect
static Cairo::RefPtr< Cairo::Pattern > vertical_meter_pattern(int, int, int *, float *, int)
static Pattern10Map vm_pattern_cache
static Cairo::RefPtr< Cairo::Pattern > vertical_background(int, int, int *, bool)
Cairo::RefPtr< Cairo::Pattern > bgpattern
void compute_bounding_box() const
static Pattern10Map hm_pattern_cache
static int min_pattern_metric_size
static PatternBgMap vb_pattern_cache
Cairo::RectangleInt pixrect
Meter(ArdourCanvas::Canvas *canvas, long hold_cnt, unsigned long width, Orientation, int len=0, int clr0=0x008800ff, int clr1=0x008800ff, int clr2=0x00ff00ff, int clr3=0x00ff00ff, int clr4=0xffaa00ff, int clr5=0xffaa00ff, int clr6=0xffff00ff, int clr7=0xffff00ff, int clr8=0xff0000ff, int clr9=0xff0000ff, int bgc0=0x333333ff, int bgc1=0x444444ff, int bgh0=0x991122ff, int bgh1=0x551111ff, float stp0=55.0, float stp1=77.5, float stp2=92.5, float stp3=100.0, int styleflags=3)
static bool no_rgba_overlay
void set(float level, float peak=-1)
void queue_horizontal_redraw(float old_level)
std::map< Pattern10MapKey, Cairo::RefPtr< Cairo::Pattern > > Pattern10Map
void queue_vertical_redraw(float old_level)
static Cairo::RefPtr< Cairo::Pattern > generate_meter_background(int, int, int *, bool, bool)
static Cairo::RefPtr< Cairo::Pattern > generate_meter_pattern(int, int, int *, float *, int, bool)
std::map< PatternBgMapKey, Cairo::RefPtr< Cairo::Pattern > > PatternBgMap
static void flush_pattern_cache()
Meter(Item *parent, long hold_cnt, unsigned long width, Orientation, int len=0, int clr0=0x008800ff, int clr1=0x008800ff, int clr2=0x00ff00ff, int clr3=0x00ff00ff, int clr4=0xffaa00ff, int clr5=0xffaa00ff, int clr6=0xffff00ff, int clr7=0xffff00ff, int clr8=0xff0000ff, int clr9=0xff0000ff, int bgc0=0x333333ff, int bgc1=0x444444ff, int bgh0=0x991122ff, int bgh1=0x551111ff, float stp0=55.0, float stp1=77.5, float stp2=92.5, float stp3=100.0, int styleflags=3)
void set_hold_count(long)
void vertical_expose(ArdourCanvas::Rect const &area, Cairo::RefPtr< Cairo::Context > context) const
static Cairo::RefPtr< Cairo::Pattern > horizontal_background(int, int, int *, bool)
Cairo::RefPtr< Cairo::Pattern > fgpattern
static int max_pattern_metric_size
static PatternBgMap hb_pattern_cache
void horizontal_expose(ArdourCanvas::Rect const &area, Cairo::RefPtr< Cairo::Context > context) const
void render(ArdourCanvas::Rect const &, Cairo::RefPtr< Cairo::Context >) const
static Cairo::RefPtr< Cairo::Pattern > horizontal_meter_pattern(int, int, int *, float *, int)
bool operator<(const Pattern10MapKey &rhs) const
Pattern10MapKey(int w, int h, float stp0, float stp1, float stp2, float stp3, int c0, int c1, int c2, int c3, int c4, int c5, int c6, int c7, int c8, int c9, int st)
boost::tuple< int, int > dim
boost::tuple< int, int, int, int, int, int, int, int, int, int > cols
boost::tuple< float, float, float, float > stp
boost::tuple< int, int > cols
PatternBgMapKey(int w, int h, int c0, int c1, bool shade)
boost::tuple< int, int > dim
bool operator<(const PatternBgMapKey &rhs) const
link region and track false waveform clip level