InputCommon: add a ton of missing consts

fix some related grammar errors
only the ButtonManager required code changes
This commit is contained in:
Filoppi 2021-05-04 23:47:55 +03:00
parent d586163e38
commit a261e61e9e
20 changed files with 61 additions and 40 deletions

View File

@ -23,7 +23,7 @@ public:
virtual ~Control(); virtual ~Control();
template <typename T = ControlState> template <typename T = ControlState>
T GetState() T GetState() const
{ {
return control_ref->GetState<T>(); return control_ref->GetState<T>();
} }

View File

@ -32,7 +32,7 @@ AnalogStick::AnalogStick(const char* const name_, const char* const ui_name_,
AddInput(Translate, _trans("Modifier")); AddInput(Translate, _trans("Modifier"));
} }
AnalogStick::ReshapeData AnalogStick::GetReshapableState(bool adjusted) AnalogStick::ReshapeData AnalogStick::GetReshapableState(bool adjusted) const
{ {
const ControlState y = controls[0]->GetState() - controls[1]->GetState(); const ControlState y = controls[0]->GetState() - controls[1]->GetState();
const ControlState x = controls[3]->GetState() - controls[2]->GetState(); const ControlState x = controls[3]->GetState() - controls[2]->GetState();
@ -46,7 +46,7 @@ AnalogStick::ReshapeData AnalogStick::GetReshapableState(bool adjusted)
return Reshape(x, y, modifier); return Reshape(x, y, modifier);
} }
AnalogStick::StateData AnalogStick::GetState() AnalogStick::StateData AnalogStick::GetState() const
{ {
return GetReshapableState(true); return GetReshapableState(true);
} }

View File

@ -18,10 +18,10 @@ public:
AnalogStick(const char* name, std::unique_ptr<StickGate>&& stick_gate); AnalogStick(const char* name, std::unique_ptr<StickGate>&& stick_gate);
AnalogStick(const char* name, const char* ui_name, std::unique_ptr<StickGate>&& stick_gate); AnalogStick(const char* name, const char* ui_name, std::unique_ptr<StickGate>&& stick_gate);
ReshapeData GetReshapableState(bool adjusted) final override; ReshapeData GetReshapableState(bool adjusted) const final override;
ControlState GetGateRadiusAtAngle(double ang) const override; ControlState GetGateRadiusAtAngle(double ang) const override;
StateData GetState(); StateData GetState() const;
private: private:
std::unique_ptr<StickGate> m_stick_gate; std::unique_ptr<StickGate> m_stick_gate;

View File

