summaryrefslogtreecommitdiff
path: root/libs/ardour/automation_control.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/automation_control.cc')
-rw-r--r--libs/ardour/automation_control.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/libs/ardour/automation_control.cc b/libs/ardour/automation_control.cc
index 7e9b55976c..3629345d94 100644
--- a/libs/ardour/automation_control.cc
+++ b/libs/ardour/automation_control.cc
@@ -18,6 +18,7 @@
*/
+#include <math.h>
#include <iostream>
#include "ardour/automation_control.h"
#include "ardour/automation_watch.h"
@@ -29,6 +30,14 @@
#include "i18n.h"
+#ifdef COMPILER_MSVC
+#include <float.h>
+// C99 'isfinite()' is not available in MSVC.
+#define isfinite_local(val) (bool)_finite((double)val)
+#else
+#define isfinite_local isfinite
+#endif
+
using namespace std;
using namespace ARDOUR;
using namespace PBD;
@@ -199,7 +208,7 @@ AutomationControl::internal_to_interface (double val) const
double
AutomationControl::interface_to_internal (double val) const
{
- if (!isfinite (val)) {
+ if (!isfinite_local (val)) {
val = 0;
}
if (_desc.logarithmic) {