#ifndef SDL_sysjoystick_c_h_
#define SDL_sysjoystick_c_h_
#include <linux/input.h>
struct SDL_joylist_item;
struct SDL_sensorlist_item;
struct joystick_hwdata
{
int fd;
int fd_sensor;
struct SDL_joylist_item *item;
struct SDL_sensorlist_item *item_sensor;
SDL_GUID guid;
char *fname;
bool ff_rumble;
bool ff_sine;
struct ff_effect effect;
Uint32 effect_expiration;
struct hwdata_ball
{
int axis[2];
} *balls;
struct hwdata_hat
{
int axis[2];
} *hats;
Uint8 key_map[KEY_MAX];
Uint8 abs_map[ABS_MAX];
bool has_key[KEY_MAX];
bool has_abs[ABS_MAX];
bool has_accelerometer;
bool has_gyro;
bool classic;
Uint16 *key_pam;
Uint8 *abs_pam;
struct axis_correct
{
bool use_deadzones;
int coef[3];
int minimum;
int maximum;
float scale;
} abs_correct[ABS_MAX];
float accelerometer_scale[3];
float gyro_scale[3];
float gyro_data[3];
float accel_data[3];
Uint64 sensor_tick;
Sint32 last_tick;
bool report_sensor;
bool fresh;
bool recovering_from_dropped;
bool recovering_from_dropped_sensor;
bool m_bSteamController;
int hats_indices[4];
bool has_hat[4];
struct hat_axis_correct
{
bool use_deadzones;
int minimum[2];
int maximum[2];
} hat_correct[4];
bool gone;
bool sensor_gone;
};
#endif