29 #ifndef _SW_Force_SEEN
30 #define _SW_Force_SEEN
61 #define TRIANGLE_DOWN 6
63 #define SAWTOOTH_DOWN 8
72 #define HZ_TO_uS(HZ) ((int)(1000000.0/(double)(HZ) + 0.5))
73 #define uS_TO_HZ(uS) (max(1,(int)((double)(uS)/1000000.0 + 0.5)))
119 IN
DWORD dwDuration);
129 IN
DWORD dwDirection);
139 IN
DWORD dwDirection);
153 IN
DWORD dwDirection,
162 IN
DWORD dwDirection,
163 IN
DWORD dwMagnitude,
165 IN
DWORD dwAttackTime,
166 IN
DWORD dwAttackLevel,
168 IN
DWORD dwFadeLevel,
214 IN
LONG lXCoefficient,
216 IN
LONG lYCoefficient,
224 IN
DWORD dwDirection,
227 IN
DWORD dwAttackTime,
228 IN
DWORD dwAttackLevel,
230 IN
DWORD dwFadeLevel,
231 IN
LONG lButtonMask);
237 IN
DWORD dwDirection,
239 IN
DWORD dwAttackTime,
240 IN
DWORD dwAttackLevel,
242 IN
DWORD dwFadeLevel,
249 IN
DWORD dwDirection,
252 IN
LONG lWallCoefficient,
258 IN
const TCHAR *pszFileName);
263 IN
const TCHAR *pszFileName,
266 IN
DWORD dwDirection);
272 IN
DWORD dwBufferSize);
278 IN
DWORD dwBufferSize,
281 IN
DWORD dwDirection);
286 IN
const TCHAR *pszFileName);
291 IN OUT
PDWORD pdwEffectCount,
292 IN
const TCHAR *pszFileName,
293 IN OUT
void** ppUDBuffer,
294 IN OUT
PDWORD pdwOutFlags);
300 IN
DWORD dwBufferSize);
305 IN OUT
PDWORD pdwEffectCount,
307 IN
DWORD dwBufferSize,
308 IN OUT
void** ppUDBuffer,
309 IN OUT
PDWORD pdwOutFlags);
315 IN OUT JOYINFOEX * pjix,
324 OUT TCHAR * pszCodeString);
341 #define VFXCE_CREATE_SINGLE 0x00001
342 #define VFXCE_CREATE_MULTIPLE 0x00002
343 #define VFXCE_CALC_BUFFER_SIZE 0x00004
344 #define VFXCE_CALC_EFFECT_COUNT 0x00008
345 #define VFXCE_CONCATENATE 0x00010
346 #define VFXCE_SUPERIMPOSE 0x00020
350 #define INTERFACE IVFX
354 STDMETHOD(QueryInterface) (THIS_ REFIID,
PPVOID) PURE;
355 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
356 STDMETHOD_(ULONG,Release) (THIS) PURE;
360 STDMETHOD_(
HRESULT, CreateEffectFromFile) (
371 STDMETHOD_(
HRESULT, CreateEffectFromBuffer) (
374 LPDIRECTINPUTEFFECT*,
387 #define DEFAULT_ROM_EFFECT_GAIN 100 // Set dwGain to this for Default
389 #define DEFAULT_ROM_EFFECT_DURATION 1000 // Set dwDuration to this for Default
391 #define DEFAULT_ROM_EFFECT_OUTPUTRATE 1000 // Set dwSampleRate to this for
395 #define MAX_ANGLE 36000
396 #define MIN_FORCEOUTPUTRATE 1
398 #define MAX_GAIN 10000
399 #define MAX_FORCE 10000
400 #define MIN_FORCE -10000
401 #define MIN_TIME_PERIOD 1
402 #define MAX_TIME_PERIOD 4294967296L // 4096 * 10^^6 usecs
404 #define SCALE_GAIN 100 // DX is +/- 10000
405 #define SCALE_TIME 1000 // DX is in microseconds
406 #define SCALE_POSITION 100 // DX is +/- 10000
407 #define SCALE_CONSTANTS 100 // DX is +/- 10000
408 #define SCALE_DIRECTION 100 // DX is 0 to 35900
413 #define DEFAULT_OFFSET 0
414 #define DEFAULT_ATTACK_LEVEL 0
415 #define DEFAULT_ATTACK_TIME 0
416 #define DEFAULT_SUSTAIN_LEVEL 10000
417 #define DEFAULT_FADE_LEVEL 0
418 #define DEFAULT_FADE_TIME 0
428 #define WALL_INNER 0 // Wall material:from center to Wall Distance
429 #define WALL_OUTER 1 // Wall material:greater than Wall Distance
444 #define VFX_FILENAME 0L
445 #define VFX_BUFFER 1L
447 #define DEFAULT_VFX_EFFECT_GAIN 10000 // set dwGain to this for default gain
448 #define DEFAULT_VFX_EFFECT_DIRECTION 0 // set polar direction to this for default direction
449 #define DEFAULT_VFX_EFFECT_DURATION 1000 // set dwDuration to this for default duration
471 IN
LONG lXCoefficient,
473 IN
LONG lYCoefficient,
477 #endif // of ifdef _SW_Force_SEEN
BOOL SWFF_RegisterVFXObject(LPCTSTR pszVFXPath)
HRESULT SWFF_CreateVFXEffectFromFile(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN const TCHAR *pszFileName)
HRESULT SWFF_PutRawAxisForce(IN LPDIRECTINPUTEFFECT pDIEffect, IN LONG lMagnitude)
HRESULT SWFF_DestroyAllEffects(IN LPDIRECTINPUTDEVICE2 pDIDevice)
HRESULT SWFF_CreateDIEffectFromBuffer(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN const LPVOID pBuffer, IN DWORD dwBufferSize)
HRESULT SWFF_OpenDefaultFFJoystick(IN HWND hWnd, OUT LPDIRECTINPUT *ppDI, OUT LPDIRECTINPUTDEVICE2 *ppDIDevice2)
HRESULT SWFF_SetGain(IN LPDIRECTINPUTEFFECT pDIEffect, IN DWORD dwGain)
DECLARE_INTERFACE_(IVFX, IUnknown)
void SWFF_ErrorCodeToString(IN HRESULT hResult, OUT TCHAR *pszCodeString)
HRESULT SWFF_CreateConstantForceEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN DWORD dwDuration, IN DWORD dwDirection, IN LONG lMagnitude, IN DWORD dwAttackTime, IN DWORD dwAttackLevel, IN DWORD dwFadeTime, IN DWORD dwFadeLevel, IN LONG lButton)
struct _BE_WALL_PARAM BE_WALL_PARAM
struct _BE_WALL_PARAM * PBE_WALL_PARAM
HRESULT SWFF_DestroyEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN LPDIRECTINPUTEFFECT pDIEffect)
HRESULT SWFF_CreatePeriodicEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN DWORD dwType, IN DWORD dwDuration, IN DWORD dwPeriod, IN DWORD dwDirection, IN DWORD dwMagnitude, IN LONG lOffset, IN DWORD dwAttackTime, IN DWORD dwAttackLevel, IN DWORD dwFadeTime, IN DWORD dwFadeLevel, IN LONG lButton)
HRESULT SWFF_PutRawForce(IN LPDIRECTINPUTEFFECT pDIEffect, IN LONG lMagnitude, IN DWORD dwDirection)
HRESULT SWFF_CreateDamperEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN DWORD dwDuration, IN LONG lBx, IN LONG lV0x, IN LONG lBy, IN LONG lV0y, IN LONG lButton)
HRESULT SWFF_CreateRawForceEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN LONG lMagnitude, IN DWORD dwDirection)
HRESULT SWFF_CreateVFXEffectFromFileEx(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN const TCHAR *pszFileName, IN DWORD dwDuration, IN DWORD dwGain, IN DWORD dwDirection)
PVOID m_pFileNameOrBuffer
HRESULT SWFF_CreateConditionEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN DWORD dwType, IN DWORD dwDuration, IN LONG lXCoefficient, IN LONG lXOffset, IN LONG lYCoefficient, IN LONG lYOffset, IN LONG lButton)
HRESULT SWFF_CreateSpringEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN DWORD dwDuration, IN LONG lKx, IN LONG lCenterX, IN LONG lKy, IN LONG lCenterY, IN LONG lButton)
HRESULT SWFF_CreateVFXEffectFromBufferEx(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN const LPVOID pBuffer, IN DWORD dwBufferSize, IN DWORD dwDuration, IN DWORD dwGain, IN DWORD dwDirection)
HRESULT SWFF_SetDuration(IN LPDIRECTINPUTEFFECT pDIEffect, IN DWORD dwDuration)
HRESULT SWFF_CreateVFXEffectFromBuffer(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN const LPVOID pBuffer, IN DWORD dwBufferSize)
HRESULT SWFF_SetDirectionGain(IN LPDIRECTINPUTEFFECT pDIEffect, IN DWORD dwAngle, IN DWORD dwMag)
HRESULT SWFF_CreateConditionEffectStruct(di_condition_effect_struct *ptr, IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN DWORD dwType, IN DWORD dwDuration, IN LONG lXCoefficient, IN LONG lXOffset, IN LONG lYCoefficient, IN LONG lYOffset, IN LONG lButton)
HRESULT SWFF_SetDirection(IN LPDIRECTINPUTEFFECT pDIEffect, IN DWORD dwAngle)
struct _VFX_PARAM * PVFX_PARAM
HRESULT SWFF_CreateInertiaEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN DWORD dwDuration, IN LONG lMx, IN LONG lA0x, IN LONG lMy, IN LONG lA0y, IN LONG lButton)
HRESULT SWFF_CreateDIEffectFromBufferEx(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT **pppDIEffect, IN OUT PDWORD pdwEffectCount, IN const LPVOID pBuffer, IN DWORD dwBufferSize, IN OUT void **ppUDBuffer, IN OUT PDWORD pdwOutFlags)
HRESULT SWFF_CreateWallEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN DWORD dwDuration, IN DWORD dwDirection, IN DWORD dwDistance, IN BOOL bInner, IN LONG lWallCoefficient, IN LONG lButton)
HRESULT SWFF_CreateDIEffectFromFileEx(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT **pppDIEffect, IN OUT PDWORD pdwEffectCount, IN const TCHAR *pszFileName, IN OUT void **ppUDBuffer, IN OUT PDWORD pdwOutFlags)
struct _VFX_PARAM VFX_PARAM
HRESULT SWFF_CreateDIEffectFromFile(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN const TCHAR *pszFileName)
HRESULT SWFF_CreateRampEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN DWORD dwDuration, IN DWORD dwDirection, IN LONG lStart, IN LONG lEnd, IN DWORD dwAttackTime, IN DWORD dwAttackLevel, IN DWORD dwFadeTime, IN DWORD dwFadeLevel, IN LONG lButtonMask)
HRESULT SWFF_CreateRawAxisForceEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN LONG lMagnitude, IN DWORD dwAxis)
HRESULT SWFF_OpenDefaultFFJoystickEx(IN HWND hWnd, IN HINSTANCE hInstance, OUT LPDIRECTINPUT *ppDI, OUT LPDIRECTINPUTDEVICE2 *ppDIDevice, DWORD dwFlags)
HRESULT SWFF_CreateROMEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN REFGUID refGUID, IN DWORD dwDuration, IN DWORD dwGain, IN DWORD dwDirection, IN LONG lButton)
HRESULT SWFF_CreateFrictionEffect(IN LPDIRECTINPUTDEVICE2 pDIDevice, IN OUT LPDIRECTINPUTEFFECT *ppDIEffect, IN DWORD dwDuration, IN LONG lFx, IN LONG lFy, IN LONG lButton)
BOOL SWFF_GetJoyData(IN int nJoyID, IN OUT JOYINFOEX *pjix, OUT char *pszErr)