megadrive_test2

view src/pad.h @ 11:302bcd73edc4

added 6button support
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 24 Jun 2017 03:47:37 +0300
parents 6ecf2f3ff05a
children
line source
1 #ifndef PAD_H_
2 #define PAD_H_
4 #include "io.h"
6 uint16_t pad_bnstate[2], pad_prev_bnstate[2], pad_bndiff[2];
7 char pad_6bn;
9 static inline void pad_update(int pad)
10 {
11 pad_prev_bnstate[pad] = pad_bnstate[pad];
12 pad_bnstate[pad] = pad_6bn ? io_readpad6(pad) : io_readpad(pad);
13 pad_bndiff[pad] = pad_bnstate[pad] ^ pad_prev_bnstate[pad];
14 }
16 static inline int pad_pressed(int pad, uint16_t mask)
17 {
18 return (pad_bnstate[pad] & mask & pad_bndiff[pad]) != 0;
19 }
21 static inline int pad_released(int pad, uint16_t mask)
22 {
23 return (~pad_bnstate[pad] & mask & pad_bndiff[pad]) != 0;
24 }
26 static inline uint16_t pad_getstate(int pad)
27 {
28 return pad_bnstate[pad];
29 }
31 #endif /* PAD_H_ */