]> git.mxchange.org Git - flightgear.git/blobdiff - src/Network/ATC-Inputs.cxx
IRIX fixes.
[flightgear.git] / src / Network / ATC-Inputs.cxx
index 3209827e0dc488760eba0df36b49c45d9a4416e9..4c6164928d1474ce6b6f41727b17a821975f56d2 100644 (file)
@@ -31,6 +31,8 @@
 #  include <sys/types.h>
 #  include <sys/stat.h>
 #  include <fcntl.h>
+#  include <unistd.h>
+#  include <istream>
 #endif
 
 #include <errno.h>
@@ -222,7 +224,8 @@ bool FGATCInput::open() {
 /////////////////////////////////////////////////////////////////////
 
 // scale a number between min and max (with center defined) to a scale
-// from -1.0 to 1.0
+// from -1.0 to 1.0.  The deadband value is symmetric, so specifying
+// '1' will give you a deadband of +/-1
 static double scale( int center, int deadband, int min, int max, int value ) {
     // cout << center << " " << min << " " << max << " " << value << " ";
     double result;
@@ -231,9 +234,11 @@ static double scale( int center, int deadband, int min, int max, int value ) {
     if ( value <= (center - deadband) ) {
         range = (center - deadband) - min;
         result = (value - (center - deadband)) / range;
-    } else {
+    } else if ( value >= (center + deadband) ) {
         range = max - (center + deadband);
         result = (value - (center + deadband)) / range;            
+    } else {
+        result = 0.0;
     }
 
     if ( result < -1.0 ) result = -1.0;