hidKeysAll-

This commit is contained in:
Gabriel 2019-12-11 19:09:35 -08:00
parent 2f7d9bf026
commit e0630fceb1
2 changed files with 41 additions and 0 deletions

View File

@ -736,6 +736,10 @@ u64 hidKeysHeld(HidControllerID id);
u64 hidKeysDown(HidControllerID id); u64 hidKeysDown(HidControllerID id);
u64 hidKeysUp(HidControllerID id); u64 hidKeysUp(HidControllerID id);
u64 hidKeysAllHeld();
u64 hidKeysAllDown();
u64 hidKeysUp();
u64 hidMouseButtonsHeld(void); u64 hidMouseButtonsHeld(void);
u64 hidMouseButtonsDown(void); u64 hidMouseButtonsDown(void);
u64 hidMouseButtonsUp(void); u64 hidMouseButtonsUp(void);

View File

@ -244,6 +244,7 @@ void hidScanInput(void) {
if ((s64)(newInputEntry->timestamp - g_controllerTimestamps[i]) >= 0) { if ((s64)(newInputEntry->timestamp - g_controllerTimestamps[i]) >= 0) {
memcpy(&g_controllerEntries[i], newInputEntry, sizeof(HidControllerInputEntry)); memcpy(&g_controllerEntries[i], newInputEntry, sizeof(HidControllerInputEntry));
g_controllerTimestamps[i] = newInputEntry->timestamp; g_controllerTimestamps[i] = newInputEntry->timestamp;
g_controllerTimestamps[i] = newInputEntry->timestamp;
g_controllerHeld[i] |= g_controllerEntries[i].buttons; g_controllerHeld[i] |= g_controllerEntries[i].buttons;
} }
@ -427,6 +428,42 @@ u64 hidKeysUp(HidControllerID id) {
return tmp; return tmp;
} }
u64 hidKeysAllDown() {
u64 kDown = 0;
rwlockReadLock(&g_hidLock);
for (u8 controller=0; controller<10; controller++) {
kDown |= g_controllerDown[controller];
}
rwlockReadUnlock(&g_hidLock);
return kDown;
}
u64 hidKeysAllUp() {
u64 kDown = 0;
rwlockReadLock(&g_hidLock);
for (u8 controller=0; controller<10; controller++) {
kDown |= g_controllerUp[controller];
}
rwlockReadUnlock(&g_hidLock);
return kDown;
}
u64 hidKeysAllHeld() {
u64 kDown = 0;
rwlockReadLock(&g_hidLock);
for (u8 controller=0; controller<10; controller++) {
kDown |= g_controllerHeld[controller];
}
rwlockReadUnlock(&g_hidLock);
return kDown;
}
u64 hidMouseButtonsHeld(void) { u64 hidMouseButtonsHeld(void) {
rwlockReadLock(&g_hidLock); rwlockReadLock(&g_hidLock);
u64 tmp = g_mouseHeld; u64 tmp = g_mouseHeld;