joystick_sethandler, joystick_setdefaulthandler − set the joystick event handler.
#include <vgajoystick.h>
typedef void (*__joystick_handler) (int event, int number, char value, int joydev);
void joystick_sethandler(int joydev, __joystick_handler jh);
void joystick_setdefaulthandler(int joydev);
By default, each call to joystick_init(3) enables the default handler for the opened joystick. This handler maintains a state table which can be read by the joystick_getaxis(3), joystick_getbutton(3), joystick_button1|2|3|4(3), joystick_getb1|2|3|4(3), joystick_x|y|z(3) and joystick_getx|y|z(3) functions.
If you define an own handler, the following parameters are passed:
event |
one of the following values: |
JOY_EVENTBUTTONDOWN |
a button was pressed. |
|||
JOY_EVENTBUTTONUP |
a button was released. |
|||
JOY_EVENTAXIS |
the joystick position was changed.
All other values are reserved for future use.
number |
identifies the button or axis to which this event belongs. |
|
value |
for axis events the new position in range -128 .. 127.See joystick_getaxis(3) for further comments on the range. |
|
joydev |
identifies the joystick affected (this allows to use one handler for many joysticks). |
joydev = -1 modifies the event handler of all currently open joystick devices.
This function is only available in ELF versions of svgalib. Due to backwards compatibility issues it cannot be used with shared a.out libs.
svgalib(7), vgagl(7), libvga.config(5), joytest(6), mjoytest(6), joystick_init(3), joystick_close(3), joystick_update(3), joystick_getnumaxes(3), joystick_getnumbuttons(3), joystick_getaxis(3), joystick_getbutton(3), joystick_button1(3), joystick_getb1(3), joystick_x(3), joystick_getx(3).
The svgalib joystick handler was mostly done by Daniel Engstr\"om <daniel DOT engstrom AT riksnett DOT no>. Multiple joystick, VC switching support and code to glue it into svgalib by Michael Weller <eowmob AT exp-math DOT uni-essen DOT de>. Part of the code is based on code from C. Smith and Vojtech Pavlik.