File syn_joystick.h¶
File List > input > syn_joystick.h
Go to the documentation of this file
#ifndef SYN_JOYSTICK_H
#define SYN_JOYSTICK_H
#include "../common/syn_defs.h"
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
SYN_JOYSTICK_DIR_CENTER = 0,
SYN_JOYSTICK_DIR_UP = 1,
SYN_JOYSTICK_DIR_UP_RIGHT = 2,
SYN_JOYSTICK_DIR_RIGHT = 3,
SYN_JOYSTICK_DIR_DOWN_RIGHT = 4,
SYN_JOYSTICK_DIR_DOWN = 5,
SYN_JOYSTICK_DIR_DOWN_LEFT = 6,
SYN_JOYSTICK_DIR_LEFT = 7,
SYN_JOYSTICK_DIR_UP_LEFT = 8
} SYN_JoystickDir;
typedef struct {
uint16_t center_x;
uint16_t center_y;
uint16_t adc_max;
uint16_t deadband;
int16_t current_x_pct;
int16_t current_y_pct;
SYN_JoystickDir dir;
bool button_pressed;
} SYN_Joystick;
SYN_Status syn_joystick_init(SYN_Joystick *joy, uint16_t center_x, uint16_t center_y,
uint16_t adc_max, uint16_t deadband);
void syn_joystick_feed_adc(SYN_Joystick *joy, uint16_t raw_x, uint16_t raw_y, bool btn);
int16_t syn_joystick_get_x_pct(const SYN_Joystick *joy);
int16_t syn_joystick_get_y_pct(const SYN_Joystick *joy);
SYN_JoystickDir syn_joystick_get_dir(const SYN_Joystick *joy);
#ifdef __cplusplus
}
#endif
#endif /* SYN_JOYSTICK_H */