Avoid some unnecessary redrawing.
This commit is contained in:
parent
b90a3ac6e5
commit
43fe378e17
|
@ -18,7 +18,7 @@
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
/* a VU meter, either horizontal or vertical. Color is a gradient
|
/* a VU meter, either horizontal or vertical. Color is a gradient
|
||||||
from color() to selection_color(). box() is used to draw the
|
from min_color() to max_color(). box() is used to draw the
|
||||||
individual 'lights'. division() controls how many 'lights' there
|
individual 'lights'. division() controls how many 'lights' there
|
||||||
are. */
|
are. */
|
||||||
|
|
||||||
|
@ -53,9 +53,8 @@ void
|
||||||
VU_Meter::draw ( void )
|
VU_Meter::draw ( void )
|
||||||
{
|
{
|
||||||
// draw_box( FL_FLAT_BOX, x(), y(), w(), h(), color() );
|
// draw_box( FL_FLAT_BOX, x(), y(), w(), h(), color() );
|
||||||
|
int v = pos( value() );
|
||||||
int v = (value() / maximum()) * _divisions;
|
int pv = pos( _peak );
|
||||||
int pv = (_peak / maximum()) * _divisions;
|
|
||||||
|
|
||||||
int bh = h() / _divisions;
|
int bh = h() / _divisions;
|
||||||
int bw = w() / _divisions;
|
int bw = w() / _divisions;
|
||||||
|
|
|
@ -37,6 +37,8 @@ class VU_Meter : public Fl_Widget
|
||||||
Fl_Color _min_color;
|
Fl_Color _min_color;
|
||||||
Fl_Color _max_color;
|
Fl_Color _max_color;
|
||||||
|
|
||||||
|
int pos ( float v ) { return ( v / _maximum ) * _divisions; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
virtual void draw ( void );
|
virtual void draw ( void );
|
||||||
|
@ -52,7 +54,7 @@ public:
|
||||||
void minimum ( float v ) { _minimum = v; redraw(); }
|
void minimum ( float v ) { _minimum = v; redraw(); }
|
||||||
float minimum ( void ) const { return _minimum; }
|
float minimum ( void ) const { return _minimum; }
|
||||||
|
|
||||||
void value ( float v ) { _value = v; redraw(); }
|
void value ( float v ) { if ( pos( v ) != pos( _value ) ) redraw(); _value = v; }
|
||||||
float value ( void ) const { return _value; }
|
float value ( void ) const { return _value; }
|
||||||
|
|
||||||
void reset ( void ) { _peak = 0.0f; }
|
void reset ( void ) { _peak = 0.0f; }
|
||||||
|
|
Loading…
Reference in New Issue