Ardour  9.0-pre0-822-g12e3bc5c20
ArdourWidgets::FastMeter Class Reference

#include <fastmeter.h>

Inheritance diagram for ArdourWidgets::FastMeter:
[legend]

Classes

struct  Pattern10MapKey
 
struct  PatternBgMapKey
 

Public Types

enum  Orientation { Horizontal , Vertical }
 

Public Member Functions

 FastMeter (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)
 
virtual ~FastMeter ()
 
void set (float level, float peak=-1)
 
void clear ()
 
float get_level ()
 
float get_user_level ()
 
float get_peak ()
 
long hold_count ()
 
void set_hold_count (long)
 
void set_highlight (bool)
 
bool get_highlight ()
 
void render (Cairo::RefPtr< Cairo::Context > const &, cairo_rectangle_t *)
 
- Public Member Functions inherited from CairoWidget
 CairoWidget ()
 
virtual ~CairoWidget ()
 
void set_canvas_widget ()
 
void use_nsglview (bool retina=true)
 
void use_image_surface (bool yn=true)
 
void queue_draw ()
 
void queue_resize ()
 
int get_width () const
 
int get_height () const
 
void size_allocate (Gtk::Allocation &)
 
void set_dirty (cairo_rectangle_t *area=0)
 
Gtkmm2ext::ActiveState active_state () const
 
Gtkmm2ext::VisualState visual_state () const
 
virtual void set_active_state (Gtkmm2ext::ActiveState)
 
virtual void set_visual_state (Gtkmm2ext::VisualState)
 
void unset_active_state ()
 
void unset_visual_state ()
 
void set_active (bool)
 
bool get_active () const
 
void set_draw_background (bool yn)
 
uint32_t background_color ()
 
- Public Member Functions inherited from Gtkmm2ext::CairoCanvas
virtual ~CairoCanvas ()
 

Static Public Member Functions

static void flush_pattern_cache ()
 
- Static Public Member Functions inherited from CairoWidget
static void provide_background_for_cairo_widget (Gtk::Widget &w, const Gdk::Color &bg)
 
static void set_source_rgb_a (cairo_t *cr, Gdk::Color, float a=1.0)
 
static void set_source_rgb_a (cairo_t *cr, Gtkmm2ext::Color, float a=1.0)
 
static void set_focus_handler (sigc::slot< void, Gtk::Widget * >)
 
- Static Public Member Functions inherited from Gtkmm2ext::CairoTheme
static void set_flat_buttons (bool yn)
 
static void set_boxy_buttons (bool yn)
 
static void set_widget_prelight (bool yn)
 
static bool flat_buttons ()
 
static bool boxy_buttons ()
 
static bool widget_prelight ()
 

Protected Member Functions

void on_size_request (GtkRequisition *)
 
void on_size_allocate (Gtk::Allocation &)
 
- Protected Member Functions inherited from CairoWidget
virtual bool on_expose_event (GdkEventExpose *)
 
void on_size_allocate (Gtk::Allocation &)
 
void on_state_changed (Gtk::StateType)
 
void on_style_changed (const Glib::RefPtr< Gtk::Style > &)
 
void on_realize ()
 
bool on_button_press_event (GdkEventButton *)
 
Gdk::Color get_parent_bg ()
 
void on_map ()
 
void on_unmap ()
 
virtual void on_name_changed ()
 

Private Types

typedef std::map< Pattern10MapKey, Cairo::RefPtr< Cairo::Pattern > > Pattern10Map
 
typedef std::map< PatternBgMapKey, Cairo::RefPtr< Cairo::Pattern > > PatternBgMap
 

Private Member Functions

void vertical_expose (cairo_t *, cairo_rectangle_t *)
 
void vertical_size_request (GtkRequisition *)
 
void vertical_size_allocate (Gtk::Allocation &)
 
void queue_vertical_redraw (const Glib::RefPtr< Gdk::Window > &, float)
 
void horizontal_expose (cairo_t *, cairo_rectangle_t *)
 
