X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fvumeterdsp.cc;fp=libs%2Fardour%2Fvumeterdsp.cc;h=0000000000000000000000000000000000000000;hb=d80f672e8487f459d76ab291958bffcded08f0fd;hp=67d48f6c5411859b5166f5f5b470402370fb3d30;hpb=ce621d1c8a600853be0020942a9664ccee0ab165;p=ardour.git diff --git a/libs/ardour/vumeterdsp.cc b/libs/ardour/vumeterdsp.cc deleted file mode 100644 index 67d48f6c54..0000000000 --- a/libs/ardour/vumeterdsp.cc +++ /dev/null @@ -1,89 +0,0 @@ -/* - Copyright (C) 2012 Fons Adriaensen - Adopted for Ardour 2013 by Robin Gareus - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include -#include "ardour/vumeterdsp.h" - - -float Vumeterdsp::_w; -float Vumeterdsp::_g; - - -Vumeterdsp::Vumeterdsp (void) : - _z1 (0), - _z2 (0), - _m (0), - _res (true) -{ -} - - -Vumeterdsp::~Vumeterdsp (void) -{ -} - - -void Vumeterdsp::process (float *p, int n) -{ - float z1, z2, m, t1, t2; - - z1 = _z1; - z2 = _z2; - m = _res ? 0: _m; - _res = false; - - n /= 4; - while (n--) - { - t2 = z2 / 2; - t1 = fabsf (*p++) - t2; - z1 += _w * (t1 - z1); - t1 = fabsf (*p++) - t2; - z1 += _w * (t1 - z1); - t1 = fabsf (*p++) - t2; - z1 += _w * (t1 - z1); - t1 = fabsf (*p++) - t2; - z1 += _w * (t1 - z1); - z2 += 4 * _w * (z1 - z2); - if (z2 > m) m = z2; - } - - _z1 = z1; - _z2 = z2 + 1e-10f; - _m = m; -} - - -float Vumeterdsp::read (void) -{ - _res = true; - return _g * _m; -} - -void Vumeterdsp::reset () -{ - _z1 = _z2 = _m = .0f; - _res = true; -} - -void Vumeterdsp::init (float fsamp) -{ - _w = 11.1f / fsamp; - _g = 1.5f * 1.571f; -}