aboutsummaryrefslogtreecommitdiff
path: root/src/3ds/input.c
diff options
context:
space:
mode:
authorptitSeb2017-11-30 22:49:38 +0100
committerptitSeb2017-11-30 22:49:38 +0100
commitde29b11a88dbdd3af0824e59b51528b91ee73c54 (patch)
treee1aabf8752043998663279fae4359a18c4b4af07 /src/3ds/input.c
parentd87f450f51372ddf013e6bac09f1ef588e6f8bea (diff)
downloadhydracastlelabyrinth-de29b11a88dbdd3af0824e59b51528b91ee73c54.tar.gz
hydracastlelabyrinth-de29b11a88dbdd3af0824e59b51528b91ee73c54.tar.bz2
hydracastlelabyrinth-de29b11a88dbdd3af0824e59b51528b91ee73c54.zip
First commit. Version works on Linux (keyboard only, not configurable)
Diffstat (limited to 'src/3ds/input.c')
-rw-r--r--src/3ds/input.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/3ds/input.c b/src/3ds/input.c
new file mode 100644
index 0000000..0d99b24
--- /dev/null
+++ b/src/3ds/input.c
@@ -0,0 +1,56 @@
+#include "input.h"
+
+void updateKey(Button* btn, int state);
+
+void PHL_ScanInput()
+{
+ hidScanInput();
+ u32 kDown = hidKeysHeld();
+
+ updateKey(&btnUp, kDown & KEY_UP);
+ updateKey(&btnDown, kDown & KEY_DOWN);
+ updateKey(&btnLeft, kDown & KEY_LEFT);
+ updateKey(&btnRight, kDown & KEY_RIGHT);
+
+ updateKey(&btnStart, kDown & KEY_START);
+ updateKey(&btnSelect, kDown & KEY_SELECT);
+
+ updateKey(&btnFaceRight, kDown & KEY_A);
+ updateKey(&btnFaceDown, kDown & KEY_B);
+ updateKey(&btnFaceLeft, kDown & KEY_Y);
+
+ updateKey(&btnL, kDown & KEY_L);
+ updateKey(&btnR, kDown & KEY_R);
+
+ updateKey(&btnAccept, kDown & KEY_A);
+ updateKey(&btnDecline, kDown & KEY_B);
+ /*
+ //Start button
+ if (kDown & KEY_START) {
+ btnStart.pressed = 1;
+ }else{
+ btnStart.pressed = 0;
+ }
+ */
+}
+
+void updateKey(Button* btn, int state)
+{
+ if (state) {
+ if (btn->held == 1) {
+ btn->pressed = 0;
+ }else{
+ btn->pressed = 1;
+ }
+ btn->held = 1;
+ btn->released = 0;
+ }else{
+ if (btn->held == 1) {
+ btn->released = 1;
+ }else{
+ btn->released = 0;
+ }
+ btn->held = 0;
+ btn->pressed = 0;
+ }
+} \ No newline at end of file