⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bass.h

📁 bass player system api c++
💻 H
📖 第 1 页 / 共 3 页
字号:
// DX7 voice allocation & management flags#define BASS_VAM_HARDWARE		1#define BASS_VAM_SOFTWARE		2#define BASS_VAM_TERM_TIME		4#define BASS_VAM_TERM_DIST		8#define BASS_VAM_TERM_PRIO		16// Channel info structure
typedef struct {	DWORD freq;		// default playback rate	DWORD chans;	// channels	DWORD flags;	// BASS_SAMPLE/STREAM/MUSIC/SPEAKER flags	DWORD ctype;	// type of channel	DWORD origres;	// original resolution	HPLUGIN plugin;	// plugin
	HSAMPLE sample; // sample
	const char *filename; // filename} BASS_CHANNELINFO;// BASS_CHANNELINFO types#define BASS_CTYPE_SAMPLE		1#define BASS_CTYPE_RECORD		2#define BASS_CTYPE_STREAM		0x10000#define BASS_CTYPE_STREAM_OGG	0x10002#define BASS_CTYPE_STREAM_MP1	0x10003#define BASS_CTYPE_STREAM_MP2	0x10004#define BASS_CTYPE_STREAM_MP3	0x10005#define BASS_CTYPE_STREAM_AIFF	0x10006#define BASS_CTYPE_STREAM_WAV	0x40000 // WAVE flag, LOWORD=codec#define BASS_CTYPE_STREAM_WAV_PCM	0x50001#define BASS_CTYPE_STREAM_WAV_FLOAT	0x50003#define BASS_CTYPE_MUSIC_MOD	0x20000#define BASS_CTYPE_MUSIC_MTM	0x20001#define BASS_CTYPE_MUSIC_S3M	0x20002#define BASS_CTYPE_MUSIC_XM		0x20003#define BASS_CTYPE_MUSIC_IT		0x20004#define BASS_CTYPE_MUSIC_MO3	0x00100 // MO3 flagtypedef struct {	DWORD ctype;		// channel type	const char *name;	// format description	const char *exts;	// file extension filter (*.ext1;*.ext2;etc...)} BASS_PLUGINFORM;typedef struct {	DWORD version;					// version (same form as BASS_GetVersion)	DWORD formatc;					// number of formats	const BASS_PLUGINFORM *formats;	// the array of formats} BASS_PLUGININFO;// 3D vector (for 3D positions/velocities/orientations)typedef struct BASS_3DVECTOR {#ifdef __cplusplus	BASS_3DVECTOR() {};	BASS_3DVECTOR(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {};#endif	float x;	// +=right, -=left	float y;	// +=up, -=down	float z;	// +=front, -=behind} BASS_3DVECTOR;// 3D channel modes#define BASS_3DMODE_NORMAL		0	// normal 3D processing#define BASS_3DMODE_RELATIVE	1	// position is relative to the listener#define BASS_3DMODE_OFF			2	// no 3D processing// software 3D mixing algorithms (used with BASS_CONFIG_3DALGORITHM)
#define BASS_3DALG_DEFAULT	0
#define BASS_3DALG_OFF		1
#define BASS_3DALG_FULL		2
#define BASS_3DALG_LIGHT	3

#ifdef _WIN32// EAX environments, use with BASS_SetEAXParametersenum{    EAX_ENVIRONMENT_GENERIC,    EAX_ENVIRONMENT_PADDEDCELL,    EAX_ENVIRONMENT_ROOM,    EAX_ENVIRONMENT_BATHROOM,    EAX_ENVIRONMENT_LIVINGROOM,    EAX_ENVIRONMENT_STONEROOM,    EAX_ENVIRONMENT_AUDITORIUM,    EAX_ENVIRONMENT_CONCERTHALL,    EAX_ENVIRONMENT_CAVE,    EAX_ENVIRONMENT_ARENA,    EAX_ENVIRONMENT_HANGAR,    EAX_ENVIRONMENT_CARPETEDHALLWAY,    EAX_ENVIRONMENT_HALLWAY,    EAX_ENVIRONMENT_STONECORRIDOR,    EAX_ENVIRONMENT_ALLEY,    EAX_ENVIRONMENT_FOREST,    EAX_ENVIRONMENT_CITY,    EAX_ENVIRONMENT_MOUNTAINS,    EAX_ENVIRONMENT_QUARRY,    EAX_ENVIRONMENT_PLAIN,    EAX_ENVIRONMENT_PARKINGLOT,    EAX_ENVIRONMENT_SEWERPIPE,    EAX_ENVIRONMENT_UNDERWATER,    EAX_ENVIRONMENT_DRUGGED,    EAX_ENVIRONMENT_DIZZY,    EAX_ENVIRONMENT_PSYCHOTIC,    EAX_ENVIRONMENT_COUNT			// total number of environments};// EAX presets, usage: BASS_SetEAXParameters(EAX_PRESET_xxx)#define EAX_PRESET_GENERIC         EAX_ENVIRONMENT_GENERIC,0.5F,1.493F,0.5F#define EAX_PRESET_PADDEDCELL      EAX_ENVIRONMENT_PADDEDCELL,0.25F,0.1F,0.0F#define EAX_PRESET_ROOM            EAX_ENVIRONMENT_ROOM,0.417F,0.4F,0.666F#define EAX_PRESET_BATHROOM        EAX_ENVIRONMENT_BATHROOM,0.653F,1.499F,0.166F#define EAX_PRESET_LIVINGROOM      EAX_ENVIRONMENT_LIVINGROOM,0.208F,0.478F,0.0F#define EAX_PRESET_STONEROOM       EAX_ENVIRONMENT_STONEROOM,0.5F,2.309F,0.888F#define EAX_PRESET_AUDITORIUM      EAX_ENVIRONMENT_AUDITORIUM,0.403F,4.279F,0.5F#define EAX_PRESET_CONCERTHALL     EAX_ENVIRONMENT_CONCERTHALL,0.5F,3.961F,0.5F#define EAX_PRESET_CAVE            EAX_ENVIRONMENT_CAVE,0.5F,2.886F,1.304F#define EAX_PRESET_ARENA           EAX_ENVIRONMENT_ARENA,0.361F,7.284F,0.332F#define EAX_PRESET_HANGAR          EAX_ENVIRONMENT_HANGAR,0.5F,10.0F,0.3F#define EAX_PRESET_CARPETEDHALLWAY EAX_ENVIRONMENT_CARPETEDHALLWAY,0.153F,0.259F,2.0F#define EAX_PRESET_HALLWAY         EAX_ENVIRONMENT_HALLWAY,0.361F,1.493F,0.0F#define EAX_PRESET_STONECORRIDOR   EAX_ENVIRONMENT_STONECORRIDOR,0.444F,2.697F,0.638F#define EAX_PRESET_ALLEY           EAX_ENVIRONMENT_ALLEY,0.25F,1.752F,0.776F#define EAX_PRESET_FOREST          EAX_ENVIRONMENT_FOREST,0.111F,3.145F,0.472F#define EAX_PRESET_CITY            EAX_ENVIRONMENT_CITY,0.111F,2.767F,0.224F#define EAX_PRESET_MOUNTAINS       EAX_ENVIRONMENT_MOUNTAINS,0.194F,7.841F,0.472F#define EAX_PRESET_QUARRY          EAX_ENVIRONMENT_QUARRY,1.0F,1.499F,0.5F#define EAX_PRESET_PLAIN           EAX_ENVIRONMENT_PLAIN,0.097F,2.767F,0.224F#define EAX_PRESET_PARKINGLOT      EAX_ENVIRONMENT_PARKINGLOT,0.208F,1.652F,1.5F#define EAX_PRESET_SEWERPIPE       EAX_ENVIRONMENT_SEWERPIPE,0.652F,2.886F,0.25F#define EAX_PRESET_UNDERWATER      EAX_ENVIRONMENT_UNDERWATER,1.0F,1.499F,0.0F#define EAX_PRESET_DRUGGED         EAX_ENVIRONMENT_DRUGGED,0.875F,8.392F,1.388F#define EAX_PRESET_DIZZY           EAX_ENVIRONMENT_DIZZY,0.139F,17.234F,0.666F#define EAX_PRESET_PSYCHOTIC       EAX_ENVIRONMENT_PSYCHOTIC,0.486F,7.563F,0.806F#endiftypedef DWORD (CALLBACK STREAMPROC)(HSTREAM handle, void *buffer, DWORD length, void *user);/* User stream callback function. NOTE: A stream function should obviously be as quickas possible, other streams (and MOD musics) can't be mixed until it's finished.handle : The stream that needs writingbuffer : Buffer to write the samples inlength : Number of bytes to writeuser   : The 'user' parameter value given when calling BASS_StreamCreateRETURN : Number of bytes written. Set the BASS_STREAMPROC_END flag to end         the stream. */#define BASS_STREAMPROC_END		0x80000000	// end of user stream flag
// special STREAMPROCs
#define STREAMPROC_DUMMY		(STREAMPROC*)0		// "dummy" stream
#define STREAMPROC_PUSH			(STREAMPROC*)-1		// push stream
// BASS_StreamCreateFileUser file systems
#define STREAMFILE_NOBUFFER		0
#define STREAMFILE_BUFFER		1
#define STREAMFILE_BUFFERPUSH	2

// User file stream callback functions
typedef void (CALLBACK FILECLOSEPROC)(void *user);
typedef QWORD (CALLBACK FILELENPROC)(void *user);
typedef DWORD (CALLBACK FILEREADPROC)(void *buffer, DWORD length, void *user);
typedef BOOL (CALLBACK FILESEEKPROC)(QWORD offset, void *user);

typedef struct {
	FILECLOSEPROC *close;
	FILELENPROC *length;
	FILEREADPROC *read;
	FILESEEKPROC *seek;
} BASS_FILEPROCS;

// BASS_StreamPutFileData options
#define BASS_FILEDATA_END		0	// end & close the file

// BASS_StreamGetFilePosition modes#define BASS_FILEPOS_CURRENT	0#define BASS_FILEPOS_DECODE		BASS_FILEPOS_CURRENT#define BASS_FILEPOS_DOWNLOAD	1#define BASS_FILEPOS_END		2#define BASS_FILEPOS_START		3#define BASS_FILEPOS_CONNECTED	4
#define BASS_FILEPOS_BUFFER		5
#define BASS_FILEPOS_SOCKET		6

typedef void (CALLBACK DOWNLOADPROC)(const void *buffer, DWORD length, void *user);/* Internet stream download callback function.buffer : Buffer containing the downloaded data... NULL=end of downloadlength : Number of bytes in the bufferuser   : The 'user' parameter value given when calling BASS_StreamCreateURL */// BASS_ChannelSetSync types#define BASS_SYNC_POS			0#define BASS_SYNC_END			2#define BASS_SYNC_META			4#define BASS_SYNC_SLIDE			5#define BASS_SYNC_STALL			6#define BASS_SYNC_DOWNLOAD		7#define BASS_SYNC_FREE			8#define BASS_SYNC_SETPOS		11
#define BASS_SYNC_MUSICPOS		10#define BASS_SYNC_MUSICINST		1#define BASS_SYNC_MUSICFX		3#define BASS_SYNC_OGG_CHANGE	12
#define BASS_SYNC_MIXTIME		0x40000000	// FLAG: sync at mixtime, else at playtime#define BASS_SYNC_ONETIME		0x80000000	// FLAG: sync only once, else continuouslytypedef void (CALLBACK SYNCPROC)(HSYNC handle, DWORD channel, DWORD data, void *user);/* Sync callback function. NOTE: a sync callback function should be veryquick as other syncs can't be processed until it has finished. If the syncis a "mixtime" sync, then other streams and MOD musics can't be mixed untilit's finished either.handle : The sync that has occuredchannel: Channel that the sync occured indata   : Additional data associated with the sync's occuranceuser   : The 'user' parameter given when calling BASS_ChannelSetSync */typedef void (CALLBACK DSPPROC)(HDSP handle, DWORD channel, void *buffer, DWORD length, void *user);/* DSP callback function. NOTE: A DSP function should obviously be as quick aspossible... other DSP functions, streams and MOD musics can not be processeduntil it's finished.handle : The DSP handlechannel: Channel that the DSP is being applied tobuffer : Buffer to apply the DSP tolength : Number of bytes in the bufferuser   : The 'user' parameter given when calling BASS_ChannelSetDSP */typedef BOOL (CALLBACK RECORDPROC)(HRECORD handle, const void *buffer, DWORD length, void *user);/* Recording callback function.handle : The recording handlebuffer : Buffer containing the recorded sample datalength : Number of bytesuser   : The 'user' parameter value given when calling BASS_RecordStartRETURN : TRUE = continue recording, FALSE = stop */// BASS_ChannelIsActive return values
#define BASS_ACTIVE_STOPPED	0
#define BASS_ACTIVE_PLAYING	1
#define BASS_ACTIVE_STALLED	2
#define BASS_ACTIVE_PAUSED	3

// Channel attributes
#define BASS_ATTRIB_FREQ			1
#define BASS_ATTRIB_VOL				2
#define BASS_ATTRIB_PAN				3
#define BASS_ATTRIB_EAXMIX			4
#define BASS_ATTRIB_MUSIC_AMPLIFY	0x100
#define BASS_ATTRIB_MUSIC_PANSEP	0x101
#define BASS_ATTRIB_MUSIC_PSCALER	0x102
#define BASS_ATTRIB_MUSIC_BPM		0x103
#define BASS_ATTRIB_MUSIC_SPEED		0x104
#define BASS_ATTRIB_MUSIC_VOL_GLOBAL 0x105
#define BASS_ATTRIB_MUSIC_VOL_CHAN	0x200 // + channel #
#define BASS_ATTRIB_MUSIC_VOL_INST	0x300 // + instrument #

// BASS_ChannelGetData flags#define BASS_DATA_AVAILABLE	0			// query how much data is buffered#define BASS_DATA_FLOAT		0x40000000	// flag: return floating-point sample data#define BASS_DATA_FFT256	0x80000000	// 256 sample FFT
#define BASS_DATA_FFT512	0x80000001	// 512 FFT#define BASS_DATA_FFT1024	0x80000002	// 1024 FFT#define BASS_DATA_FFT2048	0x80000003	// 2048 FFT#define BASS_DATA_FFT4096	0x80000004	// 4096 FFT#define BASS_DATA_FFT8192	0x80000005	// 8192 FFT
#define BASS_DATA_FFT_INDIVIDUAL 0x10	// FFT flag: FFT for each channel, else all combined#define BASS_DATA_FFT_NOWINDOW	0x20	// FFT flag: no Hanning window// BASS_ChannelGetTags types : what's returned#define BASS_TAG_ID3		0	// ID3v1 tags : TAG_ID3 structure#define BASS_TAG_ID3V2		1	// ID3v2 tags : variable length block#define BASS_TAG_OGG		2	// OGG comments : series of null-terminated UTF-8 strings#define BASS_TAG_HTTP		3	// HTTP headers : series of null-terminated ANSI strings#define BASS_TAG_ICY		4	// ICY headers : series of null-terminated ANSI strings#define BASS_TAG_META		5	// ICY metadata : ANSI string#define BASS_TAG_VENDOR		9	// OGG encoder : UTF-8 string
#define BASS_TAG_LYRICS3	10	// Lyric3v2 tag : ASCII string
#define BASS_TAG_RIFF_INFO	0x100 // RIFF "INFO" tags : series of null-terminated ANSI strings#define BASS_TAG_RIFF_BEXT	0x101 // RIFF/BWF Broadcast Audio Extension tags : TAG_BEXT structure
#define BASS_TAG_MUSIC_NAME		0x10000	// MOD music name : ANSI string#define BASS_TAG_MUSIC_MESSAGE	0x10001	// MOD message : ANSI string#define BASS_TAG_MUSIC_INST		0x10100	// + instrument #, MOD instrument name : ANSI string#define BASS_TAG_MUSIC_SAMPLE	0x10300	// + sample #, MOD sample name : ANSI string

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -