📄 fmod.h
字号:
DLL_API int F_API FSOUND_PlaySound(int channel, FSOUND_SAMPLE *sptr);
DLL_API int F_API FSOUND_PlaySoundEx(int channel, FSOUND_SAMPLE *sptr, FSOUND_DSPUNIT *dsp, signed char startpaused);
DLL_API signed char F_API FSOUND_StopSound(int channel);
/*
Functions to control playback of a channel.
*/
DLL_API signed char F_API FSOUND_SetFrequency(int channel, int freq);
DLL_API signed char F_API FSOUND_SetVolume(int channel, int vol);
DLL_API signed char F_API FSOUND_SetVolumeAbsolute(int channel, int vol);
DLL_API signed char F_API FSOUND_SetPan(int channel, int pan);
DLL_API signed char F_API FSOUND_SetSurround(int channel, signed char surround);
DLL_API signed char F_API FSOUND_SetMute(int channel, signed char mute);
DLL_API signed char F_API FSOUND_SetPriority(int channel, int priority);
DLL_API signed char F_API FSOUND_SetReserved(int channel, signed char reserved);
DLL_API signed char F_API FSOUND_SetPaused(int channel, signed char paused);
DLL_API signed char F_API FSOUND_SetLoopMode(int channel, unsigned int loopmode);
DLL_API signed char F_API FSOUND_SetCurrentPosition(int channel, unsigned int offset);
/*
Functions to control DX8 only effects processing.
Note that FX enabled samples can only be played once at a time.
*/
DLL_API signed char F_API FSOUND_FX_Enable(int channel, unsigned int fx); /* Set bits to enable following fx */
DLL_API signed char F_API FSOUND_FX_SetChorus(int channel, float WetDryMix, float Depth, float Feedback, float Frequency, int Waveform, float Delay, int Phase);
DLL_API signed char F_API FSOUND_FX_SetCompressor(int channel, float Gain, float Attack, float Release, float Threshold, float Ratio, float Predelay);
DLL_API signed char F_API FSOUND_FX_SetDistortion(int channel, float Gain, float Edge, float PostEQCenterFrequency, float PostEQBandwidth, float PreLowpassCutoff);
DLL_API signed char F_API FSOUND_FX_SetEcho(int channel, float WetDryMix, float Feedback, float LeftDelay, float RightDelay, int PanDelay);
DLL_API signed char F_API FSOUND_FX_SetFlanger(int channel, float WetDryMix, float Depth, float Feedback, float Frequency, int Waveform, float Delay, int Phase);
DLL_API signed char F_API FSOUND_FX_SetGargle(int channel, int RateHz, int WaveShape);
DLL_API signed char F_API FSOUND_FX_SetI3DL2Reverb(int channel, int Room, int RoomHF, float RoomRolloffFactor, float DecayTime, float DecayHFRatio, int Reflections, float ReflectionsDelay, int Reverb, float ReverbDelay, float Diffusion, float Density, float HFReference);
DLL_API signed char F_API FSOUND_FX_SetParamEQ(int channel, float Center, float Bandwidth, float Gain);
DLL_API signed char F_API FSOUND_FX_SetWavesReverb(int channel, float InGain, float ReverbMix, float ReverbTime, float HighFreqRTRatio);
/*
Channel information functions.
*/
DLL_API signed char F_API FSOUND_IsPlaying(int channel);
DLL_API int F_API FSOUND_GetFrequency(int channel);
DLL_API int F_API FSOUND_GetVolume(int channel);
DLL_API int F_API FSOUND_GetPan(int channel);
DLL_API signed char F_API FSOUND_GetSurround(int channel);
DLL_API signed char F_API FSOUND_GetMute(int channel);
DLL_API int F_API FSOUND_GetPriority(int channel);
DLL_API signed char F_API FSOUND_GetReserved(int channel);
DLL_API signed char F_API FSOUND_GetPaused(int channel);
DLL_API unsigned int F_API FSOUND_GetCurrentPosition(int channel);
DLL_API FSOUND_SAMPLE * F_API FSOUND_GetCurrentSample(int channel);
DLL_API float F_API FSOUND_GetCurrentVU(int channel);
/* =================== */
/* 3D sound functions. */
/* =================== */
/*
See also FSOUND_Sample_SetMinMaxDistance (above)
*/
DLL_API void F_API FSOUND_3D_Update();
DLL_API signed char F_API FSOUND_3D_SetAttributes(int channel, float *pos, float *vel);
DLL_API signed char F_API FSOUND_3D_GetAttributes(int channel, float *pos, float *vel);
DLL_API void F_API FSOUND_3D_Listener_SetAttributes(float *pos, float *vel, float fx, float fy, float fz, float tx, float ty, float tz);
DLL_API void F_API FSOUND_3D_Listener_GetAttributes(float *pos, float *vel, float *fx, float *fy, float *fz, float *tx, float *ty, float *tz);
DLL_API void F_API FSOUND_3D_Listener_SetDopplerFactor(float scale);
DLL_API void F_API FSOUND_3D_Listener_SetDistanceFactor(float scale);
DLL_API void F_API FSOUND_3D_Listener_SetRolloffFactor(float scale);
/* ========================= */
/* File Streaming functions. */
/* ========================= */
/*
Note : Use FSOUND_LOADMEMORY flag with FSOUND_Stream_OpenFile to stream from memory.
Use FSOUND_LOADRAW flag with FSOUND_Stream_OpenFile to treat stream as raw pcm data.
Use FSOUND_MPEGACCURATE flag with FSOUND_Stream_OpenFile to open mpegs in 'accurate mode' for settime/gettime/getlengthms.
*/
DLL_API FSOUND_STREAM * F_API FSOUND_Stream_OpenFile(const char *filename, unsigned int mode, int memlength);
DLL_API FSOUND_STREAM * F_API FSOUND_Stream_Create(FSOUND_STREAMCALLBACK callback, int length, unsigned int mode, int samplerate, int userdata);
DLL_API int F_API FSOUND_Stream_Play(int channel, FSOUND_STREAM *stream);
DLL_API int F_API FSOUND_Stream_PlayEx(int channel, FSOUND_STREAM *stream, FSOUND_DSPUNIT *dsp, signed char startpaused);
DLL_API signed char F_API FSOUND_Stream_Stop(FSOUND_STREAM *stream);
DLL_API signed char F_API FSOUND_Stream_Close(FSOUND_STREAM *stream);
DLL_API signed char F_API FSOUND_Stream_SetEndCallback(FSOUND_STREAM *stream, FSOUND_STREAMCALLBACK callback, int userdata);
DLL_API signed char F_API FSOUND_Stream_SetSynchCallback(FSOUND_STREAM *stream, FSOUND_STREAMCALLBACK callback, int userdata);
DLL_API FSOUND_SAMPLE * F_API FSOUND_Stream_GetSample(FSOUND_STREAM *stream); /* every stream contains a sample to playback on */
DLL_API FSOUND_DSPUNIT *F_API FSOUND_Stream_CreateDSP(FSOUND_STREAM *stream, FSOUND_DSPCALLBACK callback, int priority, int param);
DLL_API signed char F_API FSOUND_Stream_SetPosition(FSOUND_STREAM *stream, unsigned int position);
DLL_API unsigned int F_API FSOUND_Stream_GetPosition(FSOUND_STREAM *stream);
DLL_API signed char F_API FSOUND_Stream_SetTime(FSOUND_STREAM *stream, int ms);
DLL_API int F_API FSOUND_Stream_GetTime(FSOUND_STREAM *stream);
DLL_API int F_API FSOUND_Stream_GetLength(FSOUND_STREAM *stream);
DLL_API int F_API FSOUND_Stream_GetLengthMs(FSOUND_STREAM *stream);
/* =================== */
/* CD audio functions. */
/* =================== */
DLL_API signed char F_API FSOUND_CD_Play(int track);
DLL_API void F_API FSOUND_CD_SetPlayMode(signed char mode);
DLL_API signed char F_API FSOUND_CD_Stop();
DLL_API signed char F_API FSOUND_CD_SetPaused(signed char paused);
DLL_API signed char F_API FSOUND_CD_SetVolume(int volume);
DLL_API signed char F_API FSOUND_CD_Eject();
DLL_API signed char F_API FSOUND_CD_GetPaused();
DLL_API int F_API FSOUND_CD_GetTrack();
DLL_API int F_API FSOUND_CD_GetNumTracks();
DLL_API int F_API FSOUND_CD_GetVolume();
DLL_API int F_API FSOUND_CD_GetTrackLength(int track);
DLL_API int F_API FSOUND_CD_GetTrackTime();
/*
==============
DSP functions.
==============
*/
/*
DSP Unit control and information functions.
*/
DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_Create(FSOUND_DSPCALLBACK callback, int priority, int param);
DLL_API void F_API FSOUND_DSP_Free(FSOUND_DSPUNIT *unit);
DLL_API void F_API FSOUND_DSP_SetPriority(FSOUND_DSPUNIT *unit, int priority);
DLL_API int F_API FSOUND_DSP_GetPriority(FSOUND_DSPUNIT *unit);
DLL_API void F_API FSOUND_DSP_SetActive(FSOUND_DSPUNIT *unit, signed char active);
DLL_API signed char F_API FSOUND_DSP_GetActive(FSOUND_DSPUNIT *unit);
/*
Functions to get hold of FSOUND 'system DSP unit' handles.
*/
DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetClearUnit();
DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetSFXUnit();
DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetMusicUnit();
DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetClipAndCopyUnit();
DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetFFTUnit();
/*
Miscellaneous DSP functions
*/
DLL_API signed char F_API FSOUND_DSP_MixBuffers(void *destbuffer, void *srcbuffer, int len, int freq, int vol, int pan, unsigned int mode);
DLL_API void F_API FSOUND_DSP_ClearMixBuffer();
DLL_API int F_API FSOUND_DSP_GetBufferLength(); /* Length of each DSP update */
DLL_API int F_API FSOUND_DSP_GetBufferLengthTotal(); /* Total buffer length due to FSOUND_SetBufferSize */
DLL_API float * F_API FSOUND_DSP_GetSpectrum(); /* Array of 512 floats */
/* ================================================ */
/* Geometry functions. (NOT SUPPORTED IN LINUX/CE) */
/* ================================================ */
/*
Scene/Polygon functions
*/
DLL_API signed char F_API FSOUND_Geometry_AddPolygon(float *p1, float *p2, float *p3, float *p4, float *normal, unsigned int mode, float *openingfactor);
DLL_API int F_API FSOUND_Geometry_AddList(FSOUND_GEOMLIST *geomlist);
/*
Polygon list functions
*/
DLL_API FSOUND_GEOMLIST * F_API FSOUND_Geometry_List_Create(signed char boundingvolume);
DLL_API signed char F_API FSOUND_Geometry_List_Free(FSOUND_GEOMLIST *geomlist);
DLL_API signed char F_API FSOUND_Geometry_List_Begin(FSOUND_GEOMLIST *geomlist);
DLL_API signed char F_API FSOUND_Geometry_List_End(FSOUND_GEOMLIST *geomlist);
/*
Material functions
*/
DLL_API FSOUND_MATERIAL * F_API FSOUND_Geometry_Material_Create();
DLL_API signed char F_API FSOUND_Geometry_Material_Free(FSOUND_MATERIAL *material);
DLL_API signed char F_API FSOUND_Geometry_Material_SetAttributes(FSOUND_MATERIAL *material, float reflectancegain, float reflectancefreq, float transmittancegain, float transmittancefreq);
DLL_API signed char F_API FSOUND_Geometry_Material_GetAttributes(FSOUND_MATERIAL *material, float *reflectancegain, float *reflectancefreq, float *transmittancegain, float *transmittancefreq);
DLL_API signed char F_API FSOUND_Geometry_Material_Set(FSOUND_MATERIAL *material);
/* ========================================================================== */
/* Reverb functions. (eax, eax2, a3d 3.0 reverb) (NOT SUPPORTED IN LINUX/CE) */
/* ========================================================================== */
/*
Supporing EAX1, EAX2, A3D 3.0 (use FSOUND_REVERB_PRESETS if you like),
(EAX2 support through emulation/parameter conversion)
*/
DLL_API signed char F_API FSOUND_Reverb_SetEnvironment(int env, float vol, float decay, float damp);
/*
Supporting EAX2, A3D 3.0 only. Has no effect on EAX1
*/
DLL_API signed char F_API FSOUND_Reverb_SetEnvironmentAdvanced(
int env,
int Room, /* [-10000, 0] default: -10000 mB or use FSOUND_REVERB_IGNOREPARAM */
int RoomHF, /* [-10000, 0] default: 0 mB or use FSOUND_REVERB_IGNOREPARAM */
float RoomRolloffFactor, /* [0.0, 10.0] default: 0.0 or use FSOUND_REVERB_IGNOREPARAM */
float DecayTime, /* [0.1, 20.0] default: 1.0 s or use FSOUND_REVERB_IGNOREPARAM */
float DecayHFRatio, /* [0.1, 2.0] default: 0.5 or use FSOUND_REVERB_IGNOREPARAM */
int Reflections, /* [-10000, 1000] default: -10000 mB or use FSOUND_REVERB_IGNOREPARAM */
float ReflectionsDelay, /* [0.0, 0.3] default: 0.02 s or use FSOUND_REVERB_IGNOREPARAM */
int Reverb, /* [-10000, 2000] default: -10000 mB or use FSOUND_REVERB_IGNOREPARAM */
float ReverbDelay, /* [0.0, 0.1] default: 0.04 s or use FSOUND_REVERB_IGNOREPARAM */
float EnvironmentSize, /* [0.0, 100.0] default: 100.0 % or use FSOUND_REVERB_IGNOREPARAM */
float EnvironmentDiffusion, /* [0.0, 100.0] default: 100.0 % or use FSOUND_REVERB_IGNOREPARAM */
float AirAbsorptionHF); /* [20.0, 20000.0] default: 5000.0 Hz or use FSOUND_REVERB_IGNOREPARAM */
DLL_API signed char F_API FSOUND_Reverb_SetMix(int channel, float mix);
/*
Reverb information functions.
*/
DLL_API signed char F_API FSOUND_Reverb_GetEnvironment(int *env, float *vol, float *decay, float *damp);
DLL_API signed char F_API FSOUND_Reverb_GetEnvironmentAdvanced(
int *env,
int *Room,
int *RoomHF,
float *RoomRolloffFactor,
float *DecayTime,
float *DecayHFRatio,
int *Reflections,
float *ReflectionsDelay,
int *Reverb,
float *ReverbDelay,
float *EnvironmentSize,
float *EnvironmentDiffusion,
float *AirAbsorptionHF);
DLL_API signed char F_API FSOUND_Reverb_GetMix(int channel, float *mix);
/* ================================================ */
/* Recording functions (NOT SUPPORTED IN LINUX/CE) */
/* ================================================ */
/*
Recording initialization functions
*/
DLL_API signed char F_API FSOUND_Record_SetDriver(int outputtype);
DLL_API int F_API FSOUND_Record_GetNumDrivers();
DLL_API signed char * F_API FSOUND_Record_GetDriverName(int id);
DLL_API int F_API FSOUND_Record_GetDriver();
/*
Recording functionality. Only one recording session will work at a time.
*/
DLL_API signed char F_API FSOUND_Record_StartSample(FSOUND_SAMPLE *sptr, signed char loop);
DLL_API signed char F_API FSOUND_Record_Stop();
DLL_API int F_API FSOUND_Record_GetPosition();
/* ========================================================================================== */
/* FMUSIC API (MOD,S3M,XM,IT,MIDI PLAYBACK) */
/* ========================================================================================== */
/*
Song management / playback functions.
*/
DLL_API FMUSIC_MODULE * F_API FMUSIC_LoadSong(const char *name);
DLL_API FMUSIC_MODULE * F_API FMUSIC_LoadSongMemory(void *data, int length);
DLL_API signed char F_API FMUSIC_FreeSong(FMUSIC_MODULE *mod);
DLL_API signed char F_API FMUSIC_PlaySong(FMUSIC_MODULE *mod);
DLL_API signed char F_API FMUSIC_StopSong(FMUSIC_MODULE *mod);
DLL_API void F_API FMUSIC_StopAllSongs();
DLL_API signed char F_API FMUSIC_SetZxxCallback(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback);
DLL_API signed char F_API FMUSIC_SetRowCallback(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback, int rowstep);
DLL_API signed char F_API FMUSIC_SetOrderCallback(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback, int orderstep);
DLL_API signed char F_API FMUSIC_SetInstCallback(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback, int instrument);
DLL_API signed char F_API FMUSIC_SetSample(FMUSIC_MODULE *mod, int sampno, FSOUND_SAMPLE *sptr);
DLL_API signed char F_API FMUSIC_OptimizeChannels(FMUSIC_MODULE *mod, int maxchannels, int minvolume);
/*
Runtime song functions.
*/
DLL_API signed char F_API FMUSIC_SetReverb(signed char reverb); /* MIDI only */
DLL_API signed char F_API FMUSIC_SetOrder(FMUSIC_MODULE *mod, int order);
DLL_API signed char F_API FMUSIC_SetPaused(FMUSIC_MODULE *mod, signed char pause);
DLL_API signed char F_API FMUSIC_SetMasterVolume(FMUSIC_MODULE *mod, int volume);
DLL_API signed char F_API FMUSIC_SetPanSeperation(FMUSIC_MODULE *mod, float pansep);
/*
Static song information functions.
*/
DLL_API char * F_API FMUSIC_GetName(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetType(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetNumOrders(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetNumPatterns(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetNumInstruments(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetNumSamples(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetNumChannels(FMUSIC_MODULE *mod);
DLL_API FSOUND_SAMPLE * F_API FMUSIC_GetSample(FMUSIC_MODULE *mod, int sampno);
DLL_API int F_API FMUSIC_GetPatternLength(FMUSIC_MODULE *mod, int orderno);
/*
Runtime song information.
*/
DLL_API signed char F_API FMUSIC_IsFinished(FMUSIC_MODULE *mod);
DLL_API signed char F_API FMUSIC_IsPlaying(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetMasterVolume(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetGlobalVolume(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetOrder(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetPattern(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetSpeed(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetBPM(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetRow(FMUSIC_MODULE *mod);
DLL_API signed char F_API FMUSIC_GetPaused(FMUSIC_MODULE *mod);
DLL_API int F_API FMUSIC_GetTime(FMUSIC_MODULE *mod);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -