📄 bass.h
字号:
#define BASS_MUSIC_ATTRIB_VOL_CHAN 0x100 // + channel #
#define BASS_MUSIC_ATTRIB_VOL_INST 0x200 // + instrument #
#ifdef _WIN32
// DX8 effect types, use with BASS_ChannelSetFX
enum
{
BASS_FX_CHORUS, // GUID_DSFX_STANDARD_CHORUS
BASS_FX_COMPRESSOR, // GUID_DSFX_STANDARD_COMPRESSOR
BASS_FX_DISTORTION, // GUID_DSFX_STANDARD_DISTORTION
BASS_FX_ECHO, // GUID_DSFX_STANDARD_ECHO
BASS_FX_FLANGER, // GUID_DSFX_STANDARD_FLANGER
BASS_FX_GARGLE, // GUID_DSFX_STANDARD_GARGLE
BASS_FX_I3DL2REVERB, // GUID_DSFX_STANDARD_I3DL2REVERB
BASS_FX_PARAMEQ, // GUID_DSFX_STANDARD_PARAMEQ
BASS_FX_REVERB // GUID_DSFX_WAVES_REVERB
};
typedef struct {
float fWetDryMix;
float fDepth;
float fFeedback;
float fFrequency;
DWORD lWaveform; // 0=triangle, 1=sine
float fDelay;
DWORD lPhase; // BASS_FX_PHASE_xxx
} BASS_FXCHORUS; // DSFXChorus
typedef struct {
float fGain;
float fAttack;
float fRelease;
float fThreshold;
float fRatio;
float fPredelay;
} BASS_FXCOMPRESSOR; // DSFXCompressor
typedef struct {
float fGain;
float fEdge;
float fPostEQCenterFrequency;
float fPostEQBandwidth;
float fPreLowpassCutoff;
} BASS_FXDISTORTION; // DSFXDistortion
typedef struct {
float fWetDryMix;
float fFeedback;
float fLeftDelay;
float fRightDelay;
BOOL lPanDelay;
} BASS_FXECHO; // DSFXEcho
typedef struct {
float fWetDryMix;
float fDepth;
float fFeedback;
float fFrequency;
DWORD lWaveform; // 0=triangle, 1=sine
float fDelay;
DWORD lPhase; // BASS_FX_PHASE_xxx
} BASS_FXFLANGER; // DSFXFlanger
typedef struct {
DWORD dwRateHz; // Rate of modulation in hz
DWORD dwWaveShape; // 0=triangle, 1=square
} BASS_FXGARGLE; // DSFXGargle
typedef struct {
int lRoom; // [-10000, 0] default: -1000 mB
int lRoomHF; // [-10000, 0] default: 0 mB
float flRoomRolloffFactor; // [0.0, 10.0] default: 0.0
float flDecayTime; // [0.1, 20.0] default: 1.49s
float flDecayHFRatio; // [0.1, 2.0] default: 0.83
int lReflections; // [-10000, 1000] default: -2602 mB
float flReflectionsDelay; // [0.0, 0.3] default: 0.007 s
int lReverb; // [-10000, 2000] default: 200 mB
float flReverbDelay; // [0.0, 0.1] default: 0.011 s
float flDiffusion; // [0.0, 100.0] default: 100.0 %
float flDensity; // [0.0, 100.0] default: 100.0 %
float flHFReference; // [20.0, 20000.0] default: 5000.0 Hz
} BASS_FXI3DL2REVERB; // DSFXI3DL2Reverb
typedef struct {
float fCenter;
float fBandwidth;
float fGain;
} BASS_FXPARAMEQ; // DSFXParamEq
typedef struct {
float fInGain; // [-96.0,0.0] default: 0.0 dB
float fReverbMix; // [-96.0,0.0] default: 0.0 db
float fReverbTime; // [0.001,3000.0] default: 1000.0 ms
float fHighFreqRTRatio; // [0.001,0.999] default: 0.001
} BASS_FXREVERB; // DSFXWavesReverb
#define BASS_FX_PHASE_NEG_180 0
#define BASS_FX_PHASE_NEG_90 1
#define BASS_FX_PHASE_ZERO 2
#define BASS_FX_PHASE_90 3
#define BASS_FX_PHASE_180 4
#endif
// BASS_ChannelIsActive return values
#define BASS_ACTIVE_STOPPED 0
#define BASS_ACTIVE_PLAYING 1
#define BASS_ACTIVE_STALLED 2
#define BASS_ACTIVE_PAUSED 3
// BASS_ChannelIsSliding return flags
#define BASS_SLIDE_FREQ 1
#define BASS_SLIDE_VOL 2
#define BASS_SLIDE_PAN 4
// BASS_RecordSetInput flags
#define BASS_INPUT_OFF 0x10000
#define BASS_INPUT_ON 0x20000
#define BASS_INPUT_LEVEL 0x40000
#define BASS_INPUT_TYPE_MASK 0xff000000
#define BASS_INPUT_TYPE_UNDEF 0x00000000
#define BASS_INPUT_TYPE_DIGITAL 0x01000000
#define BASS_INPUT_TYPE_LINE 0x02000000
#define BASS_INPUT_TYPE_MIC 0x03000000
#define BASS_INPUT_TYPE_SYNTH 0x04000000
#define BASS_INPUT_TYPE_CD 0x05000000
#define BASS_INPUT_TYPE_PHONE 0x06000000
#define BASS_INPUT_TYPE_SPEAKER 0x07000000
#define BASS_INPUT_TYPE_WAVE 0x08000000
#define BASS_INPUT_TYPE_AUX 0x09000000
#define BASS_INPUT_TYPE_ANALOG 0x0a000000
// BASS_Set/GetConfig options
#define BASS_CONFIG_BUFFER 0
#define BASS_CONFIG_UPDATEPERIOD 1
#define BASS_CONFIG_MAXVOL 3
#define BASS_CONFIG_GVOL_SAMPLE 4
#define BASS_CONFIG_GVOL_STREAM 5
#define BASS_CONFIG_GVOL_MUSIC 6
#define BASS_CONFIG_CURVE_VOL 7
#define BASS_CONFIG_CURVE_PAN 8
#define BASS_CONFIG_FLOATDSP 9
#define BASS_CONFIG_3DALGORITHM 10
#define BASS_CONFIG_NET_TIMEOUT 11
#define BASS_CONFIG_NET_BUFFER 12
#define BASS_CONFIG_PAUSE_NOPLAY 13
#define BASS_CONFIG_NET_NOPROXY 14
#define BASS_CONFIG_NET_PREBUF 15
#define BASS_CONFIG_NET_AGENT 16
DWORD BASSDEF(BASS_SetConfig)(DWORD option, DWORD value);
DWORD BASSDEF(BASS_GetConfig)(DWORD option);
DWORD BASSDEF(BASS_GetVersion)();
char *BASSDEF(BASS_GetDeviceDescription)(DWORD device);
int BASSDEF(BASS_ErrorGetCode)();
#ifdef _WIN32
BOOL BASSDEF(BASS_Init)(int device, DWORD freq, DWORD flags, HWND win, const GUID *dsguid);
#else
BOOL BASSDEF(BASS_Init)(int device, DWORD freq, DWORD flags, void *win, void *dsguid);
#endif
BOOL BASSDEF(BASS_SetDevice)(DWORD device);
DWORD BASSDEF(BASS_GetDevice)();
BOOL BASSDEF(BASS_Free)();
#ifdef _WIN32
void *BASSDEF(BASS_GetDSoundObject)(DWORD object);
#endif
BOOL BASSDEF(BASS_GetInfo)(BASS_INFO *info);
BOOL BASSDEF(BASS_Update)();
float BASSDEF(BASS_GetCPU)();
BOOL BASSDEF(BASS_Start)();
BOOL BASSDEF(BASS_Stop)();
BOOL BASSDEF(BASS_Pause)();
BOOL BASSDEF(BASS_SetVolume)(DWORD volume);
DWORD BASSDEF(BASS_GetVolume)();
HPLUGIN BASSDEF(BASS_PluginLoad)(const char *file);
BOOL BASSDEF(BASS_PluginFree)(HPLUGIN handle);
BOOL BASSDEF(BASS_Set3DFactors)(float distf, float rollf, float doppf);
BOOL BASSDEF(BASS_Get3DFactors)(float *distf, float *rollf, float *doppf);
BOOL BASSDEF(BASS_Set3DPosition)(const BASS_3DVECTOR *pos, const BASS_3DVECTOR *vel, const BASS_3DVECTOR *front, const BASS_3DVECTOR *top);
BOOL BASSDEF(BASS_Get3DPosition)(BASS_3DVECTOR *pos, BASS_3DVECTOR *vel, BASS_3DVECTOR *front, BASS_3DVECTOR *top);
void BASSDEF(BASS_Apply3D)();
#ifdef _WIN32
BOOL BASSDEF(BASS_SetEAXParameters)(int env, float vol, float decay, float damp);
BOOL BASSDEF(BASS_GetEAXParameters)(DWORD *env, float *vol, float *decay, float *damp);
#endif
HMUSIC BASSDEF(BASS_MusicLoad)(BOOL mem, const void *file, DWORD offset, DWORD length, DWORD flags, DWORD freq);
BOOL BASSDEF(BASS_MusicFree)(HMUSIC handle);
DWORD BASSDEF(BASS_MusicSetAttribute)(HMUSIC handle, DWORD attrib, DWORD value);
DWORD BASSDEF(BASS_MusicGetAttribute)(HMUSIC handle, DWORD attrib);
char *BASSDEF(BASS_MusicGetName)(HMUSIC handle);
DWORD BASSDEF(BASS_MusicGetOrders)(HMUSIC handle);
DWORD BASSDEF(BASS_MusicGetOrderPosition)(HMUSIC handle);
HSAMPLE BASSDEF(BASS_SampleLoad)(BOOL mem, const void *file, DWORD offset, DWORD length, DWORD max, DWORD flags);
void* BASSDEF(BASS_SampleCreate)(DWORD length, DWORD freq, DWORD chans, DWORD max, DWORD flags);
HSAMPLE BASSDEF(BASS_SampleCreateDone)();
BOOL BASSDEF(BASS_SampleFree)(HSAMPLE handle);
BOOL BASSDEF(BASS_SampleGetInfo)(HSAMPLE handle, BASS_SAMPLE *info);
BOOL BASSDEF(BASS_SampleSetInfo)(HSAMPLE handle, const BASS_SAMPLE *info);
HCHANNEL BASSDEF(BASS_SampleGetChannel)(HSAMPLE handle, BOOL onlynew);
BOOL BASSDEF(BASS_SampleStop)(HSAMPLE handle);
HSTREAM BASSDEF(BASS_StreamCreate)(DWORD freq, DWORD chans, DWORD flags, STREAMPROC *proc, DWORD user);
HSTREAM BASSDEF(BASS_StreamCreateFile)(BOOL mem, const void *file, DWORD offset, DWORD length, DWORD flags);
HSTREAM BASSDEF(BASS_StreamCreateURL)(const char *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, DWORD user);
HSTREAM BASSDEF(BASS_StreamCreateFileUser)(BOOL buffered, DWORD flags, STREAMFILEPROC *proc, DWORD user);
BOOL BASSDEF(BASS_StreamFree)(HSTREAM handle);
char *BASSDEF(BASS_StreamGetTags)(HSTREAM handle, DWORD tags);
DWORD BASSDEF(BASS_StreamGetFilePosition)(HSTREAM handle, DWORD mode);
char *BASSDEF(BASS_RecordGetDeviceDescription)(DWORD device);
BOOL BASSDEF(BASS_RecordInit)(int device);
BOOL BASSDEF(BASS_RecordSetDevice)(DWORD device);
DWORD BASSDEF(BASS_RecordGetDevice)();
BOOL BASSDEF(BASS_RecordFree)();
BOOL BASSDEF(BASS_RecordGetInfo)(BASS_RECORDINFO *info);
char *BASSDEF(BASS_RecordGetInputName)(int input);
BOOL BASSDEF(BASS_RecordSetInput)(int input, DWORD setting);
DWORD BASSDEF(BASS_RecordGetInput)(int input);
HRECORD BASSDEF(BASS_RecordStart)(DWORD freq, DWORD chans, DWORD flags, RECORDPROC *proc, DWORD user);
float BASSDEF(BASS_ChannelBytes2Seconds)(DWORD handle, QWORD pos);
QWORD BASSDEF(BASS_ChannelSeconds2Bytes)(DWORD handle, float pos);
DWORD BASSDEF(BASS_ChannelGetDevice)(DWORD handle);
DWORD BASSDEF(BASS_ChannelIsActive)(DWORD handle);
BOOL BASSDEF(BASS_ChannelGetInfo)(DWORD handle, BASS_CHANNELINFO *info);
BOOL BASSDEF(BASS_ChannelSetFlags)(DWORD handle, DWORD flags);
BOOL BASSDEF(BASS_ChannelPreBuf)(DWORD handle, DWORD length);
BOOL BASSDEF(BASS_ChannelPlay)(DWORD handle, BOOL restart);
BOOL BASSDEF(BASS_ChannelStop)(DWORD handle);
BOOL BASSDEF(BASS_ChannelPause)(DWORD handle);
BOOL BASSDEF(BASS_ChannelSetAttributes)(DWORD handle, int freq, int volume, int pan);
BOOL BASSDEF(BASS_ChannelGetAttributes)(DWORD handle, DWORD *freq, DWORD *volume, int *pan);
BOOL BASSDEF(BASS_ChannelSlideAttributes)(DWORD handle, int freq, int volume, int pan, DWORD time);
DWORD BASSDEF(BASS_ChannelIsSliding)(DWORD handle);
BOOL BASSDEF(BASS_ChannelSet3DAttributes)(DWORD handle, int mode, float min, float max, int iangle, int oangle, int outvol);
BOOL BASSDEF(BASS_ChannelGet3DAttributes)(DWORD handle, DWORD *mode, float *min, float *max, DWORD *iangle, DWORD *oangle, DWORD *outvol);
BOOL BASSDEF(BASS_ChannelSet3DPosition)(DWORD handle, const BASS_3DVECTOR *pos, const BASS_3DVECTOR *orient, const BASS_3DVECTOR *vel);
BOOL BASSDEF(BASS_ChannelGet3DPosition)(DWORD handle, BASS_3DVECTOR *pos, BASS_3DVECTOR *orient, BASS_3DVECTOR *vel);
QWORD BASSDEF(BASS_ChannelGetLength)(DWORD handle);
BOOL BASSDEF(BASS_ChannelSetPosition)(DWORD handle, QWORD pos);
QWORD BASSDEF(BASS_ChannelGetPosition)(DWORD handle);
DWORD BASSDEF(BASS_ChannelGetLevel)(DWORD handle);
DWORD BASSDEF(BASS_ChannelGetData)(DWORD handle, void *buffer, DWORD length);
HSYNC BASSDEF(BASS_ChannelSetSync)(DWORD handle, DWORD type, QWORD param, SYNCPROC *proc, DWORD user);
BOOL BASSDEF(BASS_ChannelRemoveSync)(DWORD handle, HSYNC sync);
HDSP BASSDEF(BASS_ChannelSetDSP)(DWORD handle, DSPPROC *proc, DWORD user, int priority);
BOOL BASSDEF(BASS_ChannelRemoveDSP)(DWORD handle, HDSP dsp);
BOOL BASSDEF(BASS_ChannelSetLink)(DWORD handle, DWORD chan);
BOOL BASSDEF(BASS_ChannelRemoveLink)(DWORD handle, DWORD chan);
#ifdef _WIN32
BOOL BASSDEF(BASS_ChannelSetEAXMix)(DWORD handle, float mix);
BOOL BASSDEF(BASS_ChannelGetEAXMix)(DWORD handle, float *mix);
HFX BASSDEF(BASS_ChannelSetFX)(DWORD handle, DWORD type, DWORD priority);
BOOL BASSDEF(BASS_ChannelRemoveFX)(DWORD handle, HFX fx);
BOOL BASSDEF(BASS_FXSetParameters)(HFX handle, const void *par);
BOOL BASSDEF(BASS_FXGetParameters)(HFX handle, void *par);
#endif
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -