reman3/Rayman_X/cpa/public/INO/Joystick.h

598 lines
26 KiB
C

/******************************************************************************
Joystick.h : Definition of structures and Macros
Author : JENTEY F.
Last update : 06/03/97
******************************************************************************/
#ifndef _INO_JOYSTICK_H
#define _INO_JOYSTICK_H
#ifndef u_short
#define u_short unsigned short
#endif
#ifndef u_long
#define u_long unsigned long
#endif
/**************************************/
#ifndef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
#endif
/**************************************/
/**************************************************************************
All functions return a short value that should be compared with the
following ones.
***************************************************************************/
#define C_wJoyError 32767
#define C_wJoyTrue 32766
#define C_wJoyFalse 32765
/**************************************************************************
Define the joystick type.
***************************************************************************/
#define C_wJoyNone 1
#define C_wJoyTypeJoystick 2
#define C_wJoyTypePad 3
#define C_wJoyTypeVolant 4
/**************************************************************************
Define the executing mode of the device.
***************************************************************************/
#define C_wJoyNormalMode 0
#define C_wJoyDemoRecordingMode 1
#define C_wJoyDemoPlayingMode 2
/**************************************************************************
Define the fn_wJoyReadJoystick mode.
***************************************************************************/
#define C_wJoyReadAll 0
#define C_wJoyReadConnected 1
/**************************************************************************
These constants can be used with the wJoystickNum parameter of functions.
***************************************************************************/
#define C_wJoystick1 0
#define C_wJoystick2 1
#define C_wJoystick3 2
#define C_wJoystick4 3
#define C_wJoystick5 4
#define C_wJoystick6 5
#define C_wJoystick7 6
#define C_wJoystick8 7
#define C_wJoystick9 8
#define C_wJoystick10 9
#define C_wJoystick11 10
#define C_wJoystick12 11
#define C_wJoystick13 12
#define C_wJoystick14 13
#define C_wJoystick15 14
#define C_wJoystick16 15
/**************************************************************************
These constants can be used with the ulButtonFlag parameter of functions
***************************************************************************/
#define C_ulButtonFlag1 1
#define C_ulButtonFlag2 1 << 1
#define C_ulButtonFlag3 1 << 2
#define C_ulButtonFlag4 1 << 3
#define C_ulButtonFlag5 1 << 4
#define C_ulButtonFlag6 1 << 5
#define C_ulButtonFlag7 1 << 6
#define C_ulButtonFlag8 1 << 7
#define C_ulButtonFlag9 1 << 8
#define C_ulButtonFlag10 1 << 9
#define C_ulButtonFlag11 1 << 10
#define C_ulButtonFlag12 1 << 11
#define C_ulButtonFlag13 1 << 12
#define C_ulButtonFlag14 1 << 13
#define C_ulButtonFlag15 1 << 14
#define C_ulButtonFlag16 1 << 15
#define C_ulButtonFlag17 1 << 16
#define C_ulButtonFlag18 1 << 17
#define C_ulButtonFlag19 1 << 18
#define C_ulButtonFlag20 1 << 19
#define C_ulButtonFlag21 1 << 20
#define C_ulButtonFlag22 1 << 21
#define C_ulButtonFlag23 1 << 22
#define C_ulButtonFlag24 1 << 23
#define C_ulButtonFlag25 1 << 24
#define C_ulButtonFlag26 1 << 25
#define C_ulButtonFlag27 1 << 26
#define C_ulButtonFlag28 1 << 27
#define C_ulButtonFlag29 1 << 28
#define C_ulButtonFlag30 1 << 29
#define C_ulButtonFlag31 1 << 30
#define C_ulButtonFlag32 1 << 31
#define C_ulButtonAll 0xFFFFFFFF
/**************************************************************************
Joystick capabilities flags
***************************************************************************/
#define C_ulJoyX 1
#define C_ulJoyY 1 << 1
#define C_ulJoyZ 1 << 2
#define C_ulJoyR 1 << 3
#define C_ulJoyU 1 << 4
#define C_ulJoyV 1 << 5
#define C_ulJoyDiscretPOV 1 << 6
#define C_ulJoyContinuousPOV 1 << 7
/**************************************************************************
Joystick directions flags
***************************************************************************/
#define C_ulJoyLeft 1
#define C_ulJoyRight 1 << 1
#define C_ulJoyUp 1 << 2
#define C_ulJoyDown 1 << 3
#define C_ulJoyZUp 1 << 4
#define C_ulJoyZDown 1 << 5
#define C_ulJoyPOVCentered 1 << 6
#define C_ulJoyPOVLeft 1 << 7
#define C_ulJoyPOVRight 1 << 8
#define C_ulJoyPOVForward 1 << 9
#define C_ulJoyPOVBackward 1 << 10
/**************************************************************************
Joystick error code
***************************************************************************/
#define C_FirstErrorJoystick 0x1000
#define C_ErrNoJoystickDriver ( C_FirstErrorJoystick + 0 )
#define C_ErrDriverNotInitialized ( C_FirstErrorJoystick + 1 )
#define C_ErrJoystickNotActive ( C_FirstErrorJoystick + 2 )
#define C_ErrFeatureNotAvailable ( C_FirstErrorJoystick + 3 )
#define C_ErrBadButtonFlag ( C_FirstErrorJoystick + 4 )
#define C_ErrBadJoystick ( C_FirstErrorJoystick + 5 )
#define C_ErrNotInJoyRecordingMode ( C_FirstErrorJoystick + 6 )
#define C_ErrNotInJoyNormalMode ( C_FirstErrorJoystick + 7 )
#define C_ErrNotInJoyPlayingMode ( C_FirstErrorJoystick + 7 )
#define C_ErrJoyBadFileFormat ( C_FirstErrorJoystick + 9 )
#define C_ErrJoyDemoFileError ( C_FirstErrorJoystick + 10 )
#define C_ErrJoyHistoricOverflow ( C_FirstErrorJoystick + 11 )
#define C_ErrJoystickNotAllocated ( C_FirstErrorJoystick + 12 )
#define C_ErrJoystickNotConfigured ( C_FirstErrorJoystick + 13 )
#define C_ErrNoJoystickAvailable ( C_FirstErrorJoystick + 14 )
#define C_ErrAlreadyAllocated ( C_FirstErrorJoystick + 15 )
#define C_ErrMemoryError ( C_FirstErrorJoystick + 16 )
/******************************************************************************
All functions return a short type value that must be compared with the
C_wJoyError to check if the function success. You can then read the error
code with the error management functions.
******************************************************************************/
#if defined(__cplusplus)
extern "C"
{
/******************************************************************************
Joystick configuration functions.
******************************************************************************/
/*
This function must be called one time when the game is launched. The
parameter HistorySize is the number of previous status conserve.
*/
/*CPA_EXPORT short INO_fn_wInitGamePort(short wHistorySize);*/
/*
Reinitialization of the joysticks. The history is clear and it check if
configuration has changed (new joysticks are connected).
*/
CPA_EXPORT short INO_fn_wResetGamePort(void);
/*
This function free memory and release joystick ressource.
*/
CPA_EXPORT short INO_fn_wFreeGamePort(void);
/*
Check if there is a gameport driver.
Return C_wJoyTrue or C_wJoyFalse
*/
CPA_EXPORT short INO_fn_wUpdateGamePort(void);
/*
Try to allocate a joystick.
If ok return a handle to the joystick
*/
CPA_EXPORT short INO_fn_wAllocJoystick(short wJoystickNum);
/*
Returns the id ( C_wJoystick'n' ) of the first connected joystick.
*/
CPA_EXPORT short INO_fn_wAllocFirstJoystickAvailable(void);
/*
fn_wJoyFreeJoystick.
*/
CPA_EXPORT short INO_fn_wFreeJoystick(short wJoystickNum);
/*
Update the specified joystick capabilities and state.
*/
CPA_EXPORT short INO_fn_wUpdateJoystick(short wJoystickNum);
/*
This function return the maximum joystick number supported by the driver.
*/
CPA_EXPORT short INO_fn_wGetMaximumJoystickNumber(void);
/*
This function checks if the specified joystick is connected.
The result can be C_wJoyTrue, C_wJoyFalse or C_wJoyError.
*/
CPA_EXPORT short INO_fn_wIsJoystickConnected(short wJoystickNum);
/*
fn_wJoyIsAllocated
*/
CPA_EXPORT short INO_fn_wIsJoystickAllocated(short wJoystickNum);
/*
Set the type of joystick
*/
CPA_EXPORT short INO_fn_wSetJoystickType(short wJoystickNum, short wType);
/*
Get the type of joystick
*/
CPA_EXPORT short INO_fn_wGetJoystickType(short wJoystickNum);
/*
This function returns the number of buttons of the specified joystick.
*/
CPA_EXPORT short INO_fn_wGetJoystickButtonNumber(short wJoystickNum);
/*
Number of direction axis of the specified joystick.
*/
CPA_EXPORT short INO_fn_wGetJoystickAxisNumber(short wJoystickNum);
/*
This function filled the ulFlagInfo parameter with the capabilities flags
(defined in this file) of the specified joystick.
*/
CPA_EXPORT short INO_fn_wGetJoystickMovmentCaps(short wJoystickNum, u_long *p_ulFlagInfo);
/*
This function sets the joystick extra features (like z-axis) the fn_JoyReadJoystick
muist update. The ulFlagInfo parameter is a combinaisson of the capabilities flags.
*/
CPA_EXPORT short INO_fn_wSetJoystickActiveCaps(u_long ulCapsFlag);
/*****************************************************************
Demo mode function support
*****************************************************************/
/*
With this function, you can define the exit demo button for the
specified joystick. You can select several button by a combinaison
the C_ulButtonFlag'n' value, or all button with C_ulButtonAll.
Default is none.
For the joystick you are recording, you shouldn't specified a
button that is used in the game.
*/
CPA_EXPORT short INO_fn_wSetStopRecordingJoystickButton(short wJoystickNum, u_long ulButtonFlag);
/*
This function define the joystick to record. Default is
C_wJoystick1.
*/
CPA_EXPORT short INO_fn_wSetJoystickToRecord(short wJoystickNum);
/*
This function start the demo recording mode.
*/
CPA_EXPORT short INO_fn_wStartRecordingJoystick(char *p_szFileName, short wDemoSize);
/*
This function quit the demo recording mode.
*/
CPA_EXPORT short INO_fn_wStopRecordingJoystick(void);
/*
This function return the number of frame of the demo sequence.
*/
CPA_EXPORT u_long INO_fn_ulGetJoystickDemoFrameCount(void);
/*
This function start the demo playing mode with the given file sequence.
*/
CPA_EXPORT short INO_fn_wStartJoystickDemo(char *p_szFileName);
/*
This function quit the demo playing mode.
You quit the demo playing mode automatically when you push a joystick button.
But you also can associate this function to a key stroke for example.
*/
CPA_EXPORT short INO_fn_wStopJoystickDemo(void);
/*
This function return the current joystick mode.(normal,demo
recording or demo playing).
*/
CPA_EXPORT short INO_fn_wGetJoystickCurrentMode(void);
/******************************************************************************
This section defines the query functions.
******************************************************************************/
/*
This function must be called at regular interval, for example each VBL.
Update the informations about active joysticks.
wReadMode indicates if you wanted to read all allocated joystick (C_wJoyReadAll)
,(useful to test if joystick are plugged, unplugged.
or only plugged joystick (C_wJoyReadConnected).
*/
CPA_EXPORT short INO_fn_wReadJoystick(short wReadMode);
/*
Set a connected joystick as Active. By default, only the first joystick is
active.
*/
CPA_EXPORT short INO_fn_wAddActiveJoystick(short wJoystickNum);
/*
Remove a joystick from the active joystick list.
*/
CPA_EXPORT short INO_fn_wRemoveActiveJoystick(short wJoystickNum);
/*
The 10 following functions check the current directions for the
specified joystick. The result must be check with C_wJoyTrue, C_wJoyFlase
or C_wJoyError.
*/
CPA_EXPORT short INO_fn_wIsJoystickLeft(short wJoystickNum);
CPA_EXPORT short INO_fn_wIsJoystickRight(short wJoystickNum);
CPA_EXPORT short INO_fn_wIsJoystickUp(short wJoystickNum);
CPA_EXPORT short INO_fn_wIsJoystickDown(short wJoystickNum);
CPA_EXPORT short INO_fn_wIsJoystickZUp(short wJoystickNum);
CPA_EXPORT short INO_fn_wIsJoystickZDown(short wJoystickNum);
CPA_EXPORT short INO_fn_wJoystickJustLeft(short wJoystickNum);
CPA_EXPORT short INO_fn_wJoystickJustRight(short wJoystickNum);
CPA_EXPORT short INO_fn_wJoystickJustUp(short wJoystickNum);
CPA_EXPORT short INO_fn_wJoystickJustDown(short wJoystickNum);
/*
Return the current position of the joystick along the specified axis
The return value is a double contained between -1.0 to 1.0
*/
CPA_EXPORT short INO_fn_wGetJoystickCurrentPosition(short wJoystickNum, short wAxis, double *pdfPosition);
/*
This function test the buttons of th specified joystick. If several
buttons are specified, the result is true if all selected buttons
are pressed.
*/
CPA_EXPORT short INO_fn_wIsJoystickButtonPressed(short wJoystickNum, u_long ulButtonFlag);
CPA_EXPORT short INO_fn_wJoystickButtonJustPressed(short wJoystickNum, u_long ulButtonFlag);
CPA_EXPORT short INO_fn_wJoystickButtonJustReleased(short wJoystickNum, u_long ulButtonFlag);
CPA_EXPORT short INO_fn_wGetJoystickCurrentButton(short wJoystickNum, u_long *p_ulButtonFlag);
/*
The next 2 functions fill the second parameter with the current direction
flags or current pressed button flags of the selected joystick.
*/
CPA_EXPORT short INO_fn_wGetJoystickCurrentDirection(short wJoystickNum, u_long *p_ulDirectionFlag);
CPA_EXPORT short INO_fn_wJoystickDirectionJustReleased(short wJoystickNum, u_long ulDirectionFlag);
/*
The following functions check a previous direction or button status for the
specified joystick. The result must be check with C_wJoyTrue, C_wJoyFlase
or C_wJoyError.
*/
CPA_EXPORT short INO_fn_wWasJoystickLeft(short wJoystickNum, short wHistoryNum);
CPA_EXPORT short INO_fn_wWasJoystickRight(short wJoystickNum, short wHistoryNum);
CPA_EXPORT short INO_fn_wWasJoystickUp(short wJoystickNum, short wHistoryNum);
CPA_EXPORT short INO_fn_wWasJoystickDown(short wJoystickNum, short wHistoryNum);
CPA_EXPORT short INO_fn_wWasJoystickZUp(short wJoystickNum, short wHistoryNum);
CPA_EXPORT short INO_fn_wWasJoystickZDown(short wJoystickNum, short wHistoryNum);
/*
This function test the buttons of the specified joystick. If several
buttons are specified, the result is true if all selected buttons
were pressed.
*/
CPA_EXPORT short INO_fn_wWasJoystickButtonPressed(short wJoystickNum, u_long ulButtonFlag, short wHistoryNum);
/*
The next 2 functions fill the third parameter with the current direction
flags or current pressed button flags of the selected joystick.
*/
CPA_EXPORT short INO_fn_wGetJoystickPreviousDirection(short wJoystickNum, short wHistoryNum, u_long *p_ulDirectionFlag);
CPA_EXPORT short INO_fn_wGetJoystickPreviousButton(short wJoystickNum, short wHistoryNum, u_long *p_ulButtonFlag);
/*
Return the position of the joystick in a previous state along the specified axis
The return value is a double contained between -1.0 to 1.0
*/
CPA_EXPORT short INO_fn_wGetJoystickPreviousPosition(short wJoystickNum, short wAxis, short wHistoryNum, double *pdfPosition);
/*
If not C_wJoyError, the result is the elapsed time of inactivity
of the selected joystick.
*/
/*
CPA_EXPORT short fn_wJoyInactivityTime(short wJoystickNum , u_long *p_ulLaps);
*/
/*
Return the time between the specified prevoius state of the joystick and
the actual state.
*/
/*
CPA_EXPORT short fn_wJoyElapsedTime (short wJoystickNum , short wHistoryNum , u_long *p_ulLaps );
*/
/*
This function returns a pointer to the last error message string.
*/
CPA_EXPORT short INO_fn_wGetJoystickErrorString( char **pp_szErrorString);
/*
This function returns the last error code.
*/
CPA_EXPORT u_long INO_fn_wJGetLastJoystickErrorCode(void);
}
#else /* Prototype C */
extern CPA_EXPORT short INO_fn_wInitGamePort(short wHistorySize);
extern CPA_EXPORT short INO_fn_wResetGamePort(void);
extern CPA_EXPORT short INO_fn_wUpdateGamePort(void);
extern CPA_EXPORT short INO_fn_wFreeGamePort(void);
extern CPA_EXPORT short INO_fn_wAllocJoystick(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wFreeJoystick(short wJoyHandle);
extern CPA_EXPORT short INO_fn_wAllocFirstJoystickAvailable();
extern CPA_EXPORT short INO_fn_wUpdateJoystick(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wGetMaximumJoystickNumber(void);
extern CPA_EXPORT short INO_fn_wIsJoystickConnected(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wIsJoystickAllocated(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wSetJoystickType(short wJoystickNum, short wType);
extern CPA_EXPORT short INO_fn_wGetJoystickType(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wGetJoystickButtonNumber(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wGetJoystickAxisNumber(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wGetJoystickMovmentCaps(short wJoystickNum, u_long *p_ulFlagInfo);
extern CPA_EXPORT short INO_fn_wSetJoystickActiveCaps(u_long ulCapsFlag);
extern CPA_EXPORT short INO_fn_wSetStopRecordingJoystickButton(short wJoystickNum, u_long ulButtonFlag);
extern CPA_EXPORT short INO_fn_wSetJoystickToRecord(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wStartRecordingJoystick(char *p_szFileName, short wDemoSize);
extern CPA_EXPORT short INO_fn_wStopRecordingJoystick(void);
extern CPA_EXPORT short INO_fn_wStartJoystickDemo(char *p_szFileName);
extern CPA_EXPORT short INO_fn_wStopJoystickDemo(void);
extern CPA_EXPORT short INO_fn_wGetJoystickCurrentMode(void);
extern CPA_EXPORT u_long INO_fn_ulGetJoystickDemoFrameCount(void);
extern CPA_EXPORT short INO_fn_wReadJoystick(short wReadMode);
extern CPA_EXPORT short INO_fn_wAddActiveJoystick(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wRemoveActiveJoystick(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wIsJoystickLeft(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wIsJoystickRight(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wIsJoystickUp(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wIsJoystickDown(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wIsJoystickZUp(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wIsJoystickZDown(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wJoystickJustLeft(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wJoystickJustRight(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wJoystickJustUp(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wJoystickJustDown(short wJoystickNum);
extern CPA_EXPORT short INO_fn_wGetJoystickCurrentPosition(short wJoystickNum, short wAxis, double *pdfPosition);
extern CPA_EXPORT short INO_fn_wIsJoystickButtonPressed(short wJoystickNum, u_long ulButtonFlag);
extern CPA_EXPORT short INO_fn_wJoystickButtonJustPressed(short wJoystickNum, u_long ulButtonFlag);
extern CPA_EXPORT short INO_fn_wJoystickButtonJustReleased(short wJoystickNum, u_long ulButtonFlag);
extern CPA_EXPORT short INO_fn_wGetJoystickCurrentDirection(short wJoystickNum, u_long *p_ulDirectionFlag);
extern CPA_EXPORT short INO_fn_wJoystickDirectionJustReleased(short wJoystickNum, u_long ulDirectionFlag);
extern CPA_EXPORT short INO_fn_wGetJoystickCurrentButton(short wJoystickNum, u_long *p_ulButtonFlag);
extern CPA_EXPORT short INO_fn_wWasJoystickLeft(short wJoystickNum, short wHistoryNum);
extern CPA_EXPORT short INO_fn_wWasJoystickRight(short wJoystickNum, short wHistoryNum);
extern CPA_EXPORT short INO_fn_wWasJoystickUp(short wJoystickNum, short wHistoryNum);
extern CPA_EXPORT short INO_fn_wWasJoystickDown(short wJoystickNum, short wHistoryNum);
extern CPA_EXPORT short INO_fn_wWasJoystickZUp(short wJoystickNum, short wHistoryNum);
extern CPA_EXPORT short INO_fn_wWasJoystickZDown(short wJoystickNum, short wHistoryNum);
extern CPA_EXPORT short INO_fn_wWasJoystickButtonPressed(short wJoystickNum, u_long ulButtonFlag, short wHistoryNum);
extern CPA_EXPORT short INO_fn_wGetJoystickPreviousDirection(short wJoystickNum, short wHistoryNum, u_long *p_ulDirectionFlag);
extern CPA_EXPORT short INO_fn_wGetJoystickPreviousButton(short wJoystickNum, short wHistoryNum, u_long *p_ulButtonFlag);
extern CPA_EXPORT short INO_fn_wGetJoystickPreviousPosition(short wJoystickNum, short wAxis, short wHistoryNum, double *pdfPosition);
/*fn_wJoyInactivityTime(short wJoystickNum , u_long *p_ulLaps);*/
/*fn_wJoyElapsedTime (short wJoystickNum , short wHistoryNum , u_long *p_ulLaps );*/
extern CPA_EXPORT short INO_fn_wGetJoystickErrorString(char **pp_szErrorString);
extern CPA_EXPORT u_long INO_fn_wJGetLastJoystickErrorCode(void);
#endif
/* Old prototype compatibility */
#define fn_wJoyInitGamePort(A) INO_fn_wInitGamePort(A)
#define fn_wJoyResetGamePort() INO_fn_wResetGamePort()
#define fn_wJoyUpdateGamePort() INO_fn_wUpdateGamePort()
#define fn_wJoyFreeGamePort() INO_fn_wFreeGamePort()
#define fn_wJoyAllocJoystick(A) INO_fn_wAllocJoystick(A)
#define fn_wJoyAllocFirstJoystickAvailable() INO_fn_wAllocFirstJoystickAvailable()
#define fn_wJoyUpdateJoystick(A) INO_fn_wUpdateJoystick(A)
#define fn_wJoyFreeJoystick(A) INO_fn_wFreeJoystick(A)
#define fn_wJoyMaximumJoystickNumber() INO_fn_wGetMaximumJoystickNumber()
#define fn_wJoyIsConnected(A) INO_fn_wIsJoystickConnected(A)
#define fn_wJoyIsAllocated(A) INO_fn_wIsJoystickAllocated(A)
#define fn_wJoySetJoystickType(A, B) INO_fn_wSetJoystickType(A, B)
#define fn_wJoyGetJoystickType(A) INO_fn_wGetJoystickType(A)
#define fn_wJoyButtonNumber(A) INO_fn_wGetJoystickButtonNumber(A)
#define fn_wJoyAxisNumber(A) INO_fn_wGetJoystickAxisNumber(A)
#define fn_wJoyMovmentCaps(A, B) INO_fn_wGetJoystickMovmentCaps(A, B)
#define fn_wJoySetActiveCaps(A) INO_fn_wSetJoystickActiveCaps(A)
#define fn_wJoySetDemoRecordExitButton(A, B) INO_fn_wSetStopRecordingJoystickButton(A, B)
#define fn_wJoySetRecordJoystick(A) INO_fn_wSetJoystickToRecord(A)
#define fn_wJoyStartDemoRecording(A, B) INO_fn_wStartRecordingJoystick(A, B)
#define fn_wJoyExitDemoRecording() INO_fn_wStopRecordingJoystick()
#define fn_wJoyStartDemoPlaying(A) INO_fn_wStartJoystickDemo(A)
#define fn_wJoyExitDemoPlaying() INO_fn_wStopJoystickDemo()
#define fn_wJoyGetCurrentMode() INO_fn_wGetJoystickCurrentMode()
#define fn_ulJoyGetDemoFrameCount() INO_fn_ulGetJoystickDemoFrameCount()
#define fn_wJoyReadJoystick(A) INO_fn_wReadJoystick(A)
#define fn_wJoyAddActiveJoystick(A) INO_fn_wAddActiveJoystick(A)
#define fn_wJoyRemoveActiveJoystick(A) INO_fn_wRemoveActiveJoystick(A)
#define fn_wJoyIsLeft(A) INO_fn_wIsJoystickLeft(A)
#define fn_wJoyIsRight(A) INO_fn_wIsJoystickRight(A)
#define fn_wJoyIsUp(A) INO_fn_wIsJoystickUp(A)
#define fn_wJoyIsDown(A) INO_fn_wIsJoystickDown(A)
#define fn_wJoyIsZUp(A) INO_fn_wIsJoystickZUp(A)
#define fn_wJoyIsZDown(A) INO_fn_wIsJoystickZDown(A)
#define fn_wJoyJustLeft(A) INO_fn_wJoystickJustLeft(A)
#define fn_wJoyJustRight(A) INO_fn_wJoystickJustRight(A)
#define fn_wJoyJustUp(A) INO_fn_wJoystickJustUp(A)
#define fn_wJoyJustDown(A) INO_fn_wJoystickJustDown(A)
#define fn_wJoyGetCurrentPosition(A, B, C) INO_fn_wGetJoystickCurrentPosition(A, B, C)
#define fn_wJoyIsButtonPressed(A, B) INO_fn_wIsJoystickButtonPressed(A, B)
#define fn_wJoyCurrentDirection(A, B) INO_fn_wGetJoystickCurrentDirection(A, B)
#define fn_wJoyCurrentButton(A, B) INO_fn_wGetJoystickCurrentButton(A, B)
#define fn_wJoyWasLeft(A, B) INO_fn_wWasJoystickLeft(A, B)
#define fn_wJoyWasRight(A, B) INO_fn_wWasJoystickRight(A, B)
#define fn_wJoyWasUp(A, B) INO_fn_wWasJoystickUp(A, B)
#define fn_wJoyWasDown(A, B) INO_fn_wWasJoystickDown(A, B)
#define fn_wJoyWasZUp(A, B) INO_fn_wWasJoystickZUp(A, B)
#define fn_wJoyWasZDown(A, B) INO_fn_wWasJoystickZDown(A, B)
#define fn_wJoyWasPressed(A, B, C) INO_fn_wWasJoystickButtonPressed(A, B, C)
#define fn_wJoyPreviousDirection(A, B, C) INO_fn_wGetJoystickPreviousDirection(A, B, C)
#define fn_wJoyPreviousButton(A, B, C) INO_fn_wGetJoystickPreviousButton(A, B, C)
#define fn_wJoyGetPreviousPosition(A, B, C, D) INO_fn_wGetJoystickPreviousPosition(A, B, C, D)
#define fn_wJoyGetErrorString(A) INO_fn_wGetJoystickErrorString(A)
#define fn_wJoyGetLastErrorCode() INO_fn_wJGetLastJoystickErrorCode()
#endif /* _INO_JOYSTICK_H_ */