mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-12-30 06:33:07 +00:00
8c36d65e63
* Add input driver and definitions for target_f2 * Add input_dump example * Invert charge input * Fix back and left button configuration * remove input debug * input testing case * move header * lint code Co-authored-by: aanper <mail@s3f.ru>
40 lines
997 B
C
40 lines
997 B
C
#ifndef __INPUT_H
|
|
#define __INPUT_H
|
|
|
|
#include <stdbool.h>
|
|
|
|
#define INPUT_COUNT 7
|
|
|
|
typedef enum {
|
|
InputUp = 0,
|
|
InputDown,
|
|
InputRight,
|
|
InputLeft,
|
|
InputOk,
|
|
InputBack,
|
|
InputCharging,
|
|
} Input;
|
|
|
|
typedef struct {
|
|
Input input;
|
|
bool state;
|
|
} InputEvent;
|
|
|
|
typedef struct {
|
|
bool up : 1;
|
|
bool down : 1;
|
|
bool right : 1;
|
|
bool left : 1;
|
|
bool ok : 1;
|
|
bool back : 1;
|
|
bool charging : 1;
|
|
} __attribute__((packed)) InputState;
|
|
|
|
#define _BITS2STATE(bits) \
|
|
{ \
|
|
.up = (((bits)&0x01) != 0), .down = (((bits)&0x02) != 0), .right = (((bits)&0x04) != 0), \
|
|
.left = (((bits)&0x08) != 0), .ok = (((bits)&0x10) != 0), .back = (((bits)&0x20) != 0), \
|
|
.charging = (((bits)&0x40) != 0) \
|
|
}
|
|
|
|
#endif /* __INPUT_H */
|