@@ -55,13 +55,13 @@ extern "C" {
55
55
56
56
typedef DWORD HMUSIC ; // MOD music handle
57
57
typedef DWORD HSAMPLE ; // sample handle
58
- typedef DWORD HCHANNEL ; // playing sample's channel handle
58
+ typedef DWORD HCHANNEL ; // sample playback handle
59
59
typedef DWORD HSTREAM ; // sample stream handle
60
60
typedef DWORD HRECORD ; // recording handle
61
61
typedef DWORD HSYNC ; // synchronizer handle
62
62
typedef DWORD HDSP ; // DSP handle
63
- typedef DWORD HFX ; // DX8 effect handle
64
- typedef DWORD HPLUGIN ; // Plugin handle
63
+ typedef DWORD HFX ; // effect handle
64
+ typedef DWORD HPLUGIN ; // plugin handle
65
65
66
66
// Error codes returned by BASS_ErrorGetCode
67
67
#define BASS_OK 0 // all is OK
@@ -103,6 +103,7 @@ typedef DWORD HPLUGIN; // Plugin handle
103
103
#define BASS_ERROR_ENDED 45 // the channel/file has ended
104
104
#define BASS_ERROR_BUSY 46 // the device is busy
105
105
#define BASS_ERROR_UNSTREAMABLE 47 // unstreamable file
106
+ #define BASS_ERROR_PROTOCOL 48 // unsupported protocol
106
107
#define BASS_ERROR_UNKNOWN -1 // some other mystery problem
107
108
108
109
// BASS_SetConfig options
@@ -157,7 +158,9 @@ typedef DWORD HPLUGIN; // Plugin handle
157
158
#define BASS_CONFIG_REC_WASAPI 66
158
159
#define BASS_CONFIG_ANDROID_AAUDIO 67
159
160
#define BASS_CONFIG_SAMPLE_ONEHANDLE 69
161
+ #define BASS_CONFIG_DEV_TIMEOUT 70
160
162
#define BASS_CONFIG_NET_META 71
163
+ #define BASS_CONFIG_NET_RESTRATE 72
161
164
162
165
// BASS_SetConfigPtr options
163
166
#define BASS_CONFIG_NET_AGENT 16
@@ -249,7 +252,7 @@ typedef struct {
249
252
} BASS_INFO ;
250
253
251
254
// BASS_INFO flags (from DSOUND.H)
252
- #define DSCAPS_EMULDRIVER 0x00000020 // device does NOT have hardware DirectSound support
255
+ #define DSCAPS_EMULDRIVER 0x00000020 // device does not have hardware DirectSound support
253
256
#define DSCAPS_CERTIFIED 0x00000040 // device driver has been certified by Microsoft
254
257
255
258
#define DSCAPS_HARDWARE 0x80000000 // hardware mixed
@@ -264,7 +267,7 @@ typedef struct {
264
267
} BASS_RECORDINFO ;
265
268
266
269
// BASS_RECORDINFO flags (from DSOUND.H)
267
- #define DSCCAPS_EMULDRIVER DSCAPS_EMULDRIVER // device does NOT have hardware DirectSound recording support
270
+ #define DSCCAPS_EMULDRIVER DSCAPS_EMULDRIVER // device does not have hardware DirectSound recording support
268
271
#define DSCCAPS_CERTIFIED DSCAPS_CERTIFIED // device driver has been certified by Microsoft
269
272
270
273
// defines for formats field of BASS_RECORDINFO (from MMSYSTEM.H)
@@ -317,11 +320,11 @@ typedef struct {
317
320
#define BASS_SAMPLE_OVER_POS 0x20000 // override longest playing
318
321
#define BASS_SAMPLE_OVER_DIST 0x30000 // override furthest from listener (3D only)
319
322
320
- #define BASS_STREAM_PRESCAN 0x20000 // enable pin-point seeking/length (MP3/MP2/MP1)
321
- #define BASS_STREAM_AUTOFREE 0x40000 // automatically free the stream when it stop /ends
322
- #define BASS_STREAM_RESTRATE 0x80000 // restrict the download rate of internet file streams
323
- #define BASS_STREAM_BLOCK 0x100000 // download/play internet file stream in small blocks
324
- #define BASS_STREAM_DECODE 0x200000 // don't play the stream, only decode (BASS_ChannelGetData)
323
+ #define BASS_STREAM_PRESCAN 0x20000 // scan file for accurate seeking and length
324
+ #define BASS_STREAM_AUTOFREE 0x40000 // automatically free the stream when it stops /ends
325
+ #define BASS_STREAM_RESTRATE 0x80000 // restrict the download rate of internet file stream
326
+ #define BASS_STREAM_BLOCK 0x100000 // download internet file stream in small blocks
327
+ #define BASS_STREAM_DECODE 0x200000 // don't play the stream, only decode
325
328
#define BASS_STREAM_STATUS 0x800000 // give server status info (HTTP/ICY tags) in DOWNLOADPROC
326
329
327
330
#define BASS_MP3_IGNOREDELAY 0x200 // ignore LAME/Xing/VBRI/iTunes delay & padding info
@@ -367,8 +370,8 @@ typedef struct {
367
370
#define BASS_SPEAKER_REAR2LEFT BASS_SPEAKER_REAR2|BASS_SPEAKER_LEFT
368
371
#define BASS_SPEAKER_REAR2RIGHT BASS_SPEAKER_REAR2|BASS_SPEAKER_RIGHT
369
372
370
- #define BASS_ASYNCFILE 0x40000000
371
- #define BASS_UNICODE 0x80000000
373
+ #define BASS_ASYNCFILE 0x40000000 // read file asynchronously
374
+ #define BASS_UNICODE 0x80000000 // UTF-16
372
375
373
376
#define BASS_RECORD_PAUSE 0x8000 // start recording paused
374
377
#define BASS_RECORD_ECHOCANCEL 0x2000
@@ -385,12 +388,12 @@ typedef struct {
385
388
typedef struct {
386
389
DWORD freq ; // default playback rate
387
390
DWORD chans ; // channels
388
- DWORD flags ; // BASS_SAMPLE/STREAM/MUSIC/SPEAKER flags
391
+ DWORD flags ;
389
392
DWORD ctype ; // type of channel
390
393
DWORD origres ; // original resolution
391
- HPLUGIN plugin ; // plugin
392
- HSAMPLE sample ; // sample
393
- const char * filename ; // filename
394
+ HPLUGIN plugin ;
395
+ HSAMPLE sample ;
396
+ const char * filename ;
394
397
} BASS_CHANNELINFO ;
395
398
396
399
#define BASS_ORIGRES_FLOAT 0x10000
@@ -411,7 +414,7 @@ typedef struct {
411
414
#define BASS_CTYPE_STREAM_SAMPLE 0x1000a
412
415
#define BASS_CTYPE_STREAM_DUMMY 0x18000
413
416
#define BASS_CTYPE_STREAM_DEVICE 0x18001
414
- #define BASS_CTYPE_STREAM_WAV 0x40000 // WAVE flag, LOWORD=codec
417
+ #define BASS_CTYPE_STREAM_WAV 0x40000 // WAVE flag ( LOWORD=codec)
415
418
#define BASS_CTYPE_STREAM_WAV_PCM 0x50001
416
419
#define BASS_CTYPE_STREAM_WAV_FLOAT 0x50003
417
420
#define BASS_CTYPE_MUSIC_MOD 0x20000
@@ -461,8 +464,8 @@ typedef struct BASS_3DVECTOR {
461
464
#define BASS_3DALG_LIGHT 3
462
465
463
466
// BASS_SampleGetChannel flags
464
- #define BASS_SAMCHAN_NEW 1
465
- #define BASS_SAMCHAN_STREAM 2
467
+ #define BASS_SAMCHAN_NEW 1 // get a new playback channel
468
+ #define BASS_SAMCHAN_STREAM 2 // create a stream
466
469
467
470
typedef DWORD (CALLBACK STREAMPROC )(HSTREAM handle , void * buffer , DWORD length , void * user );
468
471
/* User stream callback function.
@@ -621,11 +624,11 @@ RETURN : TRUE = continue recording, FALSE = stop */
621
624
#define BASS_DATA_FFT_NYQUIST 0x100 // FFT flag: return extra Nyquist value
622
625
623
626
// BASS_ChannelGetLevelEx flags
624
- #define BASS_LEVEL_MONO 1
625
- #define BASS_LEVEL_STEREO 2
626
- #define BASS_LEVEL_RMS 4
627
- #define BASS_LEVEL_VOLPAN 8
628
- #define BASS_LEVEL_NOREMOVE 16
627
+ #define BASS_LEVEL_MONO 1 // get mono level
628
+ #define BASS_LEVEL_STEREO 2 // get stereo level
629
+ #define BASS_LEVEL_RMS 4 // get RMS levels
630
+ #define BASS_LEVEL_VOLPAN 8 // apply VOL/PAN attributes to the levels
631
+ #define BASS_LEVEL_NOREMOVE 16 // don't remove data from recording buffer
629
632
630
633
// BASS_ChannelGetTags types : what's returned
631
634
#define BASS_TAG_ID3 0 // ID3v1 tags : TAG_ID3 structure
@@ -829,7 +832,7 @@ typedef const WAVEFORMATEX *LPCWAVEFORMATEX;
829
832
#define BASS_POS_OGG 3 // OGG bitstream number
830
833
#define BASS_POS_END 0x10 // trimmed end position
831
834
#define BASS_POS_LOOP 0x11 // loop start positiom
832
- #define BASS_POS_FLUSH 0x1000000 // flag: flush decoder's output buffers
835
+ #define BASS_POS_FLUSH 0x1000000 // flag: flush decoder/FX buffers
833
836
#define BASS_POS_RESET 0x2000000 // flag: reset user file buffers
834
837
#define BASS_POS_RELATIVE 0x4000000 // flag: seek relative to the current position
835
838
#define BASS_POS_INEXACT 0x8000000 // flag: allow seeking to inexact position
@@ -987,7 +990,7 @@ BOOL BASSDEF(BASS_GetInfo)(BASS_INFO *info);
987
990
BOOL BASSDEF (BASS_Start )(void );
988
991
BOOL BASSDEF (BASS_Stop )(void );
989
992
BOOL BASSDEF (BASS_Pause )(void );
990
- BOOL BASSDEF (BASS_IsStarted )(void );
993
+ DWORD BASSDEF (BASS_IsStarted )(void );
991
994
BOOL BASSDEF (BASS_Update )(DWORD length );
992
995
float BASSDEF (BASS_GetCPU )(void );
993
996
BOOL BASSDEF (BASS_SetVolume )(float volume );
0 commit comments