3ds_tests/docs/hid.md
2024-09-25 00:39:51 +02:00

1.5 KiB

hid.h

Self-explanatory lol

BASE

Result hidInit(void);

Inilialize HID.

void hidExit(void);

Exit HID.

void hidScanInput(void);

Check the status of each button. Must be called before hidKeys*().

BUTTONS

u32 hidKeys*(void);

Test a certain condition and return a u32 containing the boolean state for each button. (TODO visual) Use hidKey*() & KEY_* to have the boolean value for a specific button.

  • u32 hidKeysHeld(); True if the key is currently pressed.
  • u32 hidKeysDown(); True if the key has just been pressed. (TODO not only once?)
  • u32 hidKeysDownRepeat(); TODO
  • u32 hidKeysUp(); True if the key has just been released.

KEY_*

Simple buttons:

  • KEY_{A|B|X|Y}: A/B/X/Y buttons.
  • KEY_{SELECT|START}: Select/Start buttons.
  • KEY_{L|R}: L/R buttons. Directions:
  • KEY_D{RIGHT|LEFT|UP|DOWN}: D-Pad directions.
  • KEY_CPAD_{RIGHT|LEFT|UP|DOWN}: Circle Pad directions.
  • KEY_{UP|DOWN|LEFT|RIGHT}: Catch Circle Pad and D-Pad at the same time. New 3DS only:
  • KEY_{ZL|ZR}: ZL/ZR buttons (New 3DS only)
  • KEY_CSTICK{RIGHT|LEFT|UP|DOWN}: C-Stick directions (New 3DS only) Uh?
  • KEY_TOUCH: (Not implemented? TODO)

TOUCH SCREEN

void hidTouchRead(touchPosition *dest);

Read the current touch position.

typedef touchPosition;

typedef struct {
    u16 px;
    u16 py;
} touchPosition;

TOUCH SCREEN

void hidCircleRead(circlePosition *dest);

Read the current circle pad position.

typedef circlePosition;

typedef struct {
    u16 dx;
    u16 dy;
} circlePosition;