diff options
author | Andreas Haas <liu.gam3@gmail.com> | 2016-09-20 22:12:52 +0200 |
---|---|---|
committer | Andreas Haas <liu.gam3@gmail.com> | 2016-09-20 23:36:09 +0200 |
commit | e0fcd9331a7ce0e3afd7240a65ecf3e8c59ef9a3 (patch) | |
tree | 1c9b3a6a61794fcc408e4ba91cb900f7d023823e /main | |
parent | c21412fa7e098ac31b5d667d4d9f8eee3f12a2cd (diff) |
Add function to get readable names for joystick events
Closes #6476
Diffstat (limited to 'main')
-rw-r--r-- | main/input_default.cpp | 58 | ||||
-rw-r--r-- | main/input_default.h | 5 |
2 files changed, 63 insertions, 0 deletions
diff --git a/main/input_default.cpp b/main/input_default.cpp index 089772edc5..0e7fe5b907 100644 --- a/main/input_default.cpp +++ b/main/input_default.cpp @@ -1152,3 +1152,61 @@ Array InputDefault::get_connected_joysticks() { } return ret; } + +static const char* _buttons[] = { + "Face Button Bottom", + "Face Button Right", + "Face Button Left", + "Face Button Top", + "L", + "R", + "L2", + "R2", + "L3", + "R3", + "Select", + "Start", + "DPAD Up", + "DPAD Down", + "DPAD Left", + "DPAD Right" +}; + +static const char* _axes[] = { + "Left Stick X", + "Left Stick Y", + "Right Stick X", + "Right Stick Y", + "", + "", + "L2", + "R2" +}; + +String InputDefault::get_joy_button_string(int p_button) { + ERR_FAIL_INDEX_V(p_button, JOY_BUTTON_MAX, ""); + return _buttons[p_button]; +} + +int InputDefault::get_joy_button_index_from_string(String p_button) { + for (int i = 0; i < JOY_BUTTON_MAX; i++) { + if (p_button == _buttons[i]) { + return i; + } + } + ERR_FAIL_V(-1); +} + +String InputDefault::get_joy_axis_string(int p_axis) { + ERR_FAIL_INDEX_V(p_axis, JOY_AXIS_MAX, ""); + return _axes[p_axis]; +} + +int InputDefault::get_joy_axis_index_from_string(String p_axis) { + for (int i = 0; i < JOY_AXIS_MAX; i++) { + if (p_axis == _axes[i]) { + return i; + } + } + ERR_FAIL_V(-1); +} diff --git a/main/input_default.h b/main/input_default.h index fbf7837b3b..2db6d28abf 100644 --- a/main/input_default.h +++ b/main/input_default.h @@ -235,6 +235,11 @@ public: virtual bool is_joy_known(int p_device); virtual String get_joy_guid(int p_device) const; + virtual String get_joy_button_string(int p_button); + virtual String get_joy_axis_string(int p_axis); + virtual int get_joy_axis_index_from_string(String p_axis); + virtual int get_joy_button_index_from_string(String p_button); + bool is_joy_mapped(int p_device); String get_joy_guid_remapped(int p_device) const; void set_fallback_mapping(String p_guid); |