Modify 'libs/vamp-plugins' to be buildable with MSVC
authorJohn Emmas <johne53@tiscali.co.uk>
Sat, 20 Jul 2013 07:30:40 +0000 (08:30 +0100)
committerJohn Emmas <johne53@tiscali.co.uk>
Sat, 20 Jul 2013 07:30:40 +0000 (08:30 +0100)
libs/vamp-plugins/Onset.cpp
libs/vamp-plugins/OnsetDetect.cpp
libs/vamp-plugins/PercussionOnsetDetector.cpp
libs/vamp-plugins/SpectralCentroid.cpp
msvc_extra_headers/ardourext/sys/targetsxs.h.input

index d475b11be93af1ef989da64bda702a9b5f45a2ba..4a58bf9fa52582a1f7d0f7376238adbced0a4a81 100644 (file)
@@ -14,6 +14,9 @@
 
 */
 
+#ifdef COMPILER_MSVC
+#include <ardourext/float_cast.h>
+#endif
 #include <math.h>
 #include "Onset.h"
 
index 614eb4c94388f9354968eac12d8d3e0efb8d442b..714eee3647fa69638b66c4d47088a9bf430c0832 100644 (file)
@@ -12,6 +12,9 @@
     COPYING included with this distribution for more information.
 */
 
+#ifdef COMPILER_MSVC
+#include <ardourext/float_cast.h>
+#endif
 #include "OnsetDetect.h"
 
 #include "dsp/onsets/DetectionFunction.h"
index 447eb19a280e373b3b5f7de4456c1bc854c004c7..623b89b6a0654b25e08813488327d7ef2c013d43 100644 (file)
@@ -34,6 +34,9 @@
     authorization.
 */
 
+#ifdef COMPILER_MSVC
+#include <ardourext/float_cast.h>
+#endif
 #include "PercussionOnsetDetector.h"
 
 using std::string;
index 82d80b81000532bc518c31f2b4bfb76a34e096b9..f1493bf282612487e14b9a22874b596ec086dcad 100644 (file)
     authorization.
 */
 
+#include <cmath>
+
+#ifdef COMPILER_MSVC
+#include <float.h>
+
+// 'std::isinf()' and 'std::isnan()' are not available in MSVC.
+#define isinf(val) !((bool)_finite((double)val))
+#define isnan(val) (bool)_isnan((double)val)
+#else
+using std::isnan;
+using std:isinf;
+#endif
+
 #include "SpectralCentroid.h"
 
 using std::string;
@@ -41,8 +54,6 @@ using std::vector;
 using std::cerr;
 using std::endl;
 
-#include <cmath>
-
 
 SpectralCentroid::SpectralCentroid(float inputSampleRate) :
     Plugin(inputSampleRate),
@@ -165,13 +176,13 @@ SpectralCentroid::process(const float *const *inputBuffers, Vamp::RealTime)
 
        Feature feature;
        feature.hasTimestamp = false;
-        if (!std::isnan(centroidLog) && !std::isinf(centroidLog)) {
+        if (!isnan(centroidLog) && !isinf(centroidLog)) {
             feature.values.push_back(centroidLog);
         }
        returnFeatures[0].push_back(feature);
 
         feature.values.clear();
-        if (!std::isnan(centroidLin) && !std::isinf(centroidLin)) {
+        if (!isnan(centroidLin) && !isinf(centroidLin)) {
             feature.values.push_back(centroidLin);
         }
        returnFeatures[1].push_back(feature);
index 6653041d8a064f212e2b9d4efb000f6c1b645fda..2730c8cb8d920a1fa114ed25d5aee03905ddcf67 100644 (file)
@@ -57,8 +57,8 @@ __declspec(selectany) int _forceAtlDllManifestRTM;
    implementation for commonly used integer types. */
 #include <stdint.h>
 
-#if (BUILDING_ARDOUR)
 #if defined(_MSC_VER) && !defined(__MINGW__) && !defined(__MINGW32__)
+#if (INCLUDE_ARDOUR_MISCELLANEOUS)
 #include <ardourext/misc.h>
 #endif
 #endif