void horizontal_size_request (GtkRequisition *)
 
void horizontal_size_allocate (Gtk::Allocation &)
 
void queue_horizontal_redraw (const Glib::RefPtr< Gdk::Window > &, float)
 

Static Private Member Functions

static Cairo::RefPtr< Cairo::Pattern > generate_meter_pattern (int, int, int *, float *, int, bool)
 
static Cairo::RefPtr< Cairo::Pattern > request_vertical_meter (int, int, int *, float *, int)
 
static Cairo::RefPtr< Cairo::Pattern > request_horizontal_meter (int, int, int *, float *, int)
 
static Cairo::RefPtr< Cairo::Pattern > generate_meter_background (int, int, int *, bool, bool)
 
static Cairo::RefPtr< Cairo::Pattern > request_vertical_background (int, int, int *, bool)
 
static Cairo::RefPtr< Cairo::Pattern > request_horizontal_background (int, int, int *, bool)
 

Private Attributes

Cairo::RefPtr< Cairo::Pattern > fgpattern
 
Cairo::RefPtr< Cairo::Pattern > bgpattern
 
gint pixheight
 
gint pixwidth
 
float _stp [4]
 
int _clr [10]
 
int _bgc [2]
 
int _bgh [2]
 
int _styleflags
 
Orientation orientation
 
GdkRectangle pixrect
 
GdkRectangle last_peak_rect
 
gint request_width
 
gint request_height
 
unsigned long hold_cnt
 
unsigned long hold_state
 
bool bright_hold
 
float current_level
 
float current_peak
 
float current_user_level
 
bool highlight
 
uint32_t outline_color
 

Static Private Attributes

static bool no_rgba_overlay
 
static Pattern10Map vm_pattern_cache
 
static PatternBgMap vb_pattern_cache
 
static Pattern10Map hm_pattern_cache
 
static PatternBgMap hb_pattern_cache
 
static int min_pattern_metric_size
 
static int max_pattern_metric_size
 

Additional Inherited Members

- Public Attributes inherited from CairoWidget
sigc::signal< void > StateChanged
 
sigc::signal< bool > QueueDraw
 
sigc::signal< bool > QueueResize
 
- Protected Attributes inherited from CairoWidget
Gtkmm2ext::ActiveState _active_state
 
Gtkmm2ext::VisualState _visual_state
 
bool _need_bg
 
bool _grabbed
 
- Static Protected Attributes inherited from CairoWidget
static sigc::slot< void, Gtk::Widget * > focus_handler
 

Detailed Description

Definition at line 32 of file fastmeter.h.

Member Typedef Documentation

◆ Pattern10Map

typedef std::map<Pattern10MapKey, Cairo::RefPtr<Cairo::Pattern> > ArdourWidgets::FastMeter::Pattern10Map
private

Definition at line 150 of file fastmeter.h.

◆ PatternBgMap

typedef std::map<PatternBgMapKey, Cairo::RefPtr<Cairo::Pattern> > ArdourWidgets::FastMeter::PatternBgMap
private

Definition at line 165 of file fastmeter.h.

Member Enumeration Documentation

◆ Orientation

Enumerator
Horizontal 
Vertical 

Definition at line 34 of file fastmeter.h.

Constructor & Destructor Documentation

◆ FastMeter()

ArdourWidgets::FastMeter::FastMeter ( 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 
)

◆ ~FastMeter()

virtual ArdourWidgets::FastMeter::~FastMeter ( )
virtual

Member Function Documentation

◆ clear()

void ArdourWidgets::FastMeter::clear ( )

◆ flush_pattern_cache()

static void ArdourWidgets::FastMeter::flush_pattern_cache ( )
static

◆ generate_meter_background()

static Cairo::RefPtr<Cairo::Pattern> ArdourWidgets::FastMeter::generate_meter_background ( int  ,
int  ,
int *  ,
bool  ,
bool   
)
staticprivate

◆ generate_meter_pattern()

