/* * $Logfile: /DescentIII/Main/mac/MACFORCEFEEDBACK.CPP $ * $Revision: 1.1.1.1 $ * $Date: 2003/08/26 03:58:15 $ * $Author: kevinb $ * * Linux force feedback stub * * $Log: MACFORCEFEEDBACK.CPP,v $ * Revision 1.1.1.1 2003/08/26 03:58:15 kevinb * initial 1.5 import * * * 2 10/21/99 1:55p Kevin * Mac Merge! * * 1 7/28/99 2:31p Kevin * Mac only stuff * * 3 4/16/99 8:28p Jeff * created more stub functions * * 2 4/14/99 1:57a Jeff * fixed case mismatched #includes * * 1 1/18/99 12:13a Jeff * * $NoKeywords: $ */ #include "DDAccess.h" #include #include #include #include "pserror.h" #include "pstring.h" #include "mono.h" #include "ddio.h" #include "application.h" #include "forcefeedback.h" #include "mem.h" #include "object.h" void ForceInit(void){}; void ForceShutdown(void){}; bool ForceIsEnabled(void) { return false; }; void DoForceForRecoil(object *playerobj, object *weap){}; void DoForceForWall(object *playerobj, float hitspeed, int hitseg, int hitwall, vector *wall_normal){}; void DoForceForWeapon(object *me_obj, object *it_obj, vector *force_vec){}; void ForceEffectsPlay(int id, float *scale, int *direction){}; void ForceEffectsPlay(int id, float *scale, vector *direction){}; void DoForceForShake(float magnitude){}; #if 0 bool ddForce_found; //a Force Feedback device was found bool ddForce_enabled; //Force Feedback is ready and can be used // ------------------------------------------------------------------- // ddio_ff_AttachForce // Purpose: // Attaches variables initialized in the general ddio system to // the force feedback system. // ------------------------------------------------------------------- void ddio_ff_AttachForce(void) { } // ------------------------------------------------------------------- // ddio_ff_DetachForce // Purpose: // Detaches variables used by the force-feedback system from the // ddio system // ------------------------------------------------------------------- void ddio_ff_DetachForce(void) { } // ------------------------------------------------------------------- // ddio_ff_Init // Purpose: // Initialize force feedback if available. // ------------------------------------------------------------------- int ddio_ff_Init(void) { ddForce_found = ddForce_enabled = false; return 0; } // ------------------------------------------------------------------- // ddio_ffjoy_Init // Purpose: // Creates and acquires all joysticks // // Input: // None // // Return: // # of sticks acquired // // Description: // // ------------------------------------------------------------------- int ddio_ffjoy_Init(void) { ddForce_found = ddForce_enabled = false; return 0; } // ------------------------------------------------------------------- // ddio_ff_Acquire // Purpose: // Acquires a direct input device for use. // // Input: // The device to acquire (use kDI_MaxJoy to acquire all available // joysticks). // // Return: // # of devices acquired. // // Description: // Call this to gain access to a device after the device has been // created & after regaining the focus after losing it. // // ------------------------------------------------------------------- int ddio_ff_Acquire(tDevice) { return 0; } // ------------------------------------------------------------------- // ddio_ff_Unacquire // Purpose: // Unacquires a direct input device // // Input: // The device to unacquire (use kDI_MaxJoy to unacquire all available // joysticks). // // Return: // # of devices unacquired. // // Description: // Call this to lose access to a device after the device has been // aquired // // ------------------------------------------------------------------- int ddio_ff_Unacquire(tDevice) { return 0; } // ------------------------------------------------------------------- // ddio_ff_SetCoopLevel // ------------------------------------------------------------------- int ddio_ff_SetCoopLevel(tDevice, int) { return 0; } // ------------------------------------------------------------------- // ddio_ffjoy_Query // Purpose: // Besides checking what buttons/axis are available, this function // also checks for force feedback support. // ------------------------------------------------------------------- int ddio_ffjoy_Query(int , int* , int* ) { return 0; } /* ======================================================================== Force Feedback Effect Functions ======================================================================== */ // ------------------------------------------------------------------- // ddio_ff_GetInfo // Purpose: // Returns information about the current state of the low-level // Force Feedback system. // ------------------------------------------------------------------- void ddio_ff_GetInfo(bool *ff_found,bool *ff_enabled) { if(ff_found) *ff_found = false; if(ff_enabled) *ff_enabled = false; } // ------------------------------------------------------------------- // ddio_ffb_Pause // Purpose: // Pause the FFB output on the given device. Use ddio_ffb_Continue to // continue where you left off. // ------------------------------------------------------------------- void ddio_ffb_Pause(tDevice) { } // ------------------------------------------------------------------- // ddio_ffb_Continue // Purpose: // Unpause the FFB output on the given device. Complimentary to // ddio_ffb_Pause. // ------------------------------------------------------------------- void ddio_ffb_Continue(tDevice) { } // ------------------------------------------------------------------- // ddio_ffb_Enable // Purpose: // Must be called after initialization in order to activate the // device. // Use ddio_ffb_Pause & ddio_ffb_Continue if you want disable forces // temporarily and resume later. // ------------------------------------------------------------------- void ddio_ffb_Enable(tDevice) { } // ------------------------------------------------------------------- // ddio_ffb_Disable // Purpose: // Turns off FFB, but effects still play on processor. // ------------------------------------------------------------------- void ddio_ffb_Disable(tDevice) { } // ------------------------------------------------------------------- // ddio_ffb_effectCreate // Purpose: // Create a single effect for future playback. // Effect is given a logical ID // ------------------------------------------------------------------- int ddio_ffb_effectCreate(tDevice, tFFB_Effect* ) { return 0; } // ------------------------------------------------------------------- // ddio_ffb_DestroyAll // Purpose: // Destroys all created effects // ------------------------------------------------------------------- void ddio_ffb_DestroyAll(void) { } // ------------------------------------------------------------------- // ddio_ffb_effectPlay // Purpose: // Play an effect that was previously created. // ------------------------------------------------------------------- void ddio_ffb_effectPlay(short) { } // ------------------------------------------------------------------- // ddio_ffb_effectStop // Purpose: // Stop a single effect. // ------------------------------------------------------------------- void ddio_ffb_effectStop(short) { } // ------------------------------------------------------------------- // ddio_ffb_effectStopAll // Purpose: // Stops all forces on the given device. // ------------------------------------------------------------------- void ddio_ffb_effectStopAll(tDevice) { } // ------------------------------------------------------------------- // ddio_ffb_effectUnload // Purpose: // Unload a single effect... Necessary to make room for other // effects. // ------------------------------------------------------------------- void ddio_ffb_effectUnload(short) { } // ------------------------------------------------------------------- // ddio_ffb_effectModify // Purpose: // Modifies a single effect, only if the given parameters are // different from what's currently loaded. // ------------------------------------------------------------------- void ddio_ffb_effectModify(short, int* , unsigned int* , unsigned int* , unsigned int* , tEffInfo* , tEffEnvelope* ) { } // ------------------------------------------------------------------- // ddio_ffb_GetEffectData // Purpose: // Retrieves affect data for the given parameters, pass NULL for those you don't want // ------------------------------------------------------------------- void ddio_ffb_GetEffectData(short, int* , unsigned int* , unsigned int* , unsigned int* , tEffInfo* , tEffEnvelope* ) { } // ------------------------------------------------------------------- // ddio_ffjoy_EnableAutoCenter // Purpose: // Disables/Enables the autocentering of the joystick // ------------------------------------------------------------------- void ddio_ffjoy_EnableAutoCenter(tDevice,bool) { } // ------------------------------------------------------------------- // ddio_ffjoy_SetGain // Purpose: // Sets the gain for joystick, pass a value of 0-1 // ------------------------------------------------------------------- void ddio_ffjoy_SetGain(tDevice,float ) { } // ------------------------------------------------------------------- // ddio_ffjoy_IsAutoCentered // Purpose: // Returns true if the joystick is set for autocentering // ------------------------------------------------------------------- bool ddio_ffjoy_IsAutoCentered(tDevice) { return true; } // ------------------------------------------------------------------- // ddio_ffjoy_SupportAutoCenter // Purpose: // Returns true if the FF joystick supports auto centering // ------------------------------------------------------------------- bool ddio_ffjoy_SupportAutoCenter(tDevice) { return false; } // Given a filename resource, this loads the file and creates a resource // for it. It returns a handle to that resource. // If it returns NULL, then it couldn't load the project. // Make sure device is aquired before calling. FORCEPROJECT ddio_ForceLoadProject(char *filename,tDevice dev) { return NULL; } // Unloads a FORCEPROJECT file void ddio_ForceUnloadProject(FORCEPROJECT prj) { } // Given a handle to a resource, and the name of the effect to load // it will load that effect. Returns the effect ID, or -1 if it couldn't // be created int ddio_CreateForceFromProject(FORCEPROJECT project,char *forcename) { return -1; } #endif