From cb8abbe8d2f0e4dfe52bd35613ebba7689628eca Mon Sep 17 00:00:00 2001 From: Julien de Kozak Date: Sat, 1 Nov 2014 18:35:44 +0100 Subject: Make it compile with C++11 support. Reference : https://bugs.webkit.org/show_bug.cgi?id=59249 --- gtk2_ardour/automation_line.cc | 13 ++++++++----- libs/ardour/midi_track.cc | 16 ++++++++++++++-- libs/evoral/src/ControlList.cpp | 13 +++++++++++-- libs/vamp-plugins/SpectralCentroid.cpp | 12 ++++++------ 4 files changed, 39 insertions(+), 15 deletions(-) diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc index e87dce8367..69c74f7ab7 100644 --- a/gtk2_ardour/automation_line.cc +++ b/gtk2_ardour/automation_line.cc @@ -17,14 +17,17 @@ */ +#include + #ifdef COMPILER_MSVC #include -/* isinf() & isnan() are C99 standards, which older MSVC doesn't provide */ -#define isinf(val) !((bool)_finite((double)val)) -#define isnan(val) (bool)_isnan((double)val) + +// 'std::isnan()' is not available in MSVC. +#define isnan_local(val) (bool)_isnan((double)val) +#else +#define isnan_local std::isnan #endif -#include #include #include #include @@ -976,7 +979,7 @@ AutomationLine::reset_callback (const Evoral::ControlList& events) model_to_view_coord (tx, ty); - if (isnan (tx) || isnan (ty)) { + if (isnan_local (tx) || isnan_local (ty)) { warning << string_compose (_("Ignoring illegal points on AutomationLine \"%1\""), _name) << endmsg; continue; diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc index 5e26251d84..f7294d8e3b 100644 --- a/libs/ardour/midi_track.cc +++ b/libs/ardour/midi_track.cc @@ -16,6 +16,18 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include + +#ifdef COMPILER_MSVC +#include + +// 'std::isinf()' and 'std::isnan()' are not available in MSVC. +#define isinf_local(val) !((bool)_finite((double)val)) +#define isnan_local(val) (bool)_isnan((double)val) +#else +#define isinf_local std::isinf +#define isnan_local std::isnan +#endif #include "pbd/ffs.h" #include "pbd/enumwriter.h" @@ -647,9 +659,9 @@ MidiTrack::MidiControl::set_value(double val) const Evoral::Parameter ¶meter = _list ? _list->parameter() : Control::parameter(); bool valid = false; - if (isinf(val)) { + if (isinf_local(val)) { cerr << "MIDIControl value is infinity" << endl; - } else if (isnan(val)) { + } else if (isnan_local(val)) { cerr << "MIDIControl value is NaN" << endl; } else if (val < parameter.min()) { cerr << "MIDIControl value is < " << parameter.min() << endl; diff --git a/libs/evoral/src/ControlList.cpp b/libs/evoral/src/ControlList.cpp index 5d85dfa407..0876cdef28 100644 --- a/libs/evoral/src/ControlList.cpp +++ b/libs/evoral/src/ControlList.cpp @@ -17,6 +17,16 @@ */ #include + +#ifdef COMPILER_MSVC +#include + +// 'std::isnan()' is not available in MSVC. +#define isnan_local(val) (bool)_isnan((double)val) +#else +#define isnan_local std::isnan +#endif + #include #include #include @@ -837,8 +847,7 @@ ControlList::modify (iterator iter, double when, double val) (*iter)->when = when; (*iter)->value = val; - - if (isnan (val)) { + if (isnan_local (val)) { abort (); } diff --git a/libs/vamp-plugins/SpectralCentroid.cpp b/libs/vamp-plugins/SpectralCentroid.cpp index f93fdcaa32..762af53989 100644 --- a/libs/vamp-plugins/SpectralCentroid.cpp +++ b/libs/vamp-plugins/SpectralCentroid.cpp @@ -40,11 +40,11 @@ #include // 'std::isinf()' and 'std::isnan()' are not available in MSVC. -#define isinf(val) !((bool)_finite((double)val)) -#define isnan(val) (bool)_isnan((double)val) +#define isinf_local(val) !((bool)_finite((double)val)) +#define isnan_local(val) (bool)_isnan((double)val) #else -using std::isnan; -using std::isinf; +#define isinf_local std::isinf +#define isnan_local std::isnan #endif #include "SpectralCentroid.h" @@ -176,13 +176,13 @@ SpectralCentroid::process(const float *const *inputBuffers, Vamp::RealTime) Feature feature; feature.hasTimestamp = false; - if (!isnan(centroidLog) && !isinf(centroidLog)) { + if (!isnan_local(centroidLog) && !isinf_local(centroidLog)) { feature.values.push_back(centroidLog); } returnFeatures[0].push_back(feature); feature.values.clear(); - if (!isnan(centroidLin) && !isinf(centroidLin)) { + if (!isnan_local(centroidLin) && !isinf_local(centroidLin)) { feature.values.push_back(centroidLin); } returnFeatures[1].push_back(feature); -- cgit v1.2.3