libnx v4.9.0
Loading...
Searching...
No Matches
hidsys.h
Go to the documentation of this file.
1/**
2 * @file hidsys.h
3 * @brief hid:sys service IPC wrapper.
4 * @author exelix, yellows8, ndeadly
5 */
6#pragma once
7#include "../types.h"
8#include "../kernel/event.h"
9#include "../services/hid.h"
10#include "../services/btdrv_types.h"
11#include "../sf/service.h"
12
13/// Selects what button to map to.
39
40/// AnalogStickRotation
46
47/// UniquePadType
48typedef enum {
50 HidsysUniquePadType_FullKeyController = 1, ///< FullKeyController
51 HidsysUniquePadType_RightController = 2, ///< RightController
52 HidsysUniquePadType_LeftController = 3, ///< LeftController
53 HidsysUniquePadType_DebugPadController = 4, ///< DebugPadController
55
56/// UniquePadId for a controller.
57typedef struct {
58 u64 id; ///< UniquePadId
60
61/// UniquePadSerialNumber
62typedef struct {
63 char serial_number[0x10]; ///< SerialNumber
65
66/// Mini Cycle struct for \ref HidsysNotificationLedPattern.
67typedef struct {
68 u8 ledIntensity; ///< Mini Cycle X LED Intensity.
69 u8 transitionSteps; ///< Fading Transition Steps to Mini Cycle X (Uses PWM). Value 0x0: Instant. Each step duration is based on HidsysNotificationLedPattern::baseMiniCycleDuration.
70 u8 finalStepDuration; ///< Final Step Duration Multiplier of Mini Cycle X. Value 0x0: 12.5ms, 0x1 - xF: 1x - 15x. Value is a Multiplier of HidsysNotificationLedPattern::baseMiniCycleDuration.
71 u8 pad;
73
74/// Structure for \ref hidsysSetNotificationLedPattern.
75/// See also: https://switchbrew.org/wiki/HID_services#NotificationLedPattern
76/// Only the low 4bits of each used byte in this struct is used.
77typedef struct {
78 u8 baseMiniCycleDuration; ///< Mini Cycle Base Duration. Value 0x1-0xF: 12.5ms - 187.5ms. Value 0x0 = 0ms/OFF.
79 u8 totalMiniCycles; ///< Number of Mini Cycles + 1. Value 0x0-0xF: 1 - 16 mini cycles.
80 u8 totalFullCycles; ///< Number of Full Cycles. Value 0x1-0xF: 1 - 15 full cycles. Value 0x0 is repeat forever, but if baseMiniCycleDuration is set to 0x0, it does the 1st Mini Cycle with a 12.5ms step duration and then the LED stays on with startIntensity.
81 u8 startIntensity; ///< LED Start Intensity. Value 0x0=0% - 0xF=100%.
82
83 HidsysNotificationLedPatternCycle miniCycles[16]; ///< Mini Cycles
84
85 u8 unk_x44[0x2]; ///< Unknown
86 u8 pad_x46[0x2]; ///< Padding
88
89/// ButtonConfigEmbedded
90typedef struct {
91 u8 unk_x0[0x2C8];
93
94/// ButtonConfigFull
95typedef struct {
96 u8 unk_x0[0x2C8];
98
99/// ButtonConfigLeft
100typedef struct {
101 u8 unk_x0[0x1C8];
103
104/// ButtonConfigRight
105typedef struct {
106 u8 unk_x0[0x1A0];
108
109/// AnalogStickAssignment
110typedef struct {
111 u32 rotation; ///< \ref HidcfgAnalogStickRotation
112 u8 is_paired_stick_assigned; ///< IsPairedStickAssigned
113 u8 reserved[3]; ///< Reserved
115
116/// ButtonConfigEmbedded
117typedef struct {
118 u32 hardware_button_left; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonLeft
119 u32 hardware_button_up; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonUp
120 u32 hardware_button_right; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonRight
121 u32 hardware_button_down; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonDown
122 u32 hardware_button_a; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonA
123 u32 hardware_button_b; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonB
124 u32 hardware_button_x; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonX
125 u32 hardware_button_y; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonY
126 u32 hardware_button_stick_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickL
127 u32 hardware_button_stick_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickR
128 u32 hardware_button_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonL
129 u32 hardware_button_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonR
130 u32 hardware_button_zl; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZL
131 u32 hardware_button_zr; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZR
132 u32 hardware_button_select; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonSelect
133 u32 hardware_button_start; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStart
134 u32 hardware_button_capture; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonCapture
138
139/// ButtonConfigFull
140typedef struct {
141 u32 hardware_button_left; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonLeft
142 u32 hardware_button_up; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonUp
143 u32 hardware_button_right; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonRight
144 u32 hardware_button_down; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonDown
145 u32 hardware_button_a; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonA
146 u32 hardware_button_b; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonB
147 u32 hardware_button_x; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonX
148 u32 hardware_button_y; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonY
149 u32 hardware_button_stick_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickL
150 u32 hardware_button_stick_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickR
151 u32 hardware_button_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonL
152 u32 hardware_button_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonR
153 u32 hardware_button_zl; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZL
154 u32 hardware_button_zr; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZR
155 u32 hardware_button_select; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonSelect
156 u32 hardware_button_start; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStart
157 u32 hardware_button_capture; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonCapture
161
162/// ButtonConfigLeft
163typedef struct {
164 u32 hardware_button_left; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonLeft
165 u32 hardware_button_up; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonUp
166 u32 hardware_button_right; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonRight
167 u32 hardware_button_down; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonDown
168 u32 hardware_button_stick_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickL
169 u32 hardware_button_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonL
170 u32 hardware_button_zl; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZL
171 u32 hardware_button_select; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonSelect
172 u32 hardware_button_left_sl; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonLeftSL
173 u32 hardware_button_left_sr; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonLeftSR
174 u32 hardware_button_capture; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonCapture
177
178/// ButtonConfigRight
179typedef struct {
180 u32 hardware_button_a; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonA
181 u32 hardware_button_b; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonB
182 u32 hardware_button_x; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonX
183 u32 hardware_button_y; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonY
184 u32 hardware_button_stick_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickR
185 u32 hardware_button_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonR
186 u32 hardware_button_zr; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZR
187 u32 hardware_button_start; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStart
188 u32 hardware_button_right_sl; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonRightSL
189 u32 hardware_button_right_sr; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonRightSR
192
193/// StorageName
194typedef struct {
195 u8 name[0x81]; ///< UTF-8 NUL-terminated name string.
197
198/// Initialize hidsys.
200
201/// Exit hidsys.
202void hidsysExit(void);
203
204/// Gets the Service object for the actual hidsys service session.
206
207/**
208 * @brief SendKeyboardLockKeyEvent
209 * @param[in] events Bitfield of \ref HidKeyboardLockKeyEvent.
210 */
212
213/**
214 * @brief Gets an Event which is signaled when HidHomeButtonState is updated.
215 * @note The Event must be closed by the user once finished with it.
216 * @note This generally shouldn't be used, since AM-sysmodule uses it internally.
217 * @param[out] out_event Output Event.
218 * @param[in] Event autoclear.
219**/
221
222/**
223 * @brief Activates the HomeButton sharedmem.
224 * @note This generally shouldn't be used, since AM-sysmodule uses it internally.
225**/
227
228/**
229 * @brief Gets an Event which is signaled when HidSleepButtonState is updated.
230 * @note The Event must be closed by the user once finished with it.
231 * @note This generally shouldn't be used, since AM-sysmodule uses it internally.
232 * @param[out] out_event Output Event.
233 * @param[in] Event autoclear.
234**/
236
237/**
238 * @brief Activates the SleepButton sharedmem.
239 * @note This generally shouldn't be used, since AM-sysmodule uses it internally.
240**/
242
243/**
244 * @brief Gets an Event which is signaled when HidCaptureButtonState is updated.
245 * @note The Event must be closed by the user once finished with it.
246 * @note This generally shouldn't be used, since AM-sysmodule uses it internally.
247 * @param[out] out_event Output Event.
248 * @param[in] Event autoclear.
249**/
251
252/**
253 * @brief Activates the CaptureButton sharedmem.
254 * @note This generally shouldn't be used, since AM-sysmodule uses it internally.
255**/
257
258/**
259 * @brief Applies npad system common policy.
260 */
262
263/**
264 * @brief Gets the npad id type of the last controller that was active.
265 * @param[out] out of \ref HidNpadIdType.
266 */
268
269/**
270 * @brief Gets the SupportedNpadStyleSet for the CallerApplet. applet must be initialized in order to use this (uses \ref appletGetAppletResourceUserIdOfCallerApplet).
271 * @note Only available on [6.0.0+].
272 * @param[out] out Bitmask of \ref HidNpadStyleTag.
273 */
275
276/**
277 * @brief Gets the \ref HidNpadInterfaceType for the specified controller.
278 * @note Only available on [10.0.0+].
279 * @param[in] id \ref HidNpadIdType
280 * @param[out] out \ref HidNpadInterfaceType
281 */
283
284/**
285 * @brief GetNpadLeftRightInterfaceType
286 * @note Only available on [10.0.0+].
287 * @param[in] id \ref HidNpadIdType
288 * @param[out] out0 \ref HidNpadInterfaceType
289 * @param[out] out1 \ref HidNpadInterfaceType
290 */
292
293/**
294 * @brief HasBattery
295 * @note Only available on [10.0.0+].
296 * @param[in] id \ref HidNpadIdType
297 * @param[out] out Output flag.
298 */
300
301/**
302 * @brief HasLeftRightBattery
303 * @note Only available on [10.0.0+].
304 * @param[in] id \ref HidNpadIdType
305 * @param[out] out0 Output flag.
306 * @param[out] out1 Output flag.
307 */
309
310/**
311 * @brief Gets the UniquePadIds for the specified controller.
312 * @note Only available on [3.0.0+].
313 * @param[in] id \ref HidNpadIdType
314 * @param[out] unique_pad_ids Output array of \ref HidsysUniquePadId.
315 * @param[in] count Max number of entries for the unique_pad_ids array.
316 * @param[out] total_out Total output array entries. Optional, can be NULL.
317 */
319
320/**
321 * @brief EnableAppletToGetInput
322 * @param[in] enable Input flag.
323**/
325
326/**
327 * @brief EnableHandheldHids
328**/
330
331/**
332 * @brief DisableHandheldHids
333**/
335
336/**
337 * @brief SetJoyConRailEnabled
338 * @note Only available on [9.0.0+].
339 * @param[in] enable Input flag.
340**/
342
343/**
344 * @brief IsJoyConRailEnabled
345 * @note Only available on [9.0.0+].
346 * @param[out] out Output flag.
347**/
349
350/**
351 * @brief IsHandheldHidsEnabled
352 * @note Only available on [10.0.0+].
353 * @param[out] out Output flag.
354**/
356
357/**
358 * @brief IsJoyConAttachedOnAllRail
359 * @note Only available on [11.0.0+].
360 * @param[out] out Output flag.
361**/
363
364/**
365 * @brief IsInvertedControllerConnectedOnRail
366 * @note Only available on [19.0.0+].
367 * @param[out] out Output flag.
368**/
370
371/**
372 * @brief AcquireUniquePadConnectionEventHandle
373 * @param[out] out_event Output Event.
374 */
376
377/**
378 * @brief Gets a list of all UniquePadIds.
379 * @param[out] unique_pad_ids Output array of \ref HidsysUniquePadId.
380 * @param[in] count Max number of entries for the unique_pad_ids array.
381 * @param[out] total_out Total output array entries. Optional, can be NULL.
382 */
383Result hidsysGetUniquePadIds(HidsysUniquePadId *unique_pad_ids, s32 count, s32 *total_out);
384
385/**
386 * @brief AcquireJoyDetachOnBluetoothOffEventHandle
387 * @param[out] out_event Output Event.
388 * @param[in] Event autoclear.
389 */
391
392/**
393 * @brief GetUniquePadBluetoothAddress
394 * @note Only available on [3.0.0+].
395 * @param[in] unique_pad_id \ref HidsysUniquePadId
396 * @param[out] address \ref BtdrvAddress
397 */
399
400/**
401 * @brief DisconnectUniquePad
402 * @note Only available on [3.0.0+].
403 * @param[in] unique_pad_id \ref HidsysUniquePadId
404 */
406
407/**
408 * @brief GetUniquePadType
409 * @note Only available on [5.0.0+].
410 * @param[in] unique_pad_id \ref HidsysUniquePadId
411 * @param[out] pad_type \ref HidsysUniquePadType
412 */
414
415/**
416 * @brief GetUniquePadInterface
417 * @note Only available on [5.0.0+].
418 * @param[in] unique_pad_id \ref HidsysUniquePadId
419 * @param[out] interface \ref HidNpadInterfaceType
420 */
422
423/**
424 * @brief Gets the \ref HidsysUniquePadSerialNumber.
425 * @note Only available on [5.0.0+].
426 * @param[in] unique_pad_id \ref HidsysUniquePadId
427 * @param[out] serial \ref HidsysUniquePadSerialNumber
428 */
430
431/**
432 * @brief GetUniquePadControllerNumber
433 * @note Only available on [5.0.0+].
434 * @param[in] unique_pad_id \ref HidsysUniquePadId
435 * @param[out] number Controller number.
436 */
438
439/**
440 * @brief Sets the HOME-button notification LED pattern, for the specified controller.
441 * @note Generally this should only be used if \ref hidsysSetNotificationLedPatternWithTimeout is not usable.
442 * @note Only available on [7.0.0+].
443 * @param[in] pattern \ref HidsysNotificationLedPattern
444 * @param[in] unique_pad_id \ref HidsysUniquePadId
445 */
447
448/**
449 * @brief Sets the HOME-button notification LED pattern, for the specified controller. The LED will automatically be disabled once the specified timeout occurs.
450 * @note Only available on [9.0.0+], and with controllers which have the [9.0.0+] firmware installed.
451 * @param[in] pattern \ref HidsysNotificationLedPattern
452 * @param[in] unique_pad_id \ref HidsysUniquePadId
453 * @param[in] timeout Timeout in nanoseconds.
454 */
456
457/**
458 * @brief IsUsbFullKeyControllerEnabled
459 * @note Only available on [3.0.0+].
460 * @param[out] out Output flag.
461 */
463
464/**
465 * @brief EnableUsbFullKeyController
466 * @note Only available on [3.0.0+].
467 * @param[in] flag Flag
468 */
470
471/**
472 * @brief IsUsbConnected
473 * @note Only available on [3.0.0+].
474 * @param[in] unique_pad_id \ref HidsysUniquePadId
475 * @param[out] out Output flag.
476 */
478
479/**
480 * @brief GetTouchScreenDefaultConfiguration
481 * @note Only available on [9.0.0+].
482 * @param[out] touch_screen_configuration \ref HidTouchScreenConfigurationForNx.
483 */
485
486/**
487 * @brief IsFirmwareUpdateNeededForNotification
488 * @note Only available on [9.0.0+].
489 * @param[in] unique_pad_id \ref HidsysUniquePadId
490 * @param[out] out Output flag.
491 */
493
494/**
495 * @brief Legacy IsButtonConfigSupported.
496 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysIsButtonConfigSupported instead.
497 * @param[in] unique_pad_id \ref HidsysUniquePadId
498 * @param[out] out Output bool flag.
499 */
501
502/**
503 * @brief IsButtonConfigSupported
504 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacyIsButtonConfigSupported instead.
505 * @param[in] addr \ref BtdrvAddress
506 * @param[out] out Output bool flag.
507 */
509
510/**
511 * @brief IsButtonConfigEmbeddedSupported
512 * @note Only available on [11.0.0-17.0.1].
513 * @param[out] out Output bool flag.
514 */
516
517/**
518 * @brief Legacy DeleteButtonConfig.
519 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysDeleteButtonConfig instead.
520 * @param[in] unique_pad_id \ref HidsysUniquePadId
521 */
523
524/**
525 * @brief DeleteButtonConfig
526 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacyDeleteButtonConfig instead.
527 * @param[in] addr \ref BtdrvAddress
528 */
530
531/**
532 * @brief DeleteButtonConfigEmbedded
533 * @note Only available on [11.0.0-17.0.1].
534 */
536
537/**
538 * @brief Legacy SetButtonConfigEnabled.
539 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysSetButtonConfigEnabled instead.
540 * @param[in] unique_pad_id \ref HidsysUniquePadId
541 * @param[in] flag Input flag.
542 */
544
545/**
546 * @brief SetButtonConfigEnabled
547 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacySetButtonConfigEnabled instead.
548 * @param[in] addr \ref BtdrvAddress
549 * @param[in] flag Input flag.
550 */
552
553/**
554 * @brief SetButtonConfigEmbeddedEnabled
555 * @note Only available on [11.0.0-17.0.1].
556 * @param[in] flag Input flag.
557 */
559
560/**
561 * @brief Legacy IsButtonConfigEnabled.
562 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysIsButtonConfigEnabled instead.
563 * @param[in] unique_pad_id \ref HidsysUniquePadId
564 * @param[out] out Output bool flag.
565 */
567
568/**
569 * @brief IsButtonConfigEnabled
570 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacyIsButtonConfigEnabled instead.
571 * @param[in] addr \ref BtdrvAddress
572 * @param[in] out Output bool flag.
573 */
575
576/**
577 * @brief IsButtonConfigEmbeddedEnabled
578 * @note Only available on [11.0.0-17.0.1].
579 * @param[out] out Output bool flag.
580 */
582
583/**
584 * @brief Legacy SetButtonConfigEmbedded.
585 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysSetButtonConfigEmbedded instead.
586 * @param[in] unique_pad_id \ref HidsysUniquePadId
587 * @param[in] config \ref HidsysButtonConfigEmbedded
588 */
590
591/**
592 * @brief SetButtonConfigEmbedded
593 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacySetButtonConfigEmbedded instead.
594 * @param[in] config \ref HidsysButtonConfigEmbedded
595 */
597
598/**
599 * @brief Legacy SetButtonConfigFull.
600 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysSetButtonConfigFull instead.
601 * @param[in] unique_pad_id \ref HidsysUniquePadId
602 * @param[in] config \ref HidsysButtonConfigFull
603 */
605
606/**
607 * @brief SetButtonConfigFull
608 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacySetButtonConfigFull instead.
609 * @param[in] addr \ref BtdrvAddress
610 * @param[in] config \ref HidsysButtonConfigFull
611 */
613
614/**
615 * @brief Legacy SetButtonConfigLeft.
616 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysSetButtonConfigLeft instead.
617 * @param[in] unique_pad_id \ref HidsysUniquePadId
618 * @param[in] config \ref HidsysButtonConfigLeft
619 */
621
622/**
623 * @brief SetButtonConfigLeft
624 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacySetButtonConfigLeft instead.
625 * @param[in] addr \ref BtdrvAddress
626 * @param[in] config \ref HidsysButtonConfigLeft
627 */
629
630/**
631 * @brief Legacy SetButtonConfigRight.
632 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysSetButtonConfigRight instead.
633 * @param[in] unique_pad_id \ref HidsysUniquePadId
634 * @param[in] config \ref HidsysButtonConfigRight
635 */
637
638/**
639 * @brief SetButtonConfigRight
640 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacySetButtonConfigRight instead.
641 * @param[in] addr \ref BtdrvAddress
642 * @param[in] config \ref HidsysButtonConfigRight
643 */
645
646/**
647 * @brief Legacy GetButtonConfigEmbedded.
648 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysGetButtonConfigEmbedded instead.
649 * @param[in] unique_pad_id \ref HidsysUniquePadId
650 * @param[out] config \ref HidsysButtonConfigEmbedded
651 */
653
654/**
655 * @brief GetButtonConfigEmbedded
656 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacyGetButtonConfigEmbedded instead.
657 * @param[out] config \ref HidsysButtonConfigEmbedded
658 */
660
661/**
662 * @brief Legacy GetButtonConfigFull.
663 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysGetButtonConfigFull instead.
664 * @param[in] unique_pad_id \ref HidsysUniquePadId
665 * @param[out] config \ref HidsysButtonConfigFull
666 */
668
669/**
670 * @brief GetButtonConfigFull
671 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacyGetButtonConfigFull instead.
672 * @param[in] addr \ref BtdrvAddress
673 * @param[out] config \ref HidsysButtonConfigFull
674 */
676
677/**
678 * @brief Legacy GetButtonConfigLeft.
679 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysGetButtonConfigLeft instead.
680 * @param[in] unique_pad_id \ref HidsysUniquePadId
681 * @param[out] config \ref HidsysButtonConfigLeft
682 */
684
685/**
686 * @brief GetButtonConfigLeft
687 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacyGetButtonConfigLeft instead.
688 * @param[in] addr \ref BtdrvAddress
689 * @param[out] config \ref HidsysButtonConfigLeft
690 */
692
693/**
694 * @brief Legacy GetButtonConfigRight.
695 * @note Only available on [10.0.0-10.2.0]. On [11.0.0-17.0.1], use \ref hidsysGetButtonConfigRight instead.
696 * @param[in] unique_pad_id \ref HidsysUniquePadId
697 * @param[out] config \ref HidsysButtonConfigRight
698 */
700
701/**
702 * @brief GetButtonConfigRight
703 * @note Only available on [11.0.0-17.0.1]. On [10.0.0-10.2.0], use \ref hidsysLegacyGetButtonConfigRight instead.
704 * @param[in] addr \ref BtdrvAddress
705 * @param[out] config \ref HidsysButtonConfigRight
706 */
708
709/**
710 * @brief IsCustomButtonConfigSupported
711 * @note Only available on [10.0.0+].
712 * @param[in] unique_pad_id \ref HidsysUniquePadId
713 * @param[out] out Output bool flag.
714 */
716
717/**
718 * @brief IsDefaultButtonConfigEmbedded
719 * @note Only available on [10.0.0+].
720 * @param[in] config \ref HidcfgButtonConfigEmbedded
721 * @param[out] out Output bool flag.
722 */
724
725/**
726 * @brief IsDefaultButtonConfigFull
727 * @note Only available on [10.0.0+].
728 * @param[in] config \ref HidcfgButtonConfigFull
729 * @param[out] out Output bool flag.
730 */
732
733/**
734 * @brief IsDefaultButtonConfigLeft
735 * @note Only available on [10.0.0+].
736 * @param[in] config \ref HidcfgButtonConfigLeft
737 * @param[out] out Output bool flag.
738 */
740
741/**
742 * @brief IsDefaultButtonConfigRight
743 * @note Only available on [10.0.0+].
744 * @param[in] config \ref HidcfgButtonConfigRight
745 * @param[out] out Output bool flag.
746 */
748
749/**
750 * @brief IsButtonConfigStorageEmbeddedEmpty
751 * @note Only available on [10.0.0+].
752 * @param[in] index Array index, should be 0-4.
753 * @param[out] out Output bool flag.
754 */
756
757/**
758 * @brief IsButtonConfigStorageFullEmpty
759 * @note Only available on [10.0.0+].
760 * @param[in] index Array index, should be 0-4.
761 * @param[out] out Output bool flag.
762 */
764
765/**
766 * @brief IsButtonConfigStorageLeftEmpty
767 * @note Only available on [10.0.0+].
768 * @param[in] index Array index, should be 0-4.
769 * @param[out] out Output bool flag.
770 */
772
773/**
774 * @brief IsButtonConfigStorageRightEmpty
775 * @note Only available on [10.0.0+].
776 * @param[in] index Array index, should be 0-4.
777 * @param[out] out Output bool flag.
778 */
780
781/**
782 * @brief GetButtonConfigStorageEmbeddedDeprecated
783 * @note Only available on [10.0.0-12.1.0].
784 * @param[in] index Array index, should be 0-4.
785 * @param[out] config \ref HidcfgButtonConfigEmbedded
786 */
788
789/**
790 * @brief GetButtonConfigStorageFullDeprecated
791 * @note Only available on [10.0.0-12.1.0].
792 * @param[in] index Array index, should be 0-4.
793 * @param[out] config \ref HidcfgButtonConfigFull
794 */
796
797/**
798 * @brief GetButtonConfigStorageLeftDeprecated
799 * @note Only available on [10.0.0-12.1.0].
800 * @param[in] index Array index, should be 0-4.
801 * @param[out] config \ref HidcfgButtonConfigLeft
802 */
804
805/**
806 * @brief GetButtonConfigStorageRightDeprecated
807 * @note Only available on [10.0.0-12.1.0].
808 * @param[in] index Array index, should be 0-4.
809 * @param[out] config \ref HidcfgButtonConfigRight
810 */
812
813/**
814 * @brief SetButtonConfigStorageEmbeddedDeprecated
815 * @note Only available on [10.0.0-12.1.0].
816 * @param[in] index Array index, should be 0-4.
817 * @param[in] config \ref HidcfgButtonConfigEmbedded
818 */
820
821/**
822 * @brief SetButtonConfigStorageFullDeprecated
823 * @note Only available on [10.0.0-12.1.0].
824 * @param[in] index Array index, should be 0-4.
825 * @param[in] config \ref HidcfgButtonConfigFull
826 */
828
829/**
830 * @brief SetButtonConfigStorageLeftDeprecated
831 * @note Only available on [10.0.0-12.1.0].
832 * @param[in] index Array index, should be 0-4.
833 * @param[in] config \ref HidcfgButtonConfigLeft
834 */
836
837/**
838 * @brief SetButtonConfigStorageRightDeprecated
839 * @note Only available on [10.0.0-12.1.0].
840 * @param[in] index Array index, should be 0-4.
841 * @param[in] config \ref HidcfgButtonConfigRight
842 */
844
845/**
846 * @brief DeleteButtonConfigStorageEmbedded
847 * @note Only available on [10.0.0+].
848 * @param[in] index Array index, should be 0-4.
849 */
851
852/**
853 * @brief DeleteButtonConfigStorageFull
854 * @note Only available on [10.0.0+].
855 * @param[in] index Array index, should be 0-4.
856 */
858
859/**
860 * @brief DeleteButtonConfigStorageLeft
861 * @note Only available on [10.0.0+].
862 * @param[in] index Array index, should be 0-4.
863 */
865
866/**
867 * @brief DeleteButtonConfigStorageRight
868 * @note Only available on [10.0.0+].
869 * @param[in] index Array index, should be 0-4.
870 */
872
873/**
874 * @brief IsUsingCustomButtonConfig
875 * @note Only available on [10.0.0+].
876 * @param[in] unique_pad_id \ref HidsysUniquePadId
877 * @param[out] out Output bool flag.
878 */
880
881/**
882 * @brief IsAnyCustomButtonConfigEnabled
883 * @note Only available on [10.0.0+].
884 * @param[out] out Output bool flag.
885 */
887
888/**
889 * @brief SetAllCustomButtonConfigEnabled
890 * @note Only available on [10.0.0+].
891 * @param[in] AppletResourceUserId AppletResourceUserId
892 * @param[in] flag Input bool flag.
893 */
894Result hidsysSetAllCustomButtonConfigEnabled(u64 AppletResourceUserId, bool flag);
895
896/**
897 * @brief SetAllDefaultButtonConfig
898 * @note Only available on [10.0.0+].
899 */
901
902/**
903 * @brief SetHidButtonConfigEmbedded
904 * @note Only available on [10.0.0+].
905 * @param[in] unique_pad_id \ref HidsysUniquePadId
906 * @param[in] config \ref HidcfgButtonConfigEmbedded
907 */
909
910/**
911 * @brief SetHidButtonConfigFull
912 * @note Only available on [10.0.0+].
913 * @param[in] unique_pad_id \ref HidsysUniquePadId
914 * @param[in] config \ref HidcfgButtonConfigFull
915 */
917
918/**
919 * @brief SetHidButtonConfigLeft
920 * @note Only available on [10.0.0+].
921 * @param[in] unique_pad_id \ref HidsysUniquePadId
922 * @param[in] config \ref HidcfgButtonConfigLeft
923 */
925
926/**
927 * @brief SetHidButtonConfigRight
928 * @note Only available on [10.0.0+].
929 * @param[in] unique_pad_id \ref HidsysUniquePadId
930 * @param[in] config \ref HidcfgButtonConfigRight
931 */
933
934/**
935 * @brief GetHidButtonConfigEmbedded
936 * @note Only available on [10.0.0+].
937 * @param[in] unique_pad_id \ref HidsysUniquePadId
938 * @param[out] config \ref HidcfgButtonConfigEmbedded
939 */
941
942/**
943 * @brief GetHidButtonConfigFull
944 * @note Only available on [10.0.0+].
945 * @param[in] unique_pad_id \ref HidsysUniquePadId
946 * @param[out] config \ref HidcfgButtonConfigFull
947 */
949
950/**
951 * @brief GetHidButtonConfigLeft
952 * @note Only available on [10.0.0+].
953 * @param[in] unique_pad_id \ref HidsysUniquePadId
954 * @param[out] config \ref HidcfgButtonConfigLeft
955 */
957
958/**
959 * @brief GetHidButtonConfigRight
960 * @note Only available on [10.0.0+].
961 * @param[in] unique_pad_id \ref HidsysUniquePadId
962 * @param[out] config \ref HidcfgButtonConfigRight
963 */
965
966/**
967 * @brief GetButtonConfigStorageEmbedded
968 * @note Only available on [11.0.0+].
969 * @param[in] index Array index, should be 0-4.
970 * @param[out] config \ref HidcfgButtonConfigEmbedded
971 * @param[out] name \ref HidcfgStorageName
972 */
974
975/**
976 * @brief GetButtonConfigStorageFull
977 * @note Only available on [11.0.0+].
978 * @param[in] index Array index, should be 0-4.
979 * @param[out] config \ref HidcfgButtonConfigFull
980 * @param[out] name \ref HidcfgStorageName
981 */
983
984/**
985 * @brief GetButtonConfigStorageLeft
986 * @note Only available on [11.0.0+].
987 * @param[in] index Array index, should be 0-4.
988 * @param[out] config \ref HidcfgButtonConfigLeft
989 * @param[out] name \ref HidcfgStorageName
990 */
992
993/**
994 * @brief GetButtonConfigStorageRight
995 * @note Only available on [11.0.0+].
996 * @param[in] index Array index, should be 0-4.
997 * @param[out] config \ref HidcfgButtonConfigRight
998 * @param[out] name \ref HidcfgStorageName
999 */
1001
1002/**
1003 * @brief SetButtonConfigStorageEmbedded
1004 * @note Only available on [11.0.0+].
1005 * @param[in] index Array index, should be 0-4.
1006 * @param[in] config \ref HidcfgButtonConfigEmbedded
1007 * @param[in] name \ref HidcfgStorageName
1008 */
1010
1011/**
1012 * @brief SetButtonConfigStorageFull
1013 * @note Only available on [11.0.0+].
1014 * @param[in] index Array index, should be 0-4.
1015 * @param[in] config \ref HidcfgButtonConfigFull
1016 * @param[in] name \ref HidcfgStorageName
1017 */
1019
1020/**
1021 * @brief SetButtonConfigStorageLeft
1022 * @note Only available on [11.0.0+].
1023 * @param[in] index Array index, should be 0-4.
1024 * @param[in] config \ref HidcfgButtonConfigLeft
1025 * @param[in] name \ref HidcfgStorageName
1026 */
1028
1029/**
1030 * @brief SetButtonConfigStorageRight
1031 * @note Only available on [11.0.0+].
1032 * @param[in] index Array index, should be 0-4.
1033 * @param[in] config \ref HidcfgButtonConfigRight
1034 * @param[in] name \ref HidcfgStorageName
1035 */
HidNpadInterfaceType
NpadInterfaceType (system)
Definition hid.h:477
HidNpadIdType
HID controller IDs.
Definition hid.h:214
Result hidsysLegacyDeleteButtonConfig(HidsysUniquePadId unique_pad_id)
Legacy DeleteButtonConfig.
Result hidsysIsJoyConRailEnabled(bool *out)
IsJoyConRailEnabled.
Result hidsysSetButtonConfigStorageLeftDeprecated(s32 index, const HidcfgButtonConfigLeft *config)
SetButtonConfigStorageLeftDeprecated.
Result hidsysIsButtonConfigStorageEmbeddedEmpty(s32 index, bool *out)
IsButtonConfigStorageEmbeddedEmpty.
Result hidsysInitialize(void)
Initialize hidsys.
Result hidsysDeleteButtonConfigStorageEmbedded(s32 index)
DeleteButtonConfigStorageEmbedded.
Result hidsysGetButtonConfigStorageFull(s32 index, HidcfgButtonConfigFull *config, HidcfgStorageName *name)
GetButtonConfigStorageFull.
Result hidsysLegacyIsButtonConfigSupported(HidsysUniquePadId unique_pad_id, bool *out)
Legacy IsButtonConfigSupported.
Result hidsysEnableAppletToGetInput(bool enable)
EnableAppletToGetInput.
Result hidsysIsButtonConfigStorageRightEmpty(s32 index, bool *out)
IsButtonConfigStorageRightEmpty.
Result hidsysGetHidButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigEmbedded *config)
GetHidButtonConfigEmbedded.
Result hidsysLegacySetButtonConfigFull(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigFull *config)
Legacy SetButtonConfigFull.
Result hidsysLegacySetButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigEmbedded *config)
Legacy SetButtonConfigEmbedded.
Result hidsysSendKeyboardLockKeyEvent(u32 events)
SendKeyboardLockKeyEvent.
Result hidsysGetUniquePadIds(HidsysUniquePadId *unique_pad_ids, s32 count, s32 *total_out)
Gets a list of all UniquePadIds.
Result hidsysGetButtonConfigStorageRightDeprecated(s32 index, HidcfgButtonConfigRight *config)
GetButtonConfigStorageRightDeprecated.
Result hidsysGetNpadInterfaceType(HidNpadIdType id, u8 *out)
Gets the HidNpadInterfaceType for the specified controller.
Result hidsysLegacySetButtonConfigEnabled(HidsysUniquePadId unique_pad_id, bool flag)
Legacy SetButtonConfigEnabled.
Result hidsysIsFirmwareUpdateNeededForNotification(HidsysUniquePadId unique_pad_id, bool *out)
IsFirmwareUpdateNeededForNotification.
Result hidsysDeleteButtonConfigStorageFull(s32 index)
DeleteButtonConfigStorageFull.
Result hidsysGetButtonConfigEmbedded(HidsysButtonConfigEmbedded *config)
GetButtonConfigEmbedded.
Result hidsysSetButtonConfigStorageLeft(s32 index, const HidcfgButtonConfigLeft *config, const HidcfgStorageName *name)
SetButtonConfigStorageLeft.
Result hidsysIsInvertedControllerConnectedOnRail(bool *out)
IsInvertedControllerConnectedOnRail.
Result hidsysSetNotificationLedPatternWithTimeout(const HidsysNotificationLedPattern *pattern, HidsysUniquePadId unique_pad_id, u64 timeout)
Sets the HOME-button notification LED pattern, for the specified controller.
Result hidsysSetButtonConfigLeft(BtdrvAddress addr, const HidsysButtonConfigLeft *config)
SetButtonConfigLeft.
Result hidsysSetButtonConfigStorageRight(s32 index, const HidcfgButtonConfigRight *config, const HidcfgStorageName *name)
SetButtonConfigStorageRight.
void hidsysExit(void)
Exit hidsys.
Result hidsysIsUsingCustomButtonConfig(HidsysUniquePadId unique_pad_id, bool *out)
IsUsingCustomButtonConfig.
Result hidsysIsButtonConfigEmbeddedSupported(bool *out)
IsButtonConfigEmbeddedSupported.
Result hidsysSetButtonConfigEnabled(BtdrvAddress addr, bool flag)
SetButtonConfigEnabled.
Result hidsysIsHandheldHidsEnabled(bool *out)
IsHandheldHidsEnabled.
Result hidsysSetButtonConfigStorageFullDeprecated(s32 index, const HidcfgButtonConfigFull *config)
SetButtonConfigStorageFullDeprecated.
Result hidsysActivateSleepButton(void)
Activates the SleepButton sharedmem.
Result hidsysGetSupportedNpadStyleSetOfCallerApplet(u32 *out)
Gets the SupportedNpadStyleSet for the CallerApplet.
HidcfgAnalogStickRotation
AnalogStickRotation.
Definition hidsys.h:41
@ HidcfgAnalogStickRotation_Anticlockwise90
Anticlockwise90.
Definition hidsys.h:44
@ HidcfgAnalogStickRotation_None
None.
Definition hidsys.h:42
@ HidcfgAnalogStickRotation_Clockwise90
Clockwise90.
Definition hidsys.h:43
Result hidsysSetAllCustomButtonConfigEnabled(u64 AppletResourceUserId, bool flag)
SetAllCustomButtonConfigEnabled.
Result hidsysLegacyGetButtonConfigRight(HidsysUniquePadId unique_pad_id, HidsysButtonConfigRight *config)
Legacy GetButtonConfigRight.
Result hidsysIsButtonConfigEnabled(BtdrvAddress addr, bool *out)
IsButtonConfigEnabled.
Result hidsysGetButtonConfigStorageRight(s32 index, HidcfgButtonConfigRight *config, HidcfgStorageName *name)
GetButtonConfigStorageRight.
Result hidsysGetButtonConfigRight(BtdrvAddress addr, HidsysButtonConfigRight *config)
GetButtonConfigRight.
Result hidsysSetButtonConfigStorageRightDeprecated(s32 index, const HidcfgButtonConfigRight *config)
SetButtonConfigStorageRightDeprecated.
Result hidsysDeleteButtonConfigStorageLeft(s32 index)
DeleteButtonConfigStorageLeft.
Result hidsysSetButtonConfigStorageEmbedded(s32 index, const HidcfgButtonConfigEmbedded *config, const HidcfgStorageName *name)
SetButtonConfigStorageEmbedded.
Result hidsysGetNpadLeftRightInterfaceType(HidNpadIdType id, u8 *out0, u8 *out1)
GetNpadLeftRightInterfaceType.
Result hidsysIsUsbFullKeyControllerEnabled(bool *out)
IsUsbFullKeyControllerEnabled.
Result hidsysEnableUsbFullKeyController(bool flag)
EnableUsbFullKeyController.
Result hidsysActivateCaptureButton(void)
Activates the CaptureButton sharedmem.
Result hidsysDisconnectUniquePad(HidsysUniquePadId unique_pad_id)
DisconnectUniquePad.
Result hidsysSetHidButtonConfigLeft(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigLeft *config)
SetHidButtonConfigLeft.
Result hidsysGetButtonConfigStorageFullDeprecated(s32 index, HidcfgButtonConfigFull *config)
GetButtonConfigStorageFullDeprecated.
Result hidsysIsAnyCustomButtonConfigEnabled(bool *out)
IsAnyCustomButtonConfigEnabled.
Result hidsysAcquireHomeButtonEventHandle(Event *out_event, bool autoclear)
Gets an Event which is signaled when HidHomeButtonState is updated.
Result hidsysSetButtonConfigStorageEmbeddedDeprecated(s32 index, const HidcfgButtonConfigEmbedded *config)
SetButtonConfigStorageEmbeddedDeprecated.
Result hidsysEnableHandheldHids(void)
EnableHandheldHids.
Result hidsysActivateHomeButton(void)
Activates the HomeButton sharedmem.
Result hidsysGetButtonConfigLeft(BtdrvAddress addr, HidsysButtonConfigLeft *config)
GetButtonConfigLeft.
Result hidsysAcquireUniquePadConnectionEventHandle(Event *out_event)
AcquireUniquePadConnectionEventHandle.
Result hidsysGetUniquePadBluetoothAddress(HidsysUniquePadId unique_pad_id, BtdrvAddress *address)
GetUniquePadBluetoothAddress.
Result hidsysIsJoyConAttachedOnAllRail(bool *out)
IsJoyConAttachedOnAllRail.
Result hidsysLegacySetButtonConfigLeft(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigLeft *config)
Legacy SetButtonConfigLeft.
Result hidsysIsButtonConfigStorageFullEmpty(s32 index, bool *out)
IsButtonConfigStorageFullEmpty.
Result hidsysGetUniquePadsFromNpad(HidNpadIdType id, HidsysUniquePadId *unique_pad_ids, s32 count, s32 *total_out)
Gets the UniquePadIds for the specified controller.
Result hidsysDeleteButtonConfigStorageRight(s32 index)
DeleteButtonConfigStorageRight.
Result hidsysHasLeftRightBattery(HidNpadIdType id, bool *out0, bool *out1)
HasLeftRightBattery.
Result hidsysSetButtonConfigStorageFull(s32 index, const HidcfgButtonConfigFull *config, const HidcfgStorageName *name)
SetButtonConfigStorageFull.
Result hidsysAcquireSleepButtonEventHandle(Event *out_event, bool autoclear)
Gets an Event which is signaled when HidSleepButtonState is updated.
Result hidsysIsCustomButtonConfigSupported(HidsysUniquePadId unique_pad_id, bool *out)
IsCustomButtonConfigSupported.
Result hidsysSetNotificationLedPattern(const HidsysNotificationLedPattern *pattern, HidsysUniquePadId unique_pad_id)
Sets the HOME-button notification LED pattern, for the specified controller.
Result hidsysSetAllDefaultButtonConfig(void)
SetAllDefaultButtonConfig.
Result hidsysGetButtonConfigStorageEmbeddedDeprecated(s32 index, HidcfgButtonConfigEmbedded *config)
GetButtonConfigStorageEmbeddedDeprecated.
Result hidsysGetTouchScreenDefaultConfiguration(HidTouchScreenConfigurationForNx *touch_screen_configuration)
GetTouchScreenDefaultConfiguration.
Result hidsysSetButtonConfigEmbeddedEnabled(bool flag)
SetButtonConfigEmbeddedEnabled.
HidsysUniquePadType
UniquePadType.
Definition hidsys.h:48
@ HidsysUniquePadType_Embedded
Embedded.
Definition hidsys.h:49
@ HidsysUniquePadType_FullKeyController
FullKeyController.
Definition hidsys.h:50
@ HidsysUniquePadType_LeftController
LeftController.
Definition hidsys.h:52
@ HidsysUniquePadType_RightController
RightController.
Definition hidsys.h:51
@ HidsysUniquePadType_DebugPadController
DebugPadController.
Definition hidsys.h:53
Result hidsysDisableHandheldHids(void)
DisableHandheldHids.
Result hidsysGetUniquePadInterface(HidsysUniquePadId unique_pad_id, HidNpadInterfaceType *interface)
GetUniquePadInterface.
Result hidsysGetUniquePadType(HidsysUniquePadId unique_pad_id, HidsysUniquePadType *pad_type)
GetUniquePadType.
Result hidsysIsUsbConnected(HidsysUniquePadId unique_pad_id, bool *out)
IsUsbConnected.
Service * hidsysGetServiceSession(void)
Gets the Service object for the actual hidsys service session.
Result hidsysGetHidButtonConfigFull(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigFull *config)
GetHidButtonConfigFull.
Result hidsysIsDefaultButtonConfigFull(const HidcfgButtonConfigFull *config, bool *out)
IsDefaultButtonConfigFull.
Result hidsysHasBattery(HidNpadIdType id, bool *out)
HasBattery.
Result hidsysIsDefaultButtonConfigLeft(const HidcfgButtonConfigLeft *config, bool *out)
IsDefaultButtonConfigLeft.
Result hidsysLegacySetButtonConfigRight(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigRight *config)
Legacy SetButtonConfigRight.
Result hidsysDeleteButtonConfigEmbedded(void)
DeleteButtonConfigEmbedded.
Result hidsysSetJoyConRailEnabled(bool enable)
SetJoyConRailEnabled.
Result hidsysGetHidButtonConfigLeft(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigLeft *config)
GetHidButtonConfigLeft.
HidcfgDigitalButtonAssignment
Selects what button to map to.
Definition hidsys.h:14
@ HidcfgDigitalButtonAssignment_StickL
Left Stick Button.
Definition hidsys.h:19
@ HidcfgDigitalButtonAssignment_RightSR
SR on Right controller.
Definition hidsys.h:34
@ HidcfgDigitalButtonAssignment_HomeButton
HomeButton.
Definition hidsys.h:35
@ HidcfgDigitalButtonAssignment_Y
Y.
Definition hidsys.h:18
@ HidcfgDigitalButtonAssignment_Down
Down.
Definition hidsys.h:30
@ HidcfgDigitalButtonAssignment_X
X.
Definition hidsys.h:17
@ HidcfgDigitalButtonAssignment_Up
Up.
Definition hidsys.h:28
@ HidcfgDigitalButtonAssignment_LeftSR
SR on Left controller.
Definition hidsys.h:32
@ HidcfgDigitalButtonAssignment_B
B.
Definition hidsys.h:16
@ HidcfgDigitalButtonAssignment_CaptureButton
CaptureButton.
Definition hidsys.h:36
@ HidcfgDigitalButtonAssignment_L
L.
Definition hidsys.h:21
@ HidcfgDigitalButtonAssignment_ZL
ZL.
Definition hidsys.h:23
@ HidcfgDigitalButtonAssignment_Start
Start / Plus.
Definition hidsys.h:26
@ HidcfgDigitalButtonAssignment_LeftSL
SL on Left controller.
Definition hidsys.h:31
@ HidcfgDigitalButtonAssignment_A
A.
Definition hidsys.h:15
@ HidcfgDigitalButtonAssignment_RightSL
SL on Right controller.
Definition hidsys.h:33
@ HidcfgDigitalButtonAssignment_StickR
Right Stick Button.
Definition hidsys.h:20
@ HidcfgDigitalButtonAssignment_Invalid
Invalid / Disabled.
Definition hidsys.h:37
@ HidcfgDigitalButtonAssignment_Left
Left.
Definition hidsys.h:27
@ HidcfgDigitalButtonAssignment_Select
Select / Minus.
Definition hidsys.h:25
@ HidcfgDigitalButtonAssignment_Right
Right.
Definition hidsys.h:29
@ HidcfgDigitalButtonAssignment_R
R.
Definition hidsys.h:22
@ HidcfgDigitalButtonAssignment_ZR
ZR.
Definition hidsys.h:24
Result hidsysAcquireCaptureButtonEventHandle(Event *out_event, bool autoclear)
Gets an Event which is signaled when HidCaptureButtonState is updated.
Result hidsysSetHidButtonConfigRight(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigRight *config)
SetHidButtonConfigRight.
Result hidsysAcquireJoyDetachOnBluetoothOffEventHandle(Event *out_event, bool autoclear)
AcquireJoyDetachOnBluetoothOffEventHandle.
Result hidsysGetButtonConfigStorageEmbedded(s32 index, HidcfgButtonConfigEmbedded *config, HidcfgStorageName *name)
GetButtonConfigStorageEmbedded.
Result hidsysSetButtonConfigRight(BtdrvAddress addr, const HidsysButtonConfigRight *config)
SetButtonConfigRight.
Result hidsysIsDefaultButtonConfigRight(const HidcfgButtonConfigRight *config, bool *out)
IsDefaultButtonConfigRight.
Result hidsysDeleteButtonConfig(BtdrvAddress addr)
DeleteButtonConfig.
Result hidsysIsButtonConfigStorageLeftEmpty(s32 index, bool *out)
IsButtonConfigStorageLeftEmpty.
Result hidsysApplyNpadSystemCommonPolicy(void)
Applies npad system common policy.
Result hidsysLegacyIsButtonConfigEnabled(HidsysUniquePadId unique_pad_id, bool *out)
Legacy IsButtonConfigEnabled.
Result hidsysGetHidButtonConfigRight(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigRight *config)
GetHidButtonConfigRight.
Result hidsysSetButtonConfigFull(BtdrvAddress addr, const HidsysButtonConfigFull *config)
SetButtonConfigFull.
Result hidsysLegacyGetButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, HidsysButtonConfigEmbedded *config)
Legacy GetButtonConfigEmbedded.
Result hidsysLegacyGetButtonConfigLeft(HidsysUniquePadId unique_pad_id, HidsysButtonConfigLeft *config)
Legacy GetButtonConfigLeft.
Result hidsysGetButtonConfigStorageLeftDeprecated(s32 index, HidcfgButtonConfigLeft *config)
GetButtonConfigStorageLeftDeprecated.
Result hidsysGetButtonConfigFull(BtdrvAddress addr, HidsysButtonConfigFull *config)
GetButtonConfigFull.
Result hidsysSetHidButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigEmbedded *config)
SetHidButtonConfigEmbedded.
Result hidsysLegacyGetButtonConfigFull(HidsysUniquePadId unique_pad_id, HidsysButtonConfigFull *config)
Legacy GetButtonConfigFull.
Result hidsysIsButtonConfigSupported(BtdrvAddress addr, bool *out)
IsButtonConfigSupported.
Result hidsysIsDefaultButtonConfigEmbedded(const HidcfgButtonConfigEmbedded *config, bool *out)
IsDefaultButtonConfigEmbedded.
Result hidsysGetUniquePadControllerNumber(HidsysUniquePadId unique_pad_id, u64 *number)
GetUniquePadControllerNumber.
Result hidsysSetButtonConfigEmbedded(const HidsysButtonConfigEmbedded *config)
SetButtonConfigEmbedded.
Result hidsysSetHidButtonConfigFull(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigFull *config)
SetHidButtonConfigFull.
Result hidsysGetButtonConfigStorageLeft(s32 index, HidcfgButtonConfigLeft *config, HidcfgStorageName *name)
GetButtonConfigStorageLeft.
Result hidsysGetUniquePadSerialNumber(HidsysUniquePadId unique_pad_id, HidsysUniquePadSerialNumber *serial)
Gets the HidsysUniquePadSerialNumber.
Result hidsysIsButtonConfigEmbeddedEnabled(bool *out)
IsButtonConfigEmbeddedEnabled.
Result hidsysGetLastActiveNpad(u32 *out)
Gets the npad id type of the last controller that was active.
Address.
Definition btdrv_types.h:245
Kernel-mode event structure.
Definition event.h:13
HidTouchScreenConfigurationForNx.
Definition hid.h:687
AnalogStickAssignment.
Definition hidsys.h:110
u32 rotation
HidcfgAnalogStickRotation
Definition hidsys.h:111
u8 is_paired_stick_assigned
IsPairedStickAssigned.
Definition hidsys.h:112
ButtonConfigEmbedded.
Definition hidsys.h:117
u32 hardware_button_zr
HidcfgDigitalButtonAssignment HardwareButtonZR
Definition hidsys.h:131
u32 hardware_button_up
HidcfgDigitalButtonAssignment HardwareButtonUp
Definition hidsys.h:119
u32 hardware_button_l
HidcfgDigitalButtonAssignment HardwareButtonL
Definition hidsys.h:128
u32 hardware_button_select
HidcfgDigitalButtonAssignment HardwareButtonSelect
Definition hidsys.h:132
u32 hardware_button_b
HidcfgDigitalButtonAssignment HardwareButtonB
Definition hidsys.h:123
u32 hardware_button_y
HidcfgDigitalButtonAssignment HardwareButtonY
Definition hidsys.h:125
HidcfgAnalogStickAssignment hardware_stick_l
HardwareStickL.
Definition hidsys.h:135
u32 hardware_button_down
HidcfgDigitalButtonAssignment HardwareButtonDown
Definition hidsys.h:121
u32 hardware_button_left
HidcfgDigitalButtonAssignment HardwareButtonLeft
Definition hidsys.h:118
u32 hardware_button_a
HidcfgDigitalButtonAssignment HardwareButtonA
Definition hidsys.h:122
u32 hardware_button_stick_r
HidcfgDigitalButtonAssignment HardwareButtonStickR
Definition hidsys.h:127
u32 hardware_button_capture
HidcfgDigitalButtonAssignment HardwareButtonCapture
Definition hidsys.h:134
u32 hardware_button_r
HidcfgDigitalButtonAssignment HardwareButtonR
Definition hidsys.h:129
u32 hardware_button_x
HidcfgDigitalButtonAssignment HardwareButtonX
Definition hidsys.h:124
u32 hardware_button_start
HidcfgDigitalButtonAssignment HardwareButtonStart
Definition hidsys.h:133
u32 hardware_button_right
HidcfgDigitalButtonAssignment HardwareButtonRight
Definition hidsys.h:120
u32 hardware_button_zl
HidcfgDigitalButtonAssignment HardwareButtonZL
Definition hidsys.h:130
u32 hardware_button_stick_l
HidcfgDigitalButtonAssignment HardwareButtonStickL
Definition hidsys.h:126
HidcfgAnalogStickAssignment hardware_stick_r
HardwareStickR.
Definition hidsys.h:136
ButtonConfigFull.
Definition hidsys.h:140
u32 hardware_button_stick_r
HidcfgDigitalButtonAssignment HardwareButtonStickR
Definition hidsys.h:150
u32 hardware_button_l
HidcfgDigitalButtonAssignment HardwareButtonL
Definition hidsys.h:151
HidcfgAnalogStickAssignment hardware_stick_l
HardwareStickL.
Definition hidsys.h:158
u32 hardware_button_zl
HidcfgDigitalButtonAssignment HardwareButtonZL
Definition hidsys.h:153
u32 hardware_button_x
HidcfgDigitalButtonAssignment HardwareButtonX
Definition hidsys.h:147
u32 hardware_button_r
HidcfgDigitalButtonAssignment HardwareButtonR
Definition hidsys.h:152
u32 hardware_button_capture
HidcfgDigitalButtonAssignment HardwareButtonCapture
Definition hidsys.h:157
u32 hardware_button_up
HidcfgDigitalButtonAssignment HardwareButtonUp
Definition hidsys.h:142
u32 hardware_button_select
HidcfgDigitalButtonAssignment HardwareButtonSelect
Definition hidsys.h:155
u32 hardware_button_stick_l
HidcfgDigitalButtonAssignment HardwareButtonStickL
Definition hidsys.h:149
u32 hardware_button_b
HidcfgDigitalButtonAssignment HardwareButtonB
Definition hidsys.h:146
u32 hardware_button_right
HidcfgDigitalButtonAssignment HardwareButtonRight
Definition hidsys.h:143
u32 hardware_button_down
HidcfgDigitalButtonAssignment HardwareButtonDown
Definition hidsys.h:144
u32 hardware_button_left
HidcfgDigitalButtonAssignment HardwareButtonLeft
Definition hidsys.h:141
u32 hardware_button_zr
HidcfgDigitalButtonAssignment HardwareButtonZR
Definition hidsys.h:154
HidcfgAnalogStickAssignment hardware_stick_r
HardwareStickR.
Definition hidsys.h:159
u32 hardware_button_a
HidcfgDigitalButtonAssignment HardwareButtonA
Definition hidsys.h:145
u32 hardware_button_y
HidcfgDigitalButtonAssignment HardwareButtonY
Definition hidsys.h:148
u32 hardware_button_start
HidcfgDigitalButtonAssignment HardwareButtonStart
Definition hidsys.h:156
ButtonConfigLeft.
Definition hidsys.h:163
u32 hardware_button_left
HidcfgDigitalButtonAssignment HardwareButtonLeft
Definition hidsys.h:164
u32 hardware_button_l
HidcfgDigitalButtonAssignment HardwareButtonL
Definition hidsys.h:169
HidcfgAnalogStickAssignment hardware_stick_l
HardwareStickL.
Definition hidsys.h:175
u32 hardware_button_down
HidcfgDigitalButtonAssignment HardwareButtonDown
Definition hidsys.h:167
u32 hardware_button_left_sl
HidcfgDigitalButtonAssignment HardwareButtonLeftSL
Definition hidsys.h:172
u32 hardware_button_up
HidcfgDigitalButtonAssignment HardwareButtonUp
Definition hidsys.h:165
u32 hardware_button_stick_l
HidcfgDigitalButtonAssignment HardwareButtonStickL
Definition hidsys.h:168
u32 hardware_button_select
HidcfgDigitalButtonAssignment HardwareButtonSelect
Definition hidsys.h:171
u32 hardware_button_left_sr
HidcfgDigitalButtonAssignment HardwareButtonLeftSR
Definition hidsys.h:173
u32 hardware_button_capture
HidcfgDigitalButtonAssignment HardwareButtonCapture
Definition hidsys.h:174
u32 hardware_button_zl
HidcfgDigitalButtonAssignment HardwareButtonZL
Definition hidsys.h:170
u32 hardware_button_right
HidcfgDigitalButtonAssignment HardwareButtonRight
Definition hidsys.h:166
ButtonConfigRight.
Definition hidsys.h:179
u32 hardware_button_r
HidcfgDigitalButtonAssignment HardwareButtonR
Definition hidsys.h:185
u32 hardware_button_right_sl
HidcfgDigitalButtonAssignment HardwareButtonRightSL
Definition hidsys.h:188
u32 hardware_button_start
HidcfgDigitalButtonAssignment HardwareButtonStart
Definition hidsys.h:187
u32 hardware_button_a
HidcfgDigitalButtonAssignment HardwareButtonA
Definition hidsys.h:180
u32 hardware_button_stick_r
HidcfgDigitalButtonAssignment HardwareButtonStickR
Definition hidsys.h:184
u32 hardware_button_x
HidcfgDigitalButtonAssignment HardwareButtonX
Definition hidsys.h:182
u32 hardware_button_y
HidcfgDigitalButtonAssignment HardwareButtonY
Definition hidsys.h:183
u32 hardware_button_b
HidcfgDigitalButtonAssignment HardwareButtonB
Definition hidsys.h:181
u32 hardware_button_right_sr
HidcfgDigitalButtonAssignment HardwareButtonRightSR
Definition hidsys.h:189
u32 hardware_button_zr
HidcfgDigitalButtonAssignment HardwareButtonZR
Definition hidsys.h:186
HidcfgAnalogStickAssignment hardware_stick_r
HardwareStickR.
Definition hidsys.h:190
StorageName.
Definition hidsys.h:194
ButtonConfigEmbedded.
Definition hidsys.h:90
ButtonConfigFull.
Definition hidsys.h:95
ButtonConfigLeft.
Definition hidsys.h:100
ButtonConfigRight.
Definition hidsys.h:105
Mini Cycle struct for HidsysNotificationLedPattern.
Definition hidsys.h:67
u8 transitionSteps
Fading Transition Steps to Mini Cycle X (Uses PWM). Value 0x0: Instant. Each step duration is based o...
Definition hidsys.h:69
u8 finalStepDuration
Final Step Duration Multiplier of Mini Cycle X. Value 0x0: 12.5ms, 0x1 - xF: 1x - 15x....
Definition hidsys.h:70
u8 ledIntensity
Mini Cycle X LED Intensity.
Definition hidsys.h:68
Structure for hidsysSetNotificationLedPattern.
Definition hidsys.h:77
u8 totalFullCycles
Number of Full Cycles. Value 0x1-0xF: 1 - 15 full cycles. Value 0x0 is repeat forever,...
Definition hidsys.h:80
u8 startIntensity
LED Start Intensity. Value 0x0=0% - 0xF=100%.
Definition hidsys.h:81
u8 totalMiniCycles
Number of Mini Cycles + 1. Value 0x0-0xF: 1 - 16 mini cycles.
Definition hidsys.h:79
u8 baseMiniCycleDuration
Mini Cycle Base Duration. Value 0x1-0xF: 12.5ms - 187.5ms. Value 0x0 = 0ms/OFF.
Definition hidsys.h:78
UniquePadId for a controller.
Definition hidsys.h:57
u64 id
UniquePadId.
Definition hidsys.h:58
UniquePadSerialNumber.
Definition hidsys.h:62
Service object structure.
Definition service.h:14
uint64_t u64
64-bit unsigned integer.
Definition types.h:22
uint8_t u8
8-bit unsigned integer.
Definition types.h:19
u32 Result
Function error code result type.
Definition types.h:44
int32_t s32
32-bit signed integer.
Definition types.h:27
uint32_t u32
32-bit unsigned integer.
Definition types.h:21