@ -20,7 +20,7 @@ public:
Buttons(const std::string& ini_name, const std::string& group_name); Buttons(const std::string& ini_name, const std::string& group_name);
template <typename C> template <typename C>
void GetState(C* const buttons, const C* bitmasks) void GetState(C* const buttons, const C* bitmasks) const
{ {
for (auto& control : controls) for (auto& control : controls)
*buttons |= *(bitmasks++) * control->GetState<bool>(); *buttons |= *(bitmasks++) * control->GetState<bool>();

View File

@ -64,7 +64,7 @@ Cursor::Cursor(std::string name_, std::string ui_name_)
AddSetting(&m_autohide_setting, {_trans("Auto-Hide")}, false); AddSetting(&m_autohide_setting, {_trans("Auto-Hide")}, false);
} }
Cursor::ReshapeData Cursor::GetReshapableState(bool adjusted) Cursor::ReshapeData Cursor::GetReshapableState(bool adjusted) const
{ {
const ControlState y = controls[0]->GetState() - controls[1]->GetState(); const ControlState y = controls[0]->GetState() - controls[1]->GetState();
const ControlState x = controls[3]->GetState() - controls[2]->GetState(); const ControlState x = controls[3]->GetState() - controls[2]->GetState();

View File

@ -25,9 +25,10 @@ public:
Cursor(std::string name, std::string ui_name); Cursor(std::string name, std::string ui_name);
ReshapeData GetReshapableState(bool adjusted) final override; ReshapeData GetReshapableState(bool adjusted) const final override;
ControlState GetGateRadiusAtAngle(double ang) const override; ControlState GetGateRadiusAtAngle(double ang) const override;
// Modifies the state
StateData GetState(bool adjusted); StateData GetState(bool adjusted);
// Yaw movement in radians. // Yaw movement in radians.

View File

@ -65,7 +65,7 @@ Force::Force(const std::string& name_) : ReshapableInput(name_, name_, GroupType
90, 1, 180); 90, 1, 180);
} }
Force::ReshapeData Force::GetReshapableState(bool adjusted) Force::ReshapeData Force::GetReshapableState(bool adjusted) const
{ {
const ControlState y = controls[0]->GetState() - controls[1]->GetState(); const ControlState y = controls[0]->GetState() - controls[1]->GetState();
const ControlState x = controls[3]->GetState() - controls[2]->GetState(); const ControlState x = controls[3]->GetState() - controls[2]->GetState();
@ -77,7 +77,7 @@ Force::ReshapeData Force::GetReshapableState(bool adjusted)
return Reshape(x, y); return Reshape(x, y);
} }
Force::StateData Force::GetState(bool adjusted) Force::StateData Force::GetState(bool adjusted) const
{ {
const auto state = GetReshapableState(adjusted); const auto state = GetReshapableState(adjusted);
ControlState z = controls[4]->GetState() - controls[5]->GetState(); ControlState z = controls[4]->GetState() - controls[5]->GetState();

View File

@ -19,12 +19,12 @@ public:
explicit Force(const std::string& name); explicit Force(const std::string& name);
ReshapeData GetReshapableState(bool adjusted) final override; ReshapeData GetReshapableState(bool adjusted) const final override;
ControlState GetGateRadiusAtAngle(double ang) const final override; ControlState GetGateRadiusAtAngle(double ang) const final override;
ControlState GetDefaultInputRadiusAtAngle(double angle) const final override; ControlState GetDefaultInputRadiusAtAngle(double angle) const final override;
StateData GetState(bool adjusted = true); StateData GetState(bool adjusted = true) const;
// Velocities returned in m/s. // Velocities returned in m/s.
ControlState GetSpeed() const; ControlState GetSpeed() const;

View File

@ -29,7 +29,7 @@ Slider::Slider(const std::string& name_) : Slider(name_, name_)
{ {
} }
Slider::StateData Slider::GetState() Slider::StateData Slider::GetState() const
{ {
const ControlState deadzone = m_deadzone_setting.GetValue() / 100; const ControlState deadzone = m_deadzone_setting.GetValue() / 100;
const ControlState state = controls[1]->GetState() - controls[0]->GetState(); const ControlState state = controls[1]->GetState() - controls[0]->GetState();

View File

@ -23,7 +23,7 @@ public:
Slider(const std::string& name_, const std::string& ui_name_); Slider(const std::string& name_, const std::string& ui_name_);
explicit Slider(const std::string& name_); explicit Slider(const std::string& name_);
StateData GetState(); StateData GetState() const;
private: private:
SettingValue<double> m_deadzone_setting; SettingValue<double> m_deadzone_setting;

View File

@ -42,7 +42,7 @@ Tilt::Tilt(const std::string& name_) : ReshapableInput(name_, name_, GroupType::
7, 1, 50); 7, 1, 50);
} }
Tilt::ReshapeData Tilt::GetReshapableState(bool adjusted) Tilt::ReshapeData Tilt::GetReshapableState(bool adjusted) const
{ {
const ControlState y = controls[0]->GetState() - controls[1]->GetState(); const ControlState y = controls[0]->GetState() - controls[1]->GetState();
const ControlState x = controls[3]->GetState() - controls[2]->GetState(); const ControlState x = controls[3]->GetState() - controls[2]->GetState();
@ -56,7 +56,7 @@ Tilt::ReshapeData Tilt::GetReshapableState(bool adjusted)
return Reshape(x, y, modifier); return Reshape(x, y, modifier);
} }
Tilt::StateData Tilt::GetState() Tilt::StateData Tilt::GetState() const
{ {
return GetReshapableState(true); return GetReshapableState(true);
} }

View File

@ -19,14 +19,14 @@ public:
explicit Tilt(const std::string& name); explicit Tilt(const std::string& name);
ReshapeData GetReshapableState(bool adjusted) final override; ReshapeData GetReshapableState(bool adjusted) const final override;
ControlState GetGateRadiusAtAngle(double angle) const final override; ControlState GetGateRadiusAtAngle(double angle) const final override;
// Tilt is using the gate radius to adjust the tilt angle so we must provide an unadjusted value // Tilt is using the gate radius to adjust the tilt angle so we must provide an unadjusted value
// for the default input radius. // for the default input radius.
ControlState GetDefaultInputRadiusAtAngle(double angle) const final override; ControlState GetDefaultInputRadiusAtAngle(double angle) const final override;
StateData GetState(); StateData GetState() const;
// Return peak rotational velocity (for a complete turn) in radians/sec // Return peak rotational velocity (for a complete turn) in radians/sec
ControlState GetMaxRotationalVelocity() const; ControlState GetMaxRotationalVelocity() const;

View File

@ -21,7 +21,7 @@ Triggers::Triggers(const std::string& name_) : ControlGroup(name_, GroupType::Tr
AddDeadzoneSetting(&m_deadzone_setting, 50); AddDeadzoneSetting(&m_deadzone_setting, 50);
} }
Triggers::StateData Triggers::GetState() Triggers::StateData Triggers::GetState() const
{ {
const size_t trigger_count = controls.size(); const size_t trigger_count = controls.size();
const ControlState deadzone = m_deadzone_setting.GetValue() / 100; const ControlState deadzone = m_deadzone_setting.GetValue() / 100;

View File

@ -26,7 +26,7 @@ public:
explicit Triggers(const std::string& name); explicit Triggers(const std::string& name);
StateData GetState(); StateData GetState() const;
private: private:
SettingValue<double> m_deadzone_setting; SettingValue<double> m_deadzone_setting;

View File

@ -280,7 +280,7 @@ void ReshapableInput::SaveConfig(IniFile::Section* section, const std::string& d
} }
ReshapableInput::ReshapeData ReshapableInput::Reshape(ControlState x, ControlState y, ReshapableInput::ReshapeData ReshapableInput::Reshape(ControlState x, ControlState y,
ControlState modifier) ControlState modifier) const
{ {
x -= m_center.x; x -= m_center.x;
y -= m_center.y; y -= m_center.y;

View File

@ -91,7 +91,7 @@ public:
virtual ControlState GetVirtualNotchSize() const { return 0.0; }; virtual ControlState GetVirtualNotchSize() const { return 0.0; };
virtual ControlState GetGateRadiusAtAngle(double angle) const = 0; virtual ControlState GetGateRadiusAtAngle(double angle) const = 0;
virtual ReshapeData GetReshapableState(bool adjusted) = 0; virtual ReshapeData GetReshapableState(bool adjusted) const = 0;
virtual ControlState GetDefaultInputRadiusAtAngle(double ang) const; virtual ControlState GetDefaultInputRadiusAtAngle(double ang) const;
void SetCalibrationToDefault(); void SetCalibrationToDefault();
@ -108,7 +108,7 @@ public:
void SetCenter(ReshapeData center); void SetCenter(ReshapeData center);
protected: protected:
ReshapeData Reshape(ControlState x, ControlState y, ControlState modifier = 0.0); ReshapeData Reshape(ControlState x, ControlState y, ControlState modifier = 0.0) const;
private: private:
void LoadConfig(IniFile::Section*, const std::string&, const std::string&) override; void LoadConfig(IniFile::Section*, const std::string&, const std::string&) override;

View File

@ -766,7 +766,7 @@ bool InputDevice::PressEvent(int button, int action)
if (binding.second->m_bind_type == BIND_BUTTON) if (binding.second->m_bind_type == BIND_BUTTON)
m_buttons[binding.second->m_button_type] = action == BUTTON_PRESSED ? true : false; m_buttons[binding.second->m_button_type] = action == BUTTON_PRESSED ? true : false;
else else
m_axises[binding.second->m_button_type] = action == BUTTON_PRESSED ? 1.0f : 0.0f; m_axes[binding.second->m_button_type] = action == BUTTON_PRESSED ? 1.0f : 0.0f;
handled = true; handled = true;
} }
} }
@ -780,34 +780,54 @@ void InputDevice::AxisEvent(int axis, float value)
if (binding.second->m_bind == axis) if (binding.second->m_bind == axis)
{ {
if (binding.second->m_bind_type == BIND_AXIS) if (binding.second->m_bind_type == BIND_AXIS)
m_axises[binding.second->m_button_type] = value; m_axes[binding.second->m_button_type] = value;
else else
m_buttons[binding.second->m_button_type] = value > 0.5f ? true : false; m_buttons[binding.second->m_button_type] = value > 0.5f ? true : false;
} }
} }
} }
bool InputDevice::ButtonValue(int pad_id, ButtonType button) bool InputDevice::ButtonValue(int pad_id, ButtonType button) const
{ {
const auto& binding = m_input_binds.find(std::make_pair(pad_id, button)); const auto binding = m_input_binds.find(std::make_pair(pad_id, button));
if (binding == m_input_binds.end()) if (binding == m_input_binds.end())
return false; return false;
if (binding->second->m_bind_type == BIND_BUTTON) if (binding->second->m_bind_type == BIND_BUTTON)
return m_buttons[binding->second->m_button_type]; {
const auto button = m_buttons.find(binding->second->m_button_type);
if (button == m_buttons.end())
return false;
return button->second;
}
else else
return (m_axises[binding->second->m_button_type] * binding->second->m_neg) > 0.5f; {
const auto axis = m_axes.find(binding->second->m_button_type);
if (axis == m_axes.end())
return false;
return (axis->second * binding->second->m_neg) > 0.5f;
}
} }
float InputDevice::AxisValue(int pad_id, ButtonType axis) float InputDevice::AxisValue(int pad_id, ButtonType axis) const
{ {
const auto& binding = m_input_binds.find(std::make_pair(pad_id, axis)); const auto binding = m_input_binds.find(std::make_pair(pad_id, axis));
if (binding == m_input_binds.end()) if (binding == m_input_binds.end())
return 0.0f; return 0.0f;
if (binding->second->m_bind_type == BIND_AXIS) if (binding->second->m_bind_type == BIND_AXIS)
return m_axises[binding->second->m_button_type] * binding->second->m_neg; {
const auto axis = m_axes.find(binding->second->m_button_type);
if (axis == m_axes.end())
return 0.0f;
return axis->second * binding->second->m_neg;
}
else else
return m_buttons[binding->second->m_button_type] == BUTTON_PRESSED ? 1.0f : 0.0f; {
const auto button = m_buttons.find(binding->second->m_button_type);
if (button == m_buttons.end())
return 0.0f;
return button->second == BUTTON_PRESSED ? 1.0f : 0.0f;
}
} }
} // namespace ButtonManager } // namespace ButtonManager

View File

@ -210,7 +210,7 @@ private:
public: public:
Button() : m_state(BUTTON_RELEASED) {} Button() : m_state(BUTTON_RELEASED) {}
void SetState(ButtonState state) { m_state = state; } void SetState(ButtonState state) { m_state = state; }
bool Pressed() { return m_state == BUTTON_PRESSED; } bool Pressed() const { return m_state == BUTTON_PRESSED; }
~Button() {} ~Button() {}
}; };
class Axis class Axis
@ -221,7 +221,7 @@ private:
public: public:
Axis() : m_value(0.0f) {} Axis() : m_value(0.0f) {}
void SetValue(float value) { m_value = value; } void SetValue(float value) { m_value = value; }
float AxisValue() { return m_value; } float AxisValue() const { return m_value; }
~Axis() {} ~Axis() {}
}; };
@ -244,7 +244,7 @@ class InputDevice
private: private:
const std::string m_dev; const std::string m_dev;
std::map<ButtonType, bool> m_buttons; std::map<ButtonType, bool> m_buttons;
std::map<ButtonType, float> m_axises; std::map<ButtonType, float> m_axes;
// Key is pad_id and ButtonType // Key is pad_id and ButtonType
std::map<std::pair<int, ButtonType>, sBind*> m_input_binds; std::map<std::pair<int, ButtonType>, sBind*> m_input_binds;
@ -263,8 +263,8 @@ public:
} }
bool PressEvent(int button, int action); bool PressEvent(int button, int action);
void AxisEvent(int axis, float value); void AxisEvent(int axis, float value);
bool ButtonValue(int pad_id, ButtonType button); bool ButtonValue(int pad_id, ButtonType button) const;
float AxisValue(int pad_id, ButtonType axis); float AxisValue(int pad_id, ButtonType axis) const;
}; };
void Init(const std::string&); void Init(const std::string&);

View File

@ -171,7 +171,7 @@ void InputConfig::SaveConfig()
inifile.Save(ini_filename); inifile.Save(ini_filename);
} }
ControllerEmu::EmulatedController* InputConfig::GetController(int index) ControllerEmu::EmulatedController* InputConfig::GetController(int index) const
{ {
return m_controllers.at(index).get(); return m_controllers.at(index).get();
} }

View File

@ -34,7 +34,7 @@ public:
m_controllers.emplace_back(std::make_unique<T>(std::forward<Args>(args)...)); m_controllers.emplace_back(std::make_unique<T>(std::forward<Args>(args)...));
} }
ControllerEmu::EmulatedController* GetController(int index); ControllerEmu::EmulatedController* GetController(int index) const;
void ClearControllers(); void ClearControllers();
bool ControllersNeedToBeCreated() const; bool ControllersNeedToBeCreated() const;
bool IsControllerControlledByGamepadDevice(int index) const; bool IsControllerControlledByGamepadDevice(int index) const;