summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_track.cc
diff options
context:
space:
mode:
authorJulien de Kozak <jdekozak@hotmail.com>2014-11-01 18:35:44 +0100
committerRobin Gareus <robin@gareus.org>2014-12-01 23:18:11 +0100
commitcb8abbe8d2f0e4dfe52bd35613ebba7689628eca (patch)
treecd6ef56b6c2af7c1aeda26d3d2afd200c4dabf89 /libs/ardour/midi_track.cc
parent036b6234acdbf892171c1cbfa99efb823d6ebc58 (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.cc16
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 &parameter = _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;