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

📄 bass.h

📁 bass player system api c++
💻 H
📖 第 1 页 / 共 3 页
字号:
/*
	BASS 2.4 C/C++ header file
	Copyright (c) 1999-2008 Un4seen Developments Ltd.	See the BASS.CHM file for more detailed documentation
*/#ifndef BASS_H#define BASS_H#ifdef _WIN32 // Windows#include <wtypes.h>typedef unsigned __int64 QWORD;#else // OSX#include <stdint.h>#define WINAPI#define CALLBACKtypedef uint8_t BYTE;typedef uint16_t WORD;typedef uint32_t DWORD;typedef uint64_t QWORD;
#ifndef __OBJC__typedef int BOOL;
#endif#define TRUE 1#define FALSE 0#define LOBYTE(a) (BYTE)(a)
#define HIBYTE(a) (BYTE)((a)>>8)
#define LOWORD(a) (WORD)(a)#define HIWORD(a) (WORD)((a)>>16)#define MAKEWORD(a,b) (WORD)(((a)&0xff)|((b)<<8))
#define MAKELONG(a,b) (DWORD)(((a)&0xffff)|((b)<<16))#endif#ifdef __cplusplusextern "C" {#endif#define BASSVERSION 0x204	// API version#define BASSVERSIONTEXT "2.4"
#ifndef BASSDEF#define BASSDEF(f) WINAPI f#endiftypedef DWORD HMUSIC;		// MOD music handletypedef DWORD HSAMPLE;		// sample handletypedef DWORD HCHANNEL;		// playing sample's channel handletypedef DWORD HSTREAM;		// sample stream handletypedef DWORD HRECORD;		// recording handletypedef DWORD HSYNC;		// synchronizer handletypedef DWORD HDSP;			// DSP handletypedef DWORD HFX;			// DX8 effect handletypedef DWORD HPLUGIN;		// Plugin handle// Error codes returned by BASS_ErrorGetCode#define BASS_OK				0	// all is OK#define BASS_ERROR_MEM		1	// memory error#define BASS_ERROR_FILEOPEN	2	// can't open the file#define BASS_ERROR_DRIVER	3	// can't find a free/valid driver#define BASS_ERROR_BUFLOST	4	// the sample buffer was lost#define BASS_ERROR_HANDLE	5	// invalid handle#define BASS_ERROR_FORMAT	6	// unsupported sample format#define BASS_ERROR_POSITION	7	// invalid position#define BASS_ERROR_INIT		8	// BASS_Init has not been successfully called#define BASS_ERROR_START	9	// BASS_Start has not been successfully called#define BASS_ERROR_ALREADY	14	// already initialized/paused/whatever#define BASS_ERROR_NOCHAN	18	// can't get a free channel#define BASS_ERROR_ILLTYPE	19	// an illegal type was specified#define BASS_ERROR_ILLPARAM	20	// an illegal parameter was specified#define BASS_ERROR_NO3D		21	// no 3D support#define BASS_ERROR_NOEAX	22	// no EAX support#define BASS_ERROR_DEVICE	23	// illegal device number#define BASS_ERROR_NOPLAY	24	// not playing#define BASS_ERROR_FREQ		25	// illegal sample rate#define BASS_ERROR_NOTFILE	27	// the stream is not a file stream#define BASS_ERROR_NOHW		29	// no hardware voices available#define BASS_ERROR_EMPTY	31	// the MOD music has no sequence data#define BASS_ERROR_NONET	32	// no internet connection could be opened#define BASS_ERROR_CREATE	33	// couldn't create the file#define BASS_ERROR_NOFX		34	// effects are not available#define BASS_ERROR_NOTAVAIL	37	// requested data is not available#define BASS_ERROR_DECODE	38	// the channel is a "decoding channel"#define BASS_ERROR_DX		39	// a sufficient DirectX version is not installed#define BASS_ERROR_TIMEOUT	40	// connection timedout#define BASS_ERROR_FILEFORM	41	// unsupported file format#define BASS_ERROR_SPEAKER	42	// unavailable speaker#define BASS_ERROR_VERSION	43	// invalid BASS version (used by add-ons)
#define BASS_ERROR_CODEC	44	// codec is not available/supported#define BASS_ERROR_ENDED	45	// the channel/file has ended
#define BASS_ERROR_UNKNOWN	-1	// some other mystery problem// BASS_SetConfig options
#define BASS_CONFIG_BUFFER			0
#define BASS_CONFIG_UPDATEPERIOD	1
#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_PREBUF		15
#define BASS_CONFIG_NET_PASSIVE		18
#define BASS_CONFIG_REC_BUFFER		19
#define BASS_CONFIG_NET_PLAYLIST	21
#define BASS_CONFIG_MUSIC_VIRTUAL	22
#define BASS_CONFIG_VERIFY			23
#define BASS_CONFIG_UPDATETHREADS	24

