libnx  v4.2.2
hid.h
Go to the documentation of this file.
1 /**
2  * @file hid.h
3  * @brief Human input device (hid) service IPC wrapper.
4  * @author shinyquagsire23
5  * @author yellows8
6  * @copyright libnx Authors
7  */
8 #pragma once
9 #include "../types.h"
10 #include "../kernel/event.h"
11 #include "../services/btdrv_types.h"
12 #include "../sf/service.h"
13 
14 // Begin enums and output structs
15 
16 /// HidDebugPadButton
17 typedef enum {
18  HidDebugPadButton_A = BIT(0), ///< A button
19  HidDebugPadButton_B = BIT(1), ///< B button
20  HidDebugPadButton_X = BIT(2), ///< X button
21  HidDebugPadButton_Y = BIT(3), ///< Y button
22  HidDebugPadButton_L = BIT(4), ///< L button
23  HidDebugPadButton_R = BIT(5), ///< R button
24  HidDebugPadButton_ZL = BIT(6), ///< ZL button
25  HidDebugPadButton_ZR = BIT(7), ///< ZR button
26  HidDebugPadButton_Start = BIT(8), ///< Start button
27  HidDebugPadButton_Select = BIT(9), ///< Select button
28  HidDebugPadButton_Left = BIT(10), ///< D-Pad Left button
29  HidDebugPadButton_Up = BIT(11), ///< D-Pad Up button
30  HidDebugPadButton_Right = BIT(12), ///< D-Pad Right button
31  HidDebugPadButton_Down = BIT(13), ///< D-Pad Down button
33 
34 /// HidTouchScreenModeForNx
35 typedef enum {
36  HidTouchScreenModeForNx_UseSystemSetting = 0, ///< UseSystemSetting
40 
41 /// HidMouseButton
42 typedef enum {
43  HidMouseButton_Left = BIT(0),
44  HidMouseButton_Right = BIT(1),
45  HidMouseButton_Middle = BIT(2),
46  HidMouseButton_Forward = BIT(3),
47  HidMouseButton_Back = BIT(4),
49 
50 /// HidKeyboardKey
51 typedef enum {
52  HidKeyboardKey_A = 4,
53  HidKeyboardKey_B = 5,
54  HidKeyboardKey_C = 6,
55  HidKeyboardKey_D = 7,
56  HidKeyboardKey_E = 8,
57  HidKeyboardKey_F = 9,
58  HidKeyboardKey_G = 10,
59  HidKeyboardKey_H = 11,
60  HidKeyboardKey_I = 12,
61  HidKeyboardKey_J = 13,
62  HidKeyboardKey_K = 14,
63  HidKeyboardKey_L = 15,
64  HidKeyboardKey_M = 16,
65  HidKeyboardKey_N = 17,
66  HidKeyboardKey_O = 18,
67  HidKeyboardKey_P = 19,
68  HidKeyboardKey_Q = 20,
69  HidKeyboardKey_R = 21,
70  HidKeyboardKey_S = 22,
71  HidKeyboardKey_T = 23,
72  HidKeyboardKey_U = 24,
73  HidKeyboardKey_V = 25,
74  HidKeyboardKey_W = 26,
75  HidKeyboardKey_X = 27,
76  HidKeyboardKey_Y = 28,
77  HidKeyboardKey_Z = 29,
78  HidKeyboardKey_D1 = 30,
79  HidKeyboardKey_D2 = 31,
80  HidKeyboardKey_D3 = 32,
81  HidKeyboardKey_D4 = 33,
82  HidKeyboardKey_D5 = 34,
83  HidKeyboardKey_D6 = 35,
84  HidKeyboardKey_D7 = 36,
85  HidKeyboardKey_D8 = 37,
86  HidKeyboardKey_D9 = 38,
87  HidKeyboardKey_D0 = 39,
88  HidKeyboardKey_Return = 40,
89  HidKeyboardKey_Escape = 41,
90  HidKeyboardKey_Backspace = 42,
91  HidKeyboardKey_Tab = 43,
92  HidKeyboardKey_Space = 44,
93  HidKeyboardKey_Minus = 45,
94  HidKeyboardKey_Plus = 46,
95  HidKeyboardKey_OpenBracket = 47,
96  HidKeyboardKey_CloseBracket = 48,
97  HidKeyboardKey_Pipe = 49,
98  HidKeyboardKey_Tilde = 50,
99  HidKeyboardKey_Semicolon = 51,
100  HidKeyboardKey_Quote = 52,
101  HidKeyboardKey_Backquote = 53,
102  HidKeyboardKey_Comma = 54,
103  HidKeyboardKey_Period = 55,
104  HidKeyboardKey_Slash = 56,
105  HidKeyboardKey_CapsLock = 57,
106  HidKeyboardKey_F1 = 58,
107  HidKeyboardKey_F2 = 59,
108  HidKeyboardKey_F3 = 60,
109  HidKeyboardKey_F4 = 61,
110  HidKeyboardKey_F5 = 62,
111  HidKeyboardKey_F6 = 63,
112  HidKeyboardKey_F7 = 64,
113  HidKeyboardKey_F8 = 65,
114  HidKeyboardKey_F9 = 66,
115  HidKeyboardKey_F10 = 67,
116  HidKeyboardKey_F11 = 68,
117  HidKeyboardKey_F12 = 69,
118  HidKeyboardKey_PrintScreen = 70,
119  HidKeyboardKey_ScrollLock = 71,
120  HidKeyboardKey_Pause = 72,
121  HidKeyboardKey_Insert = 73,
122  HidKeyboardKey_Home = 74,
123  HidKeyboardKey_PageUp = 75,
124  HidKeyboardKey_Delete = 76,
125  HidKeyboardKey_End = 77,
126  HidKeyboardKey_PageDown = 78,
127  HidKeyboardKey_RightArrow = 79,
128  HidKeyboardKey_LeftArrow = 80,
129  HidKeyboardKey_DownArrow = 81,
130  HidKeyboardKey_UpArrow = 82,
131  HidKeyboardKey_NumLock = 83,
132  HidKeyboardKey_NumPadDivide = 84,
133  HidKeyboardKey_NumPadMultiply = 85,
134  HidKeyboardKey_NumPadSubtract = 86,
135  HidKeyboardKey_NumPadAdd = 87,
136  HidKeyboardKey_NumPadEnter = 88,
137  HidKeyboardKey_NumPad1 = 89,
138  HidKeyboardKey_NumPad2 = 90,
139  HidKeyboardKey_NumPad3 = 91,
140  HidKeyboardKey_NumPad4 = 92,
141  HidKeyboardKey_NumPad5 = 93,
142  HidKeyboardKey_NumPad6 = 94,
143  HidKeyboardKey_NumPad7 = 95,
144  HidKeyboardKey_NumPad8 = 96,
145  HidKeyboardKey_NumPad9 = 97,
146  HidKeyboardKey_NumPad0 = 98,
147  HidKeyboardKey_NumPadDot = 99,
148  HidKeyboardKey_Backslash = 100,
149  HidKeyboardKey_Application = 101,
150  HidKeyboardKey_Power = 102,
151  HidKeyboardKey_NumPadEquals = 103,
152  HidKeyboardKey_F13 = 104,
153  HidKeyboardKey_F14 = 105,
154  HidKeyboardKey_F15 = 106,
155  HidKeyboardKey_F16 = 107,
156  HidKeyboardKey_F17 = 108,
157  HidKeyboardKey_F18 = 109,
158  HidKeyboardKey_F19 = 110,
159  HidKeyboardKey_F20 = 111,
160  HidKeyboardKey_F21 = 112,
161  HidKeyboardKey_F22 = 113,
162  HidKeyboardKey_F23 = 114,
163  HidKeyboardKey_F24 = 115,
164  HidKeyboardKey_NumPadComma = 133,
165  HidKeyboardKey_Ro = 135,
166  HidKeyboardKey_KatakanaHiragana = 136,
167  HidKeyboardKey_Yen = 137,
168  HidKeyboardKey_Henkan = 138,
169  HidKeyboardKey_Muhenkan = 139,
170  HidKeyboardKey_NumPadCommaPc98 = 140,
171  HidKeyboardKey_HangulEnglish = 144,
172  HidKeyboardKey_Hanja = 145,
173  HidKeyboardKey_Katakana = 146,
174  HidKeyboardKey_Hiragana = 147,
175  HidKeyboardKey_ZenkakuHankaku = 148,
176  HidKeyboardKey_LeftControl = 224,
177  HidKeyboardKey_LeftShift = 225,
178  HidKeyboardKey_LeftAlt = 226,
179  HidKeyboardKey_LeftGui = 227,
180  HidKeyboardKey_RightControl = 228,
181  HidKeyboardKey_RightShift = 229,
182  HidKeyboardKey_RightAlt = 230,
183  HidKeyboardKey_RightGui = 231,
185 
186 /// HidKeyboardModifier
187 typedef enum {
188  HidKeyboardModifier_Control = BIT(0),
189  HidKeyboardModifier_Shift = BIT(1),
190  HidKeyboardModifier_LeftAlt = BIT(2),
191  HidKeyboardModifier_RightAlt = BIT(3),
192  HidKeyboardModifier_Gui = BIT(4),
193  HidKeyboardModifier_CapsLock = BIT(8),
194  HidKeyboardModifier_ScrollLock = BIT(9),
195  HidKeyboardModifier_NumLock = BIT(10),
196  HidKeyboardModifier_Katakana = BIT(11),
197  HidKeyboardModifier_Hiragana = BIT(12),
199 
200 /// KeyboardLockKeyEvent
201 typedef enum {
207  HidKeyboardLockKeyEvent_CapsLockToggle = BIT(5), ///< CapsLockToggle
210  HidKeyboardLockKeyEvent_ScrollLockToggle = BIT(8), ///< ScrollLockToggle
212 
213 /// HID controller IDs
214 typedef enum {
215  HidNpadIdType_No1 = 0, ///< Player 1 controller
216  HidNpadIdType_No2 = 1, ///< Player 2 controller
217  HidNpadIdType_No3 = 2, ///< Player 3 controller
218  HidNpadIdType_No4 = 3, ///< Player 4 controller
219  HidNpadIdType_No5 = 4, ///< Player 5 controller
220  HidNpadIdType_No6 = 5, ///< Player 6 controller
221  HidNpadIdType_No7 = 6, ///< Player 7 controller
222  HidNpadIdType_No8 = 7, ///< Player 8 controller
223  HidNpadIdType_Other = 0x10, ///< Other controller
224  HidNpadIdType_Handheld = 0x20, ///< Handheld mode controls
225 } HidNpadIdType;
226 
227 /// HID controller styles
228 typedef enum {
229  HidNpadStyleTag_NpadFullKey = BIT(0), ///< Pro Controller
230  HidNpadStyleTag_NpadHandheld = BIT(1), ///< Joy-Con controller in handheld mode
231  HidNpadStyleTag_NpadJoyDual = BIT(2), ///< Joy-Con controller in dual mode
232  HidNpadStyleTag_NpadJoyLeft = BIT(3), ///< Joy-Con left controller in single mode
233  HidNpadStyleTag_NpadJoyRight = BIT(4), ///< Joy-Con right controller in single mode
234  HidNpadStyleTag_NpadGc = BIT(5), ///< GameCube controller
235  HidNpadStyleTag_NpadPalma = BIT(6), ///< Poké Ball Plus controller
236  HidNpadStyleTag_NpadLark = BIT(7), ///< NES/Famicom controller
237  HidNpadStyleTag_NpadHandheldLark = BIT(8), ///< NES/Famicom controller in handheld mode
238  HidNpadStyleTag_NpadLucia = BIT(9), ///< SNES controller
239  HidNpadStyleTag_NpadLagon = BIT(10), ///< N64 controller
240  HidNpadStyleTag_NpadLager = BIT(11), ///< Sega Genesis controller
241  HidNpadStyleTag_NpadSystemExt = BIT(29), ///< Generic external controller
242  HidNpadStyleTag_NpadSystem = BIT(30), ///< Generic controller
243 
244  HidNpadStyleSet_NpadFullCtrl = HidNpadStyleTag_NpadFullKey | HidNpadStyleTag_NpadHandheld | HidNpadStyleTag_NpadJoyDual, ///< Style set comprising Npad styles containing the full set of controls {FullKey, Handheld, JoyDual}
245  HidNpadStyleSet_NpadStandard = HidNpadStyleSet_NpadFullCtrl | HidNpadStyleTag_NpadJoyLeft | HidNpadStyleTag_NpadJoyRight, ///< Style set comprising all standard Npad styles {FullKey, Handheld, JoyDual, JoyLeft, JoyRight}
247 
248 /// HidColorAttribute
249 typedef enum {
250  HidColorAttribute_Ok = 0, ///< Ok
251  HidColorAttribute_ReadError = 1, ///< ReadError
252  HidColorAttribute_NoController = 2, ///< NoController
254 
255 /// HidNpadButton
256 typedef enum {
257  HidNpadButton_A = BITL(0), ///< A button / Right face button
258  HidNpadButton_B = BITL(1), ///< B button / Down face button
259  HidNpadButton_X = BITL(2), ///< X button / Up face button
260  HidNpadButton_Y = BITL(3), ///< Y button / Left face button
261  HidNpadButton_StickL = BITL(4), ///< Left Stick button
262  HidNpadButton_StickR = BITL(5), ///< Right Stick button
263  HidNpadButton_L = BITL(6), ///< L button
264  HidNpadButton_R = BITL(7), ///< R button
265  HidNpadButton_ZL = BITL(8), ///< ZL button
266  HidNpadButton_ZR = BITL(9), ///< ZR button
267  HidNpadButton_Plus = BITL(10), ///< Plus button
268  HidNpadButton_Minus = BITL(11), ///< Minus button
269  HidNpadButton_Left = BITL(12), ///< D-Pad Left button
270  HidNpadButton_Up = BITL(13), ///< D-Pad Up button
271  HidNpadButton_Right = BITL(14), ///< D-Pad Right button
272  HidNpadButton_Down = BITL(15), ///< D-Pad Down button
273  HidNpadButton_StickLLeft = BITL(16), ///< Left Stick pseudo-button when moved Left
274  HidNpadButton_StickLUp = BITL(17), ///< Left Stick pseudo-button when moved Up
275  HidNpadButton_StickLRight = BITL(18), ///< Left Stick pseudo-button when moved Right
276  HidNpadButton_StickLDown = BITL(19), ///< Left Stick pseudo-button when moved Down
277  HidNpadButton_StickRLeft = BITL(20), ///< Right Stick pseudo-button when moved Left
278  HidNpadButton_StickRUp = BITL(21), ///< Right Stick pseudo-button when moved Up
279  HidNpadButton_StickRRight = BITL(22), ///< Right Stick pseudo-button when moved Right
280  HidNpadButton_StickRDown = BITL(23), ///< Right Stick pseudo-button when moved Left
281  HidNpadButton_LeftSL = BITL(24), ///< SL button on Left Joy-Con
282  HidNpadButton_LeftSR = BITL(25), ///< SR button on Left Joy-Con
283  HidNpadButton_RightSL = BITL(26), ///< SL button on Right Joy-Con
284  HidNpadButton_RightSR = BITL(27), ///< SR button on Right Joy-Con
285  HidNpadButton_Palma = BITL(28), ///< Top button on Poké Ball Plus (Palma) controller
286  HidNpadButton_Verification = BITL(29), ///< Verification
287  HidNpadButton_HandheldLeftB = BITL(30), ///< B button on Left NES/HVC controller in Handheld mode
288  HidNpadButton_LagonCLeft = BITL(31), ///< Left C button in N64 controller
289  HidNpadButton_LagonCUp = BITL(32), ///< Up C button in N64 controller
290  HidNpadButton_LagonCRight = BITL(33), ///< Right C button in N64 controller
291  HidNpadButton_LagonCDown = BITL(34), ///< Down C button in N64 controller
292 
293  HidNpadButton_AnyLeft = HidNpadButton_Left | HidNpadButton_StickLLeft | HidNpadButton_StickRLeft, ///< Bitmask containing all buttons that are considered Left (D-Pad, Sticks)
294  HidNpadButton_AnyUp = HidNpadButton_Up | HidNpadButton_StickLUp | HidNpadButton_StickRUp, ///< Bitmask containing all buttons that are considered Up (D-Pad, Sticks)
295  HidNpadButton_AnyRight = HidNpadButton_Right | HidNpadButton_StickLRight | HidNpadButton_StickRRight, ///< Bitmask containing all buttons that are considered Right (D-Pad, Sticks)
296  HidNpadButton_AnyDown = HidNpadButton_Down | HidNpadButton_StickLDown | HidNpadButton_StickRDown, ///< Bitmask containing all buttons that are considered Down (D-Pad, Sticks)
297  HidNpadButton_AnySL = HidNpadButton_LeftSL | HidNpadButton_RightSL, ///< Bitmask containing SL buttons on both Joy-Cons (Left/Right)
298  HidNpadButton_AnySR = HidNpadButton_LeftSR | HidNpadButton_RightSR, ///< Bitmask containing SR buttons on both Joy-Cons (Left/Right)
299 } HidNpadButton;
300 
301 /// HidDebugPadAttribute
302 typedef enum {
303  HidDebugPadAttribute_IsConnected = BIT(0), ///< IsConnected
305 
306 /// HidTouchAttribute
307 typedef enum {
308  HidTouchAttribute_Start = BIT(0), ///< Start
309  HidTouchAttribute_End = BIT(1), ///< End
311 
312 /// HidMouseAttribute
313 typedef enum {
314  HidMouseAttribute_Transferable = BIT(0), ///< Transferable
315  HidMouseAttribute_IsConnected = BIT(1), ///< IsConnected
317 
318 /// HidNpadAttribute
319 typedef enum {
320  HidNpadAttribute_IsConnected = BIT(0), ///< IsConnected
321  HidNpadAttribute_IsWired = BIT(1), ///< IsWired
322  HidNpadAttribute_IsLeftConnected = BIT(2), ///< IsLeftConnected
323  HidNpadAttribute_IsLeftWired = BIT(3), ///< IsLeftWired
324  HidNpadAttribute_IsRightConnected = BIT(4), ///< IsRightConnected
325  HidNpadAttribute_IsRightWired = BIT(5), ///< IsRightWired
327 
328 /// HidSixAxisSensorAttribute
329 typedef enum {
333 
334 /// HidGestureAttribute
335 typedef enum {
336  HidGestureAttribute_IsNewTouch = BIT(4), ///< IsNewTouch
337  HidGestureAttribute_IsDoubleTap = BIT(8), ///< IsDoubleTap
339 
340 /// HidGestureDirection
341 typedef enum {
348 
349 /// HidGestureType
350 typedef enum {
351  HidGestureType_Idle = 0, ///< Idle
352  HidGestureType_Complete = 1, ///< Complete
353  HidGestureType_Cancel = 2, ///< Cancel
354  HidGestureType_Touch = 3, ///< Touch
355  HidGestureType_Press = 4, ///< Press
356  HidGestureType_Tap = 5, ///< Tap
357  HidGestureType_Pan = 6, ///< Pan
358  HidGestureType_Swipe = 7, ///< Swipe
359  HidGestureType_Pinch = 8, ///< Pinch
360  HidGestureType_Rotate = 9, ///< Rotate
362 
363 /// GyroscopeZeroDriftMode
364 typedef enum {
369 
370 /// NpadJoyHoldType
371 typedef enum {
372  HidNpadJoyHoldType_Vertical = 0, ///< Default / Joy-Con held vertically.
373  HidNpadJoyHoldType_Horizontal = 1, ///< Joy-Con held horizontally.
375 
376 /// NpadJoyDeviceType
377 typedef enum {
381 
382 /// This controls how many Joy-Cons must be attached for handheld-mode to be activated.
383 typedef enum {
384  HidNpadHandheldActivationMode_Dual = 0, ///< Dual (2 Joy-Cons)
385  HidNpadHandheldActivationMode_Single = 1, ///< Single (1 Joy-Con)
386  HidNpadHandheldActivationMode_None = 2, ///< None (0 Joy-Cons)
388 
389 /// NpadJoyAssignmentMode
390 typedef enum {
391  HidNpadJoyAssignmentMode_Dual = 0, ///< Dual (Set by \ref hidSetNpadJoyAssignmentModeDual)
392  HidNpadJoyAssignmentMode_Single = 1, ///< Single (Set by hidSetNpadJoyAssignmentModeSingle*())
394 
395 /// NpadCommunicationMode
396 typedef enum {
402 
403 /// DeviceType (system)
404 typedef enum {
405  HidDeviceTypeBits_FullKey = BIT(0), ///< Pro Controller and Gc controller.
406  HidDeviceTypeBits_DebugPad = BIT(1), ///< DebugPad
407  HidDeviceTypeBits_HandheldLeft = BIT(2), ///< Joy-Con/Famicom/NES left controller in handheld mode.
408  HidDeviceTypeBits_HandheldRight = BIT(3), ///< Joy-Con/Famicom/NES right controller in handheld mode.
409  HidDeviceTypeBits_JoyLeft = BIT(4), ///< Joy-Con left controller.
410  HidDeviceTypeBits_JoyRight = BIT(5), ///< Joy-Con right controller.
411  HidDeviceTypeBits_Palma = BIT(6), ///< Poké Ball Plus controller.
412  HidDeviceTypeBits_LarkHvcLeft = BIT(7), ///< Famicom left controller.
413  HidDeviceTypeBits_LarkHvcRight = BIT(8), ///< Famicom right controller (with microphone).
414  HidDeviceTypeBits_LarkNesLeft = BIT(9), ///< NES left controller.
415  HidDeviceTypeBits_LarkNesRight = BIT(10), ///< NES right controller.
416  HidDeviceTypeBits_HandheldLarkHvcLeft = BIT(11), ///< Famicom left controller in handheld mode.
417  HidDeviceTypeBits_HandheldLarkHvcRight = BIT(12), ///< Famicom right controller (with microphone) in handheld mode.
418  HidDeviceTypeBits_HandheldLarkNesLeft = BIT(13), ///< NES left controller in handheld mode.
419  HidDeviceTypeBits_HandheldLarkNesRight = BIT(14), ///< NES right controller in handheld mode.
420  HidDeviceTypeBits_Lucia = BIT(15), ///< SNES controller
421  HidDeviceTypeBits_Lagon = BIT(16), ///< N64 controller
422  HidDeviceTypeBits_Lager = BIT(17), ///< Sega Genesis controller
423  HidDeviceTypeBits_System = BIT(31), ///< Generic controller.
425 
426 /// Internal DeviceType for [9.0.0+]. Converted to/from the pre-9.0.0 version of this by the hiddbg funcs.
427 typedef enum {
428  HidDeviceType_JoyRight1 = 1, ///< ::HidDeviceTypeBits_JoyRight
429  HidDeviceType_JoyLeft2 = 2, ///< ::HidDeviceTypeBits_JoyLeft
430  HidDeviceType_FullKey3 = 3, ///< ::HidDeviceTypeBits_FullKey
431  HidDeviceType_JoyLeft4 = 4, ///< ::HidDeviceTypeBits_JoyLeft
432  HidDeviceType_JoyRight5 = 5, ///< ::HidDeviceTypeBits_JoyRight
433  HidDeviceType_FullKey6 = 6, ///< ::HidDeviceTypeBits_FullKey
434  HidDeviceType_LarkHvcLeft = 7, ///< ::HidDeviceTypeBits_LarkHvcLeft, ::HidDeviceTypeBits_HandheldLarkHvcLeft
435  HidDeviceType_LarkHvcRight = 8, ///< ::HidDeviceTypeBits_LarkHvcRight, ::HidDeviceTypeBits_HandheldLarkHvcRight
436  HidDeviceType_LarkNesLeft = 9, ///< ::HidDeviceTypeBits_LarkNesLeft, ::HidDeviceTypeBits_HandheldLarkNesLeft
437  HidDeviceType_LarkNesRight = 10, ///< ::HidDeviceTypeBits_LarkNesRight, ::HidDeviceTypeBits_HandheldLarkNesRight
438  HidDeviceType_Lucia = 11, ///< ::HidDeviceTypeBits_Lucia
439  HidDeviceType_Palma = 12, ///< [9.0.0+] ::HidDeviceTypeBits_Palma
440  HidDeviceType_FullKey13 = 13, ///< ::HidDeviceTypeBits_FullKey
441  HidDeviceType_FullKey15 = 15, ///< ::HidDeviceTypeBits_FullKey
442  HidDeviceType_DebugPad = 17, ///< ::HidDeviceTypeBits_DebugPad
443  HidDeviceType_System19 = 19, ///< ::HidDeviceTypeBits_System with \ref HidNpadStyleTag |= ::HidNpadStyleTag_NpadFullKey.
444  HidDeviceType_System20 = 20, ///< ::HidDeviceTypeBits_System with \ref HidNpadStyleTag |= ::HidNpadStyleTag_NpadJoyDual.
445  HidDeviceType_System21 = 21, ///< ::HidDeviceTypeBits_System with \ref HidNpadStyleTag |= ::HidNpadStyleTag_NpadJoyDual.
446  HidDeviceType_Lagon = 22, ///< ::HidDeviceTypeBits_Lagon
447  HidDeviceType_Lager = 28, ///< ::HidDeviceTypeBits_Lager
448 } HidDeviceType;
449 
450 /// AppletFooterUiType (system)
451 typedef enum {
453  HidAppletFooterUiType_HandheldNone = 1, ///< HandheldNone
454  HidAppletFooterUiType_HandheldJoyConLeftOnly = 2, ///< HandheldJoyConLeftOnly
455  HidAppletFooterUiType_HandheldJoyConRightOnly = 3, ///< HandheldJoyConRightOnly
456  HidAppletFooterUiType_HandheldJoyConLeftJoyConRight = 4, ///< HandheldJoyConLeftJoyConRight
458  HidAppletFooterUiType_JoyDualLeftOnly = 6, ///< JoyDualLeftOnly
459  HidAppletFooterUiType_JoyDualRightOnly = 7, ///< JoyDualRightOnly
460  HidAppletFooterUiType_JoyLeftHorizontal = 8, ///< JoyLeftHorizontal
461  HidAppletFooterUiType_JoyLeftVertical = 9, ///< JoyLeftVertical
462  HidAppletFooterUiType_JoyRightHorizontal = 10, ///< JoyRightHorizontal
463  HidAppletFooterUiType_JoyRightVertical = 11, ///< JoyRightVertical
464  HidAppletFooterUiType_SwitchProController = 12, ///< SwitchProController
465  HidAppletFooterUiType_CompatibleProController = 13, ///< CompatibleProController
466  HidAppletFooterUiType_CompatibleJoyCon = 14, ///< CompatibleJoyCon
467  HidAppletFooterUiType_LarkHvc1 = 15, ///< LarkHvc1
468  HidAppletFooterUiType_LarkHvc2 = 16, ///< LarkHvc2
469  HidAppletFooterUiType_LarkNesLeft = 17, ///< LarkNesLeft
470  HidAppletFooterUiType_LarkNesRight = 18, ///< LarkNesRight
472  HidAppletFooterUiType_Verification = 20, ///< Verification
473  HidAppletFooterUiType_Lagon = 21, ///< [13.0.0+] Lagon
475 
476 /// NpadInterfaceType (system)
477 typedef enum {
478  HidNpadInterfaceType_Bluetooth = 1, ///< Bluetooth.
481  HidNpadInterfaceType_Unknown4 = 4, ///< Unknown.
483 
484 /// XcdInterfaceType
485 typedef enum {
486  XcdInterfaceType_Bluetooth = BIT(0),
487  XcdInterfaceType_Uart = BIT(1),
488  XcdInterfaceType_Usb = BIT(2),
489  XcdInterfaceType_FieldSet = BIT(7),
491 
492 /// NpadLarkType
493 typedef enum {
494  HidNpadLarkType_Invalid = 0, ///< Invalid
495  HidNpadLarkType_H1 = 1, ///< H1
496  HidNpadLarkType_H2 = 2, ///< H2
497  HidNpadLarkType_NL = 3, ///< NL
498  HidNpadLarkType_NR = 4, ///< NR
500 
501 /// NpadLuciaType
502 typedef enum {
503  HidNpadLuciaType_Invalid = 0, ///< Invalid
504  HidNpadLuciaType_J = 1, ///< J
505  HidNpadLuciaType_E = 2, ///< E
506  HidNpadLuciaType_U = 3, ///< U
508 
509 /// NpadLagerType
510 typedef enum {
511  HidNpadLagerType_Invalid = 0, ///< Invalid
512  HidNpadLagerType_J = 1, ///< J
513  HidNpadLagerType_E = 2, ///< E
514  HidNpadLagerType_U = 3, ///< U
516 
517 /// Type values for HidVibrationDeviceInfo::type.
518 typedef enum {
520  HidVibrationDeviceType_LinearResonantActuator = 1, ///< LinearResonantActuator
521  HidVibrationDeviceType_GcErm = 2, ///< GcErm (::HidNpadStyleTag_NpadGc)
523 
524 /// VibrationDevicePosition
525 typedef enum {
530 
531 /// VibrationGcErmCommand
532 typedef enum {
533  HidVibrationGcErmCommand_Stop = 0, ///< Stops the vibration with a decay phase.
534  HidVibrationGcErmCommand_Start = 1, ///< Starts the vibration.
535  HidVibrationGcErmCommand_StopHard = 2, ///< Stops the vibration immediately, with no decay phase.
537 
538 /// PalmaOperationType
539 typedef enum {
540  HidPalmaOperationType_PlayActivity = 0, ///< PlayActivity
541  HidPalmaOperationType_SetFrModeType = 1, ///< SetFrModeType
543  HidPalmaOperationType_EnableStep = 3, ///< EnableStep
545  HidPalmaOperationType_ReadApplicationSection = 5, ///< ReadApplicationSection
546  HidPalmaOperationType_WriteApplicationSection = 6, ///< WriteApplicationSection
547  HidPalmaOperationType_ReadUniqueCode = 7, ///< ReadUniqueCode
548  HidPalmaOperationType_SetUniqueCodeInvalid = 8, ///< SetUniqueCodeInvalid
549  HidPalmaOperationType_WriteActivityEntry = 9, ///< WriteActivityEntry
550  HidPalmaOperationType_WriteRgbLedPatternEntry = 10, ///< WriteRgbLedPatternEntry
551  HidPalmaOperationType_WriteWaveEntry = 11, ///< WriteWaveEntry
552  HidPalmaOperationType_ReadDataBaseIdentificationVersion = 12, ///< ReadDataBaseIdentificationVersion
553  HidPalmaOperationType_WriteDataBaseIdentificationVersion = 13, ///< WriteDataBaseIdentificationVersion
554  HidPalmaOperationType_SuspendFeature = 14, ///< SuspendFeature
555  HidPalmaOperationType_ReadPlayLog = 15, ///< [5.1.0+] ReadPlayLog
556  HidPalmaOperationType_ResetPlayLog = 16, ///< [5.1.0+] ResetPlayLog
558 
559 /// PalmaFrModeType
560 typedef enum {
565  HidPalmaFrModeType_Downloaded = 4, ///< Downloaded
567 
568 /// PalmaWaveSet
569 typedef enum {
570  HidPalmaWaveSet_Small = 0, ///< Small
571  HidPalmaWaveSet_Medium = 1, ///< Medium
572  HidPalmaWaveSet_Large = 2, ///< Large
574 
575 /// PalmaFeature
576 typedef enum {
577  HidPalmaFeature_FrMode = BIT(0), ///< FrMode
578  HidPalmaFeature_RumbleFeedback = BIT(1), ///< RumbleFeedback
579  HidPalmaFeature_Step = BIT(2), ///< Step
580  HidPalmaFeature_MuteSwitch = BIT(3), ///< MuteSwitch
582 
583 /// HidAnalogStickState
584 typedef struct HidAnalogStickState {
585  s32 x; ///< X
586  s32 y; ///< Y
588 
589 /// HidVector
590 typedef struct HidVector {
591  float x;
592  float y;
593  float z;
594 } HidVector;
595 
596 /// HidDirectionState
597 typedef struct HidDirectionState {
598  float direction[3][3]; ///< 3x3 matrix
600 
601 #define JOYSTICK_MAX (0x7FFF)
602 #define JOYSTICK_MIN (-0x7FFF)
603 
604 // End enums and output structs
605 
606 /// HidCommonLifoHeader
607 typedef struct HidCommonLifoHeader {
608  u64 unused; ///< Unused
609  u64 buffer_count; ///< BufferCount
610  u64 tail; ///< Tail
611  u64 count; ///< Count
613 
614 // Begin HidDebugPad
615 
616 /// HidDebugPadState
617 typedef struct HidDebugPadState {
618  u64 sampling_number; ///< SamplingNumber
619  u32 attributes; ///< Bitfield of \ref HidDebugPadAttribute.
620  u32 buttons; ///< Bitfield of \ref HidDebugPadButton.
624 
625 /// HidDebugPadStateAtomicStorage
627  u64 sampling_number; ///< SamplingNumber
628  HidDebugPadState state; ///< \ref HidDebugPadState
630 
631 /// HidDebugPadLifo
632 typedef struct HidDebugPadLifo {
633  HidCommonLifoHeader header; ///< \ref HidCommonLifoHeader
634  HidDebugPadStateAtomicStorage storage[17]; ///< \ref HidDebugPadStateAtomicStorage
636 
637 /// HidDebugPadSharedMemoryFormat
639  HidDebugPadLifo lifo;
640  u8 padding[0x138];
642 
643 // End HidDebugPad
644 
645 // Begin HidTouchScreen
646 
647 /// HidTouchState
648 typedef struct HidTouchState {
649  u64 delta_time; ///< DeltaTime
650  u32 attributes; ///< Bitfield of \ref HidTouchAttribute.
651  u32 finger_id; ///< FingerId
652  u32 x; ///< X
653  u32 y; ///< Y
654  u32 diameter_x; ///< DiameterX
655  u32 diameter_y; ///< DiameterY
656  u32 rotation_angle; ///< RotationAngle
657  u32 reserved; ///< Reserved
658 } HidTouchState;
659 
660 /// HidTouchScreenState
661 typedef struct HidTouchScreenState {
662  u64 sampling_number; ///< SamplingNumber
663  s32 count; ///< Number of entries in the touches array.
664  u32 reserved; ///< Reserved
665  HidTouchState touches[16]; ///< Array of \ref HidTouchState, with the above count.
667 
668 /// HidTouchScreenStateAtomicStorage
670  u64 sampling_number; ///< SamplingNumber
671  HidTouchScreenState state; ///< \ref HidTouchScreenState
673 
674 /// HidTouchScreenLifo
675 typedef struct HidTouchScreenLifo {
676  HidCommonLifoHeader header; ///< \ref HidCommonLifoHeader
677  HidTouchScreenStateAtomicStorage storage[17]; ///< \ref HidTouchScreenStateAtomicStorage
679 
680 /// HidTouchScreenSharedMemoryFormat
682  HidTouchScreenLifo lifo;
683  u8 padding[0x3c8];
685 
686 /// HidTouchScreenConfigurationForNx
687 typedef struct {
688  u8 mode; ///< \ref HidTouchScreenModeForNx
689  u8 reserved[0xF]; ///< Reserved
691 
692 // End HidTouchScreen
693 
694 // Begin HidMouse
695 
696 /// HidMouseState
697 typedef struct HidMouseState {
698  u64 sampling_number; ///< SamplingNumber
699  s32 x; ///< X
700  s32 y; ///< Y
701  s32 delta_x; ///< DeltaX
702  s32 delta_y; ///< DeltaY
703  s32 wheel_delta_x; ///< WheelDeltaX
704  s32 wheel_delta_y; ///< WheelDeltaY
705  u32 buttons; ///< Bitfield of \ref HidMouseButton.
706  u32 attributes; ///< Bitfield of \ref HidMouseAttribute.
707 } HidMouseState;
708 
709 /// HidMouseStateAtomicStorage
711  u64 sampling_number; ///< SamplingNumber
712  HidMouseState state;
714 
715 /// HidMouseLifo
716 typedef struct HidMouseLifo {
717  HidCommonLifoHeader header;
718  HidMouseStateAtomicStorage storage[17];
719 } HidMouseLifo;
720 
721 /// HidMouseSharedMemoryFormat
723  HidMouseLifo lifo;
724  u8 padding[0xB0];
726 
727 // End HidMouse
728 
729 // Begin HidKeyboard
730 
731 /// HidKeyboardState
732 typedef struct HidKeyboardState {
733  u64 sampling_number; ///< SamplingNumber
734  u64 modifiers; ///< Bitfield of \ref HidKeyboardModifier.
735  u64 keys[4];
737 
738 /// HidKeyboardStateAtomicStorage
740  u64 sampling_number; ///< SamplingNumber
741  HidKeyboardState state;
743 
744 /// HidKeyboardLifo
745 typedef struct HidKeyboardLifo {
746  HidCommonLifoHeader header;
747  HidKeyboardStateAtomicStorage storage[17];
749 
750 /// HidKeyboardSharedMemoryFormat
752  HidKeyboardLifo lifo;
753  u8 padding[0x28];
755 
756 // End HidKeyboard
757 
758 // Begin HidNpad
759 
760 /// Npad colors.
761 /// Color fields are zero when not set.
762 typedef struct HidNpadControllerColor {
763  u32 main; ///< RGBA Body Color
764  u32 sub; ///< RGBA Buttons Color
766 
767 /// HidNpadFullKeyColorState
768 typedef struct HidNpadFullKeyColorState {
769  u32 attribute; ///< \ref HidColorAttribute
770  HidNpadControllerColor full_key; ///< \ref HidNpadControllerColor FullKey
772 
773 /// HidNpadJoyColorState
774 typedef struct HidNpadJoyColorState {
775  u32 attribute; ///< \ref HidColorAttribute
776  HidNpadControllerColor left; ///< \ref HidNpadControllerColor Left
777  HidNpadControllerColor right; ///< \ref HidNpadControllerColor Right
779 
780 /// HidNpadCommonState
781 typedef struct HidNpadCommonState {
782  u64 sampling_number; ///< SamplingNumber
783  u64 buttons; ///< Bitfield of \ref HidNpadButton.
786  u32 attributes; ///< Bitfield of \ref HidNpadAttribute.
787  u32 reserved; ///< Reserved
789 
790 typedef HidNpadCommonState HidNpadFullKeyState; ///< State for ::HidNpadStyleTag_NpadFullKey.
791 typedef HidNpadCommonState HidNpadHandheldState; ///< State for ::HidNpadStyleTag_NpadHandheld.
792 typedef HidNpadCommonState HidNpadJoyDualState; ///< State for ::HidNpadStyleTag_NpadJoyDual.
793 typedef HidNpadCommonState HidNpadJoyLeftState; ///< State for ::HidNpadStyleTag_NpadJoyLeft.
794 typedef HidNpadCommonState HidNpadJoyRightState; ///< State for ::HidNpadStyleTag_NpadJoyRight.
795 
796 /// State for ::HidNpadStyleTag_NpadGc. Loaded from the same lifo as \ref HidNpadFullKeyState, with the additional trigger_l/trigger_r loaded from elsewhere.
797 typedef struct HidNpadGcState {
798  u64 sampling_number; ///< SamplingNumber
799  u64 buttons; ///< Bitfield of \ref HidNpadButton.
802  u32 attributes; ///< Bitfield of \ref HidNpadAttribute.
803  u32 trigger_l; ///< L analog trigger. Valid range: 0x0-0x7FFF.
804  u32 trigger_r; ///< R analog trigger. Valid range: 0x0-0x7FFF.
805  u32 pad;
807 
808 typedef HidNpadCommonState HidNpadPalmaState; ///< State for ::HidNpadStyleTag_NpadPalma.
809 
810 /// State for ::HidNpadStyleTag_NpadLark. The base state is loaded from the same lifo as \ref HidNpadFullKeyState.
811 typedef struct HidNpadLarkState {
812  u64 sampling_number; ///< SamplingNumber
813  u64 buttons; ///< Bitfield of \ref HidNpadButton.
814  HidAnalogStickState analog_stick_l; ///< This is always zero.
815  HidAnalogStickState analog_stick_r; ///< This is always zero.
816  u32 attributes; ///< Bitfield of \ref HidNpadAttribute.
817  HidNpadLarkType lark_type_l_and_main; ///< \ref HidNpadLarkType LarkTypeLAndMain
819 
820 /// State for ::HidNpadStyleTag_NpadHandheldLark. The base state is loaded from the same lifo as \ref HidNpadHandheldState.
821 typedef struct HidNpadHandheldLarkState {
822  u64 sampling_number; ///< SamplingNumber
823  u64 buttons; ///< Bitfield of \ref HidNpadButton.
826  u32 attributes; ///< Bitfield of \ref HidNpadAttribute.
827  HidNpadLarkType lark_type_l_and_main; ///< \ref HidNpadLarkType LarkTypeLAndMain
828  HidNpadLarkType lark_type_r; ///< \ref HidNpadLarkType LarkTypeR
829  u32 pad;
831 
832 /// State for ::HidNpadStyleTag_NpadLucia. The base state is loaded from the same lifo as \ref HidNpadFullKeyState.
833 typedef struct HidNpadLuciaState {
834  u64 sampling_number; ///< SamplingNumber
835  u64 buttons; ///< Bitfield of \ref HidNpadButton.
836  HidAnalogStickState analog_stick_l; ///< This is always zero.
837  HidAnalogStickState analog_stick_r; ///< This is always zero.
838  u32 attributes; ///< Bitfield of \ref HidNpadAttribute.
839  HidNpadLuciaType lucia_type; ///< \ref HidNpadLuciaType
841 
842 typedef HidNpadCommonState HidNpadLagerState; ///< State for ::HidNpadStyleTag_NpadLager. Analog-sticks state are always zero.
843 
844 typedef HidNpadCommonState HidNpadSystemExtState; ///< State for ::HidNpadStyleTag_NpadSystemExt.
845 typedef HidNpadCommonState HidNpadSystemState; ///< State for ::HidNpadStyleTag_NpadSystem. Analog-sticks state are always zero. Only the following button bits are available: HidNpadButton_A, HidNpadButton_B, HidNpadButton_X, HidNpadButton_Y, HidNpadButton_Left, HidNpadButton_Up, HidNpadButton_Right, HidNpadButton_Down, HidNpadButton_L, HidNpadButton_R.
846 
847 /// HidNpadCommonStateAtomicStorage
849  u64 sampling_number; ///< SamplingNumber
850  HidNpadCommonState state;
852 
853 /// HidNpadCommonLifo
854 typedef struct HidNpadCommonLifo {
855  HidCommonLifoHeader header;
858 
859 /// HidNpadGcTriggerState
860 typedef struct HidNpadGcTriggerState {
861  u64 sampling_number; ///< SamplingNumber
862  u32 trigger_l;
863  u32 trigger_r;
865 
866 /// HidNpadGcTriggerStateAtomicStorage
868  u64 sampling_number; ///< SamplingNumber
869  HidNpadGcTriggerState state;
871 
872 /// HidNpadGcTriggerLifo
873 typedef struct HidNpadGcTriggerLifo {
874  HidCommonLifoHeader header;
877 
878 /// HidSixAxisSensorState
879 typedef struct HidSixAxisSensorState {
880  u64 delta_time; ///< DeltaTime
881  u64 sampling_number; ///< SamplingNumber
882  HidVector acceleration; ///< Acceleration
883  HidVector angular_velocity; ///< AngularVelocity
884  HidVector angle; ///< Angle
885  HidDirectionState direction; ///< Direction
886  u32 attributes; ///< Bitfield of \ref HidSixAxisSensorAttribute.
887  u32 reserved; ///< Reserved
889 
890 /// HidSixAxisSensorStateAtomicStorage
892  u64 sampling_number; ///< SamplingNumber
893  HidSixAxisSensorState state;
895 
896 /// HidNpadSixAxisSensorLifo
897 typedef struct HidNpadSixAxisSensorLifo {
898  HidCommonLifoHeader header;
901 
902 /// NpadSystemProperties
903 typedef struct {
904  u64 is_charging : 3; ///< Use \ref hidGetNpadPowerInfoSingle / \ref hidGetNpadPowerInfoSplit instead of accessing this directly.
905  u64 is_powered : 3; ///< Use \ref hidGetNpadPowerInfoSingle / \ref hidGetNpadPowerInfoSplit instead of accessing this directly.
906 
907  u64 bit6 : 1; ///< Unused
908  u64 bit7 : 1; ///< Unused
909  u64 bit8 : 1; ///< Unused
910  u64 is_unsupported_button_pressed_on_npad_system : 1; ///< IsUnsupportedButtonPressedOnNpadSystem
911  u64 is_unsupported_button_pressed_on_npad_system_ext : 1; ///< IsUnsupportedButtonPressedOnNpadSystemExt
912 
913  u64 is_abxy_button_oriented : 1; ///< IsAbxyButtonOriented
914  u64 is_sl_sr_button_oriented : 1; ///< IsSlSrButtonOriented
915  u64 is_plus_available : 1; ///< [4.0.0+] IsPlusAvailable
916  u64 is_minus_available : 1; ///< [4.0.0+] IsMinusAvailable
917  u64 is_directional_buttons_available : 1; ///< [8.0.0+] IsDirectionalButtonsAvailable
918 
919  u64 unused : 48; ///< Unused
921 
922 /// NpadSystemButtonProperties
923 typedef struct {
924  u32 is_unintended_home_button_input_protection_enabled : 1; ///< IsUnintendedHomeButtonInputProtectionEnabled
926 
927 /// HidPowerInfo (system)
928 typedef struct {
929  bool is_powered; ///< IsPowered
930  bool is_charging; ///< IsCharging
931  u8 reserved[6]; ///< Reserved
932  u32 battery_level; ///< BatteryLevel, always 0-4.
933 } HidPowerInfo;
934 
935 /// XcdDeviceHandle
936 typedef struct XcdDeviceHandle {
937  u64 handle;
939 
940 /// HidNfcXcdDeviceHandleStateImpl
942  XcdDeviceHandle handle;
943  u8 is_available;
944  u8 is_activated;
945  u8 reserved[6];
946  u64 sampling_number; ///< SamplingNumber
948 
949 /// HidNfcXcdDeviceHandleStateImplAtomicStorage
951  u64 sampling_number; ///< SamplingNumber
952  HidNfcXcdDeviceHandleStateImpl state; ///< \ref HidNfcXcdDeviceHandleStateImpl
954 
955 /// HidNfcXcdDeviceHandleState
957  HidCommonLifoHeader header;
960 
961 /// HidNpadInternalState
962 typedef struct HidNpadInternalState {
963  u32 style_set; ///< Bitfield of \ref HidNpadStyleTag.
964  u32 joy_assignment_mode; ///< \ref HidNpadJoyAssignmentMode
965  HidNpadFullKeyColorState full_key_color; ///< \ref HidNpadFullKeyColorState
966  HidNpadJoyColorState joy_color; ///< \ref HidNpadJoyColorState
967 
969  HidNpadCommonLifo handheld_lifo; ///< HandheldLifo
974  HidNpadCommonLifo system_ext_lifo; ///< SystemExtLifo
975 
982 
983  u32 device_type; ///< Bitfield of \ref HidDeviceTypeBits.
984  u32 reserved; ///< Reserved
985  HidNpadSystemProperties system_properties;
986  HidNpadSystemButtonProperties system_button_properties;
987  u32 battery_level[3];
988  union {
989  struct { // [1.0.0-3.0.2]
990  HidNfcXcdDeviceHandleState nfc_xcd_device_handle;
991  };
992 
993  struct {
994  u32 applet_footer_ui_attribute; ///< Bitfield of AppletFooterUiAttribute.
995  u8 applet_footer_ui_type; ///< \ref HidAppletFooterUiType
996  u8 reserved_x41AD[0x5B];
997  };
998  };
999  u8 reserved_x4208[0x20]; ///< Mutex on pre-10.0.0.
1000  HidNpadGcTriggerLifo gc_trigger_lifo;
1001  u32 lark_type_l_and_main; ///< \ref HidNpadLarkType
1002  u32 lark_type_r; ///< \ref HidNpadLarkType
1003  u32 lucia_type; ///< \ref HidNpadLuciaType
1004  u32 lager_type; ///< \ref HidNpadLagerType
1006 
1007 /// HidNpadSharedMemoryEntry
1009  HidNpadInternalState internal_state;
1010  u8 pad[0xC10];
1012 
1013 /// HidNpadSharedMemoryFormat
1015  HidNpadSharedMemoryEntry entries[10];
1017 
1018 // End HidNpad
1019 
1020 // Begin HidGesture
1021 
1022 /// HidGesturePoint
1023 typedef struct HidGesturePoint {
1024  u32 x; ///< X
1025  u32 y; ///< Y
1026 } HidGesturePoint;
1027 
1028 /// HidGestureState
1029 typedef struct HidGestureState {
1030  u64 sampling_number; ///< SamplingNumber
1031  u64 context_number; ///< ContextNumber
1032  u32 type; ///< \ref HidGestureType
1033  u32 direction; ///< \ref HidGestureDirection
1034  u32 x; ///< X
1035  u32 y; ///< Y
1036  s32 delta_x; ///< DeltaX
1037  s32 delta_y; ///< DeltaY
1038  float velocity_x; ///< VelocityX
1039  float velocity_y; ///< VelocityY
1040  u32 attributes; ///< Bitfield of \ref HidGestureAttribute.
1041  float scale; ///< Scale
1042  float rotation_angle; ///< RotationAngle
1043  s32 point_count; ///< Number of entries in the points array.
1044  HidGesturePoint points[4]; ///< Array of \ref HidGesturePoint with the above count.
1045 } HidGestureState;
1046 
1047 /// HidGestureDummyStateAtomicStorage
1049  u64 sampling_number; ///< SamplingNumber
1050  HidGestureState state;
1052 
1053 /// HidGestureLifo
1054 typedef struct HidGestureLifo {
1055  HidCommonLifoHeader header;
1057 } HidGestureLifo;
1058 
1059 /// HidGestureSharedMemoryFormat
1061  HidGestureLifo lifo;
1062  u8 pad[0xF8];
1064 
1065 // End HidGesture
1066 
1067 /// HidConsoleSixAxisSensor
1068 typedef struct {
1069  u64 sampling_number; ///< SamplingNumber
1070  u8 is_seven_six_axis_sensor_at_rest; ///< IsSevenSixAxisSensorAtRest
1071  u8 pad[0x3]; ///< Padding
1072  float verticalization_error; ///< VerticalizationError
1073  UtilFloat3 gyro_bias; ///< GyroBias
1074  u8 pad2[0x4]; ///< Padding
1076 
1077 /// HidSharedMemory
1078 typedef struct HidSharedMemory {
1083  u8 digitizer[0x1000]; ///< [10.0.0+] Digitizer [1.0.0-9.2.0] BasicXpad
1084  u8 home_button[0x200];
1085  u8 sleep_button[0x200];
1086  u8 capture_button[0x200];
1087  u8 input_detector[0x800];
1088  u8 unique_pad[0x4000]; ///< [1.0.0-4.1.0] UniquePad
1091  HidConsoleSixAxisSensor console_six_axis_sensor; ///< [5.0.0+] ConsoleSixAxisSensor
1092  u8 unk_x3C220[0x3DE0];
1093 } HidSharedMemory;
1094 
1095 /// HidSevenSixAxisSensorState
1096 typedef struct {
1097  u64 timestamp0;
1098  u64 sampling_number;
1099 
1100  u64 unk_x10;
1101  float unk_x18[10];
1103 
1104 /// HidSevenSixAxisSensorStateEntry
1105 typedef struct {
1106  u64 sampling_number;
1107  u64 unused;
1110 
1111 /// HidSevenSixAxisSensorStates
1112 typedef struct {
1113  HidCommonLifoHeader header;
1114  HidSevenSixAxisSensorStateEntry storage[0x21];
1116 
1117 /// HidSixAxisSensorHandle
1118 typedef union HidSixAxisSensorHandle {
1119  u32 type_value; ///< TypeValue
1120  struct {
1121  u32 npad_style_index : 8; ///< NpadStyleIndex
1122  u32 player_number : 8; ///< PlayerNumber
1123  u32 device_idx : 8; ///< DeviceIdx
1124  u32 pad : 8; ///< Padding
1125  };
1127 
1128 /// HidVibrationDeviceHandle
1130  u32 type_value; ///< TypeValue
1131  struct {
1132  u32 npad_style_index : 8; ///< NpadStyleIndex
1133  u32 player_number : 8; ///< PlayerNumber
1134  u32 device_idx : 8; ///< DeviceIdx
1135  u32 pad : 8; ///< Padding
1136  };
1138 
1139 /// HidVibrationDeviceInfo
1140 typedef struct HidVibrationDeviceInfo {
1141  u32 type; ///< \ref HidVibrationDeviceType
1142  u32 position; ///< \ref HidVibrationDevicePosition
1144 
1145 /// HidVibrationValue
1146 typedef struct HidVibrationValue {
1147  float amp_low; ///< Low Band amplitude. 1.0f: Max amplitude.
1148  float freq_low; ///< Low Band frequency in Hz.
1149  float amp_high; ///< High Band amplitude. 1.0f: Max amplitude.
1150  float freq_high; ///< High Band frequency in Hz.
1152 
1153 /// PalmaConnectionHandle
1155  u64 handle; ///< Handle
1157 
1158 /// PalmaOperationInfo
1159 typedef struct HidPalmaOperationInfo {
1160  u32 type; ///< \ref HidPalmaOperationType
1161  Result res; ///< Result
1162  u8 data[0x140]; ///< Data
1164 
1165 /// PalmaApplicationSectionAccessBuffer
1167  u8 data[0x100]; ///< Application data.
1169 
1170 /// PalmaActivityEntry
1171 typedef struct HidPalmaActivityEntry {
1172  u16 rgb_led_pattern_index; ///< RgbLedPatternIndex
1173  u16 pad; ///< Padding
1174  u32 wave_set; ///< \ref HidPalmaWaveSet
1175  u16 wave_index; ///< WaveIndex
1177 
1178 /// Initialize hid. Called automatically during app startup.
1179 Result hidInitialize(void);
1180 
1181 /// Exit hid. Called automatically during app exit.
1182 void hidExit(void);
1183 
1184 /// Gets the Service object for the actual hid service session.
1186 
1187 /// Gets the address of the SharedMemory.
1188 void* hidGetSharedmemAddr(void);
1189 
1190 ///@name TouchScreen
1191 ///@{
1192 
1193 /// Initialize TouchScreen. Must be called when TouchScreen is being used. Used automatically by \ref hidScanInput when required.
1194 void hidInitializeTouchScreen(void);
1195 
1196 /**
1197  * @brief Gets \ref HidTouchScreenState.
1198  * @param[out] states Output array of \ref HidTouchScreenState.
1199  * @param[in] count Size of the states array in entries.
1200  * @return Total output entries.
1201  */
1202 size_t hidGetTouchScreenStates(HidTouchScreenState *states, size_t count);
1203 
1204 ///@}
1205 
1206 ///@name Mouse
1207 ///@{
1208 
1209 /// Initialize Mouse. Must be called when Mouse is being used. Used automatically by \ref hidScanInput when required.
1210 void hidInitializeMouse(void);
1211 
1212 /**
1213  * @brief Gets \ref HidMouseState.
1214  * @param[out] states Output array of \ref HidMouseState.
1215  * @param[in] count Size of the states array in entries.
1216  * @return Total output entries.
1217  */
1218 size_t hidGetMouseStates(HidMouseState *states, size_t count);
1219 
1220 ///@}
1221 
1222 ///@name Keyboard
1223 ///@{
1224 
1225 /// Initialize Keyboard. Must be called when Keyboard is being used. Used automatically by \ref hidScanInput when required.
1226 void hidInitializeKeyboard(void);
1227 
1228 /**
1229  * @brief Gets \ref HidKeyboardState.
1230  * @param[out] states Output array of \ref HidKeyboardState.
1231  * @param[in] count Size of the states array in entries.
1232  * @return Total output entries.
1233  */
1234 size_t hidGetKeyboardStates(HidKeyboardState *states, size_t count);
1235 
1236 /**
1237  * @brief Gets the state of a key in a \ref HidKeyboardState.
1238  * @param[in] state \ref HidKeyboardState.
1239  * @param[in] key \ref HidKeyboardKey.
1240  * @return true if the key is pressed, false if not.
1241  */
1243  return (state->keys[key / 64] & (1UL << (key & 63))) != 0;
1244 }
1245 
1246 ///@}
1247 
1248 ///@name Npad
1249 ///@{
1250 
1251 /// Initialize Npad. Must be called when Npad is being used. Used automatically by \ref hidScanInput when required.
1252 void hidInitializeNpad(void);
1253 
1254 /**
1255  * @brief Gets the StyleSet for the specified Npad.
1256  * @param[in] id \ref HidNpadIdType
1257  * @return Bitfield of \ref HidNpadStyleTag.
1258  */
1260 
1261 /**
1262  * @brief Gets the \ref HidNpadJoyAssignmentMode for the specified Npad.
1263  * @param[in] id \ref HidNpadIdType
1264  * @return \ref HidNpadJoyAssignmentMode
1265  */
1267 
1268 /**
1269  * @brief Gets the main \ref HidNpadControllerColor for the specified Npad.
1270  * @param[in] id \ref HidNpadIdType
1271  * @param[out] color \ref HidNpadControllerColor
1272  */
1274 
1275 /**
1276  * @brief Gets the left/right \ref HidNpadControllerColor for the specified Npad (Joy-Con pair in dual mode).
1277  * @param[in] id \ref HidNpadIdType
1278  * @param[out] color_left \ref HidNpadControllerColor
1279  * @param[out] color_right \ref HidNpadControllerColor
1280  */
1282 
1283 /**
1284  * @brief Gets the DeviceType for the specified Npad.
1285  * @param[in] id \ref HidNpadIdType
1286  * @return Bitfield of \ref HidDeviceTypeBits.
1287  */
1289 
1290 /**
1291  * @brief Gets the \ref HidNpadSystemProperties for the specified Npad.
1292  * @param[in] id \ref HidNpadIdType
1293  * @param[out] out \ref HidNpadSystemProperties
1294  */
1296 
1297 /**
1298  * @brief Gets the \ref HidNpadSystemButtonProperties for the specified Npad.
1299  * @param[in] id \ref HidNpadIdType
1300  * @param[out] out \ref HidNpadSystemButtonProperties
1301  */
1303 
1304 /**
1305  * @brief Gets the main \ref HidPowerInfo for the specified Npad.
1306  * @param[in] id \ref HidNpadIdType
1307  * @param[out] info \ref HidPowerInfo
1308  */
1310 
1311 /**
1312  * @brief Gets the left/right \ref HidPowerInfo for the specified Npad (Joy-Con pair in dual mode).
1313  * @param[in] id \ref HidNpadIdType
1314  * @param[out] info_left \ref HidPowerInfo
1315  * @param[out] info_right \ref HidPowerInfo
1316  */
1317 void hidGetNpadPowerInfoSplit(HidNpadIdType id, HidPowerInfo *info_left, HidPowerInfo *info_right);
1318 
1319 /**
1320  * @brief Gets the AppletFooterUiAttributesSet for the specified Npad.
1321  * @note Only available on [9.0.0+].
1322  * @param[in] id \ref HidNpadIdType
1323  * @return Bitfield of AppletFooterUiAttribute (system).
1324  */
1326 
1327 /**
1328  * @brief Gets \ref HidAppletFooterUiType for the specified Npad.
1329  * @note Only available on [9.0.0+].
1330  * @param[in] id \ref HidNpadIdType
1331  * @return \ref HidAppletFooterUiType
1332  */
1334 
1335 /**
1336  * @brief Gets \ref HidNpadLagerType for the specified Npad.
1337  * @param[in] id \ref HidNpadIdType
1338  * @return \ref HidNpadLagerType
1339  */
1341 
1342 /**
1343  * @brief Gets \ref HidNpadFullKeyState.
1344  * @param[out] states Output array of \ref HidNpadFullKeyState.
1345  * @param[in] count Size of the states array in entries.
1346  * @return Total output entries.
1347  */
1348 size_t hidGetNpadStatesFullKey(HidNpadIdType id, HidNpadFullKeyState *states, size_t count);
1349 
1350 /**
1351  * @brief Gets \ref HidNpadHandheldState.
1352  * @param[out] states Output array of \ref HidNpadHandheldState.
1353  * @param[in] count Size of the states array in entries.
1354  * @return Total output entries.
1355  */
1356 size_t hidGetNpadStatesHandheld(HidNpadIdType id, HidNpadHandheldState *states, size_t count);
1357 
1358 /**
1359  * @brief Gets \ref HidNpadJoyDualState.
1360  * @param[out] states Output array of \ref HidNpadJoyDualState.
1361  * @param[in] count Size of the states array in entries.
1362  * @return Total output entries.
1363  */
1364 size_t hidGetNpadStatesJoyDual(HidNpadIdType id, HidNpadJoyDualState *states, size_t count);
1365 
1366 /**
1367  * @brief Gets \ref HidNpadJoyLeftState.
1368  * @param[out] states Output array of \ref HidNpadJoyLeftState.
1369  * @param[in] count Size of the states array in entries.
1370  * @return Total output entries.
1371  */
1372 size_t hidGetNpadStatesJoyLeft(HidNpadIdType id, HidNpadJoyLeftState *states, size_t count);
1373 
1374 /**
1375  * @brief Gets \ref HidNpadJoyRightState.
1376  * @param[out] states Output array of \ref HidNpadJoyRightState.
1377  * @param[in] count Size of the states array in entries.
1378  * @return Total output entries.
1379  */
1380 size_t hidGetNpadStatesJoyRight(HidNpadIdType id, HidNpadJoyRightState *states, size_t count);
1381 
1382 /**
1383  * @brief Gets \ref HidNpadGcState.
1384  * @param[out] states Output array of \ref HidNpadGcState.
1385  * @param[in] count Size of the states array in entries.
1386  * @return Total output entries.
1387  */
1388 size_t hidGetNpadStatesGc(HidNpadIdType id, HidNpadGcState *states, size_t count);
1389 
1390 /**
1391  * @brief Gets \ref HidNpadPalmaState.
1392  * @param[out] states Output array of \ref HidNpadPalmaState.
1393  * @param[in] count Size of the states array in entries.
1394  * @return Total output entries.
1395  */
1396 size_t hidGetNpadStatesPalma(HidNpadIdType id, HidNpadPalmaState *states, size_t count);
1397 
1398 /**
1399  * @brief Gets \ref HidNpadLarkState.
1400  * @param[out] states Output array of \ref HidNpadLarkState.
1401  * @param[in] count Size of the states array in entries.
1402  * @return Total output entries.
1403  */
1404 size_t hidGetNpadStatesLark(HidNpadIdType id, HidNpadLarkState *states, size_t count);
1405 
1406 /**
1407  * @brief Gets \ref HidNpadHandheldLarkState.
1408  * @param[out] states Output array of \ref HidNpadHandheldLarkState.
1409  * @param[in] count Size of the states array in entries.
1410  * @return Total output entries.
1411  */
1412 size_t hidGetNpadStatesHandheldLark(HidNpadIdType id, HidNpadHandheldLarkState *states, size_t count);
1413 
1414 /**
1415  * @brief Gets \ref HidNpadLuciaState.
1416  * @param[out] states Output array of \ref HidNpadLuciaState.
1417  * @param[in] count Size of the states array in entries.
1418  * @return Total output entries.
1419  */
1420 size_t hidGetNpadStatesLucia(HidNpadIdType id, HidNpadLuciaState *states, size_t count);
1421 
1422 /**
1423  * @brief Gets \ref HidNpadLagerState.
1424  * @param[out] states Output array of \ref HidNpadLagerState.
1425  * @param[in] count Size of the states array in entries.
1426  * @return Total output entries.
1427  */
1428 size_t hidGetNpadStatesLager(HidNpadIdType id, HidNpadLagerState *states, size_t count);
1429 
1430 /**
1431  * @brief Gets \ref HidNpadSystemExtState.
1432  * @param[out] states Output array of \ref HidNpadSystemExtState.
1433  * @param[in] count Size of the states array in entries.
1434  * @return Total output entries.
1435  */
1436 size_t hidGetNpadStatesSystemExt(HidNpadIdType id, HidNpadSystemExtState *states, size_t count);
1437 
1438 /**
1439  * @brief Gets \ref HidNpadSystemState.
1440  * @param[out] states Output array of \ref HidNpadSystemState.
1441  * @param[in] count Size of the states array in entries.
1442  * @return Total output entries.
1443  */
1444 size_t hidGetNpadStatesSystem(HidNpadIdType id, HidNpadSystemState *states, size_t count);
1445 
1446 /**
1447  * @brief Gets \ref HidSixAxisSensorState for the specified handle.
1448  * @param[in] handle \ref HidSixAxisSensorHandle
1449  * @param[out] states Output array of \ref HidSixAxisSensorState.
1450  * @param[in] count Size of the states array in entries.
1451  * @return Total output entries.
1452  */
1453 size_t hidGetSixAxisSensorStates(HidSixAxisSensorHandle handle, HidSixAxisSensorState *states, size_t count);
1454 
1455 ///@}
1456 
1457 ///@name Gesture
1458 ///@{
1459 
1460 /// Initialize Gesture. Must be called when Gesture is being used.
1461 void hidInitializeGesture(void);
1462 
1463 /**
1464  * @brief Gets \ref HidGestureState.
1465  * @param[out] states Output array of \ref HidGestureState.
1466  * @param[in] count Size of the states array in entries.
1467  * @return Total output entries.
1468  */
1469 size_t hidGetGestureStates(HidGestureState *states, size_t count);
1470 
1471 ///@}
1472 
1473 /**
1474  * @brief SendKeyboardLockKeyEvent
1475  * @note Same as \ref hidsysSendKeyboardLockKeyEvent.
1476  * @note Only available on [6.0.0+].
1477  * @param[in] events Bitfield of \ref HidKeyboardLockKeyEvent.
1478  */
1480 
1481 /**
1482  * @brief Gets SixAxisSensorHandles.
1483  * @note Only ::HidNpadStyleTag_NpadJoyDual supports total_handles==2.
1484  * @param[out] handles Output array of \ref HidSixAxisSensorHandle.
1485  * @param[in] total_handles Total handles for the handles array. Must be 1 or 2, if 2 handles aren't supported by the specified style an error is thrown.
1486  * @param[in] id \ref HidNpadIdType
1487  * @param[in] style \ref HidNpadStyleTag
1488  */
1490 
1491 /**
1492  * @brief Starts the SixAxisSensor for the specified handle.
1493  * @param[in] handle \ref HidSixAxisSensorHandle
1494  */
1496 
1497 /**
1498  * @brief Stops the SixAxisSensor for the specified handle.
1499  * @param[in] handle \ref HidSixAxisSensorHandle
1500  */
1502 
1503 /**
1504  * @brief IsSixAxisSensorFusionEnabled
1505  * @param[in] handle \ref HidSixAxisSensorHandle
1506  * @param[out] out Output flag.
1507  */
1509 
1510 /**
1511  * @brief EnableSixAxisSensorFusion
1512  * @param[in] handle \ref HidSixAxisSensorHandle
1513  * @param[in] flag Flag
1514  */
1516 
1517 /**
1518  * @brief SetSixAxisSensorFusionParameters
1519  * @param[in] handle \ref HidSixAxisSensorHandle
1520  * @param[in] unk0 Must be 0.0f-1.0f.
1521  * @param[in] unk1 Unknown
1522  */
1523 Result hidSetSixAxisSensorFusionParameters(HidSixAxisSensorHandle handle, float unk0, float unk1);
1524 
1525 /**
1526  * @brief GetSixAxisSensorFusionParameters
1527  * @param[in] handle \ref HidSixAxisSensorHandle
1528  * @param[out] unk0 Unknown
1529  * @param[out] unk1 Unknown
1530  */
1531 Result hidGetSixAxisSensorFusionParameters(HidSixAxisSensorHandle handle, float *unk0, float *unk1);
1532 
1533 /**
1534  * @brief ResetSixAxisSensorFusionParameters
1535  * @param[in] handle \ref HidSixAxisSensorHandle
1536  */
1538 
1539 /**
1540  * @brief Sets the ::HidGyroscopeZeroDriftMode for the specified SixAxisSensorHandle.
1541  * @param[in] handle \ref HidSixAxisSensorHandle
1542  * @param[in] mode \ref HidGyroscopeZeroDriftMode
1543  */
1545 
1546 /**
1547  * @brief Gets the ::HidGyroscopeZeroDriftMode for the specified SixAxisSensorHandle.
1548  * @param[in] handle \ref HidSixAxisSensorHandle
1549  * @param[out] mode \ref HidGyroscopeZeroDriftMode
1550  */
1552 
1553 /**
1554  * @brief Resets the ::HidGyroscopeZeroDriftMode for the specified SixAxisSensorHandle to ::HidGyroscopeZeroDriftMode_Standard.
1555  * @param[in] handle \ref HidSixAxisSensorHandle
1556  */
1558 
1559 /**
1560  * @brief IsSixAxisSensorAtRest
1561  * @param[in] handle \ref HidSixAxisSensorHandle
1562  * @param[out] out Output flag.
1563  */
1565 
1566 /**
1567  * @brief IsFirmwareUpdateAvailableForSixAxisSensor
1568  * @note Only available on [6.0.0+].
1569  * @param[in] handle \ref HidSixAxisSensorHandle
1570  * @param[out] out Output flag.
1571  */
1573 
1574 /**
1575  * @brief Sets which controller styles are supported.
1576  * @note This is automatically called with the needed styles in \ref hidScanInput when required.
1577  * @param[in] style_set Bitfield of \ref HidNpadStyleTag.
1578  */
1580 
1581 /**
1582  * @brief Gets which controller styles are supported.
1583  * @param[out] style_set Bitfield of \ref HidNpadStyleTag.
1584  */
1586 
1587 /**
1588  * @brief Sets which \ref HidNpadIdType are supported.
1589  * @note This is automatically called with HidNpadIdType_No{1-8} and HidNpadIdType_Handheld when required in \ref hidScanInput.
1590  * @param[in] ids Input array of \ref HidNpadIdType.
1591  * @param[in] count Total entries in the ids array. Must be <=10.
1592  */
1593 Result hidSetSupportedNpadIdType(const HidNpadIdType *ids, size_t count);
1594 
1595 /**
1596  * @brief Gets an Event which is signaled when the \ref hidGetNpadStyleSet output is updated for the specified controller.
1597  * @note The Event must be closed by the user once finished with it.
1598  * @param[in] id \ref HidNpadIdType
1599  * @param[out] out_event Output Event.
1600  * @param[in] autoclear The autoclear for the Event.
1601 **/
1602 Result hidAcquireNpadStyleSetUpdateEventHandle(HidNpadIdType id, Event* out_event, bool autoclear);
1603 
1604 /**
1605  * @brief DisconnectNpad
1606  * @param[in] id \ref HidNpadIdType
1607  */
1609 
1610 /**
1611  * @brief GetPlayerLedPattern
1612  * @param[in] id \ref HidNpadIdType
1613  * @param[out] out Output value.
1614  */
1616 
1617 /**
1618  * @brief Sets the \ref HidNpadJoyHoldType.
1619  * @note Used automatically by \ref hidScanInput when required.
1620  * @param[in] type \ref HidNpadJoyHoldType
1621  */
1623 
1624 /**
1625  * @brief Gets the \ref HidNpadJoyHoldType.
1626  * @param[out] type \ref HidNpadJoyHoldType
1627  */
1629 
1630 /**
1631  * @brief This is the same as \ref hidSetNpadJoyAssignmentModeSingle, except ::HidNpadJoyDeviceType_Left is used for the type.
1632  * @param[in] id \ref HidNpadIdType, must be HidNpadIdType_No*.
1633  */
1635 
1636 /**
1637  * @brief This is the same as \ref hidSetNpadJoyAssignmentModeSingleWithDestination, except without the output params.
1638  * @param[in] id \ref HidNpadIdType, must be HidNpadIdType_No*.
1639  * @param[in] type \ref HidNpadJoyDeviceType
1640  */
1642 
1643 /**
1644  * @brief Use this if you want to use a pair of joy-cons as a single HidNpadIdType_No*. When used, both joy-cons in a pair should be used with this (HidNpadIdType_No1 and HidNpadIdType_No2 for example).
1645  * @note Used automatically by \ref hidScanInput when required.
1646  * @param[in] id \ref HidNpadIdType, must be HidNpadIdType_No*.
1647  */
1649 
1650 /**
1651  * @brief Merge two single joy-cons into a dual-mode controller. Use this after \ref hidSetNpadJoyAssignmentModeDual, when \ref hidSetNpadJoyAssignmentModeSingleByDefault was previously used (this includes using this manually at application exit).
1652  * @brief To be successful, id0/id1 must correspond to controllers supporting styles HidNpadStyleTag_NpadJoyLeft/Right, or HidNpadStyleTag_NpadJoyRight/Left.
1653  * @brief If successful, the id of the resulting dual controller is set to id0.
1654  * @param[in] id0 \ref HidNpadIdType
1655  * @param[in] id1 \ref HidNpadIdType
1656  */
1658 
1659 /**
1660  * @brief StartLrAssignmentMode
1661  */
1663 
1664 /**
1665  * @brief StopLrAssignmentMode
1666  */
1668 
1669 /**
1670  * @brief Sets the \ref HidNpadHandheldActivationMode.
1671  * @param[in] mode \ref HidNpadHandheldActivationMode
1672  */
1674 
1675 /**
1676  * @brief Gets the \ref HidNpadHandheldActivationMode.
1677  * @param[out] out \ref HidNpadHandheldActivationMode
1678  */
1680 
1681 /**
1682  * @brief SwapNpadAssignment
1683  * @param[in] id0 \ref HidNpadIdType
1684  * @param[in] id1 \ref HidNpadIdType
1685  */
1687 
1688 /**
1689  * @brief EnableUnintendedHomeButtonInputProtection
1690  * @note To get the state of this, use \ref hidGetNpadSystemButtonProperties to access HidNpadSystemButtonProperties::is_unintended_home_button_input_protection_enabled.
1691  * @param[in] id \ref HidNpadIdType
1692  * @param[in] flag Whether UnintendedHomeButtonInputProtection is enabled.
1693  */
1695 
1696 /**
1697  * @brief Use this if you want to use a single joy-con as a dedicated HidNpadIdType_No*. When used, both joy-cons in a pair should be used with this (HidNpadIdType_No1 and HidNpadIdType_No2 for example).
1698  * @note Only available on [5.0.0+].
1699  * @param[in] id \ref HidNpadIdType, must be HidNpadIdType_No*.
1700  * @param[in] type \ref HidNpadJoyDeviceType
1701  * @param[out] flag Whether the dest output is set.
1702  * @param[out] dest \ref HidNpadIdType
1703  */
1705 
1706 /**
1707  * @brief SetNpadAnalogStickUseCenterClamp
1708  * @note Only available on [6.1.0+].
1709  * @param[in] flag Flag
1710  */
1712 
1713 /**
1714  * @brief Assigns the button(s) which trigger the CaptureButton.
1715  * @note Only available on [8.0.0+].
1716  * @param[in] style \ref HidNpadStyleTag, exactly 1 bit must be set.
1717  * @param[in] buttons Bitfield of \ref HidNpadButton, multiple bits can be set.
1718  */
1720 
1721 /**
1722  * @brief ClearNpadCaptureButtonAssignment
1723  * @note Only available on [8.0.0+].
1724  */
1726 
1727 /**
1728  * @brief Gets and initializes vibration handles.
1729  * @note Only the following styles support total_handles 2: ::HidNpadStyleTag_NpadFullKey, ::HidNpadStyleTag_NpadHandheld, ::HidNpadStyleTag_NpadJoyDual, ::HidNpadStyleTag_NpadHandheldLark, ::HidNpadStyleTag_NpadSystem, ::HidNpadStyleTag_NpadSystemExt.
1730  * @param[out] handles Output array of \ref HidVibrationDeviceHandle.
1731  * @param[in] total_handles Total handles for the handles array. Must be 1 or 2, if 2 handles aren't supported by the specified style an error is thrown.
1732  * @param[in] id \ref HidNpadIdType
1733  * @param[in] style \ref HidNpadStyleTag
1734  */
1736 
1737 /**
1738  * @brief Gets \ref HidVibrationDeviceInfo for the specified device.
1739  * @param[in] handle \ref HidVibrationDeviceHandle
1740  * @param[out] out \ref HidVibrationDeviceInfo
1741  */
1743 
1744 /**
1745  * @brief Sends the \ref HidVibrationDeviceHandle to the specified device.
1746  * @note With ::HidVibrationDeviceType_GcErm, use \ref hidSendVibrationGcErmCommand instead.
1747  * @param[in] handle \ref HidVibrationDeviceHandle
1748  * @param[in] value \ref HidVibrationValue
1749  */
1751 
1752 /**
1753  * @brief Gets the current \ref HidVibrationValue for the specified device.
1754  * @note With ::HidVibrationDeviceType_GcErm, use \ref hidGetActualVibrationGcErmCommand instead.
1755  * @param[in] handle \ref HidVibrationDeviceHandle
1756  * @param[out] out \ref HidVibrationValue
1757  */
1759 
1760 /**
1761  * @brief Sets whether vibration is allowed, this also affects the config displayed by System Settings.
1762  * @param[in] flag Flag
1763  */
1764 Result hidPermitVibration(bool flag);
1765 
1766 /**
1767  * @brief Gets whether vibration is allowed.
1768  * @param[out] flag Flag
1769  */
1770 Result hidIsVibrationPermitted(bool *flag);
1771 
1772 /**
1773  * @brief Send vibration values[index] to handles[index].
1774  * @note With ::HidVibrationDeviceType_GcErm, use \ref hidSendVibrationGcErmCommand instead.
1775  * @param[in] handles Input array of \ref HidVibrationDeviceHandle.
1776  * @param[in] values Input array of \ref HidVibrationValue.
1777  * @param[in] count Total entries in the handles/values arrays.
1778  */
1779 Result hidSendVibrationValues(const HidVibrationDeviceHandle *handles, const HidVibrationValue *values, s32 count);
1780 
1781 /**
1782  * @brief Send \ref HidVibrationGcErmCommand to the specified device, for ::HidVibrationDeviceType_GcErm.
1783  * @note Only available on [4.0.0+].
1784  * @param[in] handle \ref HidVibrationDeviceHandle
1785  * @param[in] cmd \ref HidVibrationGcErmCommand
1786  */
1788 
1789 /**
1790  * @brief Get \ref HidVibrationGcErmCommand for the specified device, for ::HidVibrationDeviceType_GcErm.
1791  * @note Only available on [4.0.0+].
1792  * @param[in] handle \ref HidVibrationDeviceHandle
1793  * @param[out] out \ref HidVibrationGcErmCommand
1794  */
1796 
1797 /**
1798  * @brief Begins a forced-permitted vibration session.
1799  * @note Only available on [4.0.0+].
1800  */
1802 
1803 /**
1804  * @brief Ends the session started by \ref hidBeginPermitVibrationSession.
1805  * @note Only available on [4.0.0+].
1806  */
1808 
1809 /**
1810  * @brief Gets whether vibration is available with the specified device.
1811  * @note Only available on [7.0.0+].
1812  * @param[in] handle \ref HidVibrationDeviceHandle
1813  * @param[out] flag Flag
1814  */
1816 
1817 /**
1818  * @brief Starts the SevenSixAxisSensor.
1819  * @note Only available on [5.0.0+].
1820  */
1822 
1823 /**
1824  * @brief Stops the SevenSixAxisSensor.
1825  * @note Only available on [5.0.0+].
1826  */
1828 
1829 /**
1830  * @brief Initializes the SevenSixAxisSensor.
1831  * @note Only available on [5.0.0+].
1832  */
1834 
1835 /**
1836  * @brief Finalizes the SevenSixAxisSensor.
1837  * @note This must be called before \ref hidExit.
1838  * @note Only available on [5.0.0+].
1839  */
1841 
1842 /**
1843  * @brief Sets the SevenSixAxisSensor FusionStrength.
1844  * @note Only available on [5.0.0+].
1845  * @param[in] strength Strength
1846  */
1848 
1849 /**
1850  * @brief Gets the SevenSixAxisSensor FusionStrength.
1851  * @note Only available on [5.0.0+].
1852  * @param[out] strength Strength
1853  */
1855 
1856 /**
1857  * @brief Resets the timestamp for the SevenSixAxisSensor.
1858  * @note Only available on [6.0.0+].
1859  */
1861 
1862 /**
1863  * @brief GetSevenSixAxisSensorStates
1864  * @note Only available when \ref hidInitializeSevenSixAxisSensor was previously used.
1865  * @param[out] states Output array of \ref HidSevenSixAxisSensorState.
1866  * @param[in] count Size of the states array in entries.
1867  * @param[out] total_out Total output entries.
1868  */
1869 Result hidGetSevenSixAxisSensorStates(HidSevenSixAxisSensorState *states, size_t count, size_t *total_out);
1870 
1871 /**
1872  * @brief IsSevenSixAxisSensorAtRest
1873  * @note Only available when \ref hidInitializeSevenSixAxisSensor was previously used.
1874  * @param[out] out Output flag.
1875  */
1877 
1878 /**
1879  * @brief GetSensorFusionError
1880  * @note Only available when \ref hidInitializeSevenSixAxisSensor was previously used.
1881  * @param[out] out Output data.
1882  */
1883 Result hidGetSensorFusionError(float *out);
1884 
1885 /**
1886  * @brief GetGyroBias
1887  * @note Only available when \ref hidInitializeSevenSixAxisSensor was previously used.
1888  * @param[out] out \ref UtilFloat3
1889  */
1891 
1892 /**
1893  * @brief IsUsbFullKeyControllerEnabled
1894  * @note Only available on [3.0.0+].
1895  * @param[out] out Output flag.
1896  */
1898 
1899 /**
1900  * @brief EnableUsbFullKeyController
1901  * @note Only available on [3.0.0+].
1902  * @param[in] flag Flag
1903  */
1905 
1906 /**
1907  * @brief IsUsbFullKeyControllerConnected
1908  * @note Only available on [3.0.0+].
1909  * @param[in] id \ref HidNpadIdType
1910  * @param[out] out Output flag.
1911  */
1913 
1914 /**
1915  * @brief Gets the \ref HidNpadInterfaceType for the specified controller.
1916  * @note When available, \ref hidsysGetNpadInterfaceType should be used instead.
1917  * @note Only available on [4.0.0+].
1918  * @param[in] id \ref HidNpadIdType
1919  * @param[out] out \ref HidNpadInterfaceType
1920  */
1922 
1923 /**
1924  * @brief GetNpadOfHighestBatteryLevel
1925  * @note Only available on [10.0.0+].
1926  * @param[in] ids Input array of \ref HidNpadIdType, ::HidNpadIdType_Handheld is ignored.
1927  * @param[in] count Total entries in the ids array.
1928  * @param[out] out \ref HidNpadIdType
1929  */
1930 Result hidGetNpadOfHighestBatteryLevel(const HidNpadIdType *ids, size_t count, HidNpadIdType *out);
1931 
1932 ///@name Palma, see ::HidNpadStyleTag_NpadPalma.
1933 ///@{
1934 
1935 /**
1936  * @brief GetPalmaConnectionHandle
1937  * @note Only available on [5.0.0+].
1938  * @param[in] id \ref HidNpadIdType
1939  * @param[out] out \ref HidPalmaConnectionHandle
1940  */
1942 
1943 /**
1944  * @brief InitializePalma
1945  * @note Only available on [5.0.0+].
1946  * @param[in] handle \ref HidPalmaConnectionHandle
1947  */
1949 
1950 /**
1951  * @brief Gets an Event which is signaled when data is available with \ref hidGetPalmaOperationInfo.
1952  * @note The Event must be closed by the user once finished with it.
1953  * @note Only available on [5.0.0+].
1954  * @param[in] handle \ref HidPalmaConnectionHandle
1955  * @param[out] out_event Output Event.
1956  * @param[in] autoclear The autoclear for the Event.
1957 **/
1959 
1960 /**
1961  * @brief Gets \ref HidPalmaOperationInfo for a completed operation.
1962  * @note This must be used at some point following using any of the other Palma cmds which trigger an Operation, once the Event from \ref hidAcquirePalmaOperationCompleteEvent is signaled. Up to 4 Operations can be queued at once, the other cmds will throw an error once there's too many operations.
1963  * @note Only available on [5.0.0+].
1964  * @param[in] handle \ref HidPalmaConnectionHandle
1965  * @param[out] out \ref HidPalmaOperationInfo
1966  */
1968 
1969 /**
1970  * @brief PlayPalmaActivity
1971  * @note See \ref hidGetPalmaOperationInfo.
1972  * @note Only available on [5.0.0+].
1973  * @param[in] handle \ref HidPalmaConnectionHandle
1974  * @param[in] val Input value.
1975  */
1977 
1978 /**
1979  * @brief SetPalmaFrModeType
1980  * @note See \ref hidGetPalmaOperationInfo.
1981  * @note Only available on [5.0.0+].
1982  * @param[in] handle \ref HidPalmaConnectionHandle
1983  * @param[in] type \ref HidPalmaFrModeType
1984  */
1986 
1987 /**
1988  * @brief ReadPalmaStep
1989  * @note See \ref hidGetPalmaOperationInfo.
1990  * @note \ref hidEnablePalmaStep should be used before this.
1991  * @note Only available on [5.0.0+].
1992  * @param[in] handle \ref HidPalmaConnectionHandle
1993  */
1995 
1996 /**
1997  * @brief EnablePalmaStep
1998  * @note See \ref hidGetPalmaOperationInfo.
1999  * @note Only available on [5.0.0+].
2000  * @param[in] handle \ref HidPalmaConnectionHandle
2001  * @param[in] flag Flag
2002  */
2004 
2005 /**
2006  * @brief ResetPalmaStep
2007  * @note See \ref hidGetPalmaOperationInfo.
2008  * @note Only available on [5.0.0+].
2009  * @param[in] handle \ref HidPalmaConnectionHandle
2010  */
2012 
2013 /**
2014  * @brief ReadPalmaApplicationSection
2015  * @note See \ref hidGetPalmaOperationInfo.
2016  * @note Only available on [5.0.0+].
2017  * @param[in] handle \ref HidPalmaConnectionHandle
2018  * @param[in] inval0 First input value.
2019  * @param[in] size This must be within the size of \ref HidPalmaApplicationSectionAccessBuffer.
2020  */
2022 
2023 /**
2024  * @brief WritePalmaApplicationSection
2025  * @note See \ref hidGetPalmaOperationInfo.
2026  * @note Only available on [5.0.0+].
2027  * @param[in] handle \ref HidPalmaConnectionHandle
2028  * @param[in] inval0 First input value.
2029  * @param[in] size Size of the data in \ref HidPalmaApplicationSectionAccessBuffer.
2030  * @param[in] buf \ref HidPalmaApplicationSectionAccessBuffer
2031  */
2033 
2034 /**
2035  * @brief ReadPalmaUniqueCode
2036  * @note See \ref hidGetPalmaOperationInfo.
2037  * @note Only available on [5.0.0+].
2038  * @param[in] handle \ref HidPalmaConnectionHandle
2039  */
2041 
2042 /**
2043  * @brief SetPalmaUniqueCodeInvalid
2044  * @note See \ref hidGetPalmaOperationInfo.
2045  * @note Only available on [5.0.0+].
2046  * @param[in] handle \ref HidPalmaConnectionHandle
2047  */
2049 
2050 /**
2051  * @brief WritePalmaActivityEntry
2052  * @note See \ref hidGetPalmaOperationInfo.
2053  * @note Only available on [5.0.0+].
2054  * @param[in] handle \ref HidPalmaConnectionHandle
2055  * @param[in] unk Unknown
2056  * @param[in] entry \ref HidPalmaActivityEntry
2057  */
2059 
2060 /**
2061  * @brief WritePalmaRgbLedPatternEntry
2062  * @note See \ref hidGetPalmaOperationInfo.
2063  * @note Only available on [5.0.0+].
2064  * @param[in] handle \ref HidPalmaConnectionHandle
2065  * @param[in] unk Unknown
2066  * @param[in] buffer Input buffer.
2067  * @param[in] size Input buffer size.
2068  */
2069 Result hidWritePalmaRgbLedPatternEntry(HidPalmaConnectionHandle handle, u16 unk, const void* buffer, size_t size);
2070 
2071 /**
2072  * @brief WritePalmaWaveEntry
2073  * @note See \ref hidGetPalmaOperationInfo.
2074  * @note Only available on [5.0.0+].
2075  * @param[in] handle \ref HidPalmaConnectionHandle
2076  * @param[in] wave_set \ref HidPalmaWaveSet
2077  * @param[in] unk Unknown
2078  * @param[in] buffer TransferMemory buffer, must be 0x1000-byte aligned.
2079  * @param[in] tmem_size TransferMemory buffer size, must be 0x1000-byte aligned.
2080  * @param[in] size Actual size of the data in the buffer.
2081  */
2082 Result hidWritePalmaWaveEntry(HidPalmaConnectionHandle handle, HidPalmaWaveSet wave_set, u16 unk, const void* buffer, size_t tmem_size, size_t size);
2083 
2084 /**
2085  * @brief SetPalmaDataBaseIdentificationVersion
2086  * @note See \ref hidGetPalmaOperationInfo.
2087  * @note Only available on [5.0.0+].
2088  * @param[in] handle \ref HidPalmaConnectionHandle
2089  * @param[in] version Version
2090  */
2092 
2093 /**
2094  * @brief GetPalmaDataBaseIdentificationVersion
2095  * @note See \ref hidGetPalmaOperationInfo.
2096  * @note Only available on [5.0.0+].
2097  * @param[in] handle \ref HidPalmaConnectionHandle
2098  */
2100 
2101 /**
2102  * @brief SuspendPalmaFeature
2103  * @note See \ref hidGetPalmaOperationInfo.
2104  * @note Only available on [5.0.0+].
2105  * @param[in] handle \ref HidPalmaConnectionHandle
2106  * @param[in] features Bitfield of \ref HidPalmaFeature.
2107  */
2109 
2110 /**
2111  * @brief ReadPalmaPlayLog
2112  * @note See \ref hidGetPalmaOperationInfo.
2113  * @note Only available on [5.1.0+].
2114  * @param[in] handle \ref HidPalmaConnectionHandle
2115  * @param[in] unk Unknown
2116  */
2118 
2119 /**
2120  * @brief ResetPalmaPlayLog
2121  * @note See \ref hidGetPalmaOperationInfo.
2122  * @note Only available on [5.1.0+].
2123  * @param[in] handle \ref HidPalmaConnectionHandle
2124  * @param[in] unk Unknown
2125  */
2127 
2128 /**
2129  * @brief Sets whether any Palma can connect.
2130  * @note Only available on [5.1.0+].
2131  * @param[in] flag Flag
2132  */
2134 
2135 /**
2136  * @brief Sets whether paired Palma can connect.
2137  * @note Only available on [5.1.0+].
2138  * @param[in] flag Flag
2139  */
2141 
2142 /**
2143  * @brief PairPalma
2144  * @note Only available on [5.1.0+].
2145  * @param[in] handle \ref HidPalmaConnectionHandle
2146  */
2148 
2149 /**
2150  * @brief CancelWritePalmaWaveEntry
2151  * @note Only available on [7.0.0+].
2152  * @param[in] handle \ref HidPalmaConnectionHandle
2153  */
2155 
2156 /**
2157  * @brief EnablePalmaBoostMode
2158  * @note Only available on [5.1.0+]. Uses cmd EnablePalmaBoostMode on [8.0.0+], otherwise cmd SetPalmaBoostMode is used.
2159  * @param[in] flag Flag
2160  */
2161 Result hidEnablePalmaBoostMode(bool flag);
2162 
2163 /**
2164  * @brief GetPalmaBluetoothAddress
2165  * @note Only available on [8.0.0+].
2166  * @param[in] handle \ref HidPalmaConnectionHandle
2167  * @param[out] out \ref BtdrvAddress
2168  */
2170 
2171 /**
2172  * @brief SetDisallowedPalmaConnection
2173  * @note Only available on [8.0.0+].
2174  * @param[in] addrs Input array of \ref BtdrvAddress.
2175  * @param[in] count Total entries in the addrs array.
2176  */
2178 
2179 ///@}
2180 
2181 /**
2182  * @brief SetNpadCommunicationMode
2183  * @note [2.0.0+] Stubbed, just returns 0.
2184  * @param[in] mode \ref HidNpadCommunicationMode
2185  */
2187 
2188 /**
2189  * @brief GetNpadCommunicationMode
2190  * @note [2.0.0+] Stubbed, always returns output mode ::HidNpadCommunicationMode_Default.
2191  * @param[out] out \ref HidNpadCommunicationMode
2192  */
2194 
2195 /**
2196  * @brief SetTouchScreenConfiguration
2197  * @note Only available on [9.0.0+].
2198  * @param[in] config \ref HidTouchScreenConfigurationForNx
2199  */
2201 
2202 /**
2203  * @brief IsFirmwareUpdateNeededForNotification
2204  * @note Only available on [9.0.0+].
2205  * @param[out] out Output flag.
2206  */
HidSixAxisSensorHandle
HidSixAxisSensorHandle.
Definition: hid.h:1118
HidGestureLifo
HidGestureLifo.
Definition: hid.h:1054
HidNpadButton_B
@ HidNpadButton_B
B button / Down face button.
Definition: hid.h:258
HidNpadIdType_No1
@ HidNpadIdType_No1
Player 1 controller.
Definition: hid.h:215
HidNpadLuciaType_J
@ HidNpadLuciaType_J
J.
Definition: hid.h:504
HidSixAxisSensorState::delta_time
u64 delta_time
DeltaTime.
Definition: hid.h:880
HidNpadInternalState::joy_left_lifo
HidNpadCommonLifo joy_left_lifo
JoyLeftLifo.
Definition: hid.h:971
hidInitializeNpad
void hidInitializeNpad(void)
Initialize Npad. Must be called when Npad is being used. Used automatically by hidScanInput when requ...
HidNpadAttribute_IsLeftWired
@ HidNpadAttribute_IsLeftWired
IsLeftWired.
Definition: hid.h:323
HidDebugPadButton_B
@ HidDebugPadButton_B
B button.
Definition: hid.h:19
HidNpadCommunicationMode
HidNpadCommunicationMode
NpadCommunicationMode.
Definition: hid.h:396
hidSendVibrationGcErmCommand
Result hidSendVibrationGcErmCommand(HidVibrationDeviceHandle handle, HidVibrationGcErmCommand cmd)
Send HidVibrationGcErmCommand to the specified device, for HidVibrationDeviceType_GcErm.
HidNpadStyleTag_NpadPalma
@ HidNpadStyleTag_NpadPalma
Poké Ball Plus controller.
Definition: hid.h:235
HidNpadJoyAssignmentMode
HidNpadJoyAssignmentMode
NpadJoyAssignmentMode.
Definition: hid.h:390
HidNpadLarkState::analog_stick_r
HidAnalogStickState analog_stick_r
This is always zero.
Definition: hid.h:815
HidNpadLarkState::buttons
u64 buttons
Bitfield of HidNpadButton.
Definition: hid.h:813
HidPowerInfo
HidPowerInfo (system)
Definition: hid.h:928
HidNpadSystemProperties::bit6
u64 bit6
Unused.
Definition: hid.h:907
HidTouchState::y
u32 y
Y.
Definition: hid.h:653
HidNpadHandheldLarkState
State for HidNpadStyleTag_NpadHandheldLark. The base state is loaded from the same lifo as HidNpadHan...
Definition: hid.h:821
HidNpadStyleTag_NpadLark
@ HidNpadStyleTag_NpadLark
NES/Famicom controller.
Definition: hid.h:236
HidDebugPadButton_ZL
@ HidDebugPadButton_ZL
ZL button.
Definition: hid.h:24
HidAppletFooterUiType_JoyLeftVertical
@ HidAppletFooterUiType_JoyLeftVertical
JoyLeftVertical.
Definition: hid.h:461
HidTouchState::rotation_angle
u32 rotation_angle
RotationAngle.
Definition: hid.h:656
hidSetNpadJoyAssignmentModeSingleByDefault
Result hidSetNpadJoyAssignmentModeSingleByDefault(HidNpadIdType id)
This is the same as hidSetNpadJoyAssignmentModeSingle, except HidNpadJoyDeviceType_Left is used for t...
HidAppletFooterUiType_CompatibleProController
@ HidAppletFooterUiType_CompatibleProController
CompatibleProController.
Definition: hid.h:465
hidGetMouseStates
size_t hidGetMouseStates(HidMouseState *states, size_t count)
Gets HidMouseState.
hidGetPlayerLedPattern
Result hidGetPlayerLedPattern(HidNpadIdType id, u8 *out)
GetPlayerLedPattern.
HidNpadSystemProperties::is_plus_available
u64 is_plus_available
[4.0.0+] IsPlusAvailable
Definition: hid.h:915
HidNpadButton_AnyRight
@ HidNpadButton_AnyRight
Bitmask containing all buttons that are considered Right (D-Pad, Sticks)
Definition: hid.h:295
HidTouchState::diameter_y
u32 diameter_y
DiameterY.
Definition: hid.h:655
hidCancelWritePalmaWaveEntry
Result hidCancelWritePalmaWaveEntry(HidPalmaConnectionHandle handle)
CancelWritePalmaWaveEntry.
HidSixAxisSensorHandle::device_idx
u32 device_idx
DeviceIdx.
Definition: hid.h:1123
HidNpadGcState::attributes
u32 attributes
Bitfield of HidNpadAttribute.
Definition: hid.h:802
HidKeyboardStateAtomicStorage
HidKeyboardStateAtomicStorage.
Definition: hid.h:739
hidDisconnectNpad
Result hidDisconnectNpad(HidNpadIdType id)
DisconnectNpad.
hidInitializePalma
Result hidInitializePalma(HidPalmaConnectionHandle handle)
InitializePalma.
HidNpadButton_StickRUp
@ HidNpadButton_StickRUp
Right Stick pseudo-button when moved Up.
Definition: hid.h:278
HidNfcXcdDeviceHandleStateImpl::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:946
HidCommonLifoHeader::count
u64 count
Count.
Definition: hid.h:611
HidGyroscopeZeroDriftMode_Standard
@ HidGyroscopeZeroDriftMode_Standard
Standard.
Definition: hid.h:366
HidVibrationGcErmCommand_Start
@ HidVibrationGcErmCommand_Start
Starts the vibration.
Definition: hid.h:534
hidSuspendPalmaFeature
Result hidSuspendPalmaFeature(HidPalmaConnectionHandle handle, u32 features)
SuspendPalmaFeature.
HidGestureAttribute_IsNewTouch
@ HidGestureAttribute_IsNewTouch
IsNewTouch.
Definition: hid.h:336
HidPalmaConnectionHandle
PalmaConnectionHandle.
Definition: hid.h:1154
hidEnablePalmaStep
Result hidEnablePalmaStep(HidPalmaConnectionHandle handle, bool flag)
EnablePalmaStep.
XcdInterfaceType
XcdInterfaceType
XcdInterfaceType.
Definition: hid.h:485
HidNpadInternalState::system_ext_lifo
HidNpadCommonLifo system_ext_lifo
SystemExtLifo.
Definition: hid.h:974
HidNpadButton_LagonCLeft
@ HidNpadButton_LagonCLeft
Left C button in N64 controller.
Definition: hid.h:288
HidTouchState::delta_time
u64 delta_time
DeltaTime.
Definition: hid.h:649
HidNpadCommonState
HidNpadCommonState.
Definition: hid.h:781
HidNpadInternalState::reserved_x4208
u8 reserved_x4208[0x20]
Mutex on pre-10.0.0.
Definition: hid.h:999
HidTouchScreenModeForNx_Finger
@ HidTouchScreenModeForNx_Finger
Finger.
Definition: hid.h:37
HidAppletFooterUiType_LarkNesLeft
@ HidAppletFooterUiType_LarkNesLeft
LarkNesLeft.
Definition: hid.h:469
HidAppletFooterUiType_JoyRightVertical
@ HidAppletFooterUiType_JoyRightVertical
JoyRightVertical.
Definition: hid.h:463
HidNpadButton_StickR
@ HidNpadButton_StickR
Right Stick button.
Definition: hid.h:262
hidGetSixAxisSensorHandles
Result hidGetSixAxisSensorHandles(HidSixAxisSensorHandle *handles, s32 total_handles, HidNpadIdType id, HidNpadStyleTag style)
Gets SixAxisSensorHandles.
HidPalmaOperationType_SetFrModeType
@ HidPalmaOperationType_SetFrModeType
SetFrModeType.
Definition: hid.h:541
HidMouseState::buttons
u32 buttons
Bitfield of HidMouseButton.
Definition: hid.h:705
HidGestureDirection_Right
@ HidGestureDirection_Right
Right.
Definition: hid.h:345
hidGetNpadPowerInfoSplit
void hidGetNpadPowerInfoSplit(HidNpadIdType id, HidPowerInfo *info_left, HidPowerInfo *info_right)
Gets the left/right HidPowerInfo for the specified Npad (Joy-Con pair in dual mode).
HidAppletFooterUiType_JoyDualLeftOnly
@ HidAppletFooterUiType_JoyDualLeftOnly
JoyDualLeftOnly.
Definition: hid.h:458
HidNpadLagerType_Invalid
@ HidNpadLagerType_Invalid
Invalid.
Definition: hid.h:511
HidGestureState::rotation_angle
float rotation_angle
RotationAngle.
Definition: hid.h:1042
UtilFloat3
Definition: types.h:50
HidVibrationDeviceHandle::type_value
u32 type_value
TypeValue.
Definition: hid.h:1130
HidGestureType_Rotate
@ HidGestureType_Rotate
Rotate.
Definition: hid.h:360
HidVibrationDeviceHandle::device_idx
u32 device_idx
DeviceIdx.
Definition: hid.h:1134
hidInitializeGesture
void hidInitializeGesture(void)
Initialize Gesture. Must be called when Gesture is being used.
HidKeyboardState
HidKeyboardState.
Definition: hid.h:732
HidConsoleSixAxisSensor::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:1069
hidAcquireNpadStyleSetUpdateEventHandle
Result hidAcquireNpadStyleSetUpdateEventHandle(HidNpadIdType id, Event *out_event, bool autoclear)
Gets an Event which is signaled when the hidGetNpadStyleSet output is updated for the specified contr...
HidDeviceTypeBits_Lager
@ HidDeviceTypeBits_Lager
Sega Genesis controller.
Definition: hid.h:422
HidDeviceTypeBits_HandheldRight
@ HidDeviceTypeBits_HandheldRight
Joy-Con/Famicom/NES right controller in handheld mode.
Definition: hid.h:408
HidSixAxisSensorState::acceleration
HidVector acceleration
Acceleration.
Definition: hid.h:882
hidSetNpadAnalogStickUseCenterClamp
Result hidSetNpadAnalogStickUseCenterClamp(bool flag)
SetNpadAnalogStickUseCenterClamp.
HidPalmaFrModeType_Downloaded
@ HidPalmaFrModeType_Downloaded
Downloaded.
Definition: hid.h:565
HidPalmaOperationInfo::data
u8 data[0x140]
Data.
Definition: hid.h:1162
HidPalmaOperationType
HidPalmaOperationType
PalmaOperationType.
Definition: hid.h:539
HidDeviceTypeBits_JoyLeft
@ HidDeviceTypeBits_JoyLeft
Joy-Con left controller.
Definition: hid.h:409
HidMouseStateAtomicStorage
HidMouseStateAtomicStorage.
Definition: hid.h:710
HidDebugPadButton_Right
@ HidDebugPadButton_Right
D-Pad Right button.
Definition: hid.h:30
HidPalmaActivityEntry
PalmaActivityEntry.
Definition: hid.h:1171
hidIsFirmwareUpdateAvailableForSixAxisSensor
Result hidIsFirmwareUpdateAvailableForSixAxisSensor(HidSixAxisSensorHandle handle, bool *out)
IsFirmwareUpdateAvailableForSixAxisSensor.
HidNpadButton_A
@ HidNpadButton_A
A button / Right face button.
Definition: hid.h:257
HidNpadSharedMemoryEntry
HidNpadSharedMemoryEntry.
Definition: hid.h:1008
hidSendVibrationValues
Result hidSendVibrationValues(const HidVibrationDeviceHandle *handles, const HidVibrationValue *values, s32 count)
Send vibration values[index] to handles[index].
HidDirectionState
HidDirectionState.
Definition: hid.h:597
HidNpadInternalState::handheld_lifo
HidNpadCommonLifo handheld_lifo
HandheldLifo.
Definition: hid.h:969
HidDeviceTypeBits
HidDeviceTypeBits
DeviceType (system)
Definition: hid.h:404
u8
uint8_t u8
8-bit unsigned integer.
Definition: types.h:19
NX_CONSTEXPR
#define NX_CONSTEXPR
Flags a function as constexpr in C++14 and above; or as (always) inline otherwise.
Definition: types.h:92
HidNpadInternalState::full_key_six_axis_sensor_lifo
HidNpadSixAxisSensorLifo full_key_six_axis_sensor_lifo
FullKeySixAxisSensorLifo.
Definition: hid.h:976
HidNpadButton_StickRLeft
@ HidNpadButton_StickRLeft
Right Stick pseudo-button when moved Left.
Definition: hid.h:277
HidNpadSystemExtState
HidNpadCommonState HidNpadSystemExtState
State for HidNpadStyleTag_NpadSystemExt.
Definition: hid.h:844
HidVibrationDeviceType_LinearResonantActuator
@ HidVibrationDeviceType_LinearResonantActuator
LinearResonantActuator.
Definition: hid.h:520
HidNpadLarkType
HidNpadLarkType
NpadLarkType.
Definition: hid.h:493
HidPalmaOperationType_PlayActivity
@ HidPalmaOperationType_PlayActivity
PlayActivity.
Definition: hid.h:540
HidGestureState::points
HidGesturePoint points[4]
Array of HidGesturePoint with the above count.
Definition: hid.h:1044
hidWritePalmaWaveEntry
Result hidWritePalmaWaveEntry(HidPalmaConnectionHandle handle, HidPalmaWaveSet wave_set, u16 unk, const void *buffer, size_t tmem_size, size_t size)
WritePalmaWaveEntry.
HidNpadLarkType_Invalid
@ HidNpadLarkType_Invalid
Invalid.
Definition: hid.h:494
HidDebugPadLifo::header
HidCommonLifoHeader header
HidCommonLifoHeader
Definition: hid.h:633
HidDeviceType_FullKey3
@ HidDeviceType_FullKey3
HidDeviceTypeBits_FullKey
Definition: hid.h:430
HidDeviceTypeBits_LarkHvcRight
@ HidDeviceTypeBits_LarkHvcRight
Famicom right controller (with microphone).
Definition: hid.h:413
HidNpadInternalState::joy_right_lifo
HidNpadCommonLifo joy_right_lifo
JoyRightLifo.
Definition: hid.h:972
HidNpadAttribute_IsWired
@ HidNpadAttribute_IsWired
IsWired.
Definition: hid.h:321
hidSetNpadJoyAssignmentModeSingle
Result hidSetNpadJoyAssignmentModeSingle(HidNpadIdType id, HidNpadJoyDeviceType type)
This is the same as hidSetNpadJoyAssignmentModeSingleWithDestination, except without the output param...
HidNpadCommonState::analog_stick_l
HidAnalogStickState analog_stick_l
AnalogStickL.
Definition: hid.h:784
HidGestureType_Pan
@ HidGestureType_Pan
Pan.
Definition: hid.h:357
Event
Kernel-mode event structure.
Definition: event.h:13
hidStopSevenSixAxisSensor
Result hidStopSevenSixAxisSensor(void)
Stops the SevenSixAxisSensor.
HidDeviceType_System19
@ HidDeviceType_System19
HidDeviceTypeBits_System with HidNpadStyleTag |= HidNpadStyleTag_NpadFullKey.
Definition: hid.h:443
HidGyroscopeZeroDriftMode_Tight
@ HidGyroscopeZeroDriftMode_Tight
Tight.
Definition: hid.h:367
hidStopSixAxisSensor
Result hidStopSixAxisSensor(HidSixAxisSensorHandle handle)
Stops the SixAxisSensor for the specified handle.
HidNpadLuciaState::attributes
u32 attributes
Bitfield of HidNpadAttribute.
Definition: hid.h:838
HidNpadButton_LagonCUp
@ HidNpadButton_LagonCUp
Up C button in N64 controller.
Definition: hid.h:289
HidDebugPadLifo
HidDebugPadLifo.
Definition: hid.h:632
HidTouchScreenModeForNx
HidTouchScreenModeForNx
HidTouchScreenModeForNx.
Definition: hid.h:35
HidGestureSharedMemoryFormat
HidGestureSharedMemoryFormat.
Definition: hid.h:1060
hidSetPalmaUniqueCodeInvalid
Result hidSetPalmaUniqueCodeInvalid(HidPalmaConnectionHandle handle)
SetPalmaUniqueCodeInvalid.
HidDebugPadButton_A
@ HidDebugPadButton_A
A button.
Definition: hid.h:18
HidVibrationValue::freq_high
float freq_high
High Band frequency in Hz.
Definition: hid.h:1150
hidEnablePalmaBoostMode
Result hidEnablePalmaBoostMode(bool flag)
EnablePalmaBoostMode.
HidNpadIdType_Other
@ HidNpadIdType_Other
Other controller.
Definition: hid.h:223
hidSetNpadJoyAssignmentModeSingleWithDestination
Result hidSetNpadJoyAssignmentModeSingleWithDestination(HidNpadIdType id, HidNpadJoyDeviceType type, bool *flag, HidNpadIdType *dest)
Use this if you want to use a single joy-con as a dedicated HidNpadIdType_No*.
HidPalmaOperationType_ResetPlayLog
@ HidPalmaOperationType_ResetPlayLog
[5.1.0+] ResetPlayLog
Definition: hid.h:556
HidColorAttribute_Ok
@ HidColorAttribute_Ok
Ok.
Definition: hid.h:250
hidIsUsbFullKeyControllerEnabled
Result hidIsUsbFullKeyControllerEnabled(bool *out)
IsUsbFullKeyControllerEnabled.
HidNpadInternalState::lucia_type
u32 lucia_type
HidNpadLuciaType
Definition: hid.h:1003
HidKeyboardLockKeyEvent_NumLockOn
@ HidKeyboardLockKeyEvent_NumLockOn
NumLockOn.
Definition: hid.h:202
HidAppletFooterUiType_JoyLeftHorizontal
@ HidAppletFooterUiType_JoyLeftHorizontal
JoyLeftHorizontal.
Definition: hid.h:460
hidSwapNpadAssignment
Result hidSwapNpadAssignment(HidNpadIdType id0, HidNpadIdType id1)
SwapNpadAssignment.
hidReadPalmaPlayLog
Result hidReadPalmaPlayLog(HidPalmaConnectionHandle handle, u16 unk)
ReadPalmaPlayLog.
HidNpadSystemButtonProperties::is_unintended_home_button_input_protection_enabled
u32 is_unintended_home_button_input_protection_enabled
IsUnintendedHomeButtonInputProtectionEnabled.
Definition: hid.h:924
HidNpadJoyLeftState
HidNpadCommonState HidNpadJoyLeftState
State for HidNpadStyleTag_NpadJoyLeft.
Definition: hid.h:793
HidDebugPadButton_Down
@ HidDebugPadButton_Down
D-Pad Down button.
Definition: hid.h:31
HidNpadJoyDeviceType
HidNpadJoyDeviceType
NpadJoyDeviceType.
Definition: hid.h:377
HidAppletFooterUiType_Lucia
@ HidAppletFooterUiType_Lucia
Lucia.
Definition: hid.h:471
HidNpadInternalState::joy_left_six_axis_sensor_lifo
HidNpadSixAxisSensorLifo joy_left_six_axis_sensor_lifo
JoyLeftSixAxisSensorLifo.
Definition: hid.h:980
HidNpadIdType_Handheld
@ HidNpadIdType_Handheld
Handheld mode controls.
Definition: hid.h:224
HidNpadAttribute_IsRightWired
@ HidNpadAttribute_IsRightWired
IsRightWired.
Definition: hid.h:325
HidNpadSystemButtonProperties
NpadSystemButtonProperties.
Definition: hid.h:923
HidNpadInternalState::applet_footer_ui_attribute
u32 applet_footer_ui_attribute
Bitfield of AppletFooterUiAttribute.
Definition: hid.h:994
hidGetActualVibrationGcErmCommand
Result hidGetActualVibrationGcErmCommand(HidVibrationDeviceHandle handle, HidVibrationGcErmCommand *out)
Get HidVibrationGcErmCommand for the specified device, for HidVibrationDeviceType_GcErm.
HidDeviceTypeBits_LarkNesRight
@ HidDeviceTypeBits_LarkNesRight
NES right controller.
Definition: hid.h:415
HidPalmaFrModeType_B03
@ HidPalmaFrModeType_B03
B03.
Definition: hid.h:564
HidKeyboardLockKeyEvent_CapsLockOn
@ HidKeyboardLockKeyEvent_CapsLockOn
CapsLockOn.
Definition: hid.h:205
HidKeyboardLockKeyEvent_NumLockToggle
@ HidKeyboardLockKeyEvent_NumLockToggle
NumLockToggle.
Definition: hid.h:204
HidNpadButton_RightSL
@ HidNpadButton_RightSL
SL button on Right Joy-Con.
Definition: hid.h:283
HidVibrationGcErmCommand_Stop
@ HidVibrationGcErmCommand_Stop
Stops the vibration with a decay phase.
Definition: hid.h:533
HidNfcXcdDeviceHandleStateImpl
HidNfcXcdDeviceHandleStateImpl.
Definition: hid.h:941
HidNpadAttribute_IsRightConnected
@ HidNpadAttribute_IsRightConnected
IsRightConnected.
Definition: hid.h:324
hidResetSixAxisSensorFusionParameters
Result hidResetSixAxisSensorFusionParameters(HidSixAxisSensorHandle handle)
ResetSixAxisSensorFusionParameters.
HidNpadGcTriggerStateAtomicStorage::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:868
HidAppletFooterUiType_HandheldJoyConLeftOnly
@ HidAppletFooterUiType_HandheldJoyConLeftOnly
HandheldJoyConLeftOnly.
Definition: hid.h:454
HidDeviceTypeBits_LarkHvcLeft
@ HidDeviceTypeBits_LarkHvcLeft
Famicom left controller.
Definition: hid.h:412
HidPowerInfo::is_charging
bool is_charging
IsCharging.
Definition: hid.h:930
HidDebugPadButton_Left
@ HidDebugPadButton_Left
D-Pad Left button.
Definition: hid.h:28
HidNpadButton_LagonCDown
@ HidNpadButton_LagonCDown
Down C button in N64 controller.
Definition: hid.h:291
HidSevenSixAxisSensorStateEntry
HidSevenSixAxisSensorStateEntry.
Definition: hid.h:1105
HidPalmaOperationType_ReadPlayLog
@ HidPalmaOperationType_ReadPlayLog
[5.1.0+] ReadPlayLog
Definition: hid.h:555
HidNpadJoyColorState
HidNpadJoyColorState.
Definition: hid.h:774
HidKeyboardStateAtomicStorage::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:740
HidGestureType_Complete
@ HidGestureType_Complete
Complete.
Definition: hid.h:352
hidGetNpadCommunicationMode
Result hidGetNpadCommunicationMode(HidNpadCommunicationMode *out)
GetNpadCommunicationMode.
HidCommonLifoHeader
HidCommonLifoHeader.
Definition: hid.h:607
HidTouchScreenModeForNx_Heat2
@ HidTouchScreenModeForNx_Heat2
Heat2.
Definition: hid.h:38
HidNpadButton_StickRDown
@ HidNpadButton_StickRDown
Right Stick pseudo-button when moved Left.
Definition: hid.h:280
HidSixAxisSensorStateAtomicStorage
HidSixAxisSensorStateAtomicStorage.
Definition: hid.h:891
HidNpadSystemProperties::is_charging
u64 is_charging
Use hidGetNpadPowerInfoSingle / hidGetNpadPowerInfoSplit instead of accessing this directly.
Definition: hid.h:904
HidConsoleSixAxisSensor::gyro_bias
UtilFloat3 gyro_bias
GyroBias.
Definition: hid.h:1073
HidMouseButton
HidMouseButton
HidMouseButton.
Definition: hid.h:42
HidNpadCommunicationMode_Default
@ HidNpadCommunicationMode_Default
Default.
Definition: hid.h:400
HidNpadInternalState::joy_color
HidNpadJoyColorState joy_color
HidNpadJoyColorState
Definition: hid.h:966
HidNpadControllerColor::sub
u32 sub
RGBA Buttons Color.
Definition: hid.h:764
HidDebugPadAttribute_IsConnected
@ HidDebugPadAttribute_IsConnected
IsConnected.
Definition: hid.h:303
HidGestureState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:1030
HidDebugPadButton_Up
@ HidDebugPadButton_Up
D-Pad Up button.
Definition: hid.h:29
HidNpadInternalState::lark_type_r
u32 lark_type_r
HidNpadLarkType
Definition: hid.h:1002
HidGestureState::attributes
u32 attributes
Bitfield of HidGestureAttribute.
Definition: hid.h:1040
hidWritePalmaRgbLedPatternEntry
Result hidWritePalmaRgbLedPatternEntry(HidPalmaConnectionHandle handle, u16 unk, const void *buffer, size_t size)
WritePalmaRgbLedPatternEntry.
HidTouchAttribute
HidTouchAttribute
HidTouchAttribute.
Definition: hid.h:307
HidNpadPalmaState
HidNpadCommonState HidNpadPalmaState
State for HidNpadStyleTag_NpadPalma.
Definition: hid.h:808
HidGestureState::y
u32 y
Y.
Definition: hid.h:1035
HidNpadLuciaType_Invalid
@ HidNpadLuciaType_Invalid
Invalid.
Definition: hid.h:503
HidNpadGcState::analog_stick_r
HidAnalogStickState analog_stick_r
AnalogStickR.
Definition: hid.h:801
HidDebugPadButton_R
@ HidDebugPadButton_R
R button.
Definition: hid.h:23
hidGetNpadControllerColorSingle
Result hidGetNpadControllerColorSingle(HidNpadIdType id, HidNpadControllerColor *color)
Gets the main HidNpadControllerColor for the specified Npad.
hidInitializeTouchScreen
void hidInitializeTouchScreen(void)
Initialize TouchScreen. Must be called when TouchScreen is being used. Used automatically by hidScanI...
hidResetGyroscopeZeroDriftMode
Result hidResetGyroscopeZeroDriftMode(HidSixAxisSensorHandle handle)
Resets the HidGyroscopeZeroDriftMode for the specified SixAxisSensorHandle to HidGyroscopeZeroDriftMo...
HidTouchScreenStateAtomicStorage::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:670
HidDeviceTypeBits_LarkNesLeft
@ HidDeviceTypeBits_LarkNesLeft
NES left controller.
Definition: hid.h:414
HidNpadButton_StickL
@ HidNpadButton_StickL
Left Stick button.
Definition: hid.h:261
HidNpadButton_Y
@ HidNpadButton_Y
Y button / Left face button.
Definition: hid.h:260
HidNpadFullKeyColorState::attribute
u32 attribute
HidColorAttribute
Definition: hid.h:769
HidNpadSystemProperties::is_unsupported_button_pressed_on_npad_system
u64 is_unsupported_button_pressed_on_npad_system
IsUnsupportedButtonPressedOnNpadSystem.
Definition: hid.h:910
s32
int32_t s32
32-bit signed integer.
Definition: types.h:27
HidGestureDirection
HidGestureDirection
HidGestureDirection.
Definition: hid.h:341
hidFinalizeSevenSixAxisSensor
Result hidFinalizeSevenSixAxisSensor(void)
Finalizes the SevenSixAxisSensor.
hidExit
void hidExit(void)
Exit hid. Called automatically during app exit.
HidNpadFullKeyColorState
HidNpadFullKeyColorState.
Definition: hid.h:768
HidGyroscopeZeroDriftMode_Loose
@ HidGyroscopeZeroDriftMode_Loose
Loose.
Definition: hid.h:365
HidNpadLuciaType_E
@ HidNpadLuciaType_E
E.
Definition: hid.h:505
hidGetPalmaConnectionHandle
Result hidGetPalmaConnectionHandle(HidNpadIdType id, HidPalmaConnectionHandle *out)
GetPalmaConnectionHandle.
HidNpadIdType_No6
@ HidNpadIdType_No6
Player 6 controller.
Definition: hid.h:220
hidResetSevenSixAxisSensorTimestamp
Result hidResetSevenSixAxisSensorTimestamp(void)
Resets the timestamp for the SevenSixAxisSensor.
HidNpadLarkType_NR
@ HidNpadLarkType_NR
NR.
Definition: hid.h:498
HidMouseState::delta_x
s32 delta_x
DeltaX.
Definition: hid.h:701
HidDeviceTypeBits_HandheldLarkHvcLeft
@ HidDeviceTypeBits_HandheldLarkHvcLeft
Famicom left controller in handheld mode.
Definition: hid.h:416
HidNpadGcState::trigger_l
u32 trigger_l
L analog trigger. Valid range: 0x0-0x7FFF.
Definition: hid.h:803
HidGesturePoint
HidGesturePoint.
Definition: hid.h:1023
HidNpadSystemProperties::unused
u64 unused
Unused.
Definition: hid.h:919
HidNpadLagerType_U
@ HidNpadLagerType_U
U.
Definition: hid.h:514
HidNpadSystemProperties::bit8
u64 bit8
Unused.
Definition: hid.h:909
hidEnableSixAxisSensorFusion
Result hidEnableSixAxisSensorFusion(HidSixAxisSensorHandle handle, bool flag)
EnableSixAxisSensorFusion.
HidPalmaFrModeType_B02
@ HidPalmaFrModeType_B02
B02.
Definition: hid.h:563
hidSetNpadCaptureButtonAssignment
Result hidSetNpadCaptureButtonAssignment(HidNpadStyleTag style, u64 buttons)
Assigns the button(s) which trigger the CaptureButton.
HidPalmaOperationType_WriteApplicationSection
@ HidPalmaOperationType_WriteApplicationSection
WriteApplicationSection.
Definition: hid.h:546
hidKeyboardStateGetKey
static bool hidKeyboardStateGetKey(const HidKeyboardState *state, HidKeyboardKey key)
Gets the state of a key in a HidKeyboardState.
Definition: hid.h:1242
HidDeviceType_DebugPad
@ HidDeviceType_DebugPad
HidDeviceTypeBits_DebugPad
Definition: hid.h:442
HidNpadAttribute
HidNpadAttribute
HidNpadAttribute.
Definition: hid.h:319
HidTouchScreenStateAtomicStorage
HidTouchScreenStateAtomicStorage.
Definition: hid.h:669
HidNpadSystemProperties::is_directional_buttons_available
u64 is_directional_buttons_available
[8.0.0+] IsDirectionalButtonsAvailable
Definition: hid.h:917
hidIsSixAxisSensorFusionEnabled
Result hidIsSixAxisSensorFusionEnabled(HidSixAxisSensorHandle handle, bool *out)
IsSixAxisSensorFusionEnabled.
HidDebugPadButton
HidDebugPadButton
HidDebugPadButton.
Definition: hid.h:17
HidPalmaOperationType_EnableStep
@ HidPalmaOperationType_EnableStep
EnableStep.
Definition: hid.h:543
HidSixAxisSensorState
HidSixAxisSensorState.
Definition: hid.h:879
HidNpadButton_Plus
@ HidNpadButton_Plus
Plus button.
Definition: hid.h:267
HidNpadLarkType_NL
@ HidNpadLarkType_NL
NL.
Definition: hid.h:497
HidDeviceTypeBits_DebugPad
@ HidDeviceTypeBits_DebugPad
DebugPad.
Definition: hid.h:406
HidColorAttribute
HidColorAttribute
HidColorAttribute.
Definition: hid.h:249
hidSetNpadCommunicationMode
Result hidSetNpadCommunicationMode(HidNpadCommunicationMode mode)
SetNpadCommunicationMode.
HidNpadLuciaState::analog_stick_r
HidAnalogStickState analog_stick_r
This is always zero.
Definition: hid.h:837
HidVibrationDevicePosition
HidVibrationDevicePosition
VibrationDevicePosition.
Definition: hid.h:525
HidNpadButton_StickRRight
@ HidNpadButton_StickRRight
Right Stick pseudo-button when moved Right.
Definition: hid.h:279
hidIsSevenSixAxisSensorAtRest
Result hidIsSevenSixAxisSensorAtRest(bool *out)
IsSevenSixAxisSensorAtRest.
HidNpadJoyHoldType_Vertical
@ HidNpadJoyHoldType_Vertical
Default / Joy-Con held vertically.
Definition: hid.h:372
HidVibrationDevicePosition_None
@ HidVibrationDevicePosition_None
None.
Definition: hid.h:526
HidGestureState::delta_x
s32 delta_x
DeltaX.
Definition: hid.h:1036
HidDebugPadButton_X
@ HidDebugPadButton_X
X button.
Definition: hid.h:20
HidNpadFullKeyState
HidNpadCommonState HidNpadFullKeyState
State for HidNpadStyleTag_NpadFullKey.
Definition: hid.h:790
HidMouseState::delta_y
s32 delta_y
DeltaY.
Definition: hid.h:702
HidNpadButton_StickLLeft
@ HidNpadButton_StickLLeft
Left Stick pseudo-button when moved Left.
Definition: hid.h:273
HidPalmaOperationType_WriteRgbLedPatternEntry
@ HidPalmaOperationType_WriteRgbLedPatternEntry
WriteRgbLedPatternEntry.
Definition: hid.h:550
HidDeviceType_JoyLeft4
@ HidDeviceType_JoyLeft4
HidDeviceTypeBits_JoyLeft
Definition: hid.h:431
HidDeviceType_System20
@ HidDeviceType_System20
HidDeviceTypeBits_System with HidNpadStyleTag |= HidNpadStyleTag_NpadJoyDual.
Definition: hid.h:444
HidAppletFooterUiType_LarkHvc2
@ HidAppletFooterUiType_LarkHvc2
LarkHvc2.
Definition: hid.h:468
HidSixAxisSensorState::angle
HidVector angle
Angle.
Definition: hid.h:884
hidSetNpadJoyHoldType
Result hidSetNpadJoyHoldType(HidNpadJoyHoldType type)
Sets the HidNpadJoyHoldType.
hidStartSixAxisSensor
Result hidStartSixAxisSensor(HidSixAxisSensorHandle handle)
Starts the SixAxisSensor for the specified handle.
hidEndPermitVibrationSession
Result hidEndPermitVibrationSession(void)
Ends the session started by hidBeginPermitVibrationSession.
HidNpadSharedMemoryFormat
HidNpadSharedMemoryFormat.
Definition: hid.h:1014
hidGetNpadControllerColorSplit
Result hidGetNpadControllerColorSplit(HidNpadIdType id, HidNpadControllerColor *color_left, HidNpadControllerColor *color_right)
Gets the left/right HidNpadControllerColor for the specified Npad (Joy-Con pair in dual mode).
HidNpadButton_StickLUp
@ HidNpadButton_StickLUp
Left Stick pseudo-button when moved Up.
Definition: hid.h:274
HidNfcXcdDeviceHandleState
HidNfcXcdDeviceHandleState.
Definition: hid.h:956
HidNpadHandheldLarkState::analog_stick_l
HidAnalogStickState analog_stick_l
AnalogStickL.
Definition: hid.h:824
HidNpadJoyColorState::attribute
u32 attribute
HidColorAttribute
Definition: hid.h:775
HidNpadInternalState::lager_type
u32 lager_type
HidNpadLagerType
Definition: hid.h:1004
hidGetNpadStyleSet
u32 hidGetNpadStyleSet(HidNpadIdType id)
Gets the StyleSet for the specified Npad.
HidNpadIdType
HidNpadIdType
HID controller IDs.
Definition: hid.h:214
HidNpadJoyRightState
HidNpadCommonState HidNpadJoyRightState
State for HidNpadStyleTag_NpadJoyRight.
Definition: hid.h:794
HidNpadButton_LeftSL
@ HidNpadButton_LeftSL
SL button on Left Joy-Con.
Definition: hid.h:281
HidNpadLuciaState
State for HidNpadStyleTag_NpadLucia. The base state is loaded from the same lifo as HidNpadFullKeySta...
Definition: hid.h:833
HidGestureDummyStateAtomicStorage
HidGestureDummyStateAtomicStorage.
Definition: hid.h:1048
HidAppletFooterUiType_Verification
@ HidAppletFooterUiType_Verification
Verification.
Definition: hid.h:472
HidColorAttribute_NoController
@ HidColorAttribute_NoController
NoController.
Definition: hid.h:252
hidClearNpadCaptureButtonAssignment
Result hidClearNpadCaptureButtonAssignment(void)
ClearNpadCaptureButtonAssignment.
HidNpadCommonStateAtomicStorage::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:849
HidGestureDirection_Up
@ HidGestureDirection_Up
Up.
Definition: hid.h:344
hidPermitVibration
Result hidPermitVibration(bool flag)
Sets whether vibration is allowed, this also affects the config displayed by System Settings.
HidGestureDirection_Left
@ HidGestureDirection_Left
Left.
Definition: hid.h:343
hidPlayPalmaActivity
Result hidPlayPalmaActivity(HidPalmaConnectionHandle handle, u16 val)
PlayPalmaActivity.
HidKeyboardLockKeyEvent_ScrollLockOff
@ HidKeyboardLockKeyEvent_ScrollLockOff
ScrollLockOff.
Definition: hid.h:209
HidPalmaActivityEntry::rgb_led_pattern_index
u16 rgb_led_pattern_index
RgbLedPatternIndex.
Definition: hid.h:1172
HidTouchAttribute_End
@ HidTouchAttribute_End
End.
Definition: hid.h:309
HidMouseAttribute
HidMouseAttribute
HidMouseAttribute.
Definition: hid.h:313
HidTouchAttribute_Start
@ HidTouchAttribute_Start
Start.
Definition: hid.h:308
HidDeviceTypeBits_HandheldLarkHvcRight
@ HidDeviceTypeBits_HandheldLarkHvcRight
Famicom right controller (with microphone) in handheld mode.
Definition: hid.h:417
HidNpadJoyColorState::left
HidNpadControllerColor left
HidNpadControllerColor Left
Definition: hid.h:776
HidVibrationDevicePosition_Right
@ HidVibrationDevicePosition_Right
Right.
Definition: hid.h:528
HidNpadLuciaState::lucia_type
HidNpadLuciaType lucia_type
HidNpadLuciaType
Definition: hid.h:839
HidDeviceType_LarkNesLeft
@ HidDeviceType_LarkNesLeft
HidDeviceTypeBits_LarkNesLeft, HidDeviceTypeBits_HandheldLarkNesLeft
Definition: hid.h:436
HidNpadCommonState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:782
HidPalmaWaveSet
HidPalmaWaveSet
PalmaWaveSet.
Definition: hid.h:569
HidNpadButton_Minus
@ HidNpadButton_Minus
Minus button.
Definition: hid.h:268
HidGestureState::delta_y
s32 delta_y
DeltaY.
Definition: hid.h:1037
HidNpadSystemProperties::is_sl_sr_button_oriented
u64 is_sl_sr_button_oriented
IsSlSrButtonOriented.
Definition: hid.h:914
HidTouchScreenState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:662
HidAppletFooterUiType_Lagon
@ HidAppletFooterUiType_Lagon
[13.0.0+] Lagon
Definition: hid.h:473
HidKeyboardState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:733
hidIsVibrationPermitted
Result hidIsVibrationPermitted(bool *flag)
Gets whether vibration is allowed.
HidCommonLifoHeader::unused
u64 unused
Unused.
Definition: hid.h:608
hidGetNpadStatesSystemExt
size_t hidGetNpadStatesSystemExt(HidNpadIdType id, HidNpadSystemExtState *states, size_t count)
Gets HidNpadSystemExtState.
HidNpadButton_HandheldLeftB
@ HidNpadButton_HandheldLeftB
B button on Left NES/HVC controller in Handheld mode.
Definition: hid.h:287
HidVibrationGcErmCommand
HidVibrationGcErmCommand
VibrationGcErmCommand.
Definition: hid.h:532
HidDeviceTypeBits_System
@ HidDeviceTypeBits_System
Generic controller.
Definition: hid.h:423
HidNpadButton
HidNpadButton
HidNpadButton.
Definition: hid.h:256
HidVibrationDeviceType_GcErm
@ HidVibrationDeviceType_GcErm
GcErm (HidNpadStyleTag_NpadGc)
Definition: hid.h:521
HidNfcXcdDeviceHandleStateImplAtomicStorage::state
HidNfcXcdDeviceHandleStateImpl state
HidNfcXcdDeviceHandleStateImpl
Definition: hid.h:952
HidNpadStyleTag_NpadFullKey
@ HidNpadStyleTag_NpadFullKey
Pro Controller.
Definition: hid.h:229
HidNpadLuciaState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:834
hidIsVibrationDeviceMounted
Result hidIsVibrationDeviceMounted(HidVibrationDeviceHandle handle, bool *flag)
Gets whether vibration is available with the specified device.
HidNpadHandheldLarkState::analog_stick_r
HidAnalogStickState analog_stick_r
AnalogStickR.
Definition: hid.h:825
HidNpadJoyColorState::right
HidNpadControllerColor right
HidNpadControllerColor Right
Definition: hid.h:777
HidNpadLarkState
State for HidNpadStyleTag_NpadLark. The base state is loaded from the same lifo as HidNpadFullKeyStat...
Definition: hid.h:811
HidNpadAttribute_IsLeftConnected
@ HidNpadAttribute_IsLeftConnected
IsLeftConnected.
Definition: hid.h:322
HidNpadGcState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:798
hidSetSixAxisSensorFusionParameters
Result hidSetSixAxisSensorFusionParameters(HidSixAxisSensorHandle handle, float unk0, float unk1)
SetSixAxisSensorFusionParameters.
hidInitializeMouse
void hidInitializeMouse(void)
Initialize Mouse. Must be called when Mouse is being used. Used automatically by hidScanInput when re...
HidGestureState::point_count
s32 point_count
Number of entries in the points array.
Definition: hid.h:1043
hidSetPalmaFrModeType
Result hidSetPalmaFrModeType(HidPalmaConnectionHandle handle, HidPalmaFrModeType type)
SetPalmaFrModeType.
hidGetNpadPowerInfoSingle
void hidGetNpadPowerInfoSingle(HidNpadIdType id, HidPowerInfo *info)
Gets the main HidPowerInfo for the specified Npad.
hidGetPalmaOperationInfo
Result hidGetPalmaOperationInfo(HidPalmaConnectionHandle handle, HidPalmaOperationInfo *out)
Gets HidPalmaOperationInfo for a completed operation.
HidKeyboardLockKeyEvent_CapsLockToggle
@ HidKeyboardLockKeyEvent_CapsLockToggle
CapsLockToggle.
Definition: hid.h:207
HidAppletFooterUiType_HandheldJoyConLeftJoyConRight
@ HidAppletFooterUiType_HandheldJoyConLeftJoyConRight
HandheldJoyConLeftJoyConRight.
Definition: hid.h:456
HidNpadLuciaState::buttons
u64 buttons
Bitfield of HidNpadButton.
Definition: hid.h:835
HidSixAxisSensorHandle::type_value
u32 type_value
TypeValue.
Definition: hid.h:1119
hidGetSevenSixAxisSensorFusionStrength
Result hidGetSevenSixAxisSensorFusionStrength(float *strength)
Gets the SevenSixAxisSensor FusionStrength.
HidNpadInternalState::lark_type_l_and_main
u32 lark_type_l_and_main
HidNpadLarkType
Definition: hid.h:1001
HidNpadStyleTag_NpadLager
@ HidNpadStyleTag_NpadLager
Sega Genesis controller.
Definition: hid.h:240
HidNpadStyleTag_NpadHandheld
@ HidNpadStyleTag_NpadHandheld
Joy-Con controller in handheld mode.
Definition: hid.h:230
u32
uint32_t u32
32-bit unsigned integer.
Definition: types.h:21
HidNpadStyleTag_NpadHandheldLark
@ HidNpadStyleTag_NpadHandheldLark
NES/Famicom controller in handheld mode.
Definition: hid.h:237
HidNpadStyleTag_NpadLagon
@ HidNpadStyleTag_NpadLagon
N64 controller.
Definition: hid.h:239
HidNpadJoyDualState
HidNpadCommonState HidNpadJoyDualState
State for HidNpadStyleTag_NpadJoyDual.
Definition: hid.h:792
HidGestureType_Idle
@ HidGestureType_Idle
Idle.
Definition: hid.h:351
HidNpadButton_AnySR
@ HidNpadButton_AnySR
Bitmask containing SR buttons on both Joy-Cons (Left/Right)
Definition: hid.h:298
HidGestureState::x
u32 x
X.
Definition: hid.h:1034
HidGestureState::context_number
u64 context_number
ContextNumber.
Definition: hid.h:1031
HidNpadGcState
State for HidNpadStyleTag_NpadGc. Loaded from the same lifo as HidNpadFullKeyState,...
Definition: hid.h:797
HidGestureType_Touch
@ HidGestureType_Touch
Touch.
Definition: hid.h:354
HidNpadSystemState
HidNpadCommonState HidNpadSystemState
State for HidNpadStyleTag_NpadSystem. Analog-sticks state are always zero. Only the following button ...
Definition: hid.h:845
HidGestureState::scale
float scale
Scale.
Definition: hid.h:1041
HidNpadHandheldActivationMode_Dual
@ HidNpadHandheldActivationMode_Dual
Dual (2 Joy-Cons)
Definition: hid.h:384
HidVibrationDeviceHandle::pad
u32 pad
Padding.
Definition: hid.h:1135
hidGetNpadSystemProperties
void hidGetNpadSystemProperties(HidNpadIdType id, HidNpadSystemProperties *out)
Gets the HidNpadSystemProperties for the specified Npad.
HidVibrationValue::amp_low
float amp_low
Low Band amplitude. 1.0f: Max amplitude.
Definition: hid.h:1147
HidPalmaOperationType_SuspendFeature
@ HidPalmaOperationType_SuspendFeature
SuspendFeature.
Definition: hid.h:554
HidSixAxisSensorState::angular_velocity
HidVector angular_velocity
AngularVelocity.
Definition: hid.h:883
HidVibrationDeviceInfo::type
u32 type
HidVibrationDeviceType
Definition: hid.h:1141
HidNpadButton_Right
@ HidNpadButton_Right
D-Pad Right button.
Definition: hid.h:271
HidKeyboardLockKeyEvent_ScrollLockToggle
@ HidKeyboardLockKeyEvent_ScrollLockToggle
ScrollLockToggle.
Definition: hid.h:210
HidTouchScreenState::count
s32 count
Number of entries in the touches array.
Definition: hid.h:663
HidDebugPadLifo::storage
HidDebugPadStateAtomicStorage storage[17]
HidDebugPadStateAtomicStorage
Definition: hid.h:634
HidSixAxisSensorStateAtomicStorage::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:892
HidNpadHandheldLarkState::attributes
u32 attributes
Bitfield of HidNpadAttribute.
Definition: hid.h:826
HidNpadJoyHoldType_Horizontal
@ HidNpadJoyHoldType_Horizontal
Joy-Con held horizontally.
Definition: hid.h:373
hidGetNpadStatesHandheldLark
size_t hidGetNpadStatesHandheldLark(HidNpadIdType id, HidNpadHandheldLarkState *states, size_t count)
Gets HidNpadHandheldLarkState.
HidPalmaConnectionHandle::handle
u64 handle
Handle.
Definition: hid.h:1155
HidSharedMemory::digitizer
u8 digitizer[0x1000]
[10.0.0+] Digitizer [1.0.0-9.2.0] BasicXpad
Definition: hid.h:1083
HidNpadInternalState::full_key_color
HidNpadFullKeyColorState full_key_color
HidNpadFullKeyColorState
Definition: hid.h:965
HidNpadSystemProperties::is_unsupported_button_pressed_on_npad_system_ext
u64 is_unsupported_button_pressed_on_npad_system_ext
IsUnsupportedButtonPressedOnNpadSystemExt.
Definition: hid.h:911
HidTouchScreenState::touches
HidTouchState touches[16]
Array of HidTouchState, with the above count.
Definition: hid.h:665
HidNpadJoyAssignmentMode_Dual
@ HidNpadJoyAssignmentMode_Dual
Dual (Set by hidSetNpadJoyAssignmentModeDual)
Definition: hid.h:391
HidKeyboardLockKeyEvent_ScrollLockOn
@ HidKeyboardLockKeyEvent_ScrollLockOn
ScrollLockOn.
Definition: hid.h:208
HidPalmaWaveSet_Small
@ HidPalmaWaveSet_Small
Small.
Definition: hid.h:570
HidGestureDummyStateAtomicStorage::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:1049
HidNpadSystemProperties::is_minus_available
u64 is_minus_available
[4.0.0+] IsMinusAvailable
Definition: hid.h:916
HidNpadInternalState::applet_footer_ui_type
u8 applet_footer_ui_type
HidAppletFooterUiType
Definition: hid.h:995
HidNpadButton_Down
@ HidNpadButton_Down
D-Pad Down button.
Definition: hid.h:272
hidSetSupportedNpadIdType
Result hidSetSupportedNpadIdType(const HidNpadIdType *ids, size_t count)
Sets which HidNpadIdType are supported.
HidKeyboardSharedMemoryFormat
HidKeyboardSharedMemoryFormat.
Definition: hid.h:751
HidDebugPadStateAtomicStorage
HidDebugPadStateAtomicStorage.
Definition: hid.h:626
HidTouchScreenSharedMemoryFormat
HidTouchScreenSharedMemoryFormat.
Definition: hid.h:681
hidPairPalma
Result hidPairPalma(HidPalmaConnectionHandle handle)
PairPalma.
HidSixAxisSensorState::attributes
u32 attributes
Bitfield of HidSixAxisSensorAttribute.
Definition: hid.h:886
hidGetNpadStatesGc
size_t hidGetNpadStatesGc(HidNpadIdType id, HidNpadGcState *states, size_t count)
Gets HidNpadGcState.
HidGesturePoint::x
u32 x
X.
Definition: hid.h:1024
HidAppletFooterUiType_JoyRightHorizontal
@ HidAppletFooterUiType_JoyRightHorizontal
JoyRightHorizontal.
Definition: hid.h:462
HidGestureState
HidGestureState.
Definition: hid.h:1029
HidNpadHandheldLarkState::lark_type_r
HidNpadLarkType lark_type_r
HidNpadLarkType LarkTypeR
Definition: hid.h:828
HidDebugPadStateAtomicStorage::state
HidDebugPadState state
HidDebugPadState
Definition: hid.h:628
HidTouchScreenState::reserved
u32 reserved
Reserved.
Definition: hid.h:664
HidNpadStyleSet_NpadFullCtrl
@ HidNpadStyleSet_NpadFullCtrl
Style set comprising Npad styles containing the full set of controls {FullKey, Handheld,...
Definition: hid.h:244
HidSevenSixAxisSensorState
HidSevenSixAxisSensorState.
Definition: hid.h:1096
HidAnalogStickState::y
s32 y
Y.
Definition: hid.h:586
HidPalmaOperationInfo::type
u32 type
HidPalmaOperationType
Definition: hid.h:1160
hidMergeSingleJoyAsDualJoy
Result hidMergeSingleJoyAsDualJoy(HidNpadIdType id0, HidNpadIdType id1)
Merge two single joy-cons into a dual-mode controller.
hidGetNpadStatesLark
size_t hidGetNpadStatesLark(HidNpadIdType id, HidNpadLarkState *states, size_t count)
Gets HidNpadLarkState.
HidNpadButton_X
@ HidNpadButton_X
X button / Up face button.
Definition: hid.h:259
HidAnalogStickState
HidAnalogStickState.
Definition: hid.h:584
HidAppletFooterUiType_LarkNesRight
@ HidAppletFooterUiType_LarkNesRight
LarkNesRight.
Definition: hid.h:470
hidGetSevenSixAxisSensorStates
Result hidGetSevenSixAxisSensorStates(HidSevenSixAxisSensorState *states, size_t count, size_t *total_out)
GetSevenSixAxisSensorStates.
u64
uint64_t u64
64-bit unsigned integer.
Definition: types.h:22
HidNpadHandheldActivationMode
HidNpadHandheldActivationMode
This controls how many Joy-Cons must be attached for handheld-mode to be activated.
Definition: hid.h:383
HidTouchScreenLifo
HidTouchScreenLifo.
Definition: hid.h:675
HidTouchScreenConfigurationForNx
HidTouchScreenConfigurationForNx.
Definition: hid.h:687
hidGetGestureStates
size_t hidGetGestureStates(HidGestureState *states, size_t count)
Gets HidGestureState.
hidStartSevenSixAxisSensor
Result hidStartSevenSixAxisSensor(void)
Starts the SevenSixAxisSensor.
HidNpadCommonState::reserved
u32 reserved
Reserved.
Definition: hid.h:787
hidGetSupportedNpadStyleSet
Result hidGetSupportedNpadStyleSet(u32 *style_set)
Gets which controller styles are supported.
HidMouseStateAtomicStorage::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:711
HidNpadHandheldLarkState::lark_type_l_and_main
HidNpadLarkType lark_type_l_and_main
HidNpadLarkType LarkTypeLAndMain
Definition: hid.h:827
HidNpadCommonState::analog_stick_r
HidAnalogStickState analog_stick_r
AnalogStickR.
Definition: hid.h:785
HidTouchState
HidTouchState.
Definition: hid.h:648
HidSixAxisSensorHandle::pad
u32 pad
Padding.
Definition: hid.h:1124
hidBeginPermitVibrationSession
Result hidBeginPermitVibrationSession(void)
Begins a forced-permitted vibration session.
hidSendVibrationValue
Result hidSendVibrationValue(HidVibrationDeviceHandle handle, const HidVibrationValue *value)
Sends the HidVibrationDeviceHandle to the specified device.
HidDebugPadState::analog_stick_l
HidAnalogStickState analog_stick_l
AnalogStickL.
Definition: hid.h:622
HidSixAxisSensorHandle::npad_style_index
u32 npad_style_index
NpadStyleIndex.
Definition: hid.h:1121
HidGestureAttribute
HidGestureAttribute
HidGestureAttribute.
Definition: hid.h:335
HidNpadHandheldLarkState::buttons
u64 buttons
Bitfield of HidNpadButton.
Definition: hid.h:823
HidNpadStyleTag_NpadSystem
@ HidNpadStyleTag_NpadSystem
Generic controller.
Definition: hid.h:242
HidNpadHandheldActivationMode_None
@ HidNpadHandheldActivationMode_None
None (0 Joy-Cons)
Definition: hid.h:386
HidPalmaOperationType_WriteWaveEntry
@ HidPalmaOperationType_WriteWaveEntry
WriteWaveEntry.
Definition: hid.h:551
HidDebugPadState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:618
HidNpadSystemProperties
NpadSystemProperties.
Definition: hid.h:903
HidPalmaOperationType_WriteDataBaseIdentificationVersion
@ HidPalmaOperationType_WriteDataBaseIdentificationVersion
WriteDataBaseIdentificationVersion.
Definition: hid.h:553
HidNfcXcdDeviceHandleStateImplAtomicStorage
HidNfcXcdDeviceHandleStateImplAtomicStorage.
Definition: hid.h:950
HidPalmaActivityEntry::pad
u16 pad
Padding.
Definition: hid.h:1173
HidDeviceTypeBits_HandheldLarkNesLeft
@ HidDeviceTypeBits_HandheldLarkNesLeft
NES left controller in handheld mode.
Definition: hid.h:418
HidNpadLagerType_J
@ HidNpadLagerType_J
J.
Definition: hid.h:512
HidNpadJoyDeviceType_Right
@ HidNpadJoyDeviceType_Right
Right.
Definition: hid.h:379
hidGetNpadStatesJoyRight
size_t hidGetNpadStatesJoyRight(HidNpadIdType id, HidNpadJoyRightState *states, size_t count)
Gets HidNpadJoyRightState.
HidNpadButton_RightSR
@ HidNpadButton_RightSR
SR button on Right Joy-Con.
Definition: hid.h:284
HidDeviceType_LarkHvcRight
@ HidDeviceType_LarkHvcRight
HidDeviceTypeBits_LarkHvcRight, HidDeviceTypeBits_HandheldLarkHvcRight
Definition: hid.h:435
HidPalmaOperationType_ResetStep
@ HidPalmaOperationType_ResetStep
ResetStep.
Definition: hid.h:544
hidGetNpadStatesSystem
size_t hidGetNpadStatesSystem(HidNpadIdType id, HidNpadSystemState *states, size_t count)
Gets HidNpadSystemState.
HidNpadStyleTag_NpadJoyDual
@ HidNpadStyleTag_NpadJoyDual
Joy-Con controller in dual mode.
Definition: hid.h:231
hidGetPalmaBluetoothAddress
Result hidGetPalmaBluetoothAddress(HidPalmaConnectionHandle handle, BtdrvAddress *out)
GetPalmaBluetoothAddress.
HidNpadStyleSet_NpadStandard
@ HidNpadStyleSet_NpadStandard
Style set comprising all standard Npad styles {FullKey, Handheld, JoyDual, JoyLeft,...
Definition: hid.h:245
HidDeviceType_FullKey6
@ HidDeviceType_FullKey6
HidDeviceTypeBits_FullKey
Definition: hid.h:433
HidNpadInterfaceType_USB
@ HidNpadInterfaceType_USB
USB.
Definition: hid.h:480
HidDeviceType_JoyRight5
@ HidDeviceType_JoyRight5
HidDeviceTypeBits_JoyRight
Definition: hid.h:432
hidInitializeSevenSixAxisSensor
Result hidInitializeSevenSixAxisSensor(void)
Initializes the SevenSixAxisSensor.
Result
u32 Result
Function error code result type.
Definition: types.h:44
HidVibrationDeviceHandle
HidVibrationDeviceHandle.
Definition: hid.h:1129
HidGestureType_Cancel
@ HidGestureType_Cancel
Cancel.
Definition: hid.h:353
HidNpadGcState::trigger_r
u32 trigger_r
R analog trigger. Valid range: 0x0-0x7FFF.
Definition: hid.h:804
hidInitializeKeyboard
void hidInitializeKeyboard(void)
Initialize Keyboard. Must be called when Keyboard is being used. Used automatically by hidScanInput w...
HidDeviceTypeBits_FullKey
@ HidDeviceTypeBits_FullKey
Pro Controller and Gc controller.
Definition: hid.h:405
HidDeviceTypeBits_JoyRight
@ HidDeviceTypeBits_JoyRight
Joy-Con right controller.
Definition: hid.h:410
HidNpadInternalState::handheld_six_axis_sensor_lifo
HidNpadSixAxisSensorLifo handheld_six_axis_sensor_lifo
HandheldSixAxisSensorLifo.
Definition: hid.h:977
HidDeviceType
HidDeviceType
Internal DeviceType for [9.0.0+]. Converted to/from the pre-9.0.0 version of this by the hiddbg funcs...
Definition: hid.h:427
HidKeyboardLockKeyEvent_NumLockOff
@ HidKeyboardLockKeyEvent_NumLockOff
NumLockOff.
Definition: hid.h:203
hidSetNpadHandheldActivationMode
Result hidSetNpadHandheldActivationMode(HidNpadHandheldActivationMode mode)
Sets the HidNpadHandheldActivationMode.
hidResetPalmaPlayLog
Result hidResetPalmaPlayLog(HidPalmaConnectionHandle handle, u16 unk)
ResetPalmaPlayLog.
HidNpadStyleTag_NpadLucia
@ HidNpadStyleTag_NpadLucia
SNES controller.
Definition: hid.h:238
hidGetNpadStatesJoyLeft
size_t hidGetNpadStatesJoyLeft(HidNpadIdType id, HidNpadJoyLeftState *states, size_t count)
Gets HidNpadJoyLeftState.
HidMouseState::attributes
u32 attributes
Bitfield of HidMouseAttribute.
Definition: hid.h:706
HidMouseState::x
s32 x
X.
Definition: hid.h:699
hidSetDisallowedPalmaConnection
Result hidSetDisallowedPalmaConnection(const BtdrvAddress *addrs, s32 count)
SetDisallowedPalmaConnection.
HidNpadInternalState::palma_lifo
HidNpadCommonLifo palma_lifo
PalmaLifo.
Definition: hid.h:973
HidNpadInternalState::full_key_lifo
HidNpadCommonLifo full_key_lifo
FullKeyLifo.
Definition: hid.h:968
HidVibrationDeviceType
HidVibrationDeviceType
Type values for HidVibrationDeviceInfo::type.
Definition: hid.h:518
HidNpadControllerColor::main
u32 main
RGBA Body Color.
Definition: hid.h:763
HidNpadButton_LeftSR
@ HidNpadButton_LeftSR
SR button on Left Joy-Con.
Definition: hid.h:282
hidReadPalmaUniqueCode
Result hidReadPalmaUniqueCode(HidPalmaConnectionHandle handle)
ReadPalmaUniqueCode.
HidNpadStyleTag_NpadGc
@ HidNpadStyleTag_NpadGc
GameCube controller.
Definition: hid.h:234
HidVibrationValue::amp_high
float amp_high
High Band amplitude. 1.0f: Max amplitude.
Definition: hid.h:1149
HidGestureType_Swipe
@ HidGestureType_Swipe
Swipe.
Definition: hid.h:358
HidNpadIdType_No5
@ HidNpadIdType_No5
Player 5 controller.
Definition: hid.h:219
HidPowerInfo::battery_level
u32 battery_level
BatteryLevel, always 0-4.
Definition: hid.h:932
HidTouchScreenModeForNx_UseSystemSetting
@ HidTouchScreenModeForNx_UseSystemSetting
UseSystemSetting.
Definition: hid.h:36
hidGetNpadStatesHandheld
size_t hidGetNpadStatesHandheld(HidNpadIdType id, HidNpadHandheldState *states, size_t count)
Gets HidNpadHandheldState.
HidAppletFooterUiType_SwitchProController
@ HidAppletFooterUiType_SwitchProController
SwitchProController.
Definition: hid.h:464
HidNpadButton_AnyDown
@ HidNpadButton_AnyDown
Bitmask containing all buttons that are considered Down (D-Pad, Sticks)
Definition: hid.h:296
hidGetNpadInterfaceType
Result hidGetNpadInterfaceType(HidNpadIdType id, u8 *out)
Gets the HidNpadInterfaceType for the specified controller.
HidDeviceType_LarkHvcLeft
@ HidDeviceType_LarkHvcLeft
HidDeviceTypeBits_LarkHvcLeft, HidDeviceTypeBits_HandheldLarkHvcLeft
Definition: hid.h:434
HidNpadHandheldState
HidNpadCommonState HidNpadHandheldState
State for HidNpadStyleTag_NpadHandheld.
Definition: hid.h:791
HidNpadLagerType_E
@ HidNpadLagerType_E
E.
Definition: hid.h:513
hidGetNpadSystemButtonProperties
void hidGetNpadSystemButtonProperties(HidNpadIdType id, HidNpadSystemButtonProperties *out)
Gets the HidNpadSystemButtonProperties for the specified Npad.
HidDebugPadState::buttons
u32 buttons
Bitfield of HidDebugPadButton.
Definition: hid.h:620
HidPalmaActivityEntry::wave_index
u16 wave_index
WaveIndex.
Definition: hid.h:1175
HidNpadInterfaceType_Bluetooth
@ HidNpadInterfaceType_Bluetooth
Bluetooth.
Definition: hid.h:478
hidInitialize
Result hidInitialize(void)
Initialize hid. Called automatically during app startup.
HidNpadSystemProperties::is_powered
u64 is_powered
Use hidGetNpadPowerInfoSingle / hidGetNpadPowerInfoSplit instead of accessing this directly.
Definition: hid.h:905
hidIsFirmwareUpdateNeededForNotification
Result hidIsFirmwareUpdateNeededForNotification(bool *out)
IsFirmwareUpdateNeededForNotification.
HidSixAxisSensorState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:881
HidPalmaFrModeType_Off
@ HidPalmaFrModeType_Off
Off.
Definition: hid.h:561
HidSixAxisSensorAttribute_IsConnected
@ HidSixAxisSensorAttribute_IsConnected
IsConnected.
Definition: hid.h:330
HidVibrationValue
HidVibrationValue.
Definition: hid.h:1146
hidGetGyroBias
Result hidGetGyroBias(UtilFloat3 *out)
GetGyroBias.
HidPalmaOperationType_ReadDataBaseIdentificationVersion
@ HidPalmaOperationType_ReadDataBaseIdentificationVersion
ReadDataBaseIdentificationVersion.
Definition: hid.h:552
HidPalmaOperationType_ReadApplicationSection
@ HidPalmaOperationType_ReadApplicationSection
ReadApplicationSection.
Definition: hid.h:545
HidDebugPadAttribute
HidDebugPadAttribute
HidDebugPadAttribute.
Definition: hid.h:302
HidNpadButton_R
@ HidNpadButton_R
R button.
Definition: hid.h:264
HidNpadIdType_No3
@ HidNpadIdType_No3
Player 3 controller.
Definition: hid.h:217
HidNpadAttribute_IsConnected
@ HidNpadAttribute_IsConnected
IsConnected.
Definition: hid.h:320
HidVibrationDeviceInfo::position
u32 position
HidVibrationDevicePosition
Definition: hid.h:1142
HidDeviceType_Palma
@ HidDeviceType_Palma
[9.0.0+] HidDeviceTypeBits_Palma
Definition: hid.h:439
HidNpadLuciaType
HidNpadLuciaType
NpadLuciaType.
Definition: hid.h:502
HidVibrationGcErmCommand_StopHard
@ HidVibrationGcErmCommand_StopHard
Stops the vibration immediately, with no decay phase.
Definition: hid.h:535
HidDebugPadStateAtomicStorage::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:627
HidMouseState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:698
HidCommonLifoHeader::tail
u64 tail
Tail.
Definition: hid.h:610
HidConsoleSixAxisSensor::verticalization_error
float verticalization_error
VerticalizationError.
Definition: hid.h:1072
HidNpadIdType_No7
@ HidNpadIdType_No7
Player 7 controller.
Definition: hid.h:221
HidNpadGcState::analog_stick_l
HidAnalogStickState analog_stick_l
AnalogStickL.
Definition: hid.h:800
HidGestureState::type
u32 type
HidGestureType
Definition: hid.h:1032
HidNpadCommonState::attributes
u32 attributes
Bitfield of HidNpadAttribute.
Definition: hid.h:786
HidPalmaOperationType_ReadStep
@ HidPalmaOperationType_ReadStep
ReadStep.
Definition: hid.h:542
HidMouseSharedMemoryFormat
HidMouseSharedMemoryFormat.
Definition: hid.h:722
HidNpadInternalState::reserved
u32 reserved
Reserved.
Definition: hid.h:984
HidNpadButton_AnyLeft
@ HidNpadButton_AnyLeft
Bitmask containing all buttons that are considered Left (D-Pad, Sticks)
Definition: hid.h:293
hidStopLrAssignmentMode
Result hidStopLrAssignmentMode(void)
StopLrAssignmentMode.
hidSendKeyboardLockKeyEvent
Result hidSendKeyboardLockKeyEvent(u32 events)
SendKeyboardLockKeyEvent.
HidDeviceTypeBits_Lucia
@ HidDeviceTypeBits_Lucia
SNES controller.
Definition: hid.h:420
HidGestureType
HidGestureType
HidGestureType.
Definition: hid.h:350
HidPalmaOperationType_ReadUniqueCode
@ HidPalmaOperationType_ReadUniqueCode
ReadUniqueCode.
Definition: hid.h:547
hidGetKeyboardStates
size_t hidGetKeyboardStates(HidKeyboardState *states, size_t count)
Gets HidKeyboardState.
HidGesturePoint::y
u32 y
Y.
Definition: hid.h:1025
HidNpadButton_LagonCRight
@ HidNpadButton_LagonCRight
Right C button in N64 controller.
Definition: hid.h:290
HidNpadLuciaType_U
@ HidNpadLuciaType_U
U.
Definition: hid.h:506
HidNpadLarkState::lark_type_l_and_main
HidNpadLarkType lark_type_l_and_main
HidNpadLarkType LarkTypeLAndMain
Definition: hid.h:817
HidNpadSystemProperties::is_abxy_button_oriented
u64 is_abxy_button_oriented
IsAbxyButtonOriented.
Definition: hid.h:913
HidNpadInternalState::joy_dual_left_six_axis_sensor_lifo
HidNpadSixAxisSensorLifo joy_dual_left_six_axis_sensor_lifo
JoyDualLeftSixAxisSensorLifo.
Definition: hid.h:978
HidDebugPadState::attributes
u32 attributes
Bitfield of HidDebugPadAttribute.
Definition: hid.h:619
HidDebugPadState
HidDebugPadState.
Definition: hid.h:617
HidNpadButton_StickLDown
@ HidNpadButton_StickLDown
Left Stick pseudo-button when moved Down.
Definition: hid.h:276
HidAppletFooterUiType_CompatibleJoyCon
@ HidAppletFooterUiType_CompatibleJoyCon
CompatibleJoyCon.
Definition: hid.h:466
HidDeviceTypeBits_HandheldLarkNesRight
@ HidDeviceTypeBits_HandheldLarkNesRight
NES right controller in handheld mode.
Definition: hid.h:419
hidResetPalmaStep
Result hidResetPalmaStep(HidPalmaConnectionHandle handle)
ResetPalmaStep.
HidPalmaWaveSet_Large
@ HidPalmaWaveSet_Large
Large.
Definition: hid.h:572
hidIsUsbFullKeyControllerConnected
Result hidIsUsbFullKeyControllerConnected(HidNpadIdType id, bool *out)
IsUsbFullKeyControllerConnected.
HidNpadLarkState::analog_stick_l
HidAnalogStickState analog_stick_l
This is always zero.
Definition: hid.h:814
hidGetNpadLagerType
HidNpadLagerType hidGetNpadLagerType(HidNpadIdType id)
Gets HidNpadLagerType for the specified Npad.
HidNpadInternalState::joy_right_six_axis_sensor_lifo
HidNpadSixAxisSensorLifo joy_right_six_axis_sensor_lifo
JoyRightSixAxisSensorLifo.
Definition: hid.h:981
HidTouchScreenLifo::header
HidCommonLifoHeader header
HidCommonLifoHeader
Definition: hid.h:676
HidTouchState::diameter_x
u32 diameter_x
DiameterX.
Definition: hid.h:654
HidNpadLuciaState::analog_stick_l
HidAnalogStickState analog_stick_l
This is always zero.
Definition: hid.h:836
HidNpadInterfaceType
HidNpadInterfaceType
NpadInterfaceType (system)
Definition: hid.h:477
HidKeyboardState::modifiers
u64 modifiers
Bitfield of HidKeyboardModifier.
Definition: hid.h:734
hidSetTouchScreenConfiguration
Result hidSetTouchScreenConfiguration(const HidTouchScreenConfigurationForNx *config)
SetTouchScreenConfiguration.
HidDebugPadSharedMemoryFormat
HidDebugPadSharedMemoryFormat.
Definition: hid.h:638
hidGetNpadDeviceType
u32 hidGetNpadDeviceType(HidNpadIdType id)
Gets the DeviceType for the specified Npad.
hidGetTouchScreenStates
size_t hidGetTouchScreenStates(HidTouchScreenState *states, size_t count)
Gets HidTouchScreenState.
HidSevenSixAxisSensorStates
HidSevenSixAxisSensorStates.
Definition: hid.h:1112
hidGetServiceSession
Service * hidGetServiceSession(void)
Gets the Service object for the actual hid service session.
HidMouseState
HidMouseState.
Definition: hid.h:697
hidSetNpadJoyAssignmentModeDual
Result hidSetNpadJoyAssignmentModeDual(HidNpadIdType id)
Use this if you want to use a pair of joy-cons as a single HidNpadIdType_No*.
HidTouchState::x
u32 x
X.
Definition: hid.h:652
HidDeviceType_LarkNesRight
@ HidDeviceType_LarkNesRight
HidDeviceTypeBits_LarkNesRight, HidDeviceTypeBits_HandheldLarkNesRight
Definition: hid.h:437
HidGestureState::velocity_x
float velocity_x
VelocityX.
Definition: hid.h:1038
HidDebugPadButton_L
@ HidDebugPadButton_L
L button.
Definition: hid.h:22
HidDeviceType_FullKey13
@ HidDeviceType_FullKey13
HidDeviceTypeBits_FullKey
Definition: hid.h:440
HidNpadIdType_No4
@ HidNpadIdType_No4
Player 4 controller.
Definition: hid.h:218
HidNpadCommonState::buttons
u64 buttons
Bitfield of HidNpadButton.
Definition: hid.h:783
HidPalmaOperationInfo
PalmaOperationInfo.
Definition: hid.h:1159
HidNpadStyleTag_NpadJoyLeft
@ HidNpadStyleTag_NpadJoyLeft
Joy-Con left controller in single mode.
Definition: hid.h:232
HidPalmaFeature_RumbleFeedback
@ HidPalmaFeature_RumbleFeedback
RumbleFeedback.
Definition: hid.h:578
hidGetNpadStatesFullKey
size_t hidGetNpadStatesFullKey(HidNpadIdType id, HidNpadFullKeyState *states, size_t count)
Gets HidNpadFullKeyState.
XcdDeviceHandle
XcdDeviceHandle.
Definition: hid.h:936
HidNpadIdType_No2
@ HidNpadIdType_No2
Player 2 controller.
Definition: hid.h:216
HidNpadButton_Up
@ HidNpadButton_Up
D-Pad Up button.
Definition: hid.h:270
hidSetSevenSixAxisSensorFusionStrength
Result hidSetSevenSixAxisSensorFusionStrength(float strength)
Sets the SevenSixAxisSensor FusionStrength.
hidGetVibrationDeviceInfo
Result hidGetVibrationDeviceInfo(HidVibrationDeviceHandle handle, HidVibrationDeviceInfo *out)
Gets HidVibrationDeviceInfo for the specified device.
hidGetNpadHandheldActivationMode
Result hidGetNpadHandheldActivationMode(HidNpadHandheldActivationMode *out)
Gets the HidNpadHandheldActivationMode.
hidGetAppletFooterUiAttributesSet
u32 hidGetAppletFooterUiAttributesSet(HidNpadIdType id)
Gets the AppletFooterUiAttributesSet for the specified Npad.
HidNpadButton_ZL
@ HidNpadButton_ZL
ZL button.
Definition: hid.h:265
HidDebugPadButton_Select
@ HidDebugPadButton_Select
Select button.
Definition: hid.h:27
hidEnableUsbFullKeyController
Result hidEnableUsbFullKeyController(bool flag)
EnableUsbFullKeyController.
HidDirectionState::direction
float direction[3][3]
3x3 matrix
Definition: hid.h:598
HidConsoleSixAxisSensor::is_seven_six_axis_sensor_at_rest
u8 is_seven_six_axis_sensor_at_rest
IsSevenSixAxisSensorAtRest.
Definition: hid.h:1070
HidDeviceType_Lucia
@ HidDeviceType_Lucia
HidDeviceTypeBits_Lucia
Definition: hid.h:438
HidDeviceType_System21
@ HidDeviceType_System21
HidDeviceTypeBits_System with HidNpadStyleTag |= HidNpadStyleTag_NpadJoyDual.
Definition: hid.h:445
HidPalmaFeature_FrMode
@ HidPalmaFeature_FrMode
FrMode.
Definition: hid.h:577
HidPalmaFrModeType_B01
@ HidPalmaFrModeType_B01
B01.
Definition: hid.h:562
HidAnalogStickState::x
s32 x
X.
Definition: hid.h:585
HidAppletFooterUiType_None
@ HidAppletFooterUiType_None
None.
Definition: hid.h:452
HidNpadCommonStateAtomicStorage
HidNpadCommonStateAtomicStorage.
Definition: hid.h:848
HidGestureType_Tap
@ HidGestureType_Tap
Tap.
Definition: hid.h:356
HidNpadButton_ZR
@ HidNpadButton_ZR
ZR button.
Definition: hid.h:266
HidTouchScreenLifo::storage
HidTouchScreenStateAtomicStorage storage[17]
HidTouchScreenStateAtomicStorage
Definition: hid.h:677
hidAcquirePalmaOperationCompleteEvent
Result hidAcquirePalmaOperationCompleteEvent(HidPalmaConnectionHandle handle, Event *out_event, bool autoclear)
Gets an Event which is signaled when data is available with hidGetPalmaOperationInfo.
HidVibrationDeviceInfo
HidVibrationDeviceInfo.
Definition: hid.h:1140
HidSixAxisSensorState::reserved
u32 reserved
Reserved.
Definition: hid.h:887
HidNpadFullKeyColorState::full_key
HidNpadControllerColor full_key
HidNpadControllerColor FullKey
Definition: hid.h:770
HidPalmaFeature_MuteSwitch
@ HidPalmaFeature_MuteSwitch
MuteSwitch.
Definition: hid.h:580
HidNpadLarkState::attributes
u32 attributes
Bitfield of HidNpadAttribute.
Definition: hid.h:816
HidVibrationDeviceHandle::player_number
u32 player_number
PlayerNumber.
Definition: hid.h:1133
HidPalmaWaveSet_Medium
@ HidPalmaWaveSet_Medium
Medium.
Definition: hid.h:571
HidSixAxisSensorAttribute
HidSixAxisSensorAttribute
HidSixAxisSensorAttribute.
Definition: hid.h:329
HidVector
HidVector.
Definition: hid.h:590
HidNpadLarkType_H2
@ HidNpadLarkType_H2
H2.
Definition: hid.h:496
HidAppletFooterUiType_JoyDualRightOnly
@ HidAppletFooterUiType_JoyDualRightOnly
JoyDualRightOnly.
Definition: hid.h:459
HidConsoleSixAxisSensor
HidConsoleSixAxisSensor.
Definition: hid.h:1068
HidNpadButton_Verification
@ HidNpadButton_Verification
Verification.
Definition: hid.h:286
HidPalmaFeature
HidPalmaFeature
PalmaFeature.
Definition: hid.h:576
HidNpadJoyDeviceType_Left
@ HidNpadJoyDeviceType_Left
Left.
Definition: hid.h:378
HidTouchScreenStateAtomicStorage::state
HidTouchScreenState state
HidTouchScreenState
Definition: hid.h:671
hidSetIsPalmaAllConnectable
Result hidSetIsPalmaAllConnectable(bool flag)
Sets whether any Palma can connect.
hidReadPalmaStep
Result hidReadPalmaStep(HidPalmaConnectionHandle handle)
ReadPalmaStep.
HidNpadInternalState::joy_dual_right_six_axis_sensor_lifo
HidNpadSixAxisSensorLifo joy_dual_right_six_axis_sensor_lifo
JoyDualRightSixAxisSensorLifo.
Definition: hid.h:979
hidGetSensorFusionError
Result hidGetSensorFusionError(float *out)
GetSensorFusionError.
HidKeyboardLockKeyEvent_CapsLockOff
@ HidKeyboardLockKeyEvent_CapsLockOff
CapsLockOff.
Definition: hid.h:206
HidNpadHandheldLarkState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:822
BtdrvAddress
Address.
Definition: btdrv_types.h:161
HidNpadJoyAssignmentMode_Single
@ HidNpadJoyAssignmentMode_Single
Single (Set by hidSetNpadJoyAssignmentModeSingle*())
Definition: hid.h:392
HidDebugPadButton_ZR
@ HidDebugPadButton_ZR
ZR button.
Definition: hid.h:25
HidDeviceTypeBits_Palma
@ HidDeviceTypeBits_Palma
Poké Ball Plus controller.
Definition: hid.h:411
BIT
#define BIT(n)
Creates a bitmask from a bit number.
Definition: types.h:54
HidNpadInternalState::joy_assignment_mode
u32 joy_assignment_mode
HidNpadJoyAssignmentMode
Definition: hid.h:964
HidPalmaOperationType_WriteActivityEntry
@ HidPalmaOperationType_WriteActivityEntry
WriteActivityEntry.
Definition: hid.h:549
HidNpadButton_AnyUp
@ HidNpadButton_AnyUp
Bitmask containing all buttons that are considered Up (D-Pad, Sticks)
Definition: hid.h:294
HidMouseState::wheel_delta_y
s32 wheel_delta_y
WheelDeltaY.
Definition: hid.h:704
HidDebugPadButton_Start
@ HidDebugPadButton_Start
Start button.
Definition: hid.h:26
HidNpadGcTriggerState
HidNpadGcTriggerState.
Definition: hid.h:860
Service
Service object structure.
Definition: service.h:13
HidNpadButton_AnySL
@ HidNpadButton_AnySL
Bitmask containing SL buttons on both Joy-Cons (Left/Right)
Definition: hid.h:297
hidEnableUnintendedHomeButtonInputProtection
Result hidEnableUnintendedHomeButtonInputProtection(HidNpadIdType id, bool flag)
EnableUnintendedHomeButtonInputProtection.
HidDeviceType_FullKey15
@ HidDeviceType_FullKey15
HidDeviceTypeBits_FullKey
Definition: hid.h:441
HidNpadButton_StickLRight
@ HidNpadButton_StickLRight
Left Stick pseudo-button when moved Right.
Definition: hid.h:275
HidPalmaOperationInfo::res
Result res
Result.
Definition: hid.h:1161
HidNpadButton_Left
@ HidNpadButton_Left
D-Pad Left button.
Definition: hid.h:269
hidGetPalmaDataBaseIdentificationVersion
Result hidGetPalmaDataBaseIdentificationVersion(HidPalmaConnectionHandle handle)
GetPalmaDataBaseIdentificationVersion.
HidDeviceType_Lager
@ HidDeviceType_Lager
HidDeviceTypeBits_Lager
Definition: hid.h:447
HidNpadStyleTag_NpadSystemExt
@ HidNpadStyleTag_NpadSystemExt
Generic external controller.
Definition: hid.h:241
hidGetNpadStatesLucia
size_t hidGetNpadStatesLucia(HidNpadIdType id, HidNpadLuciaState *states, size_t count)
Gets HidNpadLuciaState.
HidPalmaFrModeType
HidPalmaFrModeType
PalmaFrModeType.
Definition: hid.h:560
HidGestureDirection_Down
@ HidGestureDirection_Down
Down.
Definition: hid.h:346
HidGyroscopeZeroDriftMode
HidGyroscopeZeroDriftMode
GyroscopeZeroDriftMode.
Definition: hid.h:364
HidPalmaActivityEntry::wave_set
u32 wave_set
HidPalmaWaveSet
Definition: hid.h:1174
HidKeyboardKey
HidKeyboardKey
HidKeyboardKey.
Definition: hid.h:51
HidTouchScreenState
HidTouchScreenState.
Definition: hid.h:661
HidDeviceTypeBits_Lagon
@ HidDeviceTypeBits_Lagon
N64 controller.
Definition: hid.h:421
HidDeviceType_JoyRight1
@ HidDeviceType_JoyRight1
HidDeviceTypeBits_JoyRight
Definition: hid.h:428
HidGestureDirection_None
@ HidGestureDirection_None
None.
Definition: hid.h:342
HidPalmaFeature_Step
@ HidPalmaFeature_Step
Step.
Definition: hid.h:579
hidReadPalmaApplicationSection
Result hidReadPalmaApplicationSection(HidPalmaConnectionHandle handle, s32 inval0, u64 size)
ReadPalmaApplicationSection.
HidDeviceTypeBits_HandheldLeft
@ HidDeviceTypeBits_HandheldLeft
Joy-Con/Famicom/NES left controller in handheld mode.
Definition: hid.h:407
HidNpadControllerColor
Npad colors.
Definition: hid.h:762
HidNpadInternalState
HidNpadInternalState.
Definition: hid.h:962
HidMouseState::y
s32 y
Y.
Definition: hid.h:700
HidVibrationDeviceHandle::npad_style_index
u32 npad_style_index
NpadStyleIndex.
Definition: hid.h:1132
hidIsSixAxisSensorAtRest
Result hidIsSixAxisSensorAtRest(HidSixAxisSensorHandle handle, bool *out)
IsSixAxisSensorAtRest.
HidSharedMemory::console_six_axis_sensor
HidConsoleSixAxisSensor console_six_axis_sensor
[5.0.0+] ConsoleSixAxisSensor
Definition: hid.h:1091
hidInitializeVibrationDevices
Result hidInitializeVibrationDevices(HidVibrationDeviceHandle *handles, s32 total_handles, HidNpadIdType id, HidNpadStyleTag style)
Gets and initializes vibration handles.
HidTouchScreenConfigurationForNx::mode
u8 mode
HidTouchScreenModeForNx
Definition: hid.h:688
HidNpadStyleTag
HidNpadStyleTag
HID controller styles.
Definition: hid.h:228
HidNpadLarkType_H1
@ HidNpadLarkType_H1
H1.
Definition: hid.h:495
HidNpadButton_L
@ HidNpadButton_L
L button.
Definition: hid.h:263
HidNpadLarkState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:812
HidSixAxisSensorAttribute_IsInterpolated
@ HidSixAxisSensorAttribute_IsInterpolated
IsInterpolated.
Definition: hid.h:331
HidGestureState::velocity_y
float velocity_y
VelocityY.
Definition: hid.h:1039
HidKeyboardLockKeyEvent
HidKeyboardLockKeyEvent
KeyboardLockKeyEvent.
Definition: hid.h:201
HidDebugPadState::analog_stick_r
HidAnalogStickState analog_stick_r
AnalogStickR.
Definition: hid.h:621
HidMouseState::wheel_delta_x
s32 wheel_delta_x
WheelDeltaX.
Definition: hid.h:703
HidNpadHandheldActivationMode_Single
@ HidNpadHandheldActivationMode_Single
Single (1 Joy-Con)
Definition: hid.h:385
HidNpadCommonLifo
HidNpadCommonLifo.
Definition: hid.h:854
hidWritePalmaActivityEntry
Result hidWritePalmaActivityEntry(HidPalmaConnectionHandle handle, u16 unk, const HidPalmaActivityEntry *entry)
WritePalmaActivityEntry.
hidGetSixAxisSensorStates
size_t hidGetSixAxisSensorStates(HidSixAxisSensorHandle handle, HidSixAxisSensorState *states, size_t count)
Gets HidSixAxisSensorState for the specified handle.
HidNpadSixAxisSensorLifo
HidNpadSixAxisSensorLifo.
Definition: hid.h:897
hidGetNpadStatesPalma
size_t hidGetNpadStatesPalma(HidNpadIdType id, HidNpadPalmaState *states, size_t count)
Gets HidNpadPalmaState.
HidNpadInternalState::joy_dual_lifo
HidNpadCommonLifo joy_dual_lifo
JoyDualLifo.
Definition: hid.h:970
HidNpadGcTriggerLifo
HidNpadGcTriggerLifo.
Definition: hid.h:873
HidVibrationDevicePosition_Left
@ HidVibrationDevicePosition_Left
Left.
Definition: hid.h:527
hidGetNpadJoyAssignment
HidNpadJoyAssignmentMode hidGetNpadJoyAssignment(HidNpadIdType id)
Gets the HidNpadJoyAssignmentMode for the specified Npad.
HidNpadSystemProperties::bit7
u64 bit7
Unused.
Definition: hid.h:908
hidGetGyroscopeZeroDriftMode
Result hidGetGyroscopeZeroDriftMode(HidSixAxisSensorHandle handle, HidGyroscopeZeroDriftMode *mode)
Gets the HidGyroscopeZeroDriftMode for the specified SixAxisSensorHandle.
HidAppletFooterUiType_HandheldJoyConRightOnly
@ HidAppletFooterUiType_HandheldJoyConRightOnly
HandheldJoyConRightOnly.
Definition: hid.h:455
HidSixAxisSensorHandle::player_number
u32 player_number
PlayerNumber.
Definition: hid.h:1122
HidNpadInternalState::device_type
u32 device_type
Bitfield of HidDeviceTypeBits.
Definition: hid.h:983
hidSetIsPalmaPairedConnectable
Result hidSetIsPalmaPairedConnectable(bool flag)
Sets whether paired Palma can connect.
HidGestureType_Press
@ HidGestureType_Press
Press.
Definition: hid.h:355
HidNpadStyleTag_NpadJoyRight
@ HidNpadStyleTag_NpadJoyRight
Joy-Con right controller in single mode.
Definition: hid.h:233
HidDebugPadButton_Y
@ HidDebugPadButton_Y
Y button.
Definition: hid.h:21
HidPalmaOperationType_SetUniqueCodeInvalid
@ HidPalmaOperationType_SetUniqueCodeInvalid
SetUniqueCodeInvalid.
Definition: hid.h:548
HidNpadInternalState::style_set
u32 style_set
Bitfield of HidNpadStyleTag.
Definition: hid.h:963
hidSetSupportedNpadStyleSet
Result hidSetSupportedNpadStyleSet(u32 style_set)
Sets which controller styles are supported.
hidGetNpadStatesJoyDual
size_t hidGetNpadStatesJoyDual(HidNpadIdType id, HidNpadJoyDualState *states, size_t count)
Gets HidNpadJoyDualState.
HidPalmaApplicationSectionAccessBuffer::data
u8 data[0x100]
Application data.
Definition: hid.h:1167
HidTouchState::finger_id
u32 finger_id
FingerId.
Definition: hid.h:651
HidTouchState::reserved
u32 reserved
Reserved.
Definition: hid.h:657
hidSetGyroscopeZeroDriftMode
Result hidSetGyroscopeZeroDriftMode(HidSixAxisSensorHandle handle, HidGyroscopeZeroDriftMode mode)
Sets the HidGyroscopeZeroDriftMode for the specified SixAxisSensorHandle.
HidNpadInterfaceType_Unknown4
@ HidNpadInterfaceType_Unknown4
Unknown.
Definition: hid.h:481
HidNfcXcdDeviceHandleStateImplAtomicStorage::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:951
HidNpadButton_Palma
@ HidNpadButton_Palma
Top button on Poké Ball Plus (Palma) controller.
Definition: hid.h:285
HidAppletFooterUiType_JoyDual
@ HidAppletFooterUiType_JoyDual
JoyDual.
Definition: hid.h:457
HidColorAttribute_ReadError
@ HidColorAttribute_ReadError
ReadError.
Definition: hid.h:251
HidDeviceType_Lagon
@ HidDeviceType_Lagon
HidDeviceTypeBits_Lagon
Definition: hid.h:446
hidGetNpadJoyHoldType
Result hidGetNpadJoyHoldType(HidNpadJoyHoldType *type)
Gets the HidNpadJoyHoldType.
HidNpadCommunicationMode_15ms
@ HidNpadCommunicationMode_15ms
15ms
Definition: hid.h:399
HidNpadGcTriggerState::sampling_number
u64 sampling_number
SamplingNumber.
Definition: hid.h:861
HidVibrationValue::freq_low
float freq_low
Low Band frequency in Hz.
Definition: hid.h:1148
hidGetNpadStatesLager
size_t hidGetNpadStatesLager(HidNpadIdType id, HidNpadLagerState *states, size_t count)
Gets HidNpadLagerState.
HidKeyboardLifo
HidKeyboardLifo.
Definition: hid.h:745
HidNpadInterfaceType_Rail
@ HidNpadInterfaceType_Rail
Rail.
Definition: hid.h:479
hidGetSharedmemAddr
void * hidGetSharedmemAddr(void)
Gets the address of the SharedMemory.
HidNpadJoyHoldType
HidNpadJoyHoldType
NpadJoyHoldType.
Definition: hid.h:371
hidGetSixAxisSensorFusionParameters
Result hidGetSixAxisSensorFusionParameters(HidSixAxisSensorHandle handle, float *unk0, float *unk1)
GetSixAxisSensorFusionParameters.
HidNpadLagerState
HidNpadCommonState HidNpadLagerState
State for HidNpadStyleTag_NpadLager. Analog-sticks state are always zero.
Definition: hid.h:842
HidGestureType_Pinch
@ HidGestureType_Pinch
Pinch.
Definition: hid.h:359
HidVibrationDeviceType_Unknown
@ HidVibrationDeviceType_Unknown
Unknown.
Definition: hid.h:519
HidDeviceType_JoyLeft2
@ HidDeviceType_JoyLeft2
HidDeviceTypeBits_JoyLeft
Definition: hid.h:429
hidWritePalmaApplicationSection
Result hidWritePalmaApplicationSection(HidPalmaConnectionHandle handle, s32 inval0, u64 size, const HidPalmaApplicationSectionAccessBuffer *buf)
WritePalmaApplicationSection.
u16
uint16_t u16
16-bit unsigned integer.
Definition: types.h:20
HidAppletFooterUiType_LarkHvc1
@ HidAppletFooterUiType_LarkHvc1
LarkHvc1.
Definition: hid.h:467
hidSetPalmaDataBaseIdentificationVersion
Result hidSetPalmaDataBaseIdentificationVersion(HidPalmaConnectionHandle handle, s32 version)
SetPalmaDataBaseIdentificationVersion.
HidNpadLagerType
HidNpadLagerType
NpadLagerType.
Definition: hid.h:510
HidNpadCommunicationMode_10ms
@ HidNpadCommunicationMode_10ms
10ms
Definition: hid.h:398
HidNpadGcState::buttons
u64 buttons
Bitfield of HidNpadButton.
Definition: hid.h:799
HidNpadCommunicationMode_5ms
@ HidNpadCommunicationMode_5ms
5ms
Definition: hid.h:397
hidStartLrAssignmentMode
Result hidStartLrAssignmentMode(void)
StartLrAssignmentMode.
HidPalmaApplicationSectionAccessBuffer
PalmaApplicationSectionAccessBuffer.
Definition: hid.h:1166
HidGestureState::direction
u32 direction
HidGestureDirection
Definition: hid.h:1033
HidAppletFooterUiType_HandheldNone
@ HidAppletFooterUiType_HandheldNone
HandheldNone.
Definition: hid.h:453
HidGestureAttribute_IsDoubleTap
@ HidGestureAttribute_IsDoubleTap
IsDoubleTap.
Definition: hid.h:337
hidGetAppletFooterUiTypes
HidAppletFooterUiType hidGetAppletFooterUiTypes(HidNpadIdType id)
Gets HidAppletFooterUiType for the specified Npad.
hidGetNpadOfHighestBatteryLevel
Result hidGetNpadOfHighestBatteryLevel(const HidNpadIdType *ids, size_t count, HidNpadIdType *out)
GetNpadOfHighestBatteryLevel.
HidCommonLifoHeader::buffer_count
u64 buffer_count
BufferCount.
Definition: hid.h:609
HidMouseLifo
HidMouseLifo.
Definition: hid.h:716
HidPowerInfo::is_powered
bool is_powered
IsPowered.
Definition: hid.h:929
HidSixAxisSensorState::direction
HidDirectionState direction
Direction.
Definition: hid.h:885
HidSharedMemory::unique_pad
u8 unique_pad[0x4000]
[1.0.0-4.1.0] UniquePad
Definition: hid.h:1088
HidNpadGcTriggerStateAtomicStorage
HidNpadGcTriggerStateAtomicStorage.
Definition: hid.h:867
HidAppletFooterUiType
HidAppletFooterUiType
AppletFooterUiType (system)
Definition: hid.h:451
HidMouseAttribute_Transferable
@ HidMouseAttribute_Transferable
Transferable.
Definition: hid.h:314
HidKeyboardModifier
HidKeyboardModifier
HidKeyboardModifier.
Definition: hid.h:187
HidNpadIdType_No8
@ HidNpadIdType_No8
Player 8 controller.
Definition: hid.h:222
HidTouchState::attributes
u32 attributes
Bitfield of HidTouchAttribute.
Definition: hid.h:650
hidGetActualVibrationValue
Result hidGetActualVibrationValue(HidVibrationDeviceHandle handle, HidVibrationValue *out)
Gets the current HidVibrationValue for the specified device.
HidSharedMemory
HidSharedMemory.
Definition: hid.h:1078
HidMouseAttribute_IsConnected
@ HidMouseAttribute_IsConnected
IsConnected.
Definition: hid.h:315