From 1cb9f68cf13781b6cf9e51e05eed3b2911ca0fb3 Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Wed, 14 Aug 2013 17:11:35 -0700 Subject: [PATCH] Mixer: Limit rate of DSP meter updates. --- mixer/src/Mixer_Strip.C | 22 +++++++++++++++++++++- mixer/src/Mixer_Strip.H | 2 ++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/mixer/src/Mixer_Strip.C b/mixer/src/Mixer_Strip.C index c19ccc6..2b225d0 100644 --- a/mixer/src/Mixer_Strip.C +++ b/mixer/src/Mixer_Strip.C @@ -464,7 +464,25 @@ Mixer_Strip::update ( void ) _chain->update(); } if ( group() ) - dsp_load_progress->value( group()->dsp_load() ); + { + if ( ( _dsp_load_index++ % 10 ) == 0 ) + { + float l = group()->dsp_load(); + + dsp_load_progress->value( l ); + + { + char pat[20]; + snprintf( pat, sizeof(pat), "%.1f%%", l * 100.0f ); + dsp_load_progress->copy_tooltip( pat ); + } + + if ( l <= 0.15f ) + dsp_load_progress->color2( fl_rgb_color( 127,127,127 ) ); + else + dsp_load_progress->color2( FL_RED ); + } + } } void @@ -476,6 +494,8 @@ Mixer_Strip::init ( ) _chain = 0; _group = 0; + _dsp_load_index = 0; + box( FL_FLAT_BOX ); labeltype( FL_NO_LABEL ); diff --git a/mixer/src/Mixer_Strip.H b/mixer/src/Mixer_Strip.H index 7b43ee5..62668ff 100644 --- a/mixer/src/Mixer_Strip.H +++ b/mixer/src/Mixer_Strip.H @@ -85,6 +85,8 @@ public: private: + unsigned int _dsp_load_index; + /* used to defer setting the mode of the gain controller until the chain has been added and the controller connected to a default module */