#ifndef WII_EC_NUNCHUCK_H_ #define WII_EC_NUNCHUCK_H_ #include #include //----------------------------------------------------------------------------- // 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 // 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_