// BASS_SetConfigPtr options
#define BASS_CONFIG_NET_AGENT		16
#define BASS_CONFIG_NET_PROXY		17

// Initialization flags#define BASS_DEVICE_8BITS		1	// use 8 bit resolution, else 16 bit#define BASS_DEVICE_MONO		2	// use mono, else stereo#define BASS_DEVICE_3D			4	// enable 3D functionality#define BASS_DEVICE_LATENCY		256	// calculate device latency (BASS_INFO struct)#define BASS_DEVICE_CPSPEAKERS	1024 // detect speakers via Windows control panel
#define BASS_DEVICE_SPEAKERS	2048 // force enabling of speaker assignment#define BASS_DEVICE_NOSPEAKER	4096 // ignore speaker arrangement// DirectSound interfaces (for use with BASS_GetDSoundObject)#define BASS_OBJECT_DS		1	// IDirectSound#define BASS_OBJECT_DS3DL	2	// IDirectSound3DListener
// Device info structure
typedef struct {
	const char *name;	// description
	const char *driver;	// driver
	DWORD flags;
} BASS_DEVICEINFO;

// BASS_DEVICEINFO flags
#define BASS_DEVICE_ENABLED		1
#define BASS_DEVICE_DEFAULT		2
#define BASS_DEVICE_INIT		4

