#ifndef _SNDMPEG_H_
#define _SNDMPEG_H_
 
/*#include "sndtype.h"*/
 
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus*/
 
 
#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
 
#if defined(_DLL_COMPILATION_MODE) && !defined(DLLMPEG_MODULE)
    #pragma message("-> sndmpeg : functions pointers defined in  SNDDLL.H")
#else
DLL_IMPEXP CPA_EXPORT long SND_CALL SND_fn_lPlayMPEG(tduRefRes res,SampleParam *par,long prio,SND_td_pfn_vSoundCallback fn_callback,long par_callback);
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vRemoveCallbackMPEG(long voice);
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bSetParamMPEG(long voice,SampleParam *par);
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bTestIsPlayingMPEG(long voice);
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vStopMPEG(long voice);
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vPauseMPEG(long voice);
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vResumeMPEG(long voice);
 
DLL_IMPEXP CPA_EXPORT int SND_CALL SND_fn_iInitMPEG(SND_tdstInitStruct *pInitStruct);
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bTestInitMPEG(void);
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vDesInitMPEG(void);
 
DLL_IMPEXP CPA_EXPORT tduRefRes SND_CALL SND_fn_tdGetResForVoiceMPEG(long voice);
 
/*DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vConvertResDiskToMemMPEG(tdstBlockResourceDisk *disk*/
/*						 ,tdstBlockResourceMem *mem*/
/*						 ,void* ptrBegin);*/
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bLoadResScriptMPEG(tdstBlockResourceDisk *disk,tdstBlockResourceMem *mem);
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bLoadResBinaryMPEG(tdstBlockResourceDisk *disk,tdstBlockResourceMem *mem,char *pDataBloc);
/*DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vLoadResFromDiskMPEG(tdstBlockResourceDisk* disk,tdstBlockResourceMem* mem);*/
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vUnLoadResMPEG(tdstBlockResourceMem* mem);
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bIsResLoadedMPEG(tdstBlockResourceMem *mem);
/*DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vSetResUnloadedMPEG(tdstBlockResourceMem *pResMem);*/
DLL_IMPEXP CPA_EXPORT SndReal SND_CALL SND_fn_rGetPosMPEG(long voice);
DLL_IMPEXP CPA_EXPORT SndReal SND_CALL SND_fn_rGetLengthMPEG(long voice);
 
/*---themes*/
DLL_IMPEXP CPA_EXPORT long SND_CALL SND_fn_lPlayTransitionMPEG(tduRefRes FirstRes,tduRefRes NextRes,SND_td_pfn_vSoundCallback transition_callback,long param_callback,SampleParam* par);
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bSetParamTransitionMPEG(long voice,SampleParam* par);
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bSetNextTransitionMPEG(long voice,tduRefRes new_res);
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bDoTransitionWithFadeMPEG(long voice,tduRefRes new_res);
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bDoTransitionWithFadeMPEG2( long voice, tduRefRes new_res, SndReal rDuration );
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vStopTransitionMPEG(long voice);
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vPauseTransitionMPEG(long voice);
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vResumeTransitionMPEG(long voice);
 
#ifndef NO_ACP_LDBIN
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bCanFreeDataMPEG(void);
#endif
 
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vReleaseDriverMPEG(void);
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vRestoreDriverMPEG(void);
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vSynchroMPEG(void);
 
DLL_IMPEXP CPA_EXPORT long SND_CALL SND_fn_lCreateNewBufferExMPEG(SND_tdstFormat* pformat,SND_tdstCallback* pCallback,SoundParam* par,long user_id);
DLL_IMPEXP CPA_EXPORT long SND_CALL SND_fn_lGetPosBufferExMPEG(long id_buffer);
DLL_IMPEXP CPA_EXPORT long SND_CALL SND_fn_lPushBufferExMPEG(long id_buffer,SND_tdstStackBuffer* pStack);
 
DLL_IMPEXP CPA_EXPORT void SND_CALL SND_fn_vSetDefaultRollOffMPEG(RollOffParam* rolloff);
 
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bCheckVersionResourceMPEG(tdstBlockResourceDisk* disk);
DLL_IMPEXP CPA_EXPORT SndBool SND_CALL SND_fn_bSetResourceStaticVolumeMPEG(tdstBlockResourceMem* pstRes,unsigned char ucVolume);
#endif
 
#ifdef __cplusplus
}
#endif /* __cplusplus*/
 
#endif /*_SNDXD_H_*/
 
