def set_absolute_value(self, value): """Sets the position of the axis based on a value between [-1, 1]. In comparison to the value setter this function bypasses the deadzone and response curve settings. :param value the position of the axis in the range [-1, 1] """ # Log an error on invalid data but continue processing by clamping # the values in the next step if 1.0 - abs(value) < -0.001: logging.getLogger("system").warning( "Wrong data type provided, has to be float in [-1, 1]," " provided value was {:.2f}".format(value)) # Normalize value to [-1, 1] and apply response curve and deadzone # settings self._value = value if not VJoyInterface.SetAxis( int(self._half_range + self._half_range * self._value), self.vjoy_id, self.axis_id): raise VJoyError("Failed setting axis value - {}".format( _error_string(self.vjoy_id, self.axis_id, self._value))) self.vjoy_dev.used()
def value(self, value): """Sets the position of the axis based on a value between [-1, 1]. :param value the position of the axis in the range [-1, 1] """ self.vjoy_dev.ensure_ownership() # Log an error on invalid data but continue processing by clamping # the values in the next step if 1.0 - abs(value) < -0.001: logging.getLogger("system").warning( "Wrong data type provided, has to be float in [-1, 1]," " provided value was {:.2f}".format(value)) # Normalize value to [-1, 1] and apply response curve and deadzone # settings self._value = self._response_curve_fn( self._deadzone_fn(min(1.0, max(-1.0, value)))) if not VJoyInterface.SetAxis( int(self._half_range + self._half_range * self._value), self.vjoy_id, self.axis_id): raise VJoyError("Failed setting axis value - {}".format( _error_string(self.vjoy_id, self.axis_id, self._value))) self.vjoy_dev.used()