/* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. */ #ifndef _TACTILE_H #define _TACTILE_H #include "vecmat.h" //#define TACTILE #ifndef _BOOL_ typedef enum { False = 0, True = 1 } Bool; #define _BOOL_ #endif extern int TactileStick; extern int Tactile_open(int); extern void Tactile_apply_force (vms_vector *,vms_matrix *); extern void Tactile_jolt (int,int,int); extern void Tactile_Xvibrate (int,int); extern void Tactile_Xvibrate_clear (); /* DLL functions -moved from i-force.h */ #define MAX_POSITION_CHANNELS 4 /* Max num pos feedback chans */ typedef struct { int major; /* major release number */ int minor; /* minor release number */ int subminor; /* subminor release number */ } FFversion; /* firmware release version */ typedef struct { int month; /* month of release */ int day; /* day of release */ int year; /* year of release */ } FFdate; /* Record containing all Joystick data * Declare one of these structs in your app if you want * Joystick data like serial number, model number, firmware * version, etc reported back by the InitStick() command. * Examples: (assuming 'StickRec' is declared as a Joystick Record) * StickRec.SerialNumber - serial number * StickRec.ForceAxes - number of force feedback axes */ typedef struct JoystickRecord { int ForceAxes; /* number of force feedback axes */ int CommandAvailable; /* command available */ int PositionAxes; /* number of position feedback axes */ int Position[MAX_POSITION_CHANNELS]; /* 16-bit positions */ FFversion Version; /* firmware release version */ FFdate Date; /* firmware release date */ unsigned long int SerialNumber; unsigned int ModelNumber; } JoystickRecord; extern Bool _cdecl InitStick(JoystickRecord *StickRec); extern Bool _cdecl GetStickStatus(char *StickStatus); extern Bool _cdecl Echo(void); extern Bool _cdecl IForceAuthenticate(void); extern int _cdecl GetStickError(void); extern Bool _cdecl EnableForces(void); extern Bool _cdecl DisableForces(void); extern Bool _cdecl ClearForces(void); extern Bool _cdecl CloseStick(void); extern void _cdecl SetJoystickPort(int Port); extern void _cdecl SetJoystickAddressIRQ(unsigned int addr, int irq); /* Force Effect Functions */ extern Bool _cdecl Jolt(unsigned int Magnitude,int Direction,unsigned int Duration); extern Bool _cdecl ButtonReflexJolt(unsigned int ButtonAssign, unsigned int Magnitude, int direction, unsigned int Duration, unsigned int RepeatRate); extern Bool _cdecl ButtonReflexClear(unsigned int ButtonAssign); extern Bool _cdecl XVibration(unsigned int Lmagnitude, unsigned int Rmagnitude, unsigned int Frequency); extern Bool _cdecl XVibrationClear(void); extern Bool _cdecl YVibration(unsigned int Umagnitude, unsigned int Dmagnitude, unsigned int Frequency); extern Bool _cdecl YVibrationClear(void); extern Bool _cdecl Buffeting(unsigned int Magnitude); extern Bool _cdecl BuffetingClear(void); extern Bool _cdecl VectorForce(unsigned int Magnitude, int Direction); extern Bool _cdecl VectorForceClear(void); extern Bool _cdecl XYVectorForce(int XMagnitude,int YMagnitude); #define TACTILE_IMMERSION 1 #define TACTILE_CYBERNET 2 #endif