19 #ifndef __push2_meter_h__
20 #define __push2_meter_h__
25 #include <cairomm/pattern.h>
26 #include <cairomm/region.h>
43 int clr0=0x008800ff,
int clr1=0x008800ff,
44 int clr2=0x00ff00ff,
int clr3=0x00ff00ff,
45 int clr4=0xffaa00ff,
int clr5=0xffaa00ff,
46 int clr6=0xffff00ff,
int clr7=0xffff00ff,
47 int clr8=0xff0000ff,
int clr9=0xff0000ff,
48 int bgc0=0x333333ff,
int bgc1=0x444444ff,
49 int bgh0=0x991122ff,
int bgh1=0x551111ff,
59 int clr0=0x008800ff,
int clr1=0x008800ff,
60 int clr2=0x00ff00ff,
int clr3=0x00ff00ff,
61 int clr4=0xffaa00ff,
int clr5=0xffaa00ff,
62 int clr6=0xffff00ff,
int clr7=0xffff00ff,
63 int clr8=0xff0000ff,
int clr9=0xff0000ff,
64 int bgc0=0x333333ff,
int bgc1=0x444444ff,
65 int bgh0=0x991122ff,
int bgh1=0x551111ff,
114 void init (
int clr0,
int clr1,
int clr2,
int clr3,
115 int clr4,
int clr5,
int clr6,
int clr7,
119 float stp0,
float stp1,
120 float stp2,
float stp3,
142 float stp0,
float stp1,
float stp2,
float stp3,
143 int c0,
int c1,
int c2,
int c3,
144 int c4,
int c5,
int c6,
int c7,
145 int c8,
int c9,
int st
148 ,
stp(stp0, stp1, stp2, stp3)
149 ,
cols(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9)
159 std::tuple<float, float, float, float>
stp;
160 std::tuple<int, int, int, int, int, int, int, int, int, int>
cols;
163 typedef std::map<Pattern10MapKey, Cairo::RefPtr<Cairo::Pattern> >
Pattern10Map;
178 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)
std::tuple< int, int > dim
std::tuple< int, int, int, int, int, int, int, int, int, int > cols
std::tuple< float, float, float, float > stp
std::tuple< int, int > dim
std::tuple< int, int > cols
PatternBgMapKey(int w, int h, int c0, int c1, bool shade)
bool operator<(const PatternBgMapKey &rhs) const
link region and track false waveform clip level