#ifndef JOYHELP_H_INCLUDED
#define JOYHELP_H_INCLUDED

// OSLib
#include "oslib/os.h"
//#include "oslib/osfind.h"
//#include "oslib/osgbpb.h"
//#include "oslib/osbyte.h"
//#include "oslib/devicefs.h"
//#include "oslib/resourcefs.h"

extern const uint32_t supported_axes_usage[];
extern const char *axes_names[];

struct hid_item *get_axis_item_by_type(uint32_t i, uint32_t type);
osbool stick_has_axis_type(struct joydata_struct *j, uint32_t type);
struct joydata_struct *get_stick(uint32_t id);
struct axisdata_struct *get_stick_axis(struct joydata_struct *j, uint32_t type);
struct joydata_struct *get_stick(uint32_t id);

// this was static
struct hid_item *itemdup(struct hid_item *s);

uint32_t next_available_joystick_index(void);
void clean_joystick_data(void);
void clean_joystick_data_item(uint32_t i);

int32_t round_up_down(float n);

#endif
