quakeforge/ruamoko/include/input.h
Bill Currie dcd1fa28ba [ruamoko] Get the input bindings working
With some hacks that are not included (plan on handling events and
contexts properly), button inputs, including using listeners, are
working nicely: my little game is working again. While the trampoline
code was a bit repetitive (and I do want to clean that up), connecting
button listeners directly to Ruamoko instance methods proved to be quite
nice.
2021-12-24 06:45:13 +09:00

41 lines
1.7 KiB
C

#ifndef __ruamoko_input_h
#define __ruamoko_input_h
#include <QF/input.h>
struct plitem_s;
void IN_LoadConfig (struct plitem_s *config);
in_button_t *IN_CreateButton (string name, string description);
in_axis_t *IN_CreateAxis (string name, string description);
int IN_FindDeviceId (string _id);
string IN_GetDeviceName (int devid);
string IN_GetDeviceId (int devid);
//IN_AxisInfo ();
//IN_ButtonInfo ();
string IN_GetAxisName (int devid, int axis);
string IN_GetButtonName (int devid, int axis);
int IN_GetAxisNumber (int devid, string axis);
int IN_GetButtonNumber (int devid, string axis);
void IN_ProcessEvents (void);
void IN_ClearStates (void);
int IN_GetAxisInfo (int devid, int axis, in_axisinfo_t *info);
int IN_GetButtonInfo (int devid, int button, in_buttoninfo_t *info);
typedef void (*button_listener_t) (void *data, in_button_t *button);//FIXME const
@overload void IN_ButtonAddListener (in_button_t *button,
button_listener_t listener, void *data);
@overload void IN_ButtonRemoveListener (in_button_t *button,
button_listener_t listener,
void *data);
typedef void (*axis_listener_t) (void *data, in_axis_t *axis);//FIXME const
@overload void IN_AxisAddListener (in_axis_t *axis, axis_listener_t listener,
void *data);
@overload void IN_AxisRemoveListener (in_axis_t *axis,
axis_listener_t listener, void *data);
@overload void IN_ButtonAddListener (in_button_t *button, IMP listener,
id obj);
@overload void IN_ButtonRemoveListener (in_button_t *button, IMP listener,
id obj);
@overload void IN_AxisAddListener (in_axis_t *axis, IMP listener, id obj);
@overload void IN_AxisRemoveListener (in_axis_t *axis, IMP listener, id obj);
#endif//__ruamoko_input_h