static Cairo::RefPtr<Cairo::Pattern> ArdourWidgets::FastMeter::generate_meter_pattern ( int  ,
int  ,
int *  ,
float *  ,
int  ,
bool   
)
staticprivate

◆ get_highlight()

bool ArdourWidgets::FastMeter::get_highlight ( )
inline

Definition at line 66 of file fastmeter.h.

◆ get_level()

float ArdourWidgets::FastMeter::get_level ( )
inline

Definition at line 59 of file fastmeter.h.

◆ get_peak()

float ArdourWidgets::FastMeter::get_peak ( )
inline

Definition at line 61 of file fastmeter.h.

◆ get_user_level()

float ArdourWidgets::FastMeter::get_user_level ( )
inline

Definition at line 60 of file fastmeter.h.

◆ hold_count()

long ArdourWidgets::FastMeter::hold_count ( )
inline

Definition at line 63 of file fastmeter.h.

◆ horizontal_expose()

void ArdourWidgets::FastMeter::horizontal_expose ( cairo_t *  ,
cairo_rectangle_t *   
)
private

◆ horizontal_size_allocate()

void ArdourWidgets::FastMeter::horizontal_size_allocate ( Gtk::Allocation &  )
private

◆ horizontal_size_request()

void ArdourWidgets::FastMeter::horizontal_size_request ( GtkRequisition *  )
private

◆ on_size_allocate()

void ArdourWidgets::FastMeter::on_size_allocate ( Gtk::Allocation &  )
protected

◆ on_size_request()

void ArdourWidgets::FastMeter::on_size_request ( GtkRequisition *  )
protected

◆ queue_horizontal_redraw()

void ArdourWidgets::FastMeter::queue_horizontal_redraw ( const Glib::RefPtr< Gdk::Window > &  ,
float   
)
private

◆ queue_vertical_redraw()

void ArdourWidgets::FastMeter::queue_vertical_redraw ( const Glib::RefPtr< Gdk::Window > &  ,
float   
)
private

◆ render()

void ArdourWidgets::FastMeter::render ( Cairo::RefPtr< Cairo::Context > const &  ,
cairo_rectangle_t *   
)
virtual

◆ request_horizontal_background()

static Cairo::RefPtr<Cairo::Pattern> ArdourWidgets::FastMeter::request_horizontal_background ( int  ,
int  ,
int *  ,
bool   
)
staticprivate

◆ request_horizontal_meter()

static Cairo::RefPtr<Cairo::Pattern> ArdourWidgets::FastMeter::request_horizontal_meter ( int  ,
int  ,
int *  ,
float *  ,
int   
)
staticprivate

◆ request_vertical_background()

static Cairo::RefPtr<Cairo::Pattern> ArdourWidgets::FastMeter::request_vertical_background ( int  ,
int  ,
int *  ,
bool   
)
staticprivate

◆ request_vertical_meter()

static Cairo::RefPtr<Cairo::Pattern> ArdourWidgets::FastMeter::request_vertical_meter ( int  ,
int  ,
int *  ,
float *  ,
int   
)
staticprivate

◆ set()

void ArdourWidgets::FastMeter::set ( float  level,
float  peak = -1 
)

◆ set_highlight()

void ArdourWidgets::FastMeter::set_highlight ( bool  )

◆ set_hold_count()

void ArdourWidgets::FastMeter::set_hold_count ( long  )

◆ vertical_expose()

void ArdourWidgets::FastMeter::vertical_expose ( cairo_t *  ,
cairo_rectangle_t *   
)
private

◆ vertical_size_allocate()

void ArdourWidgets::FastMeter::vertical_size_allocate ( Gtk::Allocation &  )
private

◆ vertical_size_request()

void ArdourWidgets::FastMeter::vertical_size_request ( GtkRequisition *  )
private

Member Data Documentation

◆ _bgc

int ArdourWidgets::FastMeter::_bgc[2]
private

Definition at line 81 of file fastmeter.h.

◆ _bgh

int ArdourWidgets::FastMeter::_bgh[2]
private

Definition at line 82 of file fastmeter.h.

