summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorAndreas Haas <liu.gam3@gmail.com>2017-03-26 15:59:13 +0200
committerAndreas Haas <liu.gam3@gmail.com>2017-03-26 15:59:32 +0200
commitc0b67568757ccc22811e16348713ef3119e18f3e (patch)
treec2f13f324454478a76c623141611f79628d52ce6 /main
parenta0b0dff6fdbdc4be78087aa572f3da5dbb8daa01 (diff)
Input: Remove usage of platform dependent event IDs.
The ID property for InputEvents is set by `SceneTree` when sending the event down the tree. So there's no need for the platform specific code to set this value when it will later be overriden anyway...
Diffstat (limited to 'main')
-rw-r--r--main/input_default.cpp85
-rw-r--r--main/input_default.h10
2 files changed, 46 insertions, 49 deletions
diff --git a/main/input_default.cpp b/main/input_default.cpp
index 125bd8c8d7..e223137d0b 100644
--- a/main/input_default.cpp
+++ b/main/input_default.cpp
@@ -795,25 +795,25 @@ InputDefault::InputDefault() {
};
}
-uint32_t InputDefault::joy_button(uint32_t p_last_id, int p_device, int p_button, bool p_pressed) {
+void InputDefault::joy_button(int p_device, int p_button, bool p_pressed) {
_THREAD_SAFE_METHOD_;
Joypad &joy = joy_names[p_device];
//printf("got button %i, mapping is %i\n", p_button, joy.mapping);
if (joy.last_buttons[p_button] == p_pressed) {
- return p_last_id;
- //printf("same button value\n");
+ return;
}
joy.last_buttons[p_button] = p_pressed;
if (joy.mapping == -1) {
- return _button_event(p_last_id, p_device, p_button, p_pressed);
+ _button_event(p_device, p_button, p_pressed);
+ return;
};
Map<int, JoyEvent>::Element *el = map_db[joy.mapping].buttons.find(p_button);
if (!el) {
//don't process un-mapped events for now, it could mess things up badly for devices with additional buttons/axis
//return _button_event(p_last_id, p_device, p_button, p_pressed);
- return p_last_id;
+ return;
};
JoyEvent map = el->get();
@@ -822,37 +822,38 @@ uint32_t InputDefault::joy_button(uint32_t p_last_id, int p_device, int p_button
if (map.index == JOY_L2 || map.index == JOY_R2) {
float value = p_pressed ? 1.0f : 0.0f;
int axis = map.index == JOY_L2 ? JOY_ANALOG_L2 : JOY_ANALOG_R2;
- p_last_id = _axis_event(p_last_id, p_device, axis, value);
+ _axis_event(p_device, axis, value);
}
- return _button_event(p_last_id, p_device, map.index, p_pressed);
+ _button_event(p_device, map.index, p_pressed);
+ return;
};
if (map.type == TYPE_AXIS) {
- return _axis_event(p_last_id, p_device, map.index, p_pressed ? 1.0 : 0.0);
+ _axis_event(p_device, map.index, p_pressed ? 1.0 : 0.0);
};
- return p_last_id; // no event?
+ return; // no event?
};
-uint32_t InputDefault::joy_axis(uint32_t p_last_id, int p_device, int p_axis, const JoyAxis &p_value) {
+void InputDefault::joy_axis(int p_device, int p_axis, const JoyAxis &p_value) {
_THREAD_SAFE_METHOD_;
Joypad &joy = joy_names[p_device];
if (joy.last_axis[p_axis] == p_value.value) {
- return p_last_id;
+ return;
}
if (p_value.value > joy.last_axis[p_axis]) {
if (p_value.value < joy.last_axis[p_axis] + joy.filter) {
- return p_last_id;
+ return;
}
} else if (p_value.value > joy.last_axis[p_axis] - joy.filter) {
- return p_last_id;
+ return;
}
if (ABS(joy.last_axis[p_axis]) > 0.5 && joy.last_axis[p_axis] * p_value.value < 0) {
@@ -860,20 +861,20 @@ uint32_t InputDefault::joy_axis(uint32_t p_last_id, int p_device, int p_axis, co
JoyAxis jx;
jx.min = p_value.min;
jx.value = p_value.value < 0 ? 0.1 : -0.1;
- p_last_id = joy_axis(p_last_id, p_device, p_axis, jx);
+ joy_axis(p_device, p_axis, jx);
}
joy.last_axis[p_axis] = p_value.value;
float val = p_value.min == 0 ? -1.0f + 2.0f * p_value.value : p_value.value;
if (joy.mapping == -1) {
- return _axis_event(p_last_id, p_device, p_axis, val);
+ _axis_event(p_device, p_axis, val);
};
Map<int, JoyEvent>::Element *el = map_db[joy.mapping].axis.find(p_axis);
if (!el) {
//return _axis_event(p_last_id, p_device, p_axis, p_value);
- return p_last_id;
+ return;
};
JoyEvent map = el->get();
@@ -883,7 +884,7 @@ uint32_t InputDefault::joy_axis(uint32_t p_last_id, int p_device, int p_axis, co
if (map.index == JOY_L2 || map.index == JOY_R2) {
float value = p_value.min == 0 ? p_value.value : 0.5f + p_value.value / 2.0f;
int axis = map.index == JOY_L2 ? JOY_ANALOG_L2 : JOY_ANALOG_R2;
- p_last_id = _axis_event(p_last_id, p_device, axis, value);
+ _axis_event(p_device, axis, value);
}
if (map.index == JOY_DPAD_UP || map.index == JOY_DPAD_DOWN) {
@@ -892,16 +893,17 @@ uint32_t InputDefault::joy_axis(uint32_t p_last_id, int p_device, int p_axis, co
if (!pressed) {
if (joy_buttons_pressed.has(_combine_device(JOY_DPAD_UP, p_device))) {
- p_last_id = _button_event(p_last_id, p_device, JOY_DPAD_UP, false);
+ _button_event(p_device, JOY_DPAD_UP, false);
}
if (joy_buttons_pressed.has(_combine_device(JOY_DPAD_DOWN, p_device))) {
- p_last_id = _button_event(p_last_id, p_device, JOY_DPAD_DOWN, false);
+ _button_event(p_device, JOY_DPAD_DOWN, false);
}
}
if (pressed == joy_buttons_pressed.has(_combine_device(button, p_device))) {
- return p_last_id;
+ return;
}
- return _button_event(p_last_id, p_device, button, true);
+ _button_event(p_device, button, true);
+ return;
}
if (map.index == JOY_DPAD_LEFT || map.index == JOY_DPAD_RIGHT) {
bool pressed = p_value.value != 0.0f;
@@ -909,35 +911,38 @@ uint32_t InputDefault::joy_axis(uint32_t p_last_id, int p_device, int p_axis, co
if (!pressed) {
if (joy_buttons_pressed.has(_combine_device(JOY_DPAD_LEFT, p_device))) {
- p_last_id = _button_event(p_last_id, p_device, JOY_DPAD_LEFT, false);
+ _button_event(p_device, JOY_DPAD_LEFT, false);
}
if (joy_buttons_pressed.has(_combine_device(JOY_DPAD_RIGHT, p_device))) {
- p_last_id = _button_event(p_last_id, p_device, JOY_DPAD_RIGHT, false);
+ _button_event(p_device, JOY_DPAD_RIGHT, false);
}
}
if (pressed == joy_buttons_pressed.has(_combine_device(button, p_device))) {
- return p_last_id;
+ return;
}
- return _button_event(p_last_id, p_device, button, true);
+ _button_event(p_device, button, true);
+ return;
}
float deadzone = p_value.min == 0 ? 0.5f : 0.0f;
bool pressed = p_value.value > deadzone ? true : false;
if (pressed == joy_buttons_pressed.has(_combine_device(map.index, p_device))) {
// button already pressed or released, this is an axis bounce value
- return p_last_id;
+ return;
};
- return _button_event(p_last_id, p_device, map.index, pressed);
+ _button_event(p_device, map.index, pressed);
+ return;
};
if (map.type == TYPE_AXIS) {
- return _axis_event(p_last_id, p_device, map.index, val);
+ _axis_event(p_device, map.index, val);
+ return;
};
//printf("invalid mapping\n");
- return p_last_id;
+ return;
};
-uint32_t InputDefault::joy_hat(uint32_t p_last_id, int p_device, int p_val) {
+void InputDefault::joy_hat(int p_device, int p_val) {
_THREAD_SAFE_METHOD_;
const Joypad &joy = joy_names[p_device];
@@ -953,50 +958,42 @@ uint32_t InputDefault::joy_hat(uint32_t p_last_id, int p_device, int p_val) {
int cur_val = joy_names[p_device].hat_current;
if ((p_val & HAT_MASK_UP) != (cur_val & HAT_MASK_UP)) {
- p_last_id = _button_event(p_last_id, p_device, map[HAT_UP].index, p_val & HAT_MASK_UP);
+ _button_event(p_device, map[HAT_UP].index, p_val & HAT_MASK_UP);
};
if ((p_val & HAT_MASK_RIGHT) != (cur_val & HAT_MASK_RIGHT)) {
- p_last_id = _button_event(p_last_id, p_device, map[HAT_RIGHT].index, p_val & HAT_MASK_RIGHT);
+ _button_event(p_device, map[HAT_RIGHT].index, p_val & HAT_MASK_RIGHT);
};
if ((p_val & HAT_MASK_DOWN) != (cur_val & HAT_MASK_DOWN)) {
- p_last_id = _button_event(p_last_id, p_device, map[HAT_DOWN].index, p_val & HAT_MASK_DOWN);
+ _button_event(p_device, map[HAT_DOWN].index, p_val & HAT_MASK_DOWN);
};
if ((p_val & HAT_MASK_LEFT) != (cur_val & HAT_MASK_LEFT)) {
- p_last_id = _button_event(p_last_id, p_device, map[HAT_LEFT].index, p_val & HAT_MASK_LEFT);
+ _button_event(p_device, map[HAT_LEFT].index, p_val & HAT_MASK_LEFT);
};
joy_names[p_device].hat_current = p_val;
-
- return p_last_id;
};
-uint32_t InputDefault::_button_event(uint32_t p_last_id, int p_device, int p_index, bool p_pressed) {
+void InputDefault::_button_event(int p_device, int p_index, bool p_pressed) {
InputEvent ievent;
ievent.type = InputEvent::JOYPAD_BUTTON;
ievent.device = p_device;
- ievent.ID = ++p_last_id;
ievent.joy_button.button_index = p_index;
ievent.joy_button.pressed = p_pressed;
parse_input_event(ievent);
-
- return p_last_id;
};
-uint32_t InputDefault::_axis_event(uint32_t p_last_id, int p_device, int p_axis, float p_value) {
+void InputDefault::_axis_event(int p_device, int p_axis, float p_value) {
InputEvent ievent;
ievent.type = InputEvent::JOYPAD_MOTION;
ievent.device = p_device;
- ievent.ID = ++p_last_id;
ievent.joy_motion.axis = p_axis;
ievent.joy_motion.axis_value = p_value;
parse_input_event(ievent);
-
- return p_last_id;
};
InputDefault::JoyEvent InputDefault::_find_to_event(String p_to) {
diff --git a/main/input_default.h b/main/input_default.h
index 4f298d6d55..20ff8b958a 100644
--- a/main/input_default.h
+++ b/main/input_default.h
@@ -169,8 +169,8 @@ private:
Vector<JoyDeviceMapping> map_db;
JoyEvent _find_to_event(String p_to);
- uint32_t _button_event(uint32_t p_last_id, int p_device, int p_index, bool p_pressed);
- uint32_t _axis_event(uint32_t p_last_id, int p_device, int p_axis, float p_value);
+ void _button_event(int p_device, int p_index, bool p_pressed);
+ void _axis_event(int p_device, int p_axis, float p_value);
float _handle_deadzone(int p_device, int p_axis, float p_value);
public:
@@ -228,9 +228,9 @@ public:
virtual void set_mouse_in_window(bool p_in_window);
void parse_mapping(String p_mapping);
- uint32_t joy_button(uint32_t p_last_id, int p_device, int p_button, bool p_pressed);
- uint32_t joy_axis(uint32_t p_last_id, int p_device, int p_axis, const JoyAxis &p_value);
- uint32_t joy_hat(uint32_t p_last_id, int p_device, int p_val);
+ void joy_button(int p_device, int p_button, bool p_pressed);
+ void joy_axis(int p_device, int p_axis, const JoyAxis &p_value);
+ void joy_hat(int p_device, int p_val);
virtual void add_joy_mapping(String p_mapping, bool p_update_existing = false);
virtual void remove_joy_mapping(String p_guid);