73 lines
2.7 KiB
C
73 lines
2.7 KiB
C
#ifndef _SNDREAL_H_
|
|
#define _SNDREAL_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus*/
|
|
|
|
/*
|
|
//////////////////////////////////////////////////////
|
|
// SNDREAL.H - Librairie SOUNDxd version 2.0 //
|
|
//////////////////////////////////////////////////////
|
|
// Définitions des types et fonctions de gestion //
|
|
// des pseudo-réels //
|
|
//////////////////////////////////////////////////////
|
|
*/
|
|
|
|
#undef DLL_IMPEXP
|
|
#undef CPA_EXPORT
|
|
#ifdef _DLL_COMPILATION_MODE
|
|
#define DLL_IMPEXP __declspec(dllexport)
|
|
#define CPA_EXPORT
|
|
#else
|
|
#define DLL_IMPEXP
|
|
/****************************************/
|
|
#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
|
|
|
|
/**************************************************************************************/
|
|
#define M_MulIntRealSnd(i,r) ((i)*(r))
|
|
#define M_RealToDoubleSnd(r) (((double)r)/(0x10000))
|
|
#define M_DoubleToRealSnd(d) ((SndReal)((d)*0x10000))
|
|
#define M_DivIntIntRealSnd(a,b) ((SndReal)(((a)<<16)/(b)))
|
|
#define M_RealToIntSnd(r) ((r)>>16)
|
|
#define M_IntToRealSnd(r) ((r)<<16)
|
|
#define M_Fixed1616ToRealSnd(r) (r)
|
|
|
|
#define M_HighestIntAbsValueRealSnd (0x7FFF) /*plus grand entier convertible en SndReal*/
|
|
#define M_LowestDoubleAbsValueRealSnd (0.0000153) /*plus petit réel convertible en SndReal*/
|
|
|
|
#if defined(_DLL_COMPILATION_MODE) && !defined(SNDDLL_MODULE)
|
|
#pragma message("-> sndreal : pointeurs de fonctions definis dans SNDDLL.H")
|
|
#else
|
|
#if defined(PSX) && !defined(WIN32)
|
|
DLL_IMPEXP CPA_EXPORT asm SndReal SND_CALL SND_fn_rMulRealRealSnd(SndReal r1,SndReal r2);
|
|
DLL_IMPEXP CPA_EXPORT asm SndReal SND_CALL SND_fn_rMulRealRealQuickSnd(SndReal r1,SndReal r2);
|
|
DLL_IMPEXP CPA_EXPORT asm SndReal SND_CALL SND_fn_rAbsRealSnd(SndReal r);
|
|
DLL_IMPEXP CPA_EXPORT asm SndReal SND_CALL SND_fn_rDivRealRealSnd(SndReal r1,SndReal r2);
|
|
#else
|
|
DLL_IMPEXP CPA_EXPORT SndReal SND_CALL SND_fn_rDivRealRealSnd(SndReal r1,SndReal r2);
|
|
DLL_IMPEXP CPA_EXPORT SndReal SND_CALL SND_fn_rMulRealRealSnd(SndReal r1,SndReal r2);
|
|
DLL_IMPEXP CPA_EXPORT SndReal SND_CALL SND_fn_rMulRealRealQuickSnd(SndReal r1,SndReal r2);
|
|
DLL_IMPEXP CPA_EXPORT SndReal SND_CALL SND_fn_rAbsRealSnd(SndReal r);
|
|
#endif
|
|
DLL_IMPEXP CPA_EXPORT SndReal SND_CALL SND_fn_rSqrtRealSnd(SndReal r);
|
|
DLL_IMPEXP CPA_EXPORT SndReal SND_CALL SND_fn_rPseudoNormeRealSnd(SndReal r1,SndReal r2,SndReal r3);
|
|
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vSndRealTwinToSndReal(SndRealTwin,SndReal*,SndReal*);
|
|
DLL_IMPEXP CPA_EXPORT SndRealTwin SND_CALL SND_fn_rtSndRealToSndRealTwin(SndReal,SndReal);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus*/
|
|
|
|
#endif /*_SNDREAL_H_*/
|
|
|