MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_gamepad_defs.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_GAMEPAD_DEFS_H_1664005612
12#define INCGUARD_MGL_GAMEPAD_DEFS_H_1664005612
13
14#include <type_traits>
15#include <string>
16
17#include <mgl/common/mgl_bit.h>
19
20namespace MGL::Input
21{
23enum class PadID : uint32_t
24{
25 Invalid,
26 Any,
28 UniqueIDEnd = ~static_cast<std::underlying_type_t<PadID>>(0),
29};
30
32enum class PadButton : uint8_t
33{
34 // 基本
35 None = 0,
36 Up = 1,
37 Down = 2,
38 Left = 3,
39 Right = 4,
40 AnalogUp = 5,
41 AnalogDown = 6,
42 AnalogLeft = 7,
43 AnalogRight = 8,
44 Button01 = 9,
45 Button02 = 10,
46 Button03 = 11,
47 Button04 = 12,
48 Button05 = 13,
49 Button06 = 14,
50 Button07 = 15,
51 Button08 = 16,
52 Button09 = 17,
53 Button10 = 18,
54 Button11 = 19,
55 Button12 = 20,
56 Button13 = 21,
57 Button14 = 22,
58 Button15 = 23,
59 Button16 = 24,
60 Button17 = 25,
61 Button18 = 26,
62 Button19 = 27,
63 Button20 = 28,
64 Button21 = 29,
65 Cancel = 30,
66 Decide = 31,
67
68 // 共通の別名
69 L1 = Button05,
70 R1 = Button06,
71 L2 = Button07,
72 R2 = Button08,
75 Home = Button11,
76 L3 = Button12,
77 R3 = Button13,
86
87 // ダイヤモンド配置のボタン
91 DiaUp = Button04,
92
93 // 任天堂系のボタン
98
99 // XInputのボタン
100 XInputA = DiaDown,
101 XInputB = DiaRight,
102 XInputX = DiaLeft,
103 XInputY = DiaUp,
111
112 // DualShock/DualSenseのボタン
114 DSCross = DiaDown,
115 DSTriangle = DiaUp,
116 DSSquare = DiaLeft,
120
121 // MFi配置のボタン
122 MFiA = DiaDown,
123 MFiB = DiaRight,
124 MFiX = DiaLeft,
125 MFiY = DiaUp,
126
127 // Apple Remote/Siri Remoteのボタン
129};
130
133
135constexpr PadButtonFlags operator|(PadButton lhs, PadButton rhs) noexcept
136{
137 return PadButtonFlags(lhs) | rhs;
138}
139
142
144constexpr size_t kGamepadButtonMax = 21;
145
147enum class PadType : uint8_t
148{
149 Disable,
151 MFiMicro,
153 DualShock4,
154 DualSense,
155 XboxOne,
156 GenericHID,
157 XInput,
159 Other,
160};
161
163enum class PadEntry : uint8_t
164{
165 Player1 = 0,
166 Player2,
167 Player3,
168 Player4,
169 Player5,
170 Player6,
171 Player7,
172 Player8,
173
174 // 以下予約
175 Reserve_Start,
176 Reserve_MaxPlayerCount = Reserve_Start,
180
181 // 特殊なプレイヤー指定
183 Any = Reserve_Any,
185};
186
188constexpr size_t kGamepadEntryMax = static_cast<size_t>(PadEntry::Reserve_MaxPlayerCount);
189
191enum class PadPriority : uint8_t
192{
193 Low,
194 High
195};
196
205
206} // namespace MGL::Input
207
208#endif // INCGUARD_MGL_GAMEPAD_DEFS_H_1664005612
209
210// vim: et ts=4 sw=4 sts=4
MGL ビットフラグ定義
constexpr PadButtonFlags operator|(PadButton lhs, PadButton rhs) noexcept
ゲームパッドボタンのor演算の結果をフラグ型に変換するためのオペレータ(PadButton | PadButton)
Definition mgl_gamepad_defs.h:135
PadEntry
パッドのエントリータイプ
Definition mgl_gamepad_defs.h:164
@ Player8
プレイヤー8
@ Auto
エントリー済みを優先して取得し,無ければNoEntryと同じ
@ NoEntry
エントリーなしを取得
@ Player6
プレイヤー6
@ Player2
プレイヤー2
@ Reserve_NoEntry
エントリーなしの指定
@ Player4
プレイヤー4
@ Reserve_Any
全ての指定
@ Reserve_MaxPlayerCount
エントリー可能なプレイヤーの最大数
@ Player3
プレイヤー3
@ Player5
プレイヤー5
@ Player1
プレイヤー1
@ Player7
プレイヤー7
@ Reserve_Auto
自動指定
PadType
ゲームパッドの種類
Definition mgl_gamepad_defs.h:148
@ NintendoSwitch
Nintendo Switch
@ DualShock4
DualShock4
@ MFiExtended
MFi拡張
@ MFiMicro
AppleRemote/SiriRemote
@ DirectInput
DirectInput
@ DualSense
DualSense
@ GenericHID
汎用HID
PadID
ゲームパッドのIDを表す型
Definition mgl_gamepad_defs.h:24
@ Invalid
無効値
@ Any
入力のあるいずれかのパッドを表す値
@ UniqueIDStart
ユニークIDの開始値
PadPriority
パッドのプライオリティ
Definition mgl_gamepad_defs.h:192
PadButton
ゲームパッドのボタンの定義
Definition mgl_gamepad_defs.h:33
@ NintendoY
任天堂のYボタン
@ XInputPaddle3
XInputの背面パドル3
@ XInputY
XInputのYボタン
@ Button13
ボタン13
@ NintendoA
任天堂のAボタン
@ XInputShare
XInputのShareボタン
@ XInputB
XInputのBボタン
@ MFiTouchSurface
タッチサーフェスのタッチ
@ DSCross
DualShock/DualSenseの×ボタン
@ DiaLeft
ダイヤ配置の左ボタン
@ Button18
ボタン18
@ Button10
ボタン10
@ Button21
ボタン21
@ Button11
ボタン11
@ AnalogUp
アナログ入力の上
@ NintendoB
任天堂のBボタン
@ PrimaryMenu
Pause/Start/Menu
@ Button16
ボタン16
@ XInputView
XInputのView/Backボタン
@ DSShare
DualShock/DualSenseのShare/Createボタン
@ DSOptions
DualShock/DualSenseのOptionsボタン
@ R3
R3/右サムスティックボタン
@ DSSquare
DualShock/DualSenseの□ボタン
@ XInputPaddle4
XInputの背面パドル4
@ DiaDown
ダイヤ配置の下ボタン
@ AnalogDown
アナログ入力の下
@ XInputX
XInputのXボタン
@ Button19
ボタン19
@ L3
L3/左サムスティックボタン
@ Home
ホームボタン
@ MFiX
MFi配置のXボタン
@ MFiB
MFi配置のBボタン
@ XInputPaddle1
XInputの背面パドル1
@ MFiA
MFi配置のAボタン
@ XInputMenu
XInputのMenu/Startボタン
@ DiaUp
ダイヤ配置の上ボタン
@ Button15
ボタン15
@ DSTouchPad
DualShock/DualSenseのタッチパッドボタン
@ AnalogLeft
アナログ入力の左
@ AnalogRight
アナログ入力の右
@ DSCircle
DualShock/DualSenseの◯ボタン
@ Button20
ボタン20
@ XInputA
XInputのAボタン
@ XInputPaddle2
XInputの背面パドル2
@ Button12
ボタン12
@ SecondaryMenu
Select/Back/View
@ Button17
ボタン17
@ Cancel
キャンセル
@ DSTriangle
DualShock/DualSenseの△ボタン
@ NintendoX
任天堂のXボタン
@ MFiY
MFi配置のYボタン
@ Button14
ボタン14
@ DiaRight
ダイヤ配置の右ボタン
constexpr size_t kGamepadEntryMax
ゲームパッドの最大エントリー数
Definition mgl_gamepad_defs.h:188
constexpr PadButtonFlags kGamepadButtonAll
ゲームパッドの全てのボタンを表す定数
Definition mgl_gamepad_defs.h:141
constexpr size_t kGamepadButtonMax
ゲームパッドのボタンの最大数
Definition mgl_gamepad_defs.h:144
MGL STL文字列クラスの代替
basic_string< char > string
std::stringの代替
Definition mgl_stl_string.h:25
ゲームパッドのデバイス情報
Definition mgl_gamepad_defs.h:199
STL::string vendorName
製造元の名前
Definition mgl_gamepad_defs.h:200
STL::string productName
製品名
Definition mgl_gamepad_defs.h:201
uint16_t productID
製品ID
Definition mgl_gamepad_defs.h:203
uint16_t vendorID
製造元のID
Definition mgl_gamepad_defs.h:202