New editor API to retrieve the Stripable with via presentation info order.
[ardour.git] / libs / ardour / ardour / mtdm.h
index 7fa970755436f6fe2f2bc5ebee675cc5a2646e53..bb30ac5d0aa7a964acd7d3678a0519c66d577424 100644 (file)
@@ -1,6 +1,6 @@
 /*
-    Copyright (C) 2003-2008 Fons Adriaensen <fons@kokkinizita.net>
-    
+    Copyright (C) 2003-2012 Fons Adriaensen <fons@kokkinizita.net>
+
     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
 #ifndef __libardour_mtdm_h__
 #define __libardour_mtdm_h__
 
-#include <cstdlib>
-#include <cstdio>
-#include <cmath>
-#include <unistd.h>
-
-class MTDM {
-  public:
-       
-        MTDM ();
-        
-        int process (size_t len, float *inp, float *out);
-        int resolve (void);
-        void invert (void) { _inv ^= 1; }
-        int    inv (void) { return _inv; }
-        double del (void) { return _del; }
-        double err (void) { return _err; }
-
-   private:
-        class Freq {
-          public:
-                int   p;
-                int   f;
-                float a;
-                float xa;
-                float ya;
-                float xf;
-                float yf;
-        };
-
-        double  _del;
-        double  _err;
-        int     _cnt;
-        int     _inv;
-        Freq    _freq [5];
+#include <stddef.h>
+
+#include "ardour/libardour_visibility.h"
+
+class LIBARDOUR_API MTDM
+{
+public:
+
+    MTDM (int fsamp);
+    int process (size_t len, float *inp, float *out);
+    int resolve (void);
+    void invert (void) { _inv ^= 1; }
+    int    inv (void) { return _inv; }
+    double del (void) { return _del; }
+    double err (void) { return _err; }
+    float get_peak () { const float rv = _peak; _peak = 0; return rv; }
+
+private:
+    class Freq {
+      public:
+       int   p;
+       int   f;
+       float xa;
+       float ya;
+       float x1;
+       float y1;
+       float x2;
+       float y2;
+    };
+
+    double  _del;
+    double  _err;
+    float   _wlp;
+    int     _cnt;
+    int     _inv;
+    Freq    _freq [13];
+    float   _peak;
 };
 
 #endif /* __libardour_mtdm_h__ */