* 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>
		
			
				
	
	
		
			41 lines
		
	
	
		
			997 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			41 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 */
 |