◆ _clr

int ArdourWidgets::FastMeter::_clr[10]
private

Definition at line 80 of file fastmeter.h.

◆ _stp

float ArdourWidgets::FastMeter::_stp[4]
private

Definition at line 79 of file fastmeter.h.

◆ _styleflags

int ArdourWidgets::FastMeter::_styleflags
private

Definition at line 83 of file fastmeter.h.

◆ bgpattern

Cairo::RefPtr<Cairo::Pattern> ArdourWidgets::FastMeter::bgpattern
private

Definition at line 75 of file fastmeter.h.

◆ bright_hold

bool ArdourWidgets::FastMeter::bright_hold
private

Definition at line 92 of file fastmeter.h.

◆ current_level

float ArdourWidgets::FastMeter::current_level
private

Definition at line 93 of file fastmeter.h.

◆ current_peak

float ArdourWidgets::FastMeter::current_peak
private

Definition at line 94 of file fastmeter.h.

◆ current_user_level

float ArdourWidgets::FastMeter::current_user_level
private

Definition at line 95 of file fastmeter.h.

◆ fgpattern

Cairo::RefPtr<Cairo::Pattern> ArdourWidgets::FastMeter::fgpattern
private

Definition at line 74 of file fastmeter.h.

◆ hb_pattern_cache

PatternBgMap ArdourWidgets::FastMeter::hb_pattern_cache
staticprivate

Definition at line 170 of file fastmeter.h.

◆ highlight

bool ArdourWidgets::FastMeter::highlight
private

Definition at line 96 of file fastmeter.h.

◆ hm_pattern_cache

Pattern10Map ArdourWidgets::FastMeter::hm_pattern_cache
staticprivate

Definition at line 169 of file fastmeter.h.

◆ hold_cnt

unsigned long ArdourWidgets::FastMeter::hold_cnt
private

Definition at line 90 of file fastmeter.h.

◆ hold_state

unsigned long ArdourWidgets::FastMeter::hold_state
private

Definition at line 91 of file fastmeter.h.

◆ last_peak_rect

GdkRectangle ArdourWidgets::FastMeter::last_peak_rect
private

Definition at line 87 of file fastmeter.h.

◆ max_pattern_metric_size

int ArdourWidgets::FastMeter::max_pattern_metric_size
staticprivate

Definition at line 172 of file fastmeter.h.

◆ min_pattern_metric_size

int ArdourWidgets::FastMeter::min_pattern_metric_size
staticprivate

Definition at line 171 of file fastmeter.h.

◆ no_rgba_overlay

bool ArdourWidgets::FastMeter::no_rgba_overlay
staticprivate

Definition at line 110 of file fastmeter.h.

◆ orientation

Orientation ArdourWidgets::FastMeter::orientation
private

Definition at line 85 of file fastmeter.h.

◆ outline_color

uint32_t ArdourWidgets::FastMeter::outline_color
private

Definition at line 98 of file fastmeter.h.

◆ pixheight

gint ArdourWidgets::FastMeter::pixheight
private

Definition at line 76 of file fastmeter.h.

◆ pixrect

GdkRectangle ArdourWidgets::FastMeter::pixrect
private

Definition at line 86 of file fastmeter.h.

◆ pixwidth

gint ArdourWidgets::FastMeter::pixwidth
private

Definition at line 77 of file fastmeter.h.

◆ request_height

gint ArdourWidgets::FastMeter::request_height
private

Definition at line 89 of file fastmeter.h.

◆ request_width

gint ArdourWidgets::FastMeter::request_width
private

Definition at line 88 of file fastmeter.h.

◆ vb_pattern_cache

PatternBgMap ArdourWidgets::FastMeter::vb_pattern_cache
staticprivate

Definition at line 168 of file fastmeter.h.

◆ vm_pattern_cache

Pattern10Map ArdourWidgets::FastMeter::vm_pattern_cache
staticprivate

Definition at line 167 of file fastmeter.h.


The documentation for this class was generated from the following file: