diff options
author | John Emmas <johne53@tiscali.co.uk> | 2013-07-20 08:30:40 +0100 |
---|---|---|
committer | John Emmas <johne53@tiscali.co.uk> | 2013-07-20 08:30:40 +0100 |
commit | 53f1cb2a0f2403ee473dd1802fd17597b05d5307 (patch) | |
tree | 82467210372445583d748c765b4f7a9876383aed /libs/vamp-plugins/SpectralCentroid.cpp | |
parent | 9d774969fcf8539aa301b20d659710407b7b4e83 (diff) |
Modify 'libs/vamp-plugins' to be buildable with MSVC
Diffstat (limited to 'libs/vamp-plugins/SpectralCentroid.cpp')
-rw-r--r-- | libs/vamp-plugins/SpectralCentroid.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/libs/vamp-plugins/SpectralCentroid.cpp b/libs/vamp-plugins/SpectralCentroid.cpp index 82d80b8100..f1493bf282 100644 --- a/libs/vamp-plugins/SpectralCentroid.cpp +++ b/libs/vamp-plugins/SpectralCentroid.cpp @@ -34,6 +34,19 @@ 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); |