typedef struct {	DWORD flags;	// device capabilities (DSCAPS_xxx flags)	DWORD hwsize;	// size of total device hardware memory	DWORD hwfree;	// size of free device hardware memory	DWORD freesam;	// number of free sample slots in the hardware	DWORD free3d;	// number of free 3D sample slots in the hardware	DWORD minrate;	// min sample rate supported by the hardware	DWORD maxrate;	// max sample rate supported by the hardware	BOOL eax;		// device supports EAX? (always FALSE if BASS_DEVICE_3D was not used)	DWORD minbuf;	// recommended minimum buffer length in ms (requires BASS_DEVICE_LATENCY)	DWORD dsver;	// DirectSound version	DWORD latency;	// delay (in ms) before start of playback (requires BASS_DEVICE_LATENCY)	DWORD initflags;// BASS_Init "flags" parameter	DWORD speakers; // number of speakers available	DWORD freq;		// current output rate (Vista/OSX only)
} BASS_INFO;// BASS_INFO flags (from DSOUND.H)#define DSCAPS_CONTINUOUSRATE	0x00000010	// supports all sample rates between min/maxrate#define DSCAPS_EMULDRIVER		0x00000020	// device does NOT have hardware DirectSound support#define DSCAPS_CERTIFIED		0x00000040	// device driver has been certified by Microsoft#define DSCAPS_SECONDARYMONO	0x00000100	// mono#define DSCAPS_SECONDARYSTEREO	0x00000200	// stereo#define DSCAPS_SECONDARY8BIT	0x00000400	// 8 bit#define DSCAPS_SECONDARY16BIT	0x00000800	// 16 bit// Recording device info structure
typedef struct {	DWORD flags;	// device capabilities (DSCCAPS_xxx flags)	DWORD formats;	// supported standard formats (WAVE_FORMAT_xxx flags)	DWORD inputs;	// number of inputs	BOOL singlein;	// TRUE = only 1 input can be set at a time	DWORD freq;		// current input rate (Vista/OSX only)
} BASS_RECORDINFO;// BASS_RECORDINFO flags (from DSOUND.H)#define DSCCAPS_EMULDRIVER	DSCAPS_EMULDRIVER	// device does NOT have hardware DirectSound recording support#define DSCCAPS_CERTIFIED	DSCAPS_CERTIFIED	// device driver has been certified by Microsoft// defines for formats field of BASS_RECORDINFO (from MMSYSTEM.H)#ifndef WAVE_FORMAT_1M08#define WAVE_FORMAT_1M08       0x00000001       /* 11.025 kHz, Mono,   8-bit  */#define WAVE_FORMAT_1S08       0x00000002       /* 11.025 kHz, Stereo, 8-bit  */#define WAVE_FORMAT_1M16       0x00000004       /* 11.025 kHz, Mono,   16-bit */#define WAVE_FORMAT_1S16       0x00000008       /* 11.025 kHz, Stereo, 16-bit */#define WAVE_FORMAT_2M08       0x00000010       /* 22.05  kHz, Mono,   8-bit  */#define WAVE_FORMAT_2S08       0x00000020       /* 22.05  kHz, Stereo, 8-bit  */#define WAVE_FORMAT_2M16       0x00000040       /* 22.05  kHz, Mono,   16-bit */#define WAVE_FORMAT_2S16       0x00000080       /* 22.05  kHz, Stereo, 16-bit */#define WAVE_FORMAT_4M08       0x00000100       /* 44.1   kHz, Mono,   8-bit  */#define WAVE_FORMAT_4S08       0x00000200       /* 44.1   kHz, Stereo, 8-bit  */#define WAVE_FORMAT_4M16       0x00000400       /* 44.1   kHz, Mono,   16-bit */#define WAVE_FORMAT_4S16       0x00000800       /* 44.1   kHz, Stereo, 16-bit */#endif// Sample info structure
typedef struct {	DWORD freq;		// default playback rate	float volume;	// default volume (0-1)	float pan;		// default pan (-1=left, 0=middle, 1=right)	DWORD flags;	// BASS_SAMPLE_xxx flags	DWORD length;	// length (in bytes)	DWORD max;		// maximum simultaneous playbacks	DWORD origres;	// original resolution bits	DWORD chans;	// number of channels	DWORD mingap;	// minimum gap (ms) between creating channels	DWORD mode3d;	// BASS_3DMODE_xxx mode	float mindist;	// minimum distance	float maxdist;	// maximum distance	DWORD iangle;	// angle of inside projection cone	DWORD oangle;	// angle of outside projection cone	float outvol;	// delta-volume outside the projection cone	DWORD vam;		// voice allocation/management flags (BASS_VAM_xxx)	DWORD priority;	// priority (0=lowest, 0xffffffff=highest)} BASS_SAMPLE;#define BASS_SAMPLE_8BITS		1	// 8 bit#define BASS_SAMPLE_FLOAT		256	// 32-bit floating-point#define BASS_SAMPLE_MONO		2	// mono#define BASS_SAMPLE_LOOP		4	// looped#define BASS_SAMPLE_3D			8	// 3D functionality#define BASS_SAMPLE_SOFTWARE	16	// not using hardware mixing#define BASS_SAMPLE_MUTEMAX		32	// mute at max distance (3D only)#define BASS_SAMPLE_VAM			64	// DX7 voice allocation & management#define BASS_SAMPLE_FX			128	// old implementation of DX8 effects#define BASS_SAMPLE_OVER_VOL	0x10000	// override lowest volume#define BASS_SAMPLE_OVER_POS	0x20000	// override longest playing#define BASS_SAMPLE_OVER_DIST	0x30000 // override furthest from listener (3D only)#define BASS_STREAM_PRESCAN		0x20000 // enable pin-point seeking/length (MP3/MP2/MP1)#define BASS_MP3_SETPOS			BASS_STREAM_PRESCAN#define BASS_STREAM_AUTOFREE	0x40000	// automatically free the stream when it stop/ends#define BASS_STREAM_RESTRATE	0x80000	// restrict the download rate of internet file streams#define BASS_STREAM_BLOCK		0x100000 // download/play internet file stream in small blocks#define BASS_STREAM_DECODE		0x200000 // don't play the stream, only decode (BASS_ChannelGetData)#define BASS_STREAM_STATUS		0x800000 // give server status info (HTTP/ICY tags) in DOWNLOADPROC#define BASS_MUSIC_FLOAT		BASS_SAMPLE_FLOAT
#define BASS_MUSIC_MONO			BASS_SAMPLE_MONO
#define BASS_MUSIC_LOOP			BASS_SAMPLE_LOOP
#define BASS_MUSIC_3D			BASS_SAMPLE_3D
#define BASS_MUSIC_FX			BASS_SAMPLE_FX
#define BASS_MUSIC_AUTOFREE		BASS_STREAM_AUTOFREE#define BASS_MUSIC_DECODE		BASS_STREAM_DECODE#define BASS_MUSIC_PRESCAN		BASS_STREAM_PRESCAN	// calculate playback length#define BASS_MUSIC_CALCLEN		BASS_MUSIC_PRESCAN#define BASS_MUSIC_RAMP			0x200	// normal ramping#define BASS_MUSIC_RAMPS		0x400	// sensitive ramping#define BASS_MUSIC_SURROUND		0x800	// surround sound#define BASS_MUSIC_SURROUND2	0x1000	// surround sound (mode 2)#define BASS_MUSIC_FT2MOD		0x2000	// play .MOD as FastTracker 2 does#define BASS_MUSIC_PT1MOD		0x4000	// play .MOD as ProTracker 1 does#define BASS_MUSIC_NONINTER		0x10000	// non-interpolated sample mixing
#define BASS_MUSIC_SINCINTER	0x800000 // sinc interpolated sample mixing#define BASS_MUSIC_POSRESET		0x8000	// stop all notes when moving position
#define BASS_MUSIC_POSRESETEX	0x400000 // stop all notes and reset bmp/etc when moving position
#define BASS_MUSIC_STOPBACK		0x80000	// stop the music on a backwards jump effect#define BASS_MUSIC_NOSAMPLE		0x100000 // don't load the samples// Speaker assignment flags#define BASS_SPEAKER_FRONT	0x1000000	// front speakers#define BASS_SPEAKER_REAR	0x2000000	// rear/side speakers#define BASS_SPEAKER_CENLFE	0x3000000	// center & LFE speakers (5.1)#define BASS_SPEAKER_REAR2	0x4000000	// rear center speakers (7.1)#define BASS_SPEAKER_N(n)	((n)<<24)	// n'th pair of speakers (max 15)#define BASS_SPEAKER_LEFT	0x10000000	// modifier: left#define BASS_SPEAKER_RIGHT	0x20000000	// modifier: right#define BASS_SPEAKER_FRONTLEFT	BASS_SPEAKER_FRONT|BASS_SPEAKER_LEFT#define BASS_SPEAKER_FRONTRIGHT	BASS_SPEAKER_FRONT|BASS_SPEAKER_RIGHT#define BASS_SPEAKER_REARLEFT	BASS_SPEAKER_REAR|BASS_SPEAKER_LEFT#define BASS_SPEAKER_REARRIGHT	BASS_SPEAKER_REAR|BASS_SPEAKER_RIGHT#define BASS_SPEAKER_CENTER		BASS_SPEAKER_CENLFE|BASS_SPEAKER_LEFT#define BASS_SPEAKER_LFE		BASS_SPEAKER_CENLFE|BASS_SPEAKER_RIGHT#define BASS_SPEAKER_REAR2LEFT	BASS_SPEAKER_REAR2|BASS_SPEAKER_LEFT#define BASS_SPEAKER_REAR2RIGHT	BASS_SPEAKER_REAR2|BASS_SPEAKER_RIGHT#define BASS_UNICODE			0x80000000#define BASS_RECORD_PAUSE		0x8000	// start recording paused

⌨️ 快捷键说明

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