Commit f618a93

Nick committed on
Cleaning up repo of junk
commit f618a9390ac835bd4c0817857e13dadd70de8af7 parent 0f05fee
11 changed files +0−1025
Deleted808nokickbreak.wavcrush.dat +0−0
File metadata changed without textual changes.
Deletedbass.pas +0−1023
@@ -1,1023 +0,0 @@
1 {$mode delphi}
2
3 {
4 BASS 2.4 Delphi unit
5 Copyright (c) 1999-2018 Un4seen Developments Ltd.
6
7 See the BASS.CHM file for more detailed documentation
8
9 How to install
10 --------------
11 Copy BASS.PAS to the \LIB subdirectory of your Delphi path or your project dir
12
13 NOTE: Delphi users should use the BASS_UNICODE flag where possible
14 }
15
16 unit BASS;
17
18 interface
19
20 {$IFDEF MSWINDOWS}
21 uses
22 Windows;
23 {$ENDIF}
24
25 const
26 BASSVERSION = $204; // API version
27 BASSVERSIONTEXT = '2.4';
28
29 // Use these to test for error from functions that return a DWORD or QWORD
30 DW_ERROR = LongWord(-1); // -1 (DWORD)
31 QW_ERROR = Int64(-1); // -1 (QWORD)
32
33 // Error codes returned by BASS_ErrorGetCode()
34 BASS_OK = 0; // all is OK
35 BASS_ERROR_MEM = 1; // memory error
36 BASS_ERROR_FILEOPEN = 2; // can't open the file
37 BASS_ERROR_DRIVER = 3; // can't find a free sound driver
38 BASS_ERROR_BUFLOST = 4; // the sample buffer was lost
39 BASS_ERROR_HANDLE = 5; // invalid handle
40 BASS_ERROR_FORMAT = 6; // unsupported sample format
41 BASS_ERROR_POSITION = 7; // invalid position
42 BASS_ERROR_INIT = 8; // BASS_Init has not been successfully called
43 BASS_ERROR_START = 9; // BASS_Start has not been successfully called
44 BASS_ERROR_ALREADY = 14; // already initialized/paused/whatever
45 BASS_ERROR_NOCHAN = 18; // can't get a free channel
46 BASS_ERROR_ILLTYPE = 19; // an illegal type was specified
47 BASS_ERROR_ILLPARAM = 20; // an illegal parameter was specified
48 BASS_ERROR_NO3D = 21; // no 3D support
49 BASS_ERROR_NOEAX = 22; // no EAX support
50 BASS_ERROR_DEVICE = 23; // illegal device number
51 BASS_ERROR_NOPLAY = 24; // not playing
52 BASS_ERROR_FREQ = 25; // illegal sample rate
53 BASS_ERROR_NOTFILE = 27; // the stream is not a file stream
54 BASS_ERROR_NOHW = 29; // no hardware voices available
55 BASS_ERROR_EMPTY = 31; // the MOD music has no sequence data
56 BASS_ERROR_NONET = 32; // no internet connection could be opened
57 BASS_ERROR_CREATE = 33; // couldn't create the file
58 BASS_ERROR_NOFX = 34; // effects are not available
59 BASS_ERROR_NOTAVAIL = 37; // requested data/action is not available
60 BASS_ERROR_DECODE = 38; // the channel is/isn't a "decoding channel"
61 BASS_ERROR_DX = 39; // a sufficient DirectX version is not installed
62 BASS_ERROR_TIMEOUT = 40; // connection timedout
63 BASS_ERROR_FILEFORM = 41; // unsupported file format
64 BASS_ERROR_SPEAKER = 42; // unavailable speaker
65 BASS_ERROR_VERSION = 43; // invalid BASS version (used by add-ons)
66 BASS_ERROR_CODEC = 44; // codec is not available/supported
67 BASS_ERROR_ENDED = 45; // the channel/file has ended
68 BASS_ERROR_BUSY = 46; // the device is busy
69 BASS_ERROR_UNKNOWN = -1; // some other mystery problem
70
71 // BASS_SetConfig options
72 BASS_CONFIG_BUFFER = 0;
73 BASS_CONFIG_UPDATEPERIOD = 1;
74 BASS_CONFIG_GVOL_SAMPLE = 4;
75 BASS_CONFIG_GVOL_STREAM = 5;
76 BASS_CONFIG_GVOL_MUSIC = 6;
77 BASS_CONFIG_CURVE_VOL = 7;
78 BASS_CONFIG_CURVE_PAN = 8;
79 BASS_CONFIG_FLOATDSP = 9;
80 BASS_CONFIG_3DALGORITHM = 10;
81 BASS_CONFIG_NET_TIMEOUT = 11;
82 BASS_CONFIG_NET_BUFFER = 12;
83 BASS_CONFIG_PAUSE_NOPLAY = 13;
84 BASS_CONFIG_NET_PREBUF = 15;
85 BASS_CONFIG_NET_PASSIVE = 18;
86 BASS_CONFIG_REC_BUFFER = 19;
87 BASS_CONFIG_NET_PLAYLIST = 21;
88 BASS_CONFIG_MUSIC_VIRTUAL = 22;
89 BASS_CONFIG_VERIFY = 23;
90 BASS_CONFIG_UPDATETHREADS = 24;
91 BASS_CONFIG_DEV_BUFFER = 27;
92 BASS_CONFIG_VISTA_TRUEPOS = 30;
93 BASS_CONFIG_IOS_MIXAUDIO = 34;
94 BASS_CONFIG_DEV_DEFAULT = 36;
95 BASS_CONFIG_NET_READTIMEOUT = 37;
96 BASS_CONFIG_VISTA_SPEAKERS = 38;
97 BASS_CONFIG_IOS_SPEAKER = 39;
98 BASS_CONFIG_MF_DISABLE = 40;
99 BASS_CONFIG_HANDLES = 41;
100 BASS_CONFIG_UNICODE = 42;
101 BASS_CONFIG_SRC = 43;
102 BASS_CONFIG_SRC_SAMPLE = 44;
103 BASS_CONFIG_ASYNCFILE_BUFFER = 45;
104 BASS_CONFIG_OGG_PRESCAN = 47;
105 BASS_CONFIG_MF_VIDEO = 48;
106 BASS_CONFIG_AIRPLAY = 49;
107 BASS_CONFIG_DEV_NONSTOP = 50;
108 BASS_CONFIG_IOS_NOCATEGORY = 51;
109 BASS_CONFIG_VERIFY_NET = 52;
110 BASS_CONFIG_DEV_PERIOD = 53;
111 BASS_CONFIG_FLOAT = 54;
112 BASS_CONFIG_NET_SEEK = 56;
113 BASS_CONFIG_AM_DISABLE = 58;
114 BASS_CONFIG_NET_PLAYLIST_DEPTH = 59;
115 BASS_CONFIG_NET_PREBUF_WAIT = 60;
116
117 // BASS_SetConfigPtr options
118 BASS_CONFIG_NET_AGENT = 16;
119 BASS_CONFIG_NET_PROXY = 17;
120
121 // BASS_Init flags
122 BASS_DEVICE_8BITS = 1; // 8 bit
123 BASS_DEVICE_MONO = 2; // mono
124 BASS_DEVICE_3D = 4; // enable 3D functionality
125 BASS_DEVICE_16BITS = 8; // limit output to 16 bit
126 BASS_DEVICE_LATENCY = $100; // calculate device latency (BASS_INFO struct)
127 BASS_DEVICE_CPSPEAKERS = $400; // detect speakers via Windows control panel
128 BASS_DEVICE_SPEAKERS = $800; // force enabling of speaker assignment
129 BASS_DEVICE_NOSPEAKER = $1000; // ignore speaker arrangement
130 BASS_DEVICE_DMIX = $2000; // use ALSA "dmix" plugin
131 BASS_DEVICE_FREQ = $4000; // set device sample rate
132 BASS_DEVICE_STEREO = $8000; // limit output to stereo
133 BASS_DEVICE_AUDIOTRACK = $20000; // use AudioTrack output
134 BASS_DEVICE_DSOUND = $40000; // use DirectSound output
135
136 // DirectSound interfaces (for use with BASS_GetDSoundObject)
137 BASS_OBJECT_DS = 1; // IDirectSound
138 BASS_OBJECT_DS3DL = 2; // IDirectSound3DListener
139
140 // BASS_DEVICEINFO flags
141 BASS_DEVICE_ENABLED = 1;
142 BASS_DEVICE_DEFAULT = 2;
143 BASS_DEVICE_INIT = 4;
144
145 BASS_DEVICE_TYPE_MASK = $ff000000;
146 BASS_DEVICE_TYPE_NETWORK = $01000000;
147 BASS_DEVICE_TYPE_SPEAKERS = $02000000;
148 BASS_DEVICE_TYPE_LINE = $03000000;
149 BASS_DEVICE_TYPE_HEADPHONES = $04000000;
150 BASS_DEVICE_TYPE_MICROPHONE = $05000000;
151 BASS_DEVICE_TYPE_HEADSET = $06000000;
152 BASS_DEVICE_TYPE_HANDSET = $07000000;
153 BASS_DEVICE_TYPE_DIGITAL = $08000000;
154 BASS_DEVICE_TYPE_SPDIF = $09000000;
155 BASS_DEVICE_TYPE_HDMI = $0a000000;
156 BASS_DEVICE_TYPE_DISPLAYPORT = $40000000;
157
158 // BASS_GetDeviceInfo flags
159 BASS_DEVICES_AIRPLAY = $1000000;
160
161 // BASS_INFO flags (from DSOUND.H)
162 DSCAPS_CONTINUOUSRATE = $00000010; // supports all sample rates between min/maxrate
163 DSCAPS_EMULDRIVER = $00000020; // device does NOT have hardware DirectSound support
164 DSCAPS_CERTIFIED = $00000040; // device driver has been certified by Microsoft
165 DSCAPS_SECONDARYMONO = $00000100; // mono
166 DSCAPS_SECONDARYSTEREO = $00000200; // stereo
167 DSCAPS_SECONDARY8BIT = $00000400; // 8 bit
168 DSCAPS_SECONDARY16BIT = $00000800; // 16 bit
169
170 // BASS_RECORDINFO flags (from DSOUND.H)
171 DSCCAPS_EMULDRIVER = DSCAPS_EMULDRIVER; // device does NOT have hardware DirectSound recording support
172 DSCCAPS_CERTIFIED = DSCAPS_CERTIFIED; // device driver has been certified by Microsoft
173
174 // defines for formats field of BASS_RECORDINFO (from MMSYSTEM.H)
175 WAVE_FORMAT_1M08 = $00000001; // 11.025 kHz, Mono, 8-bit
176 WAVE_FORMAT_1S08 = $00000002; // 11.025 kHz, Stereo, 8-bit
177 WAVE_FORMAT_1M16 = $00000004; // 11.025 kHz, Mono, 16-bit
178 WAVE_FORMAT_1S16 = $00000008; // 11.025 kHz, Stereo, 16-bit
179 WAVE_FORMAT_2M08 = $00000010; // 22.05 kHz, Mono, 8-bit
180 WAVE_FORMAT_2S08 = $00000020; // 22.05 kHz, Stereo, 8-bit
181 WAVE_FORMAT_2M16 = $00000040; // 22.05 kHz, Mono, 16-bit
182 WAVE_FORMAT_2S16 = $00000080; // 22.05 kHz, Stereo, 16-bit
183 WAVE_FORMAT_4M08 = $00000100; // 44.1 kHz, Mono, 8-bit
184 WAVE_FORMAT_4S08 = $00000200; // 44.1 kHz, Stereo, 8-bit
185 WAVE_FORMAT_4M16 = $00000400; // 44.1 kHz, Mono, 16-bit
186 WAVE_FORMAT_4S16 = $00000800; // 44.1 kHz, Stereo, 16-bit
187
188 BASS_SAMPLE_8BITS = 1; // 8 bit
189 BASS_SAMPLE_FLOAT = 256; // 32 bit floating-point
190 BASS_SAMPLE_MONO = 2; // mono
191 BASS_SAMPLE_LOOP = 4; // looped
192 BASS_SAMPLE_3D = 8; // 3D functionality
193 BASS_SAMPLE_SOFTWARE = 16; // not using hardware mixing
194 BASS_SAMPLE_MUTEMAX = 32; // mute at max distance (3D only)
195 BASS_SAMPLE_VAM = 64; // DX7 voice allocation & management
196 BASS_SAMPLE_FX = 128; // old implementation of DX8 effects
197 BASS_SAMPLE_OVER_VOL = $10000; // override lowest volume
198 BASS_SAMPLE_OVER_POS = $20000; // override longest playing
199 BASS_SAMPLE_OVER_DIST = $30000; // override furthest from listener (3D only)
200
201 BASS_STREAM_PRESCAN = $20000; // enable pin-point seeking/length (MP3/MP2/MP1)
202 BASS_STREAM_AUTOFREE = $40000; // automatically free the stream when it stop/ends
203 BASS_STREAM_RESTRATE = $80000; // restrict the download rate of internet file streams
204 BASS_STREAM_BLOCK = $100000;// download/play internet file stream in small blocks
205 BASS_STREAM_DECODE = $200000;// don't play the stream, only decode (BASS_ChannelGetData)
206 BASS_STREAM_STATUS = $800000;// give server status info (HTTP/ICY tags) in DOWNLOADPROC
207
208 BASS_MP3_IGNOREDELAY = $200; // ignore LAME/Xing/VBRI/iTunes delay & padding info
209 BASS_MP3_SETPOS = BASS_STREAM_PRESCAN;
210
211 BASS_MUSIC_FLOAT = BASS_SAMPLE_FLOAT;
212 BASS_MUSIC_MONO = BASS_SAMPLE_MONO;
213 BASS_MUSIC_LOOP = BASS_SAMPLE_LOOP;
214 BASS_MUSIC_3D = BASS_SAMPLE_3D;
215 BASS_MUSIC_FX = BASS_SAMPLE_FX;
216 BASS_MUSIC_AUTOFREE = BASS_STREAM_AUTOFREE;
217 BASS_MUSIC_DECODE = BASS_STREAM_DECODE;
218 BASS_MUSIC_PRESCAN = BASS_STREAM_PRESCAN; // calculate playback length
219 BASS_MUSIC_CALCLEN = BASS_MUSIC_PRESCAN;
220 BASS_MUSIC_RAMP = $200; // normal ramping
221 BASS_MUSIC_RAMPS = $400; // sensitive ramping
222 BASS_MUSIC_SURROUND = $800; // surround sound
223 BASS_MUSIC_SURROUND2 = $1000; // surround sound (mode 2)
224 BASS_MUSIC_FT2PAN = $2000; // apply FastTracker 2 panning to XM files
225 BASS_MUSIC_FT2MOD = $2000; // play .MOD as FastTracker 2 does
226 BASS_MUSIC_PT1MOD = $4000; // play .MOD as ProTracker 1 does
227 BASS_MUSIC_NONINTER = $10000; // non-interpolated sample mixing
228 BASS_MUSIC_SINCINTER = $800000; // sinc interpolated sample mixing
229 BASS_MUSIC_POSRESET = $8000; // stop all notes when moving position
230 BASS_MUSIC_POSRESETEX = $400000; // stop all notes and reset bmp/etc when moving position
231 BASS_MUSIC_STOPBACK = $80000; // stop the music on a backwards jump effect
232 BASS_MUSIC_NOSAMPLE = $100000; // don't load the samples
233
234 // Speaker assignment flags
235 BASS_SPEAKER_FRONT = $1000000; // front speakers
236 BASS_SPEAKER_REAR = $2000000; // rear/side speakers
237 BASS_SPEAKER_CENLFE = $3000000; // center & LFE speakers (5.1)
238 BASS_SPEAKER_REAR2 = $4000000; // rear center speakers (7.1)
239 BASS_SPEAKER_LEFT = $10000000; // modifier: left
240 BASS_SPEAKER_RIGHT = $20000000; // modifier: right
241 BASS_SPEAKER_FRONTLEFT = BASS_SPEAKER_FRONT or BASS_SPEAKER_LEFT;
242 BASS_SPEAKER_FRONTRIGHT = BASS_SPEAKER_FRONT or BASS_SPEAKER_RIGHT;
243 BASS_SPEAKER_REARLEFT = BASS_SPEAKER_REAR or BASS_SPEAKER_LEFT;
244 BASS_SPEAKER_REARRIGHT = BASS_SPEAKER_REAR or BASS_SPEAKER_RIGHT;
245 BASS_SPEAKER_CENTER = BASS_SPEAKER_CENLFE or BASS_SPEAKER_LEFT;
246 BASS_SPEAKER_LFE = BASS_SPEAKER_CENLFE or BASS_SPEAKER_RIGHT;
247 BASS_SPEAKER_REAR2LEFT = BASS_SPEAKER_REAR2 or BASS_SPEAKER_LEFT;
248 BASS_SPEAKER_REAR2RIGHT = BASS_SPEAKER_REAR2 or BASS_SPEAKER_RIGHT;
249
250 BASS_ASYNCFILE = $40000000;
251 BASS_UNICODE = $80000000;
252
253 BASS_RECORD_PAUSE = $8000; // start recording paused
254
255 // DX7 voice allocation & management flags
256 BASS_VAM_HARDWARE = 1;
257 BASS_VAM_SOFTWARE = 2;
258 BASS_VAM_TERM_TIME = 4;
259 BASS_VAM_TERM_DIST = 8;
260 BASS_VAM_TERM_PRIO = 16;
261
262 BASS_ORIGRES_FLOAT = $10000;
263
264 // BASS_CHANNELINFO types
265 BASS_CTYPE_SAMPLE = 1;
266 BASS_CTYPE_RECORD = 2;
267 BASS_CTYPE_STREAM = $10000;
268 BASS_CTYPE_STREAM_OGG = $10002;
269 BASS_CTYPE_STREAM_MP1 = $10003;
270 BASS_CTYPE_STREAM_MP2 = $10004;
271 BASS_CTYPE_STREAM_MP3 = $10005;
272 BASS_CTYPE_STREAM_AIFF = $10006;
273 BASS_CTYPE_STREAM_CA = $10007;
274 BASS_CTYPE_STREAM_MF = $10008;
275 BASS_CTYPE_STREAM_AM = $10009;
276 BASS_CTYPE_STREAM_DUMMY = $18000;
277 BASS_CTYPE_STREAM_DEVICE = $18001;
278 BASS_CTYPE_STREAM_WAV = $40000; // WAVE flag, LOWORD=codec
279 BASS_CTYPE_STREAM_WAV_PCM = $50001;
280 BASS_CTYPE_STREAM_WAV_FLOAT = $50003;
281 BASS_CTYPE_MUSIC_MOD = $20000;
282 BASS_CTYPE_MUSIC_MTM = $20001;
283 BASS_CTYPE_MUSIC_S3M = $20002;
284 BASS_CTYPE_MUSIC_XM = $20003;
285 BASS_CTYPE_MUSIC_IT = $20004;
286 BASS_CTYPE_MUSIC_MO3 = $00100; // MO3 flag
287
288 // 3D channel modes
289 BASS_3DMODE_NORMAL = 0; // normal 3D processing
290 BASS_3DMODE_RELATIVE = 1; // position is relative to the listener
291 BASS_3DMODE_OFF = 2; // no 3D processing
292
293 // software 3D mixing algorithms (used with BASS_CONFIG_3DALGORITHM)
294 BASS_3DALG_DEFAULT = 0;
295 BASS_3DALG_OFF = 1;
296 BASS_3DALG_FULL = 2;
297 BASS_3DALG_LIGHT = 3;
298
299 // EAX environments, use with BASS_SetEAXParameters
300 EAX_ENVIRONMENT_GENERIC = 0;
301 EAX_ENVIRONMENT_PADDEDCELL = 1;
302 EAX_ENVIRONMENT_ROOM = 2;
303 EAX_ENVIRONMENT_BATHROOM = 3;
304 EAX_ENVIRONMENT_LIVINGROOM = 4;
305 EAX_ENVIRONMENT_STONEROOM = 5;
306 EAX_ENVIRONMENT_AUDITORIUM = 6;
307 EAX_ENVIRONMENT_CONCERTHALL = 7;
308 EAX_ENVIRONMENT_CAVE = 8;
309 EAX_ENVIRONMENT_ARENA = 9;
310 EAX_ENVIRONMENT_HANGAR = 10;
311 EAX_ENVIRONMENT_CARPETEDHALLWAY = 11;
312 EAX_ENVIRONMENT_HALLWAY = 12;
313 EAX_ENVIRONMENT_STONECORRIDOR = 13;
314 EAX_ENVIRONMENT_ALLEY = 14;
315 EAX_ENVIRONMENT_FOREST = 15;
316 EAX_ENVIRONMENT_CITY = 16;
317 EAX_ENVIRONMENT_MOUNTAINS = 17;
318 EAX_ENVIRONMENT_QUARRY = 18;
319 EAX_ENVIRONMENT_PLAIN = 19;
320 EAX_ENVIRONMENT_PARKINGLOT = 20;
321 EAX_ENVIRONMENT_SEWERPIPE = 21;
322 EAX_ENVIRONMENT_UNDERWATER = 22;
323 EAX_ENVIRONMENT_DRUGGED = 23;
324 EAX_ENVIRONMENT_DIZZY = 24;
325 EAX_ENVIRONMENT_PSYCHOTIC = 25;
326 // total number of environments
327 EAX_ENVIRONMENT_COUNT = 26;
328
329 BASS_STREAMPROC_END = $80000000; // end of user stream flag
330
331 // BASS_StreamCreateFileUser file systems
332 STREAMFILE_NOBUFFER = 0;
333 STREAMFILE_BUFFER = 1;
334 STREAMFILE_BUFFERPUSH = 2;
335
336 // BASS_StreamPutFileData options
337 BASS_FILEDATA_END = 0; // end & close the file
338
339 // BASS_StreamGetFilePosition modes
340 BASS_FILEPOS_CURRENT = 0;
341 BASS_FILEPOS_DECODE = BASS_FILEPOS_CURRENT;
342 BASS_FILEPOS_DOWNLOAD = 1;
343 BASS_FILEPOS_END = 2;
344 BASS_FILEPOS_START = 3;
345 BASS_FILEPOS_CONNECTED = 4;
346 BASS_FILEPOS_BUFFER = 5;
347 BASS_FILEPOS_SOCKET = 6;
348 BASS_FILEPOS_ASYNCBUF = 7;
349 BASS_FILEPOS_SIZE = 8;
350 BASS_FILEPOS_BUFFERING = 9;
351
352 // BASS_ChannelSetSync types
353 BASS_SYNC_POS = 0;
354 BASS_SYNC_END = 2;
355 BASS_SYNC_META = 4;
356 BASS_SYNC_SLIDE = 5;
357 BASS_SYNC_STALL = 6;
358 BASS_SYNC_DOWNLOAD = 7;
359 BASS_SYNC_FREE = 8;
360 BASS_SYNC_SETPOS = 11;
361 BASS_SYNC_MUSICPOS = 10;
362 BASS_SYNC_MUSICINST = 1;
363 BASS_SYNC_MUSICFX = 3;
364 BASS_SYNC_OGG_CHANGE = 12;
365 BASS_SYNC_MIXTIME = $40000000; // flag: sync at mixtime, else at playtime
366 BASS_SYNC_ONETIME = $80000000; // flag: sync only once, else continuously
367
368 // BASS_ChannelIsActive return values
369 BASS_ACTIVE_STOPPED = 0;
370 BASS_ACTIVE_PLAYING = 1;
371 BASS_ACTIVE_STALLED = 2;
372 BASS_ACTIVE_PAUSED = 3;
373
374 // Channel attributes
375 BASS_ATTRIB_FREQ = 1;
376 BASS_ATTRIB_VOL = 2;
377 BASS_ATTRIB_PAN = 3;
378 BASS_ATTRIB_EAXMIX = 4;
379 BASS_ATTRIB_NOBUFFER = 5;
380 BASS_ATTRIB_VBR = 6;
381 BASS_ATTRIB_CPU = 7;
382 BASS_ATTRIB_SRC = 8;
383 BASS_ATTRIB_NET_RESUME = 9;
384 BASS_ATTRIB_SCANINFO = 10;
385 BASS_ATTRIB_NORAMP = 11;
386 BASS_ATTRIB_BITRATE = 12;
387 BASS_ATTRIB_BUFFER = 13;
388 BASS_ATTRIB_MUSIC_AMPLIFY = $100;
389 BASS_ATTRIB_MUSIC_PANSEP = $101;
390 BASS_ATTRIB_MUSIC_PSCALER = $102;
391 BASS_ATTRIB_MUSIC_BPM = $103;
392 BASS_ATTRIB_MUSIC_SPEED = $104;
393 BASS_ATTRIB_MUSIC_VOL_GLOBAL = $105;
394 BASS_ATTRIB_MUSIC_ACTIVE = $106;
395 BASS_ATTRIB_MUSIC_VOL_CHAN = $200; // + channel #
396 BASS_ATTRIB_MUSIC_VOL_INST = $300; // + instrument #
397
398 // BASS_ChannelSlideAttribute flags
399 BASS_SLIDE_LOG = $1000000;
400
401 // BASS_ChannelGetData flags
402 BASS_DATA_AVAILABLE = 0; // query how much data is buffered
403 BASS_DATA_FIXED = $20000000; // flag: return 8.24 fixed-point data
404 BASS_DATA_FLOAT = $40000000; // flag: return floating-point sample data
405 BASS_DATA_FFT256 = $80000000; // 256 sample FFT
406 BASS_DATA_FFT512 = $80000001; // 512 FFT
407 BASS_DATA_FFT1024 = $80000002; // 1024 FFT
408 BASS_DATA_FFT2048 = $80000003; // 2048 FFT
409 BASS_DATA_FFT4096 = $80000004; // 4096 FFT
410 BASS_DATA_FFT8192 = $80000005; // 8192 FFT
411 BASS_DATA_FFT16384 = $80000006; // 16384 FFT
412 BASS_DATA_FFT32768 = $80000007; // 32768 FFT
413 BASS_DATA_FFT_INDIVIDUAL = $10; // FFT flag: FFT for each channel, else all combined
414 BASS_DATA_FFT_NOWINDOW = $20; // FFT flag: no Hanning window
415 BASS_DATA_FFT_REMOVEDC = $40; // FFT flag: pre-remove DC bias
416 BASS_DATA_FFT_COMPLEX = $80; // FFT flag: return complex data
417
418 // BASS_ChannelGetLevelEx flags
419 BASS_LEVEL_MONO = 1;
420 BASS_LEVEL_STEREO = 2;
421 BASS_LEVEL_RMS = 4;
422 BASS_LEVEL_VOLPAN = 8;
423
424 // BASS_ChannelGetTags types : what's returned
425 BASS_TAG_ID3 = 0; // ID3v1 tags : TAG_ID3 structure
426 BASS_TAG_ID3V2 = 1; // ID3v2 tags : variable length block
427 BASS_TAG_OGG = 2; // OGG comments : series of null-terminated UTF-8 strings
428 BASS_TAG_HTTP = 3; // HTTP headers : series of null-terminated ANSI strings
429 BASS_TAG_ICY = 4; // ICY headers : series of null-terminated ANSI strings
430 BASS_TAG_META = 5; // ICY metadata : ANSI string
431 BASS_TAG_APE = 6; // APEv2 tags : series of null-terminated UTF-8 strings
432 BASS_TAG_MP4 = 7; // MP4/iTunes metadata : series of null-terminated UTF-8 strings
433 BASS_TAG_WMA = 8; // WMA tags : series of null-terminated UTF-8 strings
434 BASS_TAG_VENDOR = 9; // OGG encoder : UTF-8 string
435 BASS_TAG_LYRICS3 = 10; // Lyric3v2 tag : ASCII string
436 BASS_TAG_CA_CODEC = 11; // CoreAudio codec info : TAG_CA_CODEC structure
437 BASS_TAG_MF = 13; // Media Foundation tags : series of null-terminated UTF-8 strings
438 BASS_TAG_WAVEFORMAT = 14; // WAVE format : WAVEFORMATEEX structure
439 BASS_TAG_AM_MIME = 15; // Android Media MIME type : ASCII string
440 BASS_TAG_AM_NAME = 16; // Android Media codec name : ASCII string
441 BASS_TAG_RIFF_INFO = $100; // RIFF "INFO" tags : series of null-terminated ANSI strings
442 BASS_TAG_RIFF_BEXT = $101; // RIFF/BWF "bext" tags : TAG_BEXT structure
443 BASS_TAG_RIFF_CART = $102; // RIFF/BWF "cart" tags : TAG_CART structure
444 BASS_TAG_RIFF_DISP = $103; // RIFF "DISP" text tag : ANSI string
445 BASS_TAG_RIFF_CUE = $104; // RIFF "cue " chunk : TAG_CUE structure
446 BASS_TAG_RIFF_SMPL = $105; // RIFF "smpl" chunk : TAG_SMPL structure
447 BASS_TAG_APE_BINARY = $1000; // + index #, binary APEv2 tag : TAG_APE_BINARY structure
448 BASS_TAG_MUSIC_NAME = $10000; // MOD music name : ANSI string
449 BASS_TAG_MUSIC_MESSAGE = $10001; // MOD message : ANSI string
450 BASS_TAG_MUSIC_ORDERS = $10002; // MOD order list : BYTE array of pattern numbers
451 BASS_TAG_MUSIC_AUTH = $10003; // MOD author : UTF-8 string
452 BASS_TAG_MUSIC_INST = $10100; // + instrument #, MOD instrument name : ANSI string
453 BASS_TAG_MUSIC_SAMPLE = $10300; // + sample #, MOD sample name : ANSI string
454
455 // BASS_ChannelGetLength/GetPosition/SetPosition modes
456 BASS_POS_BYTE = 0; // byte position
457 BASS_POS_MUSIC_ORDER = 1; // order.row position, MAKELONG(order,row)
458 BASS_POS_OGG = 3; // OGG bitstream number
459 BASS_POS_RESET = $2000000; // flag: reset user file buffers
460 BASS_POS_RELATIVE = $4000000; // flag: seek relative to the current position
461 BASS_POS_INEXACT = $8000000; // flag: allow seeking to inexact position
462 BASS_POS_DECODE = $10000000; // flag: get the decoding (not playing) position
463 BASS_POS_DECODETO = $20000000; // flag: decode to the position instead of seeking
464 BASS_POS_SCAN = $40000000; // flag: scan to the position
465
466 // BASS_ChannelSetDevice/GetDevice option
467 BASS_NODEVICE = $20000;
468
469 // BASS_RecordSetInput flags
470 BASS_INPUT_OFF = $10000;
471 BASS_INPUT_ON = $20000;
472
473 BASS_INPUT_TYPE_MASK = $FF000000;
474 BASS_INPUT_TYPE_UNDEF = $00000000;
475 BASS_INPUT_TYPE_DIGITAL = $01000000;
476 BASS_INPUT_TYPE_LINE = $02000000;
477 BASS_INPUT_TYPE_MIC = $03000000;
478 BASS_INPUT_TYPE_SYNTH = $04000000;
479 BASS_INPUT_TYPE_CD = $05000000;
480 BASS_INPUT_TYPE_PHONE = $06000000;
481 BASS_INPUT_TYPE_SPEAKER = $07000000;
482 BASS_INPUT_TYPE_WAVE = $08000000;
483 BASS_INPUT_TYPE_AUX = $09000000;
484 BASS_INPUT_TYPE_ANALOG = $0A000000;
485
486 // BASS_ChannelSetFX effect types
487 BASS_FX_DX8_CHORUS = 0;
488 BASS_FX_DX8_COMPRESSOR = 1;
489 BASS_FX_DX8_DISTORTION = 2;
490 BASS_FX_DX8_ECHO = 3;
491 BASS_FX_DX8_FLANGER = 4;
492 BASS_FX_DX8_GARGLE = 5;
493 BASS_FX_DX8_I3DL2REVERB = 6;
494 BASS_FX_DX8_PARAMEQ = 7;
495 BASS_FX_DX8_REVERB = 8;
496 BASS_FX_VOLUME = 9;
497
498 BASS_DX8_PHASE_NEG_180 = 0;
499 BASS_DX8_PHASE_NEG_90 = 1;
500 BASS_DX8_PHASE_ZERO = 2;
501 BASS_DX8_PHASE_90 = 3;
502 BASS_DX8_PHASE_180 = 4;
503
504 type
505 DWORD = LongWord;
506 BOOL = LongBool;
507 QWORD = Int64;
508
509 HMUSIC = DWORD; // MOD music handle
510 HSAMPLE = DWORD; // sample handle
511 HCHANNEL = DWORD; // playing sample's channel handle
512 HSTREAM = DWORD; // sample stream handle
513 HRECORD = DWORD; // recording handle
514 HSYNC = DWORD; // synchronizer handle
515 HDSP = DWORD; // DSP handle
516 HFX = DWORD; // DX8 effect handle
517 HPLUGIN = DWORD; // Plugin handle
518
519 // Device info structure
520 BASS_DEVICEINFO = record
521 name: PAnsiChar; // description
522 driver: PAnsiChar; // driver
523 flags: DWORD;
524 end;
525
526 BASS_INFO = record
527 flags: DWORD; // device capabilities (DSCAPS_xxx flags)
528 hwsize: DWORD; // size of total device hardware memory
529 hwfree: DWORD; // size of free device hardware memory
530 freesam: DWORD; // number of free sample slots in the hardware
531 free3d: DWORD; // number of free 3D sample slots in the hardware
532 minrate: DWORD; // min sample rate supported by the hardware
533 maxrate: DWORD; // max sample rate supported by the hardware
534 eax: BOOL; // device supports EAX? (always FALSE if BASS_DEVICE_3D was not used)
535 minbuf: DWORD; // recommended minimum buffer length in ms (requires BASS_DEVICE_LATENCY)
536 dsver: DWORD; // DirectSound version
537 latency: DWORD; // delay (in ms) before start of playback (requires BASS_DEVICE_LATENCY)
538 initflags: DWORD; // BASS_Init "flags" parameter
539 speakers: DWORD; // number of speakers available
540 freq: DWORD; // current output rate
541 end;
542
543 // Recording device info structure
544 BASS_RECORDINFO = record
545 flags: DWORD; // device capabilities (DSCCAPS_xxx flags)
546 formats: DWORD; // supported standard formats (WAVE_FORMAT_xxx flags)
547 inputs: DWORD; // number of inputs
548 singlein: BOOL; // only 1 input can be set at a time
549 freq: DWORD; // current input rate
550 end;
551
552 // Sample info structure
553 BASS_SAMPLE = record
554 freq: DWORD; // default playback rate
555 volume: Single; // default volume (0-100)
556 pan: Single; // default pan (-100=left, 0=middle, 100=right)
557 flags: DWORD; // BASS_SAMPLE_xxx flags
558 length: DWORD; // length (in samples, not bytes)
559 max: DWORD; // maximum simultaneous playbacks
560 origres: DWORD; // original resolution
561 chans: DWORD; // number of channels
562 mingap: DWORD; // minimum gap (ms) between creating channels
563 mode3d: DWORD; // BASS_3DMODE_xxx mode
564 mindist: Single; // minimum distance
565 maxdist: Single; // maximum distance
566 iangle: DWORD; // angle of inside projection cone
567 oangle: DWORD; // angle of outside projection cone
568 outvol: Single; // delta-volume outside the projection cone
569 vam: DWORD; // voice allocation/management flags (BASS_VAM_xxx)
570 priority: DWORD; // priority (0=lowest, $ffffffff=highest)
571 end;
572
573 // Channel info structure
574 BASS_CHANNELINFO = record
575 freq: DWORD; // default playback rate
576 chans: DWORD; // channels
577 flags: DWORD; // BASS_SAMPLE/STREAM/MUSIC/SPEAKER flags
578 ctype: DWORD; // type of channel
579 origres: DWORD; // original resolution
580 plugin: HPLUGIN; // plugin
581 sample: HSAMPLE; // sample
582 {$IFDEF CPUX64}
583 padding: DWORD;
584 {$ENDIF}
585 filename: PChar; // filename
586 end;
587
588 BASS_PLUGINFORM = record
589 ctype: DWORD; // channel type
590 {$IFDEF CPUX64}
591 padding: DWORD;
592 {$ENDIF}
593 name: PAnsiChar; // format description
594 exts: PAnsiChar; // file extension filter (*.ext1;*.ext2;etc...)
595 end;
596 PBASS_PLUGINFORMS = ^TBASS_PLUGINFORMS;
597 TBASS_PLUGINFORMS = array[0..maxInt div sizeOf(BASS_PLUGINFORM) - 1] of BASS_PLUGINFORM;
598
599 PBASS_PLUGININFO = ^BASS_PLUGININFO;
600 BASS_PLUGININFO = record
601 version: DWORD; // version (same form as BASS_GetVersion)
602 formatc: DWORD; // number of formats
603 formats: PBASS_PLUGINFORMS; // the array of formats
604 end;
605
606 // 3D vector (for 3D positions/velocities/orientations)
607 BASS_3DVECTOR = record
608 x: Single; // +=right, -=left
609 y: Single; // +=up, -=down
610 z: Single; // +=front, -=behind
611 end;
612
613 // User file stream callback functions
614 FILECLOSEPROC = procedure(user: Pointer); {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
615 FILELENPROC = function(user: Pointer): QWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
616 FILEREADPROC = function(buffer: Pointer; length: DWORD; user: Pointer): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
617 FILESEEKPROC = function(offset: QWORD; user: Pointer): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
618
619 BASS_FILEPROCS = record
620 close: FILECLOSEPROC;
621 length: FILELENPROC;
622 read: FILEREADPROC;
623 seek: FILESEEKPROC;
624 end;
625
626 // ID3v1 tag structure
627 PTAG_ID3 = ^TAG_ID3;
628 TAG_ID3 = record
629 id: Array[0..2] of AnsiChar;
630 title: Array[0..29] of AnsiChar;
631 artist: Array[0..29] of AnsiChar;
632 album: Array[0..29] of AnsiChar;
633 year: Array[0..3] of AnsiChar;
634 comment: Array[0..29] of AnsiChar;
635 genre: Byte;
636 end;
637
638 // Binary APEv2 tag structure
639 PTAG_APE_BINARY = ^TAG_APE_BINARY;
640 TAG_APE_BINARY = record
641 key: PAnsiChar;
642 data: PAnsiChar;
643 length: DWORD;
644 end;
645
646 // BWF "bext" tag structure
647 PTAG_BEXT = ^TAG_BEXT;
648 TAG_BEXT = packed record
649 Description: Array[0..255] of AnsiChar; // description
650 Originator: Array[0..31] of AnsiChar; // name of the originator
651 OriginatorReference: Array[0..31] of AnsiChar; // reference of the originator
652 OriginationDate: Array[0..9] of AnsiChar; // date of creation (yyyy-mm-dd)
653 OriginationTime: Array[0..7] of AnsiChar; // time of creation (hh-mm-ss)
654 TimeReference: QWORD; // first sample count since midnight (little-endian)
655 Version: Word; // BWF version (little-endian)
656 UMID: Array[0..63] of Byte; // SMPTE UMID
657 Reserved: Array[0..189] of Byte;
658 CodingHistory: AnsiChar; // history
659 end;
660
661 BASS_DX8_CHORUS = record
662 fWetDryMix: Single;
663 fDepth: Single;
664 fFeedback: Single;
665 fFrequency: Single;
666 lWaveform: DWORD; // 0=triangle, 1=sine
667 fDelay: Single;
668 lPhase: DWORD; // BASS_DX8_PHASE_xxx
669 end;
670
671 BASS_DX8_COMPRESSOR = record
672 fGain: Single;
673 fAttack: Single;
674 fRelease: Single;
675 fThreshold: Single;
676 fRatio: Single;
677 fPredelay: Single;
678 end;
679
680 BASS_DX8_DISTORTION = record
681 fGain: Single;
682 fEdge: Single;
683 fPostEQCenterFrequency: Single;
684 fPostEQBandwidth: Single;
685 fPreLowpassCutoff: Single;
686 end;
687
688 BASS_DX8_ECHO = record
689 fWetDryMix: Single;
690 fFeedback: Single;
691 fLeftDelay: Single;
692 fRightDelay: Single;
693 lPanDelay: BOOL;
694 end;
695
696 BASS_DX8_FLANGER = record
697 fWetDryMix: Single;
698 fDepth: Single;
699 fFeedback: Single;
700 fFrequency: Single;
701 lWaveform: DWORD; // 0=triangle, 1=sine
702 fDelay: Single;
703 lPhase: DWORD; // BASS_DX8_PHASE_xxx
704 end;
705
706 BASS_DX8_GARGLE = record
707 dwRateHz: DWORD; // Rate of modulation in hz
708 dwWaveShape: DWORD; // 0=triangle, 1=square
709 end;
710
711 BASS_DX8_I3DL2REVERB = record
712 lRoom: LongInt; // [-10000, 0] default: -1000 mB
713 lRoomHF: LongInt; // [-10000, 0] default: 0 mB
714 flRoomRolloffFactor: Single; // [0.0, 10.0] default: 0.0
715 flDecayTime: Single; // [0.1, 20.0] default: 1.49s
716 flDecayHFRatio: Single; // [0.1, 2.0] default: 0.83
717 lReflections: LongInt; // [-10000, 1000] default: -2602 mB
718 flReflectionsDelay: Single; // [0.0, 0.3] default: 0.007 s
719 lReverb: LongInt; // [-10000, 2000] default: 200 mB
720 flReverbDelay: Single; // [0.0, 0.1] default: 0.011 s
721 flDiffusion: Single; // [0.0, 100.0] default: 100.0 %
722 flDensity: Single; // [0.0, 100.0] default: 100.0 %
723 flHFReference: Single; // [20.0, 20000.0] default: 5000.0 Hz
724 end;
725
726 BASS_DX8_PARAMEQ = record
727 fCenter: Single;
728 fBandwidth: Single;
729 fGain: Single;
730 end;
731
732 BASS_DX8_REVERB = record
733 fInGain: Single; // [-96.0,0.0] default: 0.0 dB
734 fReverbMix: Single; // [-96.0,0.0] default: 0.0 db
735 fReverbTime: Single; // [0.001,3000.0] default: 1000.0 ms
736 fHighFreqRTRatio: Single; // [0.001,0.999] default: 0.001
737 end;
738
739 BASS_FX_VOLUME_PARAM = record
740 fTarget: Single;
741 fCurrent: Single;
742 fTime: Single;
743 lCurve: DWORD;
744 end;
745
746 // callback function types
747 STREAMPROC = function(handle: HSTREAM; buffer: Pointer; length: DWORD; user: Pointer): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
748 {
749 User stream callback function. NOTE: A stream function should obviously be as
750 quick as possible, other streams (and MOD musics) can't be mixed until
751 it's finished.
752 handle : The stream that needs writing
753 buffer : Buffer to write the samples in
754 length : Number of bytes to write
755 user : The 'user' parameter value given when calling BASS_StreamCreate
756 RETURN : Number of bytes written. Set the BASS_STREAMPROC_END flag to end
757 the stream.
758 }
759
760 const
761 // special STREAMPROCs
762 STREAMPROC_DUMMY = Pointer(0); // "dummy" stream
763 STREAMPROC_PUSH = Pointer(-1); // push stream
764 STREAMPROC_DEVICE = Pointer(-2); // device mix stream
765
766 type
767 DOWNLOADPROC = procedure(buffer: Pointer; length: DWORD; user: Pointer); {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
768 {
769 Internet stream download callback function.
770 buffer : Buffer containing the downloaded data... NULL=end of download
771 length : Number of bytes in the buffer
772 user : The 'user' parameter value given when calling BASS_StreamCreateURL
773 }
774
775 SYNCPROC = procedure(handle: HSYNC; channel, data: DWORD; user: Pointer); {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
776 {
777 Sync callback function. NOTE: a sync callback function should be very
778 quick as other syncs cannot be processed until it has finished. If the
779 sync is a "mixtime" sync, then other streams and MOD musics can not be
780 mixed until it's finished either.
781 handle : The sync that has occured
782 channel: Channel that the sync occured in
783 data : Additional data associated with the sync's occurance
784 user : The 'user' parameter given when calling BASS_ChannelSetSync
785 }
786
787 DSPPROC = procedure(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: Pointer); {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
788 {
789 DSP callback function. NOTE: A DSP function should obviously be as quick
790 as possible... other DSP functions, streams and MOD musics can not be
791 processed until it's finished.
792 handle : The DSP handle
793 channel: Channel that the DSP is being applied to
794 buffer : Buffer to apply the DSP to
795 length : Number of bytes in the buffer
796 user : The 'user' parameter given when calling BASS_ChannelSetDSP
797 }
798
799 RECORDPROC = function(handle: HRECORD; buffer: Pointer; length: DWORD; user: Pointer): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
800 {
801 Recording callback function.
802 handle : The recording handle
803 buffer : Buffer containing the recorded sample data
804 length : Number of bytes
805 user : The 'user' parameter value given when calling BASS_RecordStart
806 RETURN : TRUE = continue recording, FALSE = stop
807 }
808
809
810 // Functions
811 const
812 {$IFDEF MSWINDOWS}
813 bassdll = 'bass.dll';
814 {$ENDIF}
815 {$IFDEF LINUX}
816 bassdll = 'libbass.so';
817 {$ENDIF}
818 {$IFDEF MACOS}
819 bassdll = 'libbass.dylib';
820 {$ENDIF}
821
822 function BASS_SetConfig(option, value: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
823 function BASS_GetConfig(option: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
824 function BASS_SetConfigPtr(option: DWORD; value: Pointer): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
825 function BASS_GetConfigPtr(option: DWORD): Pointer; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
826 function BASS_GetVersion: DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
827 function BASS_ErrorGetCode: LongInt; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
828 function BASS_GetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
829 {$IFDEF MSWINDOWS}
830 function BASS_Init(device: LongInt; freq, flags: DWORD; win: HWND; clsid: PGUID): BOOL; stdcall; external bassdll;
831 {$ELSE}
832 function BASS_Init(device: LongInt; freq, flags: DWORD; win: Pointer; clsid: Pointer): BOOL; cdecl; external bassdll;
833 {$ENDIF}
834 function BASS_SetDevice(device: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
835 function BASS_GetDevice: DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
836 function BASS_Free: BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
837 {$IFDEF MSWINDOWS}
838 function BASS_GetDSoundObject(obj: DWORD): Pointer; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
839 {$ENDIF}
840 function BASS_GetInfo(var info: BASS_INFO): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
841 function BASS_Update(length: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
842 function BASS_GetCPU: Single; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
843 function BASS_Start: BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
844 function BASS_Stop: BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
845 function BASS_Pause: BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
846 function BASS_SetVolume(volume: Single): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
847 function BASS_GetVolume: Single; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
848
849 function BASS_PluginLoad(filename: PChar; flags: DWORD): HPLUGIN; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
850 function BASS_PluginFree(handle: HPLUGIN): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
851 function BASS_PluginGetInfo(handle: HPLUGIN): PBASS_PLUGININFO; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
852
853 function BASS_Set3DFactors(distf, rollf, doppf: Single): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
854 function BASS_Get3DFactors(var distf, rollf, doppf: Single): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
855 function BASS_Set3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
856 function BASS_Get3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
857 procedure BASS_Apply3D; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
858 {$IFDEF MSWINDOWS}
859 function BASS_SetEAXParameters(env: LongInt; vol, decay, damp: Single): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
860 function BASS_GetEAXParameters(var env: DWORD; var vol, decay, damp: Single): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
861 {$ENDIF}
862
863 function BASS_MusicLoad(mem: BOOL; f: Pointer; offset: QWORD; length, flags, freq: DWORD): HMUSIC; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
864 function BASS_MusicFree(handle: HMUSIC): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
865
866 function BASS_SampleLoad(mem: BOOL; f: Pointer; offset: QWORD; length, max, flags: DWORD): HSAMPLE; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
867 function BASS_SampleCreate(length, freq, chans, max, flags: DWORD): HSAMPLE; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
868 function BASS_SampleFree(handle: HSAMPLE): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
869 function BASS_SampleSetData(handle: HSAMPLE; buffer: Pointer): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
870 function BASS_SampleGetData(handle: HSAMPLE; buffer: Pointer): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
871 function BASS_SampleGetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
872 function BASS_SampleSetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
873 function BASS_SampleGetChannel(handle: HSAMPLE; onlynew: BOOL): HCHANNEL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
874 function BASS_SampleGetChannels(handle: HSAMPLE; channels: Pointer): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
875 function BASS_SampleStop(handle: HSAMPLE): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
876
877 function BASS_StreamCreate(freq, chans, flags: DWORD; proc: STREAMPROC; user: Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
878 function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length: QWORD; flags: DWORD): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
879 function BASS_StreamCreateURL(url: PChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: Pointer):HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
880 function BASS_StreamCreateFileUser(system, flags: DWORD; var procs: BASS_FILEPROCS; user: Pointer): HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
881 function BASS_StreamFree(handle: HSTREAM): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
882 function BASS_StreamGetFilePosition(handle: HSTREAM; mode: DWORD): QWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
883 function BASS_StreamPutData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
884 function BASS_StreamPutFileData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
885
886 function BASS_RecordGetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
887 function BASS_RecordInit(device: LongInt):BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
888 function BASS_RecordSetDevice(device: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
889 function BASS_RecordGetDevice: DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
890 function BASS_RecordFree: BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
891 function BASS_RecordGetInfo(var info: BASS_RECORDINFO): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
892 function BASS_RecordGetInputName(input: LongInt): PAnsiChar; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
893 function BASS_RecordSetInput(input: LongInt; flags: DWORD; volume: Single): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
894 function BASS_RecordGetInput(input: LongInt; var volume: Single): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
895 function BASS_RecordStart(freq, chans, flags: DWORD; proc: RECORDPROC; user: Pointer): HRECORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
896
897 function BASS_ChannelBytes2Seconds(handle: DWORD; pos: QWORD): Double; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};external bassdll;
898 function BASS_ChannelSeconds2Bytes(handle: DWORD; pos: Double): QWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};external bassdll;
899 function BASS_ChannelGetDevice(handle: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
900 function BASS_ChannelSetDevice(handle, device: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
901 function BASS_ChannelIsActive(handle: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};external bassdll;
902 function BASS_ChannelGetInfo(handle: DWORD; var info: BASS_CHANNELINFO):BOOL;{$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};external bassdll;
903 function BASS_ChannelGetTags(handle: HSTREAM; tags: DWORD): PAnsiChar; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
904 function BASS_ChannelFlags(handle, flags, mask: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
905 function BASS_ChannelUpdate(handle, length: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
906 function BASS_ChannelLock(handle: DWORD; lock: BOOL): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
907 function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
908 function BASS_ChannelStop(handle: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
909 function BASS_ChannelPause(handle: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
910 function BASS_ChannelSetAttribute(handle, attrib: DWORD; value: Single): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
911 function BASS_ChannelGetAttribute(handle, attrib: DWORD; var value: Single): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
912 function BASS_ChannelSlideAttribute(handle, attrib: DWORD; value: Single; time: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
913 function BASS_ChannelIsSliding(handle, attrib: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};external bassdll;
914 function BASS_ChannelSetAttributeEx(handle, attrib: DWORD; value: Pointer; size: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};external bassdll;
915 function BASS_ChannelGetAttributeEx(handle, attrib: DWORD; value: Pointer; size: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};external bassdll;
916 function BASS_ChannelSet3DAttributes(handle: DWORD; mode: LongInt; min, max: Single; iangle, oangle, outvol: LongInt): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
917 function BASS_ChannelGet3DAttributes(handle: DWORD; var mode: DWORD; var min, max: Single; var iangle, oangle, outvol: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
918 function BASS_ChannelSet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
919 function BASS_ChannelGet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
920 function BASS_ChannelGetLength(handle, mode: DWORD): QWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
921 function BASS_ChannelSetPosition(handle: DWORD; pos: QWORD; mode: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
922 function BASS_ChannelGetPosition(handle, mode: DWORD): QWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
923 function BASS_ChannelGetLevel(handle: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
924 function BASS_ChannelGetLevelEx(handle: DWORD; levels: PSingle; length: Single; flags: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
925 function BASS_ChannelGetData(handle: DWORD; buffer: Pointer; length: DWORD): DWORD; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
926 function BASS_ChannelSetSync(handle: DWORD; type_: DWORD; param: QWORD; proc: SYNCPROC; user: Pointer): HSYNC; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
927 function BASS_ChannelRemoveSync(handle: DWORD; sync: HSYNC): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
928 function BASS_ChannelSetDSP(handle: DWORD; proc: DSPPROC; user: Pointer; priority: LongInt): HDSP; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
929 function BASS_ChannelRemoveDSP(handle: DWORD; dsp: HDSP): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
930 function BASS_ChannelSetLink(handle, chan: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
931 function BASS_ChannelRemoveLink(handle, chan: DWORD): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
932 function BASS_ChannelSetFX(handle, type_: DWORD; priority: LongInt): HFX; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
933 function BASS_ChannelRemoveFX(handle: DWORD; fx: HFX): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
934
935 function BASS_FXSetParameters(handle: HFX; par: Pointer): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
936 function BASS_FXGetParameters(handle: HFX; par: Pointer): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
937 function BASS_FXReset(handle: HFX): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
938 function BASS_FXSetPriority(handle: HFX; priority: LongInt): BOOL; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll;
939
940
941 function BASS_SPEAKER_N(n: DWORD): DWORD;
942 {$IFDEF MSWINDOWS}
943 function BASS_SetEAXPreset(env: LongInt): BOOL;
944 {
945 This function is defined in the implementation part of this unit.
946 It is not part of BASS.DLL but an extra function which makes it easier
947 to set the predefined EAX environments.
948 env : a EAX_ENVIRONMENT_xxx constant
949 }
950 {$ENDIF}
951
952
953 implementation
954
955 function BASS_SPEAKER_N(n: DWORD): DWORD;
956 begin
957 Result := n shl 24;
958 end;
959
960 {$IFDEF MSWINDOWS}
961 function BASS_SetEAXPreset(env: LongInt): BOOL;
962 begin
963 case (env) of
964 EAX_ENVIRONMENT_GENERIC:
965 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_GENERIC, 0.5, 1.493, 0.5);
966 EAX_ENVIRONMENT_PADDEDCELL:
967 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PADDEDCELL, 0.25, 0.1, 0);
968 EAX_ENVIRONMENT_ROOM:
969 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ROOM, 0.417, 0.4, 0.666);
970 EAX_ENVIRONMENT_BATHROOM:
971 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_BATHROOM, 0.653, 1.499, 0.166);
972 EAX_ENVIRONMENT_LIVINGROOM:
973 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_LIVINGROOM, 0.208, 0.478, 0);
974 EAX_ENVIRONMENT_STONEROOM:
975 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_STONEROOM, 0.5, 2.309, 0.888);
976 EAX_ENVIRONMENT_AUDITORIUM:
977 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_AUDITORIUM, 0.403, 4.279, 0.5);
978 EAX_ENVIRONMENT_CONCERTHALL:
979 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CONCERTHALL, 0.5, 3.961, 0.5);
980 EAX_ENVIRONMENT_CAVE:
981 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CAVE, 0.5, 2.886, 1.304);
982 EAX_ENVIRONMENT_ARENA:
983 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ARENA, 0.361, 7.284, 0.332);
984 EAX_ENVIRONMENT_HANGAR:
985 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_HANGAR, 0.5, 10.0, 0.3);
986 EAX_ENVIRONMENT_CARPETEDHALLWAY:
987 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CARPETEDHALLWAY, 0.153, 0.259, 2.0);
988 EAX_ENVIRONMENT_HALLWAY:
989 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_HALLWAY, 0.361, 1.493, 0);
990 EAX_ENVIRONMENT_STONECORRIDOR:
991 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_STONECORRIDOR, 0.444, 2.697, 0.638);
992 EAX_ENVIRONMENT_ALLEY:
993 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ALLEY, 0.25, 1.752, 0.776);
994 EAX_ENVIRONMENT_FOREST:
995 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_FOREST, 0.111, 3.145, 0.472);
996 EAX_ENVIRONMENT_CITY:
997 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CITY, 0.111, 2.767, 0.224);
998 EAX_ENVIRONMENT_MOUNTAINS:
999 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_MOUNTAINS, 0.194, 7.841, 0.472);
1000 EAX_ENVIRONMENT_QUARRY:
1001 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_QUARRY, 1, 1.499, 0.5);
1002 EAX_ENVIRONMENT_PLAIN:
1003 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PLAIN, 0.097, 2.767, 0.224);
1004 EAX_ENVIRONMENT_PARKINGLOT:
1005 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PARKINGLOT, 0.208, 1.652, 1.5);
1006 EAX_ENVIRONMENT_SEWERPIPE:
1007 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_SEWERPIPE, 0.652, 2.886, 0.25);
1008 EAX_ENVIRONMENT_UNDERWATER:
1009 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_UNDERWATER, 1, 1.499, 0);
1010 EAX_ENVIRONMENT_DRUGGED:
1011 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_DRUGGED, 0.875, 8.392, 1.388);
1012 EAX_ENVIRONMENT_DIZZY:
1013 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_DIZZY, 0.139, 17.234, 0.666);
1014 EAX_ENVIRONMENT_PSYCHOTIC:
1015 Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PSYCHOTIC, 0.486, 7.563, 0.806);
1016 else
1017 Result := FALSE;
1018 end;
1019 end;
1020 {$ENDIF}
1021
1022 end.
1023
Deleteddriver.sav +0−0
File metadata changed without textual changes.
Deletedtest_wave.raw +0−1
@@ -1 +0,0 @@
1 iiiiK[i-i����-���yi�iiiiiii
Deletedtest_wave3.raw +0−1
@@ -1 +0,0 @@
1 ``fEbj�*�g`fff