1005 lines
38 KiB
C++
1005 lines
38 KiB
C++
/*
|
|
* Copyright (C) 2021 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* https://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#include "InternalControllerTable.h"
|
|
|
|
#include <android/input.h>
|
|
#include <android/keycodes.h>
|
|
|
|
#define ARRAY_COUNTOF(array) (sizeof(array) / sizeof(array[0]))
|
|
|
|
#define PADDLEBOAT_AXIS_BUTTON_DPAD_UP 0
|
|
#define PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT 1
|
|
#define PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN 2
|
|
#define PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT 3
|
|
#define PADDLEBOAT_AXIS_BUTTON_L2 9
|
|
#define PADDLEBOAT_AXIS_BUTTON_R2 12
|
|
|
|
namespace paddleboat {
|
|
static const Paddleboat_Controller_Mapping_Data pb_internal_controller_map[] = {
|
|
|
|
// Microsoft Xbox 360 controller (usb)
|
|
{16,
|
|
0,
|
|
0x0045e,
|
|
0x028e,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_STANDARD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ AKEYCODE_MEDIA_RECORD,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// Microsoft Xbox One non-BT controller (usb)
|
|
{16,
|
|
0,
|
|
0x0045e,
|
|
0x02d1,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_STANDARD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ AKEYCODE_MEDIA_RECORD,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// 8BitDo Arcade Stick, XInput mode, Bluetooth
|
|
{16,
|
|
0,
|
|
0x0045e,
|
|
0x02e0,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_ARCADE_STICK,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// Microsoft Xbox One BT controller (usb)
|
|
{16,
|
|
0,
|
|
0x0045e,
|
|
0x02ea,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_STANDARD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ AKEYCODE_MEDIA_RECORD,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// Microsoft Xbox One BT controller (bluetooth)
|
|
{16,
|
|
0,
|
|
0x0045e,
|
|
0x02fd,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_STANDARD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ AKEYCODE_MEDIA_RECORD,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// Microsoft Xbox Series controller (usb)
|
|
{16,
|
|
0,
|
|
0x0045e,
|
|
0x0b12,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_STANDARD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ AKEYCODE_MEDIA_RECORD,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// Microsoft Xbox Series controller (bluetooth)
|
|
{16,
|
|
0,
|
|
0x0045e,
|
|
0x0b13,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_STANDARD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ AKEYCODE_MEDIA_RECORD,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
|
|
// Sony PlayStation 4 controller (usb/bluetooth)
|
|
{16,
|
|
0,
|
|
0x054C,
|
|
0x05C4,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_SHAPES | PADDLEBOAT_CONTROLLER_FLAG_TOUCHPAD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// Sony PlayStation 4 controller (usb/bluetooth) - alternate deviceId
|
|
{16,
|
|
0,
|
|
0x054C,
|
|
0x09CC,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_SHAPES | PADDLEBOAT_CONTROLLER_FLAG_TOUCHPAD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// Sony PlayStation 5 controller (usb/bluetooth) API <= 30
|
|
{16,
|
|
30,
|
|
0x054C,
|
|
0x0ce6,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_SHAPES,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_RX,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_RY,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_B,
|
|
/* B */ AKEYCODE_BUTTON_C,
|
|
/* X */ AKEYCODE_BUTTON_A,
|
|
/* Y */ AKEYCODE_BUTTON_X,
|
|
/* L1 */ AKEYCODE_BUTTON_Y,
|
|
/* L2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* L3 */ AKEYCODE_BUTTON_SELECT,
|
|
/* R1 */ AKEYCODE_BUTTON_Z,
|
|
/* R2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* R3 */ AKEYCODE_BUTTON_START,
|
|
/* SELECT */ AKEYCODE_BUTTON_L2,
|
|
/* START */ AKEYCODE_BUTTON_R2,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ AKEYCODE_BUTTON_THUMBL,
|
|
/* AUX1 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// Sony PlayStation 5 controller (usb/bluetooth) API >= 31
|
|
{31,
|
|
0,
|
|
0x054C,
|
|
0x0ce6,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_SHAPES | PADDLEBOAT_CONTROLLER_FLAG_TOUCHPAD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// Nintendo Switch Pro controller (usb/bluetooth)
|
|
{16,
|
|
0,
|
|
0x0057e,
|
|
0x2009,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_REVERSE,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_B,
|
|
/* B */ AKEYCODE_BUTTON_A,
|
|
/* X */ AKEYCODE_BUTTON_Y,
|
|
/* Y */ AKEYCODE_BUTTON_X,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ AKEYCODE_MEDIA_RECORD,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// Nvidia Shield TV controller (usb)
|
|
{16,
|
|
0,
|
|
0x0955,
|
|
0x7210,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_STANDARD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
|
|
// Google Stadia controller (usb)
|
|
{16,
|
|
0,
|
|
0x18d1,
|
|
0x9400,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_STANDARD,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_L2,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_R2,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_L2,
|
|
/* L3 */ AKEYCODE_BUTTON_THUMBL,
|
|
/* R1 */ AKEYCODE_BUTTON_R1,
|
|
/* R2 */ AKEYCODE_BUTTON_R2,
|
|
/* R3 */ AKEYCODE_BUTTON_THUMBR,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ AKEYCODE_BUTTON_MODE,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}},
|
|
// NeoGeo Pro, PC 2 setting, USB
|
|
{16,
|
|
0,
|
|
0x20bc,
|
|
0x5501,
|
|
PADDLEBOAT_CONTROLLER_LAYOUT_ARCADE_STICK,
|
|
{
|
|
/* LX */ AMOTION_EVENT_AXIS_X,
|
|
/* LY */ AMOTION_EVENT_AXIS_Y,
|
|
/* RX */ AMOTION_EVENT_AXIS_Z,
|
|
/* RY */ AMOTION_EVENT_AXIS_RZ,
|
|
/* L1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* L2 */ AMOTION_EVENT_AXIS_BRAKE,
|
|
/* R1 */ PADDLEBOAT_AXIS_IGNORED,
|
|
/* R2 */ AMOTION_EVENT_AXIS_GAS,
|
|
/* HX */ AMOTION_EVENT_AXIS_HAT_X,
|
|
/* HY */ AMOTION_EVENT_AXIS_HAT_Y,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_RIGHT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_DOWN,
|
|
},
|
|
{
|
|
/* LX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* LY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RX */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* RY */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* L2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R1 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* R2 */ PADDLEBOAT_AXIS_BUTTON_IGNORED,
|
|
/* HX */ PADDLEBOAT_AXIS_BUTTON_DPAD_LEFT,
|
|
/* HY */ PADDLEBOAT_AXIS_BUTTON_DPAD_UP,
|
|
},
|
|
{/* UP */ AKEYCODE_DPAD_UP,
|
|
/* LEFT */ AKEYCODE_DPAD_LEFT,
|
|
/* DOWN */ AKEYCODE_DPAD_DOWN,
|
|
/* RIGHT */ AKEYCODE_DPAD_RIGHT,
|
|
/* A */ AKEYCODE_BUTTON_A,
|
|
/* B */ AKEYCODE_BUTTON_B,
|
|
/* X */ AKEYCODE_BUTTON_X,
|
|
/* Y */ AKEYCODE_BUTTON_Y,
|
|
/* L1 */ AKEYCODE_BUTTON_L1,
|
|
/* L2 */ AKEYCODE_BUTTON_R1,
|
|
/* L3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* R1 */ AKEYCODE_BUTTON_Z,
|
|
/* R2 */ AKEYCODE_BUTTON_C,
|
|
/* R3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* SELECT */ AKEYCODE_BUTTON_SELECT,
|
|
/* START */ AKEYCODE_BUTTON_START,
|
|
/* SYSTEM */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* TOUCHP */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX1 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX2 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX3 */ PADDLEBOAT_BUTTON_IGNORED,
|
|
/* AUX4 */ PADDLEBOAT_BUTTON_IGNORED}}};
|
|
|
|
const Paddleboat_Controller_Mapping_Data *GetInternalControllerData() {
|
|
return pb_internal_controller_map;
|
|
}
|
|
|
|
int32_t GetInternalControllerDataCount() {
|
|
const size_t count = ARRAY_COUNTOF(pb_internal_controller_map);
|
|
return (static_cast<int32_t>(count));
|
|
}
|
|
} // namespace paddleboat
|