1 /* 2 * Copyright (C) 2020 Team Kodi 3 * This file is part of Kodi - https://kodi.tv 4 * 5 * SPDX-License-Identifier: GPL-2.0-or-later 6 * See LICENSES/README.md for more information. 7 */ 8 9 #pragma once 10 11 enum class GCCONTROLLER_EXTENDED_GAMEPAD_BUTTON 12 { 13 UP = 0, 14 DOWN = 1, 15 LEFT = 2, 16 RIGHT = 3, 17 A = 4, 18 B = 5, 19 X = 6, 20 Y = 7, 21 LEFTSHOULDER = 8, 22 LEFTTRIGGER = 9, 23 RIGHTSHOULDER = 10, 24 RIGHTTRIGGER = 11, 25 MENU = 12, 26 OPTION = 13, 27 LEFTTHUMBSTICKBUTTON = 14, 28 RIGHTTHUMBSTICKBUTTON = 15, 29 UNUSED = 99 30 }; 31 32 enum class GCCONTROLLER_EXTENDED_GAMEPAD_AXIS 33 { 34 // Thumbstick Axis 35 LEFTTHUMB_X = 0, 36 LEFTTHUMB_Y = 1, 37 RIGHTTHUMB_X = 2, 38 RIGHTTHUMB_Y = 3, 39 // Thumbstick 40 LEFT = 90, 41 RIGHT = 91, 42 UNUSED = 99 43 }; 44 45 enum class GCCONTROLLER_MICRO_GAMEPAD_BUTTON 46 { 47 UP = 0, 48 DOWN = 1, 49 LEFT = 2, 50 RIGHT = 3, 51 MENU = 4, 52 A = 5, 53 X = 6, 54 UNUSED = 99 55 }; 56 57 enum class GCCONTROLLER_TYPE 58 { 59 UNKNOWN = 0, 60 EXTENDED = 1, 61 MICRO = 2, 62 NOTFOUND = 98, 63 UNUSED = 99 64 }; 65 66 struct InputValueInfo 67 { 68 GCCONTROLLER_TYPE controllerType; 69 GCCONTROLLER_EXTENDED_GAMEPAD_BUTTON extendedButton; 70 GCCONTROLLER_EXTENDED_GAMEPAD_AXIS extendedAxis; 71 GCCONTROLLER_MICRO_GAMEPAD_BUTTON microButton; 72 InputValueInfoInputValueInfo73 InputValueInfo(GCCONTROLLER_TYPE controllerType) 74 : controllerType(controllerType), 75 extendedButton(GCCONTROLLER_EXTENDED_GAMEPAD_BUTTON::UNUSED), 76 extendedAxis(GCCONTROLLER_EXTENDED_GAMEPAD_AXIS::UNUSED), 77 microButton(GCCONTROLLER_MICRO_GAMEPAD_BUTTON::UNUSED) 78 { 79 } 80 InputValueInfoInputValueInfo81 InputValueInfo(GCCONTROLLER_TYPE controllerType, 82 GCCONTROLLER_EXTENDED_GAMEPAD_BUTTON extendedButton) 83 : controllerType(controllerType), 84 extendedButton(extendedButton), 85 extendedAxis(GCCONTROLLER_EXTENDED_GAMEPAD_AXIS::UNUSED), 86 microButton(GCCONTROLLER_MICRO_GAMEPAD_BUTTON::UNUSED) 87 { 88 } 89 InputValueInfoInputValueInfo90 InputValueInfo(GCCONTROLLER_TYPE controllerType, GCCONTROLLER_MICRO_GAMEPAD_BUTTON microButton) 91 : controllerType(controllerType), 92 extendedButton(GCCONTROLLER_EXTENDED_GAMEPAD_BUTTON::UNUSED), 93 extendedAxis(GCCONTROLLER_EXTENDED_GAMEPAD_AXIS::UNUSED), 94 microButton(microButton) 95 { 96 } 97 InputValueInfoInputValueInfo98 InputValueInfo(GCCONTROLLER_TYPE controllerType, GCCONTROLLER_EXTENDED_GAMEPAD_AXIS extendedAxis) 99 : controllerType(controllerType), 100 extendedButton(GCCONTROLLER_EXTENDED_GAMEPAD_BUTTON::UNUSED), 101 extendedAxis(extendedAxis), 102 microButton(GCCONTROLLER_MICRO_GAMEPAD_BUTTON::UNUSED) 103 { 104 } 105 }; 106