2022-08-04 11:40:24 +08:00

40 lines
606 B
C

/*
* This code is part of libctru (https://github.com/devkitPro/libctru)
*/
#include "types.h"
#include "mem_map.h"
#define HID_REGS_BASE (IO_MEM_ARM9_ARM11 + 0x46000)
#define REG_HID_PAD (*((vu16*)(HID_REGS_BASE + 0x0)) ^ 0xFFFFu)
#define REG_HID_PADCNT *((vu16*)(HID_REGS_BASE + 0x2))
static u32 g_kHeld, g_kDown, g_kUp;
void hidScanInput(void)
{
u32 kOld = g_kHeld;
g_kHeld = REG_HID_PAD;
g_kDown = (~kOld) & g_kHeld;
g_kUp = kOld & (~g_kHeld);
}
u32 hidKeysHeld(void)
{
return g_kHeld;
}
u32 hidKeysDown(void)
{
return g_kDown;
}
u32 hidKeysUp(void)
{
return g_kUp;
}