-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathwii_ec_nunchuck.h
53 lines (43 loc) · 1.53 KB
/
wii_ec_nunchuck.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#ifndef WII_EC_NUNCHUCK_H_
#define WII_EC_NUNCHUCK_H_
#include <stdint.h>
#include <stdbool.h>
//-----------------------------------------------------------------------------
// Controllers which have calibration must have their calibratable controls here
//! Is there a better way to get the start of the decode struct to match the calibration struct ?
#define NUNCHUCK_ANALOGUE \
uint8_t joyX, joyY; \
uint16_t accX, accY, accZ;
//-----------------------------------------------------------------------------
// Calibratable controls
//
typedef
struct ecCalNunchuck {
NUNCHUCK_ANALOGUE
}
ecCalNunchuck_t;
//-----------------------------------------------------------------------------
// All controls
//
typedef
struct ecDecNunchuck {
NUNCHUCK_ANALOGUE // MUST be first
// Digital controls
bool btnC, btnZ; // BTN{c, z}
}
ecDecNunchuck_t;
#undef NUNCHUCK_ANALOGUE
//=============================================================================
// Function prototypes
//
#include <gui/gui.h> // Canvas
typedef struct wiiEC wiiEC_t ;
typedef enum ecCalib ecCalib_t ;
typedef struct state state_t ;
typedef struct eventMsg eventMsg_t ;
void nunchuck_decode (wiiEC_t* const pec) ;
void nunchuck_msg (wiiEC_t* const pec, FuriMessageQueue* const queue) ;
void nunchuck_calib (wiiEC_t* const pec, ecCalib_t c) ;
void nunchuck_show (Canvas* const canvas, state_t* const state) ;
bool nunchuck_key (const eventMsg_t* const msg, state_t* const state) ;
#endif //WII_EC_NUNCHUCK_H_