39constexpr double kAxisMax = 32767.0;
43constexpr int kSliderAxisOffset = 5;
46enum HatBits : std::uint8_t
56enum class PovDirection
71PovDirection HatToPov(std::uint8_t hat);
74inline double ScaleAxis(std::int16_t raw) {
return static_cast<double>(raw) / kAxisMax; }
80 std::vector<std::int16_t> axes;
81 std::vector<std::uint8_t> buttons;
82 std::vector<std::uint8_t> hats;
84 std::int16_t Axis(
int i)
const {
return (i >= 0 && std::size_t(i) < axes.size()) ? axes[std::size_t(i)] : 0; }
85 bool Button(
int i)
const {
return i >= 0 && std::size_t(i) < buttons.size() && buttons[std::size_t(i)] != 0; }
86 std::uint8_t Hat(
int i)
const {
return (i >= 0 && std::size_t(i) < hats.size()) ? hats[std::size_t(i)] : kHatCentered; }
89 double ScaledAxis(
int i)
const {
return ScaleAxis(Axis(i)); }
91 double ScaledSlider(
int k)
const {
return ScaleAxis(Axis(kSliderAxisOffset + k)); }
115void DispatchChanges(
const JoystickState& previous,
const JoystickState& current, JoystickListener& listener);
Receives the changes between two joystick states, as an OIS JoyStickListener received events.
Definition JoystickInput.h:96
virtual void ButtonPressed(int button, const JoystickState &state)
Button button went down (OIS buttonPressed).
Definition JoystickInput.h:100
virtual void ButtonReleased(int button, const JoystickState &state)
Button button went up (OIS buttonReleased).
Definition JoystickInput.h:102
virtual void AxisMoved(int axis, const JoystickState &state)
SDL axis axis changed (OIS axisMoved, or sliderMoved for a slider axis).
Definition JoystickInput.h:104
virtual void HatMoved(int hat, const JoystickState &state)
Hat hat changed (OIS povMoved).
Definition JoystickInput.h:106
Simple waypoint object.
Definition CableAttach.h:16
Definition JoystickInput.h:79
double ScaledSlider(int k) const
The OIS slider k, scaled (mSliders[k].abX / MAX_AXIS); SDL axis kSliderAxisOffset + k.
Definition JoystickInput.h:91
double ScaledAxis(int i) const
The OIS axis i, scaled (mAxes[i].abs / MAX_AXIS).
Definition JoystickInput.h:89