diff options
author | Robin Gareus <robin@gareus.org> | 2019-02-28 20:56:23 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-02-28 20:56:23 +0100 |
commit | 959947e7f84aa2af5821d31044e527554165d659 (patch) | |
tree | d6b9b5d8356b5ddd0c6c30fb7e20e42bbed0fdda /libs/ardour/kmeterdsp.cc | |
parent | 9131cd17a02eb8721b75cbf57305f3d25f589982 (diff) |
NO-OP: whitespace (remove vi modelines)
Diffstat (limited to 'libs/ardour/kmeterdsp.cc')
-rw-r--r-- | libs/ardour/kmeterdsp.cc | 137 |
1 files changed, 63 insertions, 74 deletions
diff --git a/libs/ardour/kmeterdsp.cc b/libs/ardour/kmeterdsp.cc index add026797d..5b5331660e 100644 --- a/libs/ardour/kmeterdsp.cc +++ b/libs/ardour/kmeterdsp.cc @@ -20,93 +20,82 @@ #include <math.h> #include "ardour/kmeterdsp.h" - float Kmeterdsp::_omega; +Kmeterdsp::Kmeterdsp (void) + : _z1 (0) + , _z2 (0) + , _rms (0) + , _flag (false) +{} -Kmeterdsp::Kmeterdsp (void) : - _z1 (0), - _z2 (0), - _rms (0), - _flag (false) -{ -} - - -Kmeterdsp::~Kmeterdsp (void) -{ -} +Kmeterdsp::~Kmeterdsp (void) {} -void Kmeterdsp::init (int fsamp) +void +Kmeterdsp::init (int fsamp) { - _omega = 9.72f / fsamp; // ballistic filter coefficient + _omega = 9.72f / fsamp; // ballistic filter coefficient } -void Kmeterdsp::process (float const *p, int n) +void +Kmeterdsp::process (float const* p, int n) { - // Called by JACK's process callback. - // - // p : pointer to sample buffer - // n : number of samples to process - - float s, z1, z2; - - // Get filter state. - z1 = _z1 > 50 ? 50 : (_z1 < 0 ? 0 : _z1); - z2 = _z2 > 50 ? 50 : (_z2 < 0 ? 0 : _z2); - - // Perform filtering. The second filter is evaluated - // only every 4th sample - this is just an optimisation. - n /= 4; // Loop is unrolled by 4. - while (n--) - { - s = *p++; - s *= s; - z1 += _omega * (s - z1); // Update first filter. - s = *p++; - s *= s; - z1 += _omega * (s - z1); // Update first filter. - s = *p++; - s *= s; - z1 += _omega * (s - z1); // Update first filter. - s = *p++; - s *= s; - z1 += _omega * (s - z1); // Update first filter. - z2 += 4 * _omega * (z1 - z2); // Update second filter. - } - - if (isnan(z1)) z1 = 0; - if (isnan(z2)) z2 = 0; - // Save filter state. The added constants avoid denormals. - _z1 = z1 + 1e-20f; - _z2 = z2 + 1e-20f; - - s = sqrtf (2.0f * z2); - - if (_flag) // Display thread has read the rms value. - { - _rms = s; - _flag = false; - } - else - { - // Adjust RMS value and update maximum since last read(). - if (s > _rms) _rms = s; - } + float s, z1, z2; + + // Get filter state. + z1 = _z1 > 50 ? 50 : (_z1 < 0 ? 0 : _z1); + z2 = _z2 > 50 ? 50 : (_z2 < 0 ? 0 : _z2); + + // Perform filtering. The second filter is evaluated + // only every 4th sample - this is just an optimisation. + n /= 4; // Loop is unrolled by 4. + while (n--) { + s = *p++; + s *= s; + z1 += _omega * (s - z1); // Update first filter. + s = *p++; + s *= s; + z1 += _omega * (s - z1); // Update first filter. + s = *p++; + s *= s; + z1 += _omega * (s - z1); // Update first filter. + s = *p++; + s *= s; + z1 += _omega * (s - z1); // Update first filter. + z2 += 4 * _omega * (z1 - z2); // Update second filter. + } + + if (isnan(z1)) z1 = 0; + if (isnan(z2)) z2 = 0; + + // Save filter state. The added constants avoid denormals. + _z1 = z1 + 1e-20f; + _z2 = z2 + 1e-20f; + + s = sqrtf (2.0f * z2); + + if (_flag) { + // Display thread has read the rms value. + _rms = s; + _flag = false; + } else { + // Adjust RMS value and update maximum since last read(). + if (s > _rms) _rms = s; + } } /* Returns highest _rms value since last call */ -float Kmeterdsp::read () +float +Kmeterdsp::read () { - float rv= _rms; - _flag = true; // Resets _rms in next process(). - return rv; + float rv= _rms; + _flag = true; // Resets _rms in next process(). + return rv; } -void Kmeterdsp::reset () +void +Kmeterdsp::reset () { - _z1 = _z2 = _rms = .0f; - _flag = false; + _z1 = _z2 = _rms = .0f; + _flag = false; } - -/* vi:set ts=8 sts=8 sw=4: */ |