diff options
author | Julien de Kozak <jdekozak@hotmail.com> | 2014-11-01 18:35:44 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-12-01 23:18:11 +0100 |
commit | cb8abbe8d2f0e4dfe52bd35613ebba7689628eca (patch) | |
tree | cd6ef56b6c2af7c1aeda26d3d2afd200c4dabf89 /libs/ardour/midi_track.cc | |
parent | 036b6234acdbf892171c1cbfa99efb823d6ebc58 (diff) |
Make it compile with C++11 support.
Reference : https://bugs.webkit.org/show_bug.cgi?id=59249
Diffstat (limited to 'libs/ardour/midi_track.cc')
-rw-r--r-- | libs/ardour/midi_track.cc | 16 |
1 files changed, 14 insertions, 2 deletions
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 <cmath> + +#ifdef COMPILER_MSVC +#include <float.h> + +// '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; |