From 47ac6c02fcaa9ac0eb2bbf2d4a5b9e27b9b8d040 Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Sat, 17 Aug 2013 13:41:04 +0200 Subject: [PATCH] Disable accelerometer as axis, fix some omissions in KeyMap (doesn't actually autoload all those maps yet) --- Common/KeyMap.cpp | 32 +++++++++++++++++++++++++++++++- Common/KeyMap.h | 1 + UI/NativeApp.cpp | 4 ++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Common/KeyMap.cpp b/Common/KeyMap.cpp index ff62589e60..ad3a6c28bf 100644 --- a/Common/KeyMap.cpp +++ b/Common/KeyMap.cpp @@ -145,6 +145,28 @@ static const DefMappingStruct defaultPadMap[] = { #endif }; +static const DefMappingStruct defaultOuyaMap[] = { + {CTRL_CROSS , NKCODE_BUTTON_A}, + {CTRL_CIRCLE , NKCODE_BUTTON_B}, + {CTRL_SQUARE , NKCODE_BUTTON_X}, + {CTRL_TRIANGLE , NKCODE_BUTTON_Y}, + {CTRL_UP , NKCODE_DPAD_UP}, + {CTRL_RIGHT , NKCODE_DPAD_RIGHT}, + {CTRL_DOWN , NKCODE_DPAD_DOWN}, + {CTRL_LEFT , NKCODE_DPAD_LEFT}, + {CTRL_START , NKCODE_BUTTON_START}, + {CTRL_SELECT , NKCODE_BUTTON_SELECT}, + {CTRL_LTRIGGER , NKCODE_BUTTON_L1}, + {CTRL_RTRIGGER , NKCODE_BUTTON_R1}, + {VIRTKEY_UNTHROTTLE , NKCODE_BUTTON_R2}, + {VIRTKEY_PAUSE , NKCODE_BUTTON_THUMBR}, + {VIRTKEY_SPEED_TOGGLE, NKCODE_BUTTON_L2}, + {VIRTKEY_AXIS_X_MIN, JOYSTICK_AXIS_X, -1}, + {VIRTKEY_AXIS_X_MAX, JOYSTICK_AXIS_X, +1}, + {VIRTKEY_AXIS_Y_MIN, JOYSTICK_AXIS_Y, -1}, + {VIRTKEY_AXIS_Y_MAX, JOYSTICK_AXIS_Y, +1}, +}; + static const DefMappingStruct defaultXperiaPlay[] = { {CTRL_CROSS , NKCODE_BUTTON_CROSS}, {CTRL_CIRCLE , NKCODE_BUTTON_CIRCLE}, @@ -184,10 +206,18 @@ void SetDefaultKeyMap(DefaultMaps dmap, bool replace) { case DEFAULT_MAPPING_SHIELD: SetDefaultKeyMap(DEVICE_ID_X360_0, defaultShieldKeyMap, ARRAY_SIZE(defaultShieldKeyMap), replace); break; + case DEFAULT_MAPPING_PAD: + SetDefaultKeyMap(DEVICE_ID_X360_0, defaultPadMap, ARRAY_SIZE(defaultPadMap), replace); + break; + case DEFAULT_MAPPING_OUYA: + SetDefaultKeyMap(DEVICE_ID_X360_0, defaultOuyaMap, ARRAY_SIZE(defaultOuyaMap), replace); + break; + case DEFAULT_MAPPING_XPERIA_PLAY: + SetDefaultKeyMap(DEVICE_ID_X360_0, defaultXperiaPlay, ARRAY_SIZE(defaultXperiaPlay), replace); + break; } } - const KeyMap_IntStrPair key_names[] = { {NKCODE_A, "A"}, {NKCODE_B, "B"}, diff --git a/Common/KeyMap.h b/Common/KeyMap.h index 40a7cbc3cf..3ccdf7bcb9 100644 --- a/Common/KeyMap.h +++ b/Common/KeyMap.h @@ -50,6 +50,7 @@ enum DefaultMaps { DEFAULT_MAPPING_X360, DEFAULT_MAPPING_SHIELD, DEFAULT_MAPPING_OUYA, + DEFAULT_MAPPING_XPERIA_PLAY, }; const float AXIS_BIND_THRESHOLD = 0.75f; diff --git a/UI/NativeApp.cpp b/UI/NativeApp.cpp index 3ad0a6c851..93adf15e5b 100644 --- a/UI/NativeApp.cpp +++ b/UI/NativeApp.cpp @@ -598,6 +598,10 @@ void NativeKey(const KeyInput &key) { } void NativeAxis(const AxisInput &key) { + if (key.axisId >= JOYSTICK_AXIS_ACCELEROMETER_X && key.axisId <= JOYSTICK_AXIS_ACCELEROMETER_Z) { + // Disable accelerometer as an axis for now. + return; + } if (screenManager) screenManager->axis(key); }