send a slightly more useful message if a control protocol's probe() method fails
[ardour.git] / libs / ardour / mtdm.cc
index fca9b6341696762c1be5f25cef45e4198a704e75..f959d30539d752da322f86138d2f1e4415634f2c 100644 (file)
 */
 
 #include <math.h>
+#include <assert.h>
 
 #include "ardour/mtdm.h"
 
 MTDM::MTDM (int fsamp)
   : _cnt (0)
   , _inv (0)
+  , _peak (0)
 {
     int   i;
     Freq  *F;
@@ -56,11 +58,14 @@ int MTDM::process (size_t len, float *ip, float *op)
     int    i;
     float  vip, vop, a, c, s;
     Freq   *F;
+               float peak = 0;
+               assert (len > 0);
 
     while (len--)
     {
         vop = 0.0f;
        vip = *ip++;
+       if (fabsf(vip) > peak) { peak = vip; }
        for (i = 0, F = _freq; i < 13; i++, F++)
        {
            a = 2 * (float) M_PI * (F->p & 65535) / 65536.0;
@@ -86,6 +91,8 @@ int MTDM::process (size_t len, float *ip, float *op)
        }
     }
 
+    if (peak > _peak) { _peak = vip; }
+
     return 0;
 }