📄 fmod.h
字号:
DLL_API signed char F_API FSOUND_FX_SetCompressor(int fxid, float Gain, float Attack, float Release, float Threshold, float Ratio, float Predelay);
DLL_API signed char F_API FSOUND_FX_SetDistortion(int fxid, float Gain, float Edge, float PostEQCenterFrequency, float PostEQBandwidth, float PreLowpassCutoff);
DLL_API signed char F_API FSOUND_FX_SetEcho(int fxid, float WetDryMix, float Feedback, float LeftDelay, float RightDelay, int PanDelay);
DLL_API signed char F_API FSOUND_FX_SetFlanger(int fxid, float WetDryMix, float Depth, float Feedback, float Frequency, int Waveform, float Delay, int Phase);
DLL_API signed char F_API FSOUND_FX_SetGargle(int fxid, int RateHz, int WaveShape);
DLL_API signed char F_API FSOUND_FX_SetI3DL2Reverb(int fxid, 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 fxid, float Center, float Bandwidth, float Gain);
DLL_API signed char F_API FSOUND_FX_SetWavesReverb(int fxid, 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_GetLoopMode(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(); /* you must call this once a frame */
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.
Use FSOUND_FREE as the 'channel' variable, to let FMOD pick a free channel for you.
*/
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_SetBufferSize(int ms); /* call this before opening streams, not after */
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. */
/* =================== */
/*
Note : 0 = default cdrom. Otherwise specify the drive letter, for example. 'D'.
*/
DLL_API signed char F_API FSOUND_CD_Play(char drive, int track);
DLL_API void F_API FSOUND_CD_SetPlayMode(char drive, signed char mode);
DLL_API signed char F_API FSOUND_CD_Stop(char drive);
DLL_API signed char F_API FSOUND_CD_SetPaused(char drive, signed char paused);
DLL_API signed char F_API FSOUND_CD_SetVolume(char drive, int volume);
DLL_API signed char F_API FSOUND_CD_Eject(char drive);
DLL_API signed char F_API FSOUND_CD_GetPaused(char drive);
DLL_API int F_API FSOUND_CD_GetTrack(char drive);
DLL_API int F_API FSOUND_CD_GetNumTracks(char drive);
DLL_API int F_API FSOUND_CD_GetVolume(char drive);
DLL_API int F_API FSOUND_CD_GetTrackLength(char drive, int track);
DLL_API int F_API FSOUND_CD_GetTrackTime(char drive);
/* ============== */
/* DSP functions. */
/* ============== */
/*
DSP Unit control and information functions.
These functions allow you access to the mixed stream that FMOD uses to play back sound on.
*/
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_GetFFTUnit();
DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetClipAndCopyUnit();
/*
Miscellaneous DSP functions
Note for the spectrum analysis function to work, you have to enable the FFT DSP unit with
the following code FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), TRUE);
It is off by default to save cpu usage.
*/
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 - call FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), TRUE)) for this to work. */
/* ================================================ */
/* 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. (eax3 reverb) (NOT SUPPORTED IN LINUX/CE) */
/* ========================================================================== */
/*
See top of file for definitions and information on the reverb parameters.
*/
DLL_API signed char F_API FSOUND_Reverb_SetProperties(FSOUND_REVERB_PROPERTIES *prop);
DLL_API signed char F_API FSOUND_Reverb_GetProperties(FSOUND_REVERB_PROPERTIES *prop);
DLL_API signed char F_API FSOUND_Reverb_SetChannelProperties(int channel, FSOUND_REVERB_CHANNELPROPERTIES *prop);
DLL_API signed char F_API FSOUND_Reverb_GetChannelProperties(int channel, FSOUND_REVERB_CHANNELPROPERTIES *prop);
/* ================================================ */
/* 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 + -