#include "keys.h"
#include "settings.h"
#include "gettime.h"
-#include "../util/string.h"
+#include "porting.h"
+#include "util/string.h"
bool JoystickButtonCmb::isTriggered(const irr::SEvent::SJoystickEvent &ev) const
{
}
// spares many characters
-#define JLO_B_PB(A, B, C) jlo.button_keys.push_back(JoystickButtonCmb(A, B, C))
-#define JLO_A_PB(A, B, C, D) jlo.axis_keys.push_back(JoystickAxisCmb(A, B, C, D))
+#define JLO_B_PB(A, B, C) jlo.button_keys.emplace_back(A, B, C)
+#define JLO_A_PB(A, B, C, D) jlo.axis_keys.emplace_back(A, B, C, D)
JoystickLayout create_default_layout()
{
return jlo;
}
-JoystickController::JoystickController()
+JoystickController::JoystickController() :
+ doubling_dtime(g_settings->getFloat("repeat_joystick_button_time"))
{
- m_joystick_id = 0;
-
- doubling_dtime = g_settings->getFloat("repeat_joystick_button_time");
-
- for (size_t i = 0; i < KeyType::INTERNAL_ENUM_COUNT; i++) {
- m_past_pressed_time[i] = 0;
+ for (float &i : m_past_pressed_time) {
+ i = 0;
}
clear();
}
m_joystick_id = id;
}
-void JoystickController::setLayoutFromControllerName(std::string name) {
- if (lowercase(name).find("xbox") >= 0) {
+void JoystickController::setLayoutFromControllerName(const std::string &name)
+{
+ if (lowercase(name).find("xbox") != std::string::npos) {
m_layout = create_xbox_layout();
} else {
m_layout = create_default_layout();
if (ev.Joystick != m_joystick_id)
return false;
- m_internal_time = getTimeMs() / 1000.f;
+ m_internal_time = porting::getTimeMs() / 1000.f;
std::bitset<KeyType::INTERNAL_ENUM_COUNT> keys_pressed;
// First generate a list of keys pressed
- for (size_t i = 0; i < m_layout.button_keys.size(); i++) {
- if (m_layout.button_keys[i].isTriggered(ev)) {
- keys_pressed.set(m_layout.button_keys[i].key);
+ for (const auto &button_key : m_layout.button_keys) {
+ if (button_key.isTriggered(ev)) {
+ keys_pressed.set(button_key.key);
}
}
- for (size_t i = 0; i < m_layout.axis_keys.size(); i++) {
- if (m_layout.axis_keys[i].isTriggered(ev)) {
- keys_pressed.set(m_layout.axis_keys[i].key);
+ for (const auto &axis_key : m_layout.axis_keys) {
+ if (axis_key.isTriggered(ev)) {
+ keys_pressed.set(axis_key.key);
}
}