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_ */