aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/lib/bass
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-08-30 18:12:06 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-08-30 18:12:06 +0000
commit5f11f9f3e328f6818a42f0a3405404612399c64e (patch)
tree66f4cfcde3c1d4b0564ba47aceeb2d04082a7dfb /Game/Code/lib/bass
parentd4ec88adaa7a93d1970c116ae3d621ff05683681 (diff)
downloadusdx-5f11f9f3e328f6818a42f0a3405404612399c64e.tar.gz
usdx-5f11f9f3e328f6818a42f0a3405404612399c64e.tar.xz
usdx-5f11f9f3e328f6818a42f0a3405404612399c64e.zip
Removed outdated 1.1 branch contents
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/1.1@1331 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'Game/Code/lib/bass')
-rwxr-xr-xGame/Code/lib/bass/MacOSX/Bass.pas984
-rw-r--r--Game/Code/lib/bass/bass.chmbin200682 -> 0 bytes
-rw-r--r--Game/Code/lib/bass/bass.dllbin93240 -> 0 bytes
-rw-r--r--Game/Code/lib/bass/bass.txt1546
-rw-r--r--Game/Code/lib/bass/delphi/bass.bpg64
-rw-r--r--Game/Code/lib/bass/delphi/bass.pas968
-rw-r--r--Game/Code/lib/bass/lazarustest.lpi192
-rw-r--r--Game/Code/lib/bass/lazarustest.lpr51
-rwxr-xr-xGame/Code/lib/bass/libbass.dylibbin408684 -> 0 bytes
9 files changed, 0 insertions, 3805 deletions
diff --git a/Game/Code/lib/bass/MacOSX/Bass.pas b/Game/Code/lib/bass/MacOSX/Bass.pas
deleted file mode 100755
index d065f027..00000000
--- a/Game/Code/lib/bass/MacOSX/Bass.pas
+++ /dev/null
@@ -1,984 +0,0 @@
-{
- BASS 2.3 Audio Library, (c) 1999-2007 Ian Luck.
- Please report bugs/suggestions/etc... to bass@un4seen.com
-
- See the BASS.CHM file for more complete documentation
-
-
- How to install
- ----------------
- Copy BASS.PAS to the \LIB subdirectory of your Delphi path or your project dir
-}
-unit Bass;
-
-{$I switches.inc}
-
-interface
-
-uses
- Windows;
-
-const
- BASSVERSION = $203; // API version
-
- // Use these to test for error from functions that return a DWORD or QWORD
- DW_ERROR = Cardinal(-1); // -1 (DWORD)
- QW_ERROR = Int64(-1); // -1 (QWORD)
-
- // Error codes returned by BASS_GetErrorCode()
- BASS_OK = 0; // all is OK
- BASS_ERROR_MEM = 1; // memory error
- BASS_ERROR_FILEOPEN = 2; // can't open the file
- BASS_ERROR_DRIVER = 3; // can't find a free sound driver
- BASS_ERROR_BUFLOST = 4; // the sample buffer was lost - please report this!
- BASS_ERROR_HANDLE = 5; // invalid handle
- BASS_ERROR_FORMAT = 6; // unsupported sample format
- BASS_ERROR_POSITION = 7; // invalid playback position
- BASS_ERROR_INIT = 8; // BASS_Init has not been successfully called
- BASS_ERROR_START = 9; // BASS_Start has not been successfully called
- BASS_ERROR_ALREADY = 14; // already initialized/paused/whatever
- BASS_ERROR_NOPAUSE = 16; // not paused
- BASS_ERROR_NOCHAN = 18; // can't get a free channel
- BASS_ERROR_ILLTYPE = 19; // an illegal type was specified
- BASS_ERROR_ILLPARAM = 20; // an illegal parameter was specified
- BASS_ERROR_NO3D = 21; // no 3D support
- BASS_ERROR_NOEAX = 22; // no EAX support
- BASS_ERROR_DEVICE = 23; // illegal device number
- BASS_ERROR_NOPLAY = 24; // not playing
- BASS_ERROR_FREQ = 25; // illegal sample rate
- BASS_ERROR_NOTFILE = 27; // the stream is not a file stream
- BASS_ERROR_NOHW = 29; // no hardware voices available
- BASS_ERROR_EMPTY = 31; // the MOD music has no sequence data
- BASS_ERROR_NONET = 32; // no internet connection could be opened
- BASS_ERROR_CREATE = 33; // couldn't create the file
- BASS_ERROR_NOFX = 34; // effects are not enabled
- BASS_ERROR_PLAYING = 35; // the channel is playing
- BASS_ERROR_NOTAVAIL = 37; // requested data is not available
- BASS_ERROR_DECODE = 38; // the channel is a "decoding channel"
- BASS_ERROR_DX = 39; // a sufficient DirectX version is not installed
- BASS_ERROR_TIMEOUT = 40; // connection timedout
- BASS_ERROR_FILEFORM = 41; // unsupported file format
- BASS_ERROR_SPEAKER = 42; // unavailable speaker
- BASS_ERROR_VERSION = 43; // invalid BASS version (used by add-ons)
- BASS_ERROR_CODEC = 44; // codec is not available/supported
- BASS_ERROR_UNKNOWN = -1; // some other mystery error
-
- // Initialization flags
- BASS_DEVICE_8BITS = 1; // use 8 bit resolution, else 16 bit
- BASS_DEVICE_MONO = 2; // use mono, else stereo
- BASS_DEVICE_3D = 4; // enable 3D functionality
- {
- If the BASS_DEVICE_3D flag is not specified when
- initilizing BASS, then the 3D flags (BASS_SAMPLE_3D
- and BASS_MUSIC_3D) are ignored when loading/creating
- a sample/stream/music.
- }
- BASS_DEVICE_LATENCY = 256; // calculate device latency (BASS_INFO struct)
- BASS_DEVICE_SPEAKERS = 2048; // force enabling of speaker assignment
- BASS_DEVICE_NOSPEAKER = 4096; // ignore speaker arrangement
-
- // DirectSound interfaces (for use with BASS_GetDSoundObject)
- BASS_OBJECT_DS = 1; // IDirectSound
- BASS_OBJECT_DS3DL = 2; // IDirectSound3DListener
-
- // BASS_INFO flags (from DSOUND.H)
- DSCAPS_CONTINUOUSRATE = $00000010;
- { supports all sample rates between min/maxrate }
- DSCAPS_EMULDRIVER = $00000020;
- { device does NOT have hardware DirectSound support }
- DSCAPS_CERTIFIED = $00000040;
- { device driver has been certified by Microsoft }
- {
- The following flags tell what type of samples are
- supported by HARDWARE mixing, all these formats are
- supported by SOFTWARE mixing
- }
- DSCAPS_SECONDARYMONO = $00000100; // mono
- DSCAPS_SECONDARYSTEREO = $00000200; // stereo
- DSCAPS_SECONDARY8BIT = $00000400; // 8 bit
- DSCAPS_SECONDARY16BIT = $00000800; // 16 bit
-
- // BASS_RECORDINFO flags (from DSOUND.H)
- DSCCAPS_EMULDRIVER = DSCAPS_EMULDRIVER;
- { device does NOT have hardware DirectSound recording support }
- DSCCAPS_CERTIFIED = DSCAPS_CERTIFIED;
- { device driver has been certified by Microsoft }
-
- // defines for formats field of BASS_RECORDINFO (from MMSYSTEM.H)
- WAVE_FORMAT_1M08 = $00000001; // 11.025 kHz, Mono, 8-bit
- WAVE_FORMAT_1S08 = $00000002; // 11.025 kHz, Stereo, 8-bit
- WAVE_FORMAT_1M16 = $00000004; // 11.025 kHz, Mono, 16-bit
- WAVE_FORMAT_1S16 = $00000008; // 11.025 kHz, Stereo, 16-bit
- WAVE_FORMAT_2M08 = $00000010; // 22.05 kHz, Mono, 8-bit
- WAVE_FORMAT_2S08 = $00000020; // 22.05 kHz, Stereo, 8-bit
- WAVE_FORMAT_2M16 = $00000040; // 22.05 kHz, Mono, 16-bit
- WAVE_FORMAT_2S16 = $00000080; // 22.05 kHz, Stereo, 16-bit
- WAVE_FORMAT_4M08 = $00000100; // 44.1 kHz, Mono, 8-bit
- WAVE_FORMAT_4S08 = $00000200; // 44.1 kHz, Stereo, 8-bit
- WAVE_FORMAT_4M16 = $00000400; // 44.1 kHz, Mono, 16-bit
- WAVE_FORMAT_4S16 = $00000800; // 44.1 kHz, Stereo, 16-bit
-
- // Sample info flags
- BASS_SAMPLE_8BITS = 1; // 8 bit
- BASS_SAMPLE_FLOAT = 256; // 32-bit floating-point
- BASS_SAMPLE_MONO = 2; // mono, else stereo
- BASS_SAMPLE_LOOP = 4; // looped
- BASS_SAMPLE_3D = 8; // 3D functionality enabled
- BASS_SAMPLE_SOFTWARE = 16; // it's NOT using hardware mixing
- BASS_SAMPLE_MUTEMAX = 32; // muted at max distance (3D only)
- BASS_SAMPLE_VAM = 64; // uses the DX7 voice allocation & management
- BASS_SAMPLE_FX = 128; // old implementation of DX8 effects are enabled
- BASS_SAMPLE_OVER_VOL = $10000; // override lowest volume
- BASS_SAMPLE_OVER_POS = $20000; // override longest playing
- BASS_SAMPLE_OVER_DIST = $30000; // override furthest from listener (3D only)
-
- BASS_STREAM_PRESCAN = $20000; // enable pin-point seeking (MP3/MP2/MP1)
- BASS_MP3_SETPOS = BASS_STREAM_PRESCAN;
- BASS_STREAM_AUTOFREE = $40000; // automatically free the stream when it stop/ends
- BASS_STREAM_RESTRATE = $80000; // restrict the download rate of internet file streams
- BASS_STREAM_BLOCK = $100000;// download/play internet file stream in small blocks
- BASS_STREAM_DECODE = $200000;// don't play the stream, only decode (BASS_ChannelGetData)
- BASS_STREAM_STATUS = $800000;// give server status info (HTTP/ICY tags) in DOWNLOADPROC
-
- BASS_MUSIC_FLOAT = BASS_SAMPLE_FLOAT; // 32-bit floating-point
- BASS_MUSIC_MONO = BASS_SAMPLE_MONO; // force mono mixing (less CPU usage)
- BASS_MUSIC_LOOP = BASS_SAMPLE_LOOP; // loop music
- BASS_MUSIC_3D = BASS_SAMPLE_3D; // enable 3D functionality
- BASS_MUSIC_FX = BASS_SAMPLE_FX; // enable old implementation of DX8 effects
- BASS_MUSIC_AUTOFREE = BASS_STREAM_AUTOFREE; // automatically free the music when it stop/ends
- BASS_MUSIC_DECODE = BASS_STREAM_DECODE; // don't play the music, only decode (BASS_ChannelGetData)
- BASS_MUSIC_PRESCAN = BASS_STREAM_PRESCAN; // calculate playback length
- BASS_MUSIC_CALCLEN = BASS_MUSIC_PRESCAN;
- BASS_MUSIC_RAMP = $200; // normal ramping
- BASS_MUSIC_RAMPS = $400; // sensitive ramping
- BASS_MUSIC_SURROUND = $800; // surround sound
- BASS_MUSIC_SURROUND2 = $1000; // surround sound (mode 2)
- BASS_MUSIC_FT2MOD = $2000; // play .MOD as FastTracker 2 does
- BASS_MUSIC_PT1MOD = $4000; // play .MOD as ProTracker 1 does
- BASS_MUSIC_NONINTER = $10000; // non-interpolated mixing
- BASS_MUSIC_POSRESET = $8000; // stop all notes when moving position
- BASS_MUSIC_POSRESETEX = $400000; // stop all notes and reset bmp/etc when moving position
- BASS_MUSIC_STOPBACK = $80000; // stop the music on a backwards jump effect
- BASS_MUSIC_NOSAMPLE = $100000; // don't load the samples
-
- // Speaker assignment flags
- BASS_SPEAKER_FRONT = $1000000; // front speakers
- BASS_SPEAKER_REAR = $2000000; // rear/side speakers
- BASS_SPEAKER_CENLFE = $3000000; // center & LFE speakers (5.1)
- BASS_SPEAKER_REAR2 = $4000000; // rear center speakers (7.1)
- BASS_SPEAKER_LEFT = $10000000; // modifier: left
- BASS_SPEAKER_RIGHT = $20000000; // modifier: right
- BASS_SPEAKER_FRONTLEFT = BASS_SPEAKER_FRONT or BASS_SPEAKER_LEFT;
- BASS_SPEAKER_FRONTRIGHT = BASS_SPEAKER_FRONT or BASS_SPEAKER_RIGHT;
- BASS_SPEAKER_REARLEFT = BASS_SPEAKER_REAR or BASS_SPEAKER_LEFT;
- BASS_SPEAKER_REARRIGHT = BASS_SPEAKER_REAR or BASS_SPEAKER_RIGHT;
- BASS_SPEAKER_CENTER = BASS_SPEAKER_CENLFE or BASS_SPEAKER_LEFT;
- BASS_SPEAKER_LFE = BASS_SPEAKER_CENLFE or BASS_SPEAKER_RIGHT;
- BASS_SPEAKER_REAR2LEFT = BASS_SPEAKER_REAR2 or BASS_SPEAKER_LEFT;
- BASS_SPEAKER_REAR2RIGHT = BASS_SPEAKER_REAR2 or BASS_SPEAKER_RIGHT;
-
- BASS_UNICODE = $80000000;
-
- BASS_RECORD_PAUSE = $8000; // start recording paused
-
- // DX7 voice allocation flags
- BASS_VAM_HARDWARE = 1;
- {
- Play the sample in hardware. If no hardware voices are available then
- the "play" call will fail
- }
- BASS_VAM_SOFTWARE = 2;
- {
- Play the sample in software (ie. non-accelerated). No other VAM flags
- may be used together with this flag.
- }
-
- // DX7 voice management flags
- {
- These flags enable hardware resource stealing... if the hardware has no
- available voices, a currently playing buffer will be stopped to make room
- for the new buffer. NOTE: only samples loaded/created with the
- BASS_SAMPLE_VAM flag are considered for termination by the DX7 voice
- management.
- }
- BASS_VAM_TERM_TIME = 4;
- {
- If there are no free hardware voices, the buffer to be terminated will be
- the one with the least time left to play.
- }
- BASS_VAM_TERM_DIST = 8;
- {
- If there are no free hardware voices, the buffer to be terminated will be
- one that was loaded/created with the BASS_SAMPLE_MUTEMAX flag and is
- beyond
- it's max distance. If there are no buffers that match this criteria, then
- the "play" call will fail.
- }
- BASS_VAM_TERM_PRIO = 16;
- {
- If there are no free hardware voices, the buffer to be terminated will be
- the one with the lowest priority.
- }
-
- // BASS_CHANNELINFO types
- BASS_CTYPE_SAMPLE = 1;
- BASS_CTYPE_RECORD = 2;
- BASS_CTYPE_STREAM = $10000;
- BASS_CTYPE_STREAM_OGG = $10002;
- BASS_CTYPE_STREAM_MP1 = $10003;
- BASS_CTYPE_STREAM_MP2 = $10004;
- BASS_CTYPE_STREAM_MP3 = $10005;
- BASS_CTYPE_STREAM_AIFF = $10006;
- BASS_CTYPE_STREAM_WAV = $40000; // WAVE flag, LOWORD=codec
- BASS_CTYPE_STREAM_WAV_PCM = $50001;
- BASS_CTYPE_STREAM_WAV_FLOAT = $50003;
- BASS_CTYPE_MUSIC_MOD = $20000;
- BASS_CTYPE_MUSIC_MTM = $20001;
- BASS_CTYPE_MUSIC_S3M = $20002;
- BASS_CTYPE_MUSIC_XM = $20003;
- BASS_CTYPE_MUSIC_IT = $20004;
- BASS_CTYPE_MUSIC_MO3 = $00100; // MO3 flag
-
- // 3D channel modes
- BASS_3DMODE_NORMAL = 0;
- { normal 3D processing }
- BASS_3DMODE_RELATIVE = 1;
- {
- The channel's 3D position (position/velocity/
- orientation) are relative to the listener. When the
- listener's position/velocity/orientation is changed
- with BASS_Set3DPosition, the channel's position
- relative to the listener does not change.
- }
- BASS_3DMODE_OFF = 2;
- {
- Turn off 3D processing on the channel, the sound will
- be played in the center.
- }
-
- // EAX environments, use with BASS_SetEAXParameters
- EAX_ENVIRONMENT_GENERIC = 0;
- EAX_ENVIRONMENT_PADDEDCELL = 1;
- EAX_ENVIRONMENT_ROOM = 2;
- EAX_ENVIRONMENT_BATHROOM = 3;
- EAX_ENVIRONMENT_LIVINGROOM = 4;
- EAX_ENVIRONMENT_STONEROOM = 5;
- EAX_ENVIRONMENT_AUDITORIUM = 6;
- EAX_ENVIRONMENT_CONCERTHALL = 7;
- EAX_ENVIRONMENT_CAVE = 8;
- EAX_ENVIRONMENT_ARENA = 9;
- EAX_ENVIRONMENT_HANGAR = 10;
- EAX_ENVIRONMENT_CARPETEDHALLWAY = 11;
- EAX_ENVIRONMENT_HALLWAY = 12;
- EAX_ENVIRONMENT_STONECORRIDOR = 13;
- EAX_ENVIRONMENT_ALLEY = 14;
- EAX_ENVIRONMENT_FOREST = 15;
- EAX_ENVIRONMENT_CITY = 16;
- EAX_ENVIRONMENT_MOUNTAINS = 17;
- EAX_ENVIRONMENT_QUARRY = 18;
- EAX_ENVIRONMENT_PLAIN = 19;
- EAX_ENVIRONMENT_PARKINGLOT = 20;
- EAX_ENVIRONMENT_SEWERPIPE = 21;
- EAX_ENVIRONMENT_UNDERWATER = 22;
- EAX_ENVIRONMENT_DRUGGED = 23;
- EAX_ENVIRONMENT_DIZZY = 24;
- EAX_ENVIRONMENT_PSYCHOTIC = 25;
- // total number of environments
- EAX_ENVIRONMENT_COUNT = 26;
-
- // software 3D mixing algorithm modes (used with BASS_Set3DAlgorithm)
- BASS_3DALG_DEFAULT = 0;
- {
- default algorithm (currently translates to BASS_3DALG_OFF)
- }
- BASS_3DALG_OFF = 1;
- {
- Uses normal left and right panning. The vertical axis is ignored except
- for scaling of volume due to distance. Doppler shift and volume scaling
- are still applied, but the 3D filtering is not performed. This is the
- most CPU efficient software implementation, but provides no virtual 3D
- audio effect. Head Related Transfer Function processing will not be done.
- Since only normal stereo panning is used, a channel using this algorithm
- may be accelerated by a 2D hardware voice if no free 3D hardware voices
- are available.
- }
- BASS_3DALG_FULL = 2;
- {
- This algorithm gives the highest quality 3D audio effect, but uses more
- CPU. Requires Windows 98 2nd Edition or Windows 2000 that uses WDM
- drivers, if this mode is not available then BASS_3DALG_OFF will be used
- instead.
- }
- BASS_3DALG_LIGHT = 3;
- {
- This algorithm gives a good 3D audio effect, and uses less CPU than the
- FULL mode. Requires Windows 98 2nd Edition or Windows 2000 that uses WDM
- drivers, if this mode is not available then BASS_3DALG_OFF will be used
- instead.
- }
-
- {
- Sync types (with BASS_ChannelSetSync() "param" and
- SYNCPROC "data" definitions) & flags.
- }
- BASS_SYNC_POS = 0;
- {
- Sync when a channel reaches a position.
- param: position in bytes
- data : not used
- }
- BASS_SYNC_END = 2;
- {
- Sync when a channel reaches the end.
- param: not used
- data : not used
- }
- BASS_SYNC_META = 4;
- {
- Sync when metadata is received in a stream.
- param: not used
- data : pointer to the metadata
- }
- BASS_SYNC_SLIDE = 5;
- {
- Sync when an attribute slide is completed.
- param: not used
- data : the type of slide completed (one of the BASS_SLIDE_xxx values)
- }
- BASS_SYNC_STALL = 6;
- {
- Sync when playback has stalled.
- param: not used
- data : 0=stalled, 1=resumed
- }
- BASS_SYNC_DOWNLOAD = 7;
- {
- Sync when downloading of an internet (or "buffered" user file) stream has ended.
- param: not used
- data : not used
- }
- BASS_SYNC_FREE = 8;
- {
- Sync when a channel is freed.
- param: not used
- data : not used
- }
- BASS_SYNC_SETPOS = 11;
- {
- Sync when a channel's position is set.
- param: not used
- data : 0 = playback buffer not flushed, 1 = playback buffer flushed
- }
- BASS_SYNC_MUSICPOS = 10;
- {
- Sync when a MOD music reaches an order:row position.
- param: LOWORD=order (0=first, -1=all) HIWORD=row (0=first, -1=all)
- data : LOWORD=order HIWORD=row
- }
- BASS_SYNC_MUSICINST = 1;
- {
- Sync when an instrument (sample for the non-instrument based formats)
- is played in a MOD music (not including retrigs).
- param: LOWORD=instrument (1=first) HIWORD=note (0=c0...119=b9, -1=all)
- data : LOWORD=note HIWORD=volume (0-64)
- }
- BASS_SYNC_MUSICFX = 3;
- {
- Sync when the "sync" effect (XM/MTM/MOD: E8x/Wxx, IT/S3M: S2x) is used.
- param: 0:data=pos, 1:data="x" value
- data : param=0: LOWORD=order HIWORD=row, param=1: "x" value
- }
- BASS_SYNC_MESSAGE = $20000000;
- { FLAG: post a Windows message (instead of callback)
- When using a window message "callback", the message to post is given in the "proc"
- parameter of BASS_ChannelSetSync, and is posted to the window specified in the BASS_Init
- call. The message parameters are: WPARAM = data, LPARAM = user.
- }
- BASS_SYNC_MIXTIME = $40000000;
- { FLAG: sync at mixtime, else at playtime }
- BASS_SYNC_ONETIME = $80000000;
- { FLAG: sync only once, else continuously }
-
- // BASS_ChannelIsActive return values
- BASS_ACTIVE_STOPPED = 0;
- BASS_ACTIVE_PLAYING = 1;
- BASS_ACTIVE_STALLED = 2;
- BASS_ACTIVE_PAUSED = 3;
-
- // BASS_ChannelIsSliding return flags
- BASS_SLIDE_FREQ = 1;
- BASS_SLIDE_VOL = 2;
- BASS_SLIDE_PAN = 4;
-
- // BASS_ChannelGetData flags
- BASS_DATA_AVAILABLE = 0; // query how much data is buffered
- BASS_DATA_FLOAT = $40000000; // flag: return floating-point sample data
- BASS_DATA_FFT512 = $80000000; // 512 sample FFT
- BASS_DATA_FFT1024 = $80000001; // 1024 FFT
- BASS_DATA_FFT2048 = $80000002; // 2048 FFT
- BASS_DATA_FFT4096 = $80000003; // 4096 FFT
- BASS_DATA_FFT8192 = $80000004; // 8192 FFT
- BASS_DATA_FFT_INDIVIDUAL = $10; // FFT flag: FFT for each channel, else all combined
- BASS_DATA_FFT_NOWINDOW = $20; // FFT flag: no Hanning window
-
- // BASS_ChannelGetTags types : what's returned
- BASS_TAG_ID3 = 0; // ID3v1 tags : 128 byte block
- BASS_TAG_ID3V2 = 1; // ID3v2 tags : variable length block
- BASS_TAG_OGG = 2; // OGG comments : array of null-terminated strings
- BASS_TAG_HTTP = 3; // HTTP headers : array of null-terminated strings
- BASS_TAG_ICY = 4; // ICY headers : array of null-terminated strings
- BASS_TAG_META = 5; // ICY metadata : null-terminated string
- BASS_TAG_VENDOR = 9; // OGG encoder : null-terminated string
- BASS_TAG_LYRICS3 = 10; // Lyric3v2 tag : ASCII string
- BASS_TAG_RIFF_INFO = $100; // RIFF/WAVE tags : array of null-terminated ANSI strings
- BASS_TAG_MUSIC_NAME = $10000; // MOD music name : ANSI string
- BASS_TAG_MUSIC_MESSAGE = $10001; // MOD message : ANSI string
- BASS_TAG_MUSIC_INST = $10100; // + instrument #, MOD instrument name : ANSI string
- BASS_TAG_MUSIC_SAMPLE = $10300; // + sample #, MOD sample name : ANSI string
-
- BASS_FX_CHORUS = 0; // GUID_DSFX_STANDARD_CHORUS
- BASS_FX_COMPRESSOR = 1; // GUID_DSFX_STANDARD_COMPRESSOR
- BASS_FX_DISTORTION = 2; // GUID_DSFX_STANDARD_DISTORTION
- BASS_FX_ECHO = 3; // GUID_DSFX_STANDARD_ECHO
- BASS_FX_FLANGER = 4; // GUID_DSFX_STANDARD_FLANGER
- BASS_FX_GARGLE = 5; // GUID_DSFX_STANDARD_GARGLE
- BASS_FX_I3DL2REVERB = 6; // GUID_DSFX_STANDARD_I3DL2REVERB
- BASS_FX_PARAMEQ = 7; // GUID_DSFX_STANDARD_PARAMEQ
- BASS_FX_REVERB = 8; // GUID_DSFX_WAVES_REVERB
-
- BASS_FX_PHASE_NEG_180 = 0;
- BASS_FX_PHASE_NEG_90 = 1;
- BASS_FX_PHASE_ZERO = 2;
- BASS_FX_PHASE_90 = 3;
- BASS_FX_PHASE_180 = 4;
-
- // BASS_RecordSetInput flags
- BASS_INPUT_OFF = $10000;
- BASS_INPUT_ON = $20000;
- BASS_INPUT_LEVEL = $40000;
-
- BASS_INPUT_TYPE_MASK = $ff000000;
- BASS_INPUT_TYPE_UNDEF = $00000000;
- BASS_INPUT_TYPE_DIGITAL = $01000000;
- BASS_INPUT_TYPE_LINE = $02000000;
- BASS_INPUT_TYPE_MIC = $03000000;
- BASS_INPUT_TYPE_SYNTH = $04000000;
- BASS_INPUT_TYPE_CD = $05000000;
- BASS_INPUT_TYPE_PHONE = $06000000;
- BASS_INPUT_TYPE_SPEAKER = $07000000;
- BASS_INPUT_TYPE_WAVE = $08000000;
- BASS_INPUT_TYPE_AUX = $09000000;
- BASS_INPUT_TYPE_ANALOG = $0a000000;
-
- // BASS_SetNetConfig flags
- BASS_NET_TIMEOUT = 0;
- BASS_NET_BUFFER = 1;
-
- // BASS_StreamGetFilePosition modes
- BASS_FILEPOS_CURRENT = 0;
- BASS_FILEPOS_DECODE = BASS_FILEPOS_CURRENT;
- BASS_FILEPOS_DOWNLOAD = 1;
- BASS_FILEPOS_END = 2;
- BASS_FILEPOS_START = 3;
- BASS_FILEPOS_CONNECTED = 4;
-
- // STREAMFILEPROC actions
- BASS_FILE_CLOSE = 0;
- BASS_FILE_READ = 1;
- BASS_FILE_LEN = 3;
- BASS_FILE_SEEK = 4;
-
- BASS_STREAMPROC_END = $80000000; // end of user stream flag
-
- // BASS_MusicSet/GetAttribute options
- BASS_MUSIC_ATTRIB_AMPLIFY = 0;
- BASS_MUSIC_ATTRIB_PANSEP = 1;
- BASS_MUSIC_ATTRIB_PSCALER = 2;
- BASS_MUSIC_ATTRIB_BPM = 3;
- BASS_MUSIC_ATTRIB_SPEED = 4;
- BASS_MUSIC_ATTRIB_VOL_GLOBAL = 5;
- BASS_MUSIC_ATTRIB_VOL_CHAN = $100; // + channel #
- BASS_MUSIC_ATTRIB_VOL_INST = $200; // + instrument #
-
- // BASS_Set/GetConfig options
- BASS_CONFIG_BUFFER = 0;
- BASS_CONFIG_UPDATEPERIOD = 1;
- BASS_CONFIG_MAXVOL = 3;
- BASS_CONFIG_GVOL_SAMPLE = 4;
- BASS_CONFIG_GVOL_STREAM = 5;
- BASS_CONFIG_GVOL_MUSIC = 6;
- BASS_CONFIG_CURVE_VOL = 7;
- BASS_CONFIG_CURVE_PAN = 8;
- BASS_CONFIG_FLOATDSP = 9;
- BASS_CONFIG_3DALGORITHM = 10;
- BASS_CONFIG_NET_TIMEOUT = 11;
- BASS_CONFIG_NET_BUFFER = 12;
- BASS_CONFIG_PAUSE_NOPLAY = 13;
- BASS_CONFIG_NET_PREBUF = 15;
- BASS_CONFIG_NET_AGENT = 16;
- BASS_CONFIG_NET_PROXY = 17;
- BASS_CONFIG_NET_PASSIVE = 18;
- BASS_CONFIG_REC_BUFFER = 19;
- BASS_CONFIG_NET_PLAYLIST = 21;
- BASS_CONFIG_MUSIC_VIRTUAL = 22;
-
-type
- DWORD = cardinal;
- BOOL = LongBool;
- FLOAT = Single;
- QWORD = int64; // 64-bit (replace "int64" with "comp" if using Delphi 3)
-
- HMUSIC = DWORD; // MOD music handle
- HSAMPLE = DWORD; // sample handle
- HCHANNEL = DWORD; // playing sample's channel handle
- HSTREAM = DWORD; // sample stream handle
- HRECORD = DWORD; // recording handle
- HSYNC = DWORD; // synchronizer handle
- HDSP = DWORD; // DSP handle
- HFX = DWORD; // DX8 effect handle
- HPLUGIN = DWORD; // Plugin handle
-
- BASS_INFO = record
- flags: DWORD; // device capabilities (DSCAPS_xxx flags)
- hwsize: DWORD; // size of total device hardware memory
- hwfree: DWORD; // size of free device hardware memory
- freesam: DWORD; // number of free sample slots in the hardware
- free3d: DWORD; // number of free 3D sample slots in the hardware
- minrate: DWORD; // min sample rate supported by the hardware
- maxrate: DWORD; // max sample rate supported by the hardware
- eax: BOOL; // device supports EAX? (always FALSE if BASS_DEVICE_3D was not used)
- minbuf: DWORD; // recommended minimum buffer length in ms (requires BASS_DEVICE_LATENCY)
- dsver: DWORD; // DirectSound version
- latency: DWORD; // delay (in ms) before start of playback (requires BASS_DEVICE_LATENCY)
- initflags: DWORD; // "flags" parameter of BASS_Init call
- speakers: DWORD; // number of speakers available
- driver: PChar; // driver
- freq: DWORD; // current output rate (OSX only)
- end;
-
- BASS_RECORDINFO = record
- flags: DWORD; // device capabilities (DSCCAPS_xxx flags)
- formats: DWORD; // supported standard formats (WAVE_FORMAT_xxx flags)
- inputs: DWORD; // number of inputs
- singlein: BOOL; // only 1 input can be set at a time
- driver: PChar; // driver
- freq: DWORD; // current input rate (OSX only)
- end;
-
- BASS_CHANNELINFO = record
- freq: DWORD; // default playback rate
- chans: DWORD; // channels
- flags: DWORD; // BASS_SAMPLE/STREAM/MUSIC/SPEAKER flags
- ctype: DWORD; // type of channel
- origres: DWORD; // original resolution
- plugin: HPLUGIN; // plugin
- end;
-
- BASS_PLUGINFORM = record
- ctype: DWORD; // channel type
- name: PChar; // format description
- exts: PChar; // file extension filter ( *.ext1;*.ext2;etc...)
- end;
- PBASS_PLUGINFORMS = ^TBASS_PLUGINFORMS;
- TBASS_PLUGINFORMS = array[0..maxInt div sizeOf(BASS_PLUGINFORM) - 1] of BASS_PLUGINFORM;
-
- BASS_PLUGININFO = record
- version: DWORD; // version (same form as BASS_GetVersion)
- formatc: DWORD; // number of formats
- formats: PBASS_PLUGINFORMS; // the array of formats
- end;
- PBASS_PLUGININFO = ^BASS_PLUGININFO;
-
- // Sample info structure
- BASS_SAMPLE = record
- freq: DWORD; // default playback rate
- volume: DWORD; // default volume (0-100)
- pan: Integer; // default pan (-100=left, 0=middle, 100=right)
- flags: DWORD; // BASS_SAMPLE_xxx flags
- length: DWORD; // length (in samples, not bytes)
- max: DWORD; // maximum simultaneous playbacks
- origres: DWORD; // original resolution
- chans: DWORD; // number of channels
- mingap: DWORD; // minimum gap (ms) between creating channels
- {
- The following are the samples default 3D attributes
- (if the sample is 3D, BASS_SAMPLE_3D is in flags)
- see BASS_ChannelSet3DAttributes
- }
- mode3d: DWORD; // BASS_3DMODE_xxx mode
- mindist: FLOAT; // minimum distance
- maxdist: FLOAT; // maximum distance
- iangle: DWORD; // angle of inside projection cone
- oangle: DWORD; // angle of outside projection cone
- outvol: DWORD; // delta-volume outside the projection cone
- {
- The following are the defaults used if the sample uses the DirectX 7
- voice allocation/management features.
- }
- vam: DWORD; // voice allocation/management flags (BASS_VAM_xxx)
- priority: DWORD; // priority (0=lowest, $ffffffff=highest)
- end;
-
- // 3D vector (for 3D positions/velocities/orientations)
- BASS_3DVECTOR = record
- x: FLOAT; // +=right, -=left
- y: FLOAT; // +=up, -=down
- z: FLOAT; // +=front, -=behind
- end;
-
- BASS_FXCHORUS = record
- fWetDryMix: FLOAT;
- fDepth: FLOAT;
- fFeedback: FLOAT;
- fFrequency: FLOAT;
- lWaveform: DWORD; // 0=triangle, 1=sine
- fDelay: FLOAT;
- lPhase: DWORD; // BASS_FX_PHASE_xxx
- end;
-
- BASS_FXCOMPRESSOR = record
- fGain: FLOAT;
- fAttack: FLOAT;
- fRelease: FLOAT;
- fThreshold: FLOAT;
- fRatio: FLOAT;
- fPredelay: FLOAT;
- end;
-
- BASS_FXDISTORTION = record
- fGain: FLOAT;
- fEdge: FLOAT;
- fPostEQCenterFrequency: FLOAT;
- fPostEQBandwidth: FLOAT;
- fPreLowpassCutoff: FLOAT;
- end;
-
- BASS_FXECHO = record
- fWetDryMix: FLOAT;
- fFeedback: FLOAT;
- fLeftDelay: FLOAT;
- fRightDelay: FLOAT;
- lPanDelay: BOOL;
- end;
-
- BASS_FXFLANGER = record
- fWetDryMix: FLOAT;
- fDepth: FLOAT;
- fFeedback: FLOAT;
- fFrequency: FLOAT;
- lWaveform: DWORD; // 0=triangle, 1=sine
- fDelay: FLOAT;
- lPhase: DWORD; // BASS_FX_PHASE_xxx
- end;
-
- BASS_FXGARGLE = record
- dwRateHz: DWORD; // Rate of modulation in hz
- dwWaveShape: DWORD; // 0=triangle, 1=square
- end;
-
- BASS_FXI3DL2REVERB = record
- lRoom: Longint; // [-10000, 0] default: -1000 mB
- lRoomHF: Longint; // [-10000, 0] default: 0 mB
- flRoomRolloffFactor: FLOAT; // [0.0, 10.0] default: 0.0
- flDecayTime: FLOAT; // [0.1, 20.0] default: 1.49s
- flDecayHFRatio: FLOAT; // [0.1, 2.0] default: 0.83
- lReflections: Longint; // [-10000, 1000] default: -2602 mB
- flReflectionsDelay: FLOAT; // [0.0, 0.3] default: 0.007 s
- lReverb: Longint; // [-10000, 2000] default: 200 mB
- flReverbDelay: FLOAT; // [0.0, 0.1] default: 0.011 s
- flDiffusion: FLOAT; // [0.0, 100.0] default: 100.0 %
- flDensity: FLOAT; // [0.0, 100.0] default: 100.0 %
- flHFReference: FLOAT; // [20.0, 20000.0] default: 5000.0 Hz
- end;
-
- BASS_FXPARAMEQ = record
- fCenter: FLOAT;
- fBandwidth: FLOAT;
- fGain: FLOAT;
- end;
-
- BASS_FXREVERB = record
- fInGain: FLOAT; // [-96.0,0.0] default: 0.0 dB
- fReverbMix: FLOAT; // [-96.0,0.0] default: 0.0 db
- fReverbTime: FLOAT; // [0.001,3000.0] default: 1000.0 ms
- fHighFreqRTRatio: FLOAT; // [0.001,0.999] default: 0.001
- end;
-
- // callback function types
- STREAMPROC = function(handle: HSTREAM; buffer: Pointer; length: DWORD; user: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- {
- User stream callback function. NOTE: A stream function should obviously be as
- quick as possible, other streams (and MOD musics) can't be mixed until
- it's finished.
- handle : The stream that needs writing
- buffer : Buffer to write the samples in
- length : Number of bytes to write
- user : The 'user' parameter value given when calling BASS_StreamCreate
- RETURN : Number of bytes written. Set the BASS_STREAMPROC_END flag to end
- the stream.
- }
-
- STREAMFILEPROC = function(action, param1, param2, user: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- {
- User file stream callback function.
- action : The action to perform, one of BASS_FILE_xxx values.
- param1 : Depends on "action"
- param2 : Depends on "action"
- user : The 'user' parameter value given when calling BASS_StreamCreate
- RETURN : Depends on "action"
- }
-
- DOWNLOADPROC = procedure(buffer: Pointer; length: DWORD; user: DWORD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- {
- Internet stream download callback function.
- buffer : Buffer containing the downloaded data... NULL=end of download
- length : Number of bytes in the buffer
- user : The 'user' parameter value given when calling BASS_StreamCreateURL
- }
-
- SYNCPROC = procedure(handle: HSYNC; channel, data: DWORD; user: DWORD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- {
- Sync callback function. NOTE: a sync callback function should be very
- quick as other syncs cannot be processed until it has finished. If the
- sync is a "mixtime" sync, then other streams and MOD musics can not be
- mixed until it's finished either.
- handle : The sync that has occured
- channel: Channel that the sync occured in
- data : Additional data associated with the sync's occurance
- user : The 'user' parameter given when calling BASS_ChannelSetSync
- }
-
- DSPPROC = procedure(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: DWORD); {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- {
- DSP callback function. NOTE: A DSP function should obviously be as quick
- as possible... other DSP functions, streams and MOD musics can not be
- processed until it's finished.
- handle : The DSP handle
- channel: Channel that the DSP is being applied to
- buffer : Buffer to apply the DSP to
- length : Number of bytes in the buffer
- user : The 'user' parameter given when calling BASS_ChannelSetDSP
- }
-
- RECORDPROC = function(handle: HRECORD; const buffer: Pointer; length: DWORD; user: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}
- {
- Recording callback function.
- handle : The recording handle
- buffer : Buffer containing the recorded sample data
- length : Number of bytes
- user : The 'user' parameter value given when calling BASS_RecordStart
- RETURN : TRUE = continue recording, FALSE = stop
- }
-
-
-// Functions
-const
-
-{$IFDEF MSWINDOWS}
- bassdll = 'bass.dll';
-{$ENDIF}
-{$IFDEF DARWIN}
- bassdll = 'libbass.dylib';
-{$ENDIF}
-
-function BASS_SetConfig(option, value: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_GetConfig(option: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_GetVersion: DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_GetDeviceDescription(device: DWORD): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ErrorGetCode: Integer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_Init(device: Integer; freq, flags: DWORD; win: HWND; clsid: PGUID): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_SetDevice(device: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_GetDevice: DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_Free: BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_GetDSoundObject(obj: DWORD): Pointer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_GetInfo(var info: BASS_INFO): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_Update: BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_GetCPU: FLOAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_Start: BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_Stop: BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_Pause: BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_SetVolume(volume: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_GetVolume: Integer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-
-function BASS_PluginLoad(filename: PChar; flags: DWORD): HPLUGIN; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_PluginFree(handle: HPLUGIN): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_PluginGetInfo(handle: HPLUGIN): PBASS_PLUGININFO; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-
-function BASS_Set3DFactors(distf, rollf, doppf: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_Get3DFactors(var distf, rollf, doppf: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_Set3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_Get3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-procedure BASS_Apply3D; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-{$IFDEF MSWINDOWS}
-function BASS_SetEAXParameters(env: Integer; vol, decay, damp: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_GetEAXParameters(var env: DWORD; var vol, decay, damp: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-{$ENDIF}
-
-function BASS_MusicLoad(mem: BOOL; f: Pointer; offset, length, flags, freq: DWORD): HMUSIC; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_MusicFree(handle: HMUSIC): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_MusicSetAttribute(handle: HMUSIC; attrib,value: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_MusicGetAttribute(handle: HMUSIC; attrib: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_MusicGetOrders(handle: HMUSIC): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_MusicGetOrderPosition(handle: HMUSIC): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-
-function BASS_SampleLoad(mem: BOOL; f: Pointer; offset, length, max, flags: DWORD): HSAMPLE; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_SampleCreate(length, freq, chans, max, flags: DWORD): Pointer; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_SampleCreateDone: HSAMPLE; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_SampleFree(handle: HSAMPLE): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_SampleGetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_SampleSetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_SampleGetChannel(handle: HSAMPLE; onlynew: BOOL): HCHANNEL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_SampleGetChannels(handle: HSAMPLE; channels: Pointer): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_SampleStop(handle: HSAMPLE): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-
-function BASS_StreamCreate(freq, chans, flags: DWORD; proc: Pointer; user: DWORD): HSTREAM; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length, flags: DWORD): HSTREAM; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_StreamCreateURL(url: PChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: DWORD):HSTREAM; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_StreamCreateFileUser(buffered: BOOL; flags: DWORD; proc: STREAMFILEPROC; user: DWORD): HSTREAM; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_StreamFree(handle: HSTREAM): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_StreamGetFilePosition(handle:HSTREAM; mode:DWORD) : DWORD;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_StreamGetLength(handle: DWORD): QWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll name 'BASS_ChannelGetLength';
-
-function BASS_RecordGetDeviceDescription(devnum: DWORD):PChar;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_RecordInit(device: Integer):BOOL;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_RecordSetDevice(device: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_RecordGetDevice: DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_RecordFree:BOOL;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_RecordGetInfo(var info:BASS_RECORDINFO):BOOL;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_RecordGetInputName(input:Integer):PChar;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_RecordSetInput(input:Integer; setting:DWORD):BOOL;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_RecordGetInput(input:Integer):DWORD;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_RecordStart(freq,chans,flags:DWORD; proc:RECORDPROC; user:DWORD):HRECORD;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-
-function BASS_ChannelBytes2Seconds(handle: DWORD; pos: QWORD): FLOAT; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_ChannelSeconds2Bytes(handle: DWORD; pos: FLOAT): QWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_ChannelGetDevice(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelSetDevice(handle, device: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelIsActive(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_ChannelGetInfo(handle: DWORD; var info:BASS_CHANNELINFO):BOOL;{$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_ChannelGetTags(handle: HSTREAM; tags : DWORD): PChar; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelSetFlags(handle, flags: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelPreBuf(handle, length: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelStop(handle: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelPause(handle: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelSetAttributes(handle: DWORD; freq, volume, pan: Integer): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelGetAttributes(handle: DWORD; var freq, volume: DWORD; var pan: Integer): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelSlideAttributes(handle: DWORD; freq, volume, pan: Integer; time: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelIsSliding(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF}external bassdll;
-function BASS_ChannelSet3DAttributes(handle: DWORD; mode: Integer; min, max: FLOAT; iangle, oangle, outvol: Integer): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelGet3DAttributes(handle: DWORD; var mode: DWORD; var min, max: FLOAT; var iangle, oangle, outvol: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelSet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelGet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelGetLength(handle: DWORD): QWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelSetPosition(handle: DWORD; pos: QWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelGetPosition(handle: DWORD): QWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelGetLevel(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelGetData(handle: DWORD; buffer: Pointer; length: DWORD): DWORD; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelSetSync(handle: DWORD; stype: DWORD; param: QWORD; proc: SYNCPROC; user: DWORD): HSYNC; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelRemoveSync(handle: DWORD; sync: HSYNC): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelSetDSP(handle: DWORD; proc: DSPPROC; user: DWORD; priority: Integer): HDSP; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelRemoveDSP(handle: DWORD; dsp: HDSP): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-{$IFDEF MSWINDOWS}
-function BASS_ChannelSetEAXMix(handle: DWORD; mix: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelGetEAXMix(handle: DWORD; var mix: FLOAT): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-{$ENDIF}
-function BASS_ChannelSetLink(handle, chan: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelRemoveLink(handle, chan: DWORD): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelSetFX(handle, etype: DWORD; priority: Integer): HFX; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_ChannelRemoveFX(handle: DWORD; fx: HFX): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-
-function BASS_FXSetParameters(handle: HFX; par: Pointer): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_FXGetParameters(handle: HFX; par: Pointer): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-function BASS_FXReset(handle: HFX): BOOL; {$IFDEF DLL_STDCALL} stdcall; {$ENDIF} {$IFDEF DLL_CDECL} cdecl; {$ENDIF} external bassdll;
-
-
-function BASS_SPEAKER_N(n: DWORD): DWORD;
-function MAKEMUSICPOS(order,row: DWORD): DWORD;
-{$IFDEF MSWINDOWS}
-function BASS_SetEAXPreset(env: Integer): BOOL;
-{
- This function is defined in the implementation part of this unit.
- It is not part of BASS.DLL but an extra function which makes it easier
- to set the predefined EAX environments.
- env : a EAX_ENVIRONMENT_xxx constant
-}
-{$ENDIF}
-
-implementation
-
-function BASS_SPEAKER_N(n: DWORD): DWORD;
-begin
- Result := n shl 24;
-end;
-
-function MAKEMUSICPOS(order,row: DWORD): DWORD;
-begin
- Result := $80000000 or DWORD(MAKELONG(order,row));
-end;
-
-{$IFDEF MSWINDOWS}
-function BASS_SetEAXPreset(env: Integer): BOOL;
-begin
- case (env) of
- EAX_ENVIRONMENT_GENERIC:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_GENERIC, 0.5, 1.493, 0.5);
- EAX_ENVIRONMENT_PADDEDCELL:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PADDEDCELL, 0.25, 0.1, 0);
- EAX_ENVIRONMENT_ROOM:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ROOM, 0.417, 0.4, 0.666);
- EAX_ENVIRONMENT_BATHROOM:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_BATHROOM, 0.653, 1.499, 0.166);
- EAX_ENVIRONMENT_LIVINGROOM:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_LIVINGROOM, 0.208, 0.478, 0);
- EAX_ENVIRONMENT_STONEROOM:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_STONEROOM, 0.5, 2.309, 0.888);
- EAX_ENVIRONMENT_AUDITORIUM:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_AUDITORIUM, 0.403, 4.279, 0.5);
- EAX_ENVIRONMENT_CONCERTHALL:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CONCERTHALL, 0.5, 3.961, 0.5);
- EAX_ENVIRONMENT_CAVE:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CAVE, 0.5, 2.886, 1.304);
- EAX_ENVIRONMENT_ARENA:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ARENA, 0.361, 7.284, 0.332);
- EAX_ENVIRONMENT_HANGAR:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_HANGAR, 0.5, 10.0, 0.3);
- EAX_ENVIRONMENT_CARPETEDHALLWAY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CARPETEDHALLWAY, 0.153, 0.259, 2.0);
- EAX_ENVIRONMENT_HALLWAY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_HALLWAY, 0.361, 1.493, 0);
- EAX_ENVIRONMENT_STONECORRIDOR:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_STONECORRIDOR, 0.444, 2.697, 0.638);
- EAX_ENVIRONMENT_ALLEY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ALLEY, 0.25, 1.752, 0.776);
- EAX_ENVIRONMENT_FOREST:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_FOREST, 0.111, 3.145, 0.472);
- EAX_ENVIRONMENT_CITY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CITY, 0.111, 2.767, 0.224);
- EAX_ENVIRONMENT_MOUNTAINS:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_MOUNTAINS, 0.194, 7.841, 0.472);
- EAX_ENVIRONMENT_QUARRY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_QUARRY, 1, 1.499, 0.5);
- EAX_ENVIRONMENT_PLAIN:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PLAIN, 0.097, 2.767, 0.224);
- EAX_ENVIRONMENT_PARKINGLOT:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PARKINGLOT, 0.208, 1.652, 1.5);
- EAX_ENVIRONMENT_SEWERPIPE:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_SEWERPIPE, 0.652, 2.886, 0.25);
- EAX_ENVIRONMENT_UNDERWATER:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_UNDERWATER, 1, 1.499, 0);
- EAX_ENVIRONMENT_DRUGGED:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_DRUGGED, 0.875, 8.392, 1.388);
- EAX_ENVIRONMENT_DIZZY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_DIZZY, 0.139, 17.234, 0.666);
- EAX_ENVIRONMENT_PSYCHOTIC:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PSYCHOTIC, 0.486, 7.563, 0.806);
- else
- Result := FALSE;
- end;
-end;
-{$ENDIF}
-
-end.
-// END OF FILE /////////////////////////////////////////////////////////////////
-
diff --git a/Game/Code/lib/bass/bass.chm b/Game/Code/lib/bass/bass.chm
deleted file mode 100644
index 1e8c5076..00000000
--- a/Game/Code/lib/bass/bass.chm
+++ /dev/null
Binary files differ
diff --git a/Game/Code/lib/bass/bass.dll b/Game/Code/lib/bass/bass.dll
deleted file mode 100644
index 964d8996..00000000
--- a/Game/Code/lib/bass/bass.dll
+++ /dev/null
Binary files differ
diff --git a/Game/Code/lib/bass/bass.txt b/Game/Code/lib/bass/bass.txt
deleted file mode 100644
index c60b6594..00000000
--- a/Game/Code/lib/bass/bass.txt
+++ /dev/null
@@ -1,1546 +0,0 @@
-BASS 2.3 - Copyright (c) 1999-2007 Ian Luck. All rights reserved.
-
-Files that you should have found in the BASS "package"
-======================================================
-Win32 version
--------------
-BASS.TXT This file
-BASS.DLL The BASS module
-BASS.CHM BASS documentation
-MP3-FREE
- BASS.DLL BASS module using the Windows MP3 decoder
-C\ C/C++ API and samples...
- BASS.H BASS C/C++ header file
- BASS.LIB BASS import library
- BASS.DSW Visual C++ workspace for examples
- MAKEFILE Makefile for all examples
- MAKEFILE.IN Makefile helper macros
- 3DTEST\ 3D/EAX example
- 3DTEST.C
- 3DTEST.RC
- 3DTEST.DSP
- MAKEFILE
- BASSTEST\ Simple playback example
- BASSTEST.C
- BASSTEST.RC
- BASSTEST.H
- BASSTEST.DSP
- MAKEFILE
- CONTEST\ Console example
- CONTEST.C
- CONTEST.DSP
- MAKEFILE
- CUSTLOOP\ Custom looping example
- CUSTLOOP.C
- CUSTLOOP.DSP
- MAKEFILE
- DSPTEST\ DSP example
- DSPTEST.C
- DSPTEST.RC
- DSPTEST.DSP
- MAKEFILE
- FXTEST\ DX8 effect example
- FXTEST.C
- FXTEST.RC
- FXTEST.DSP
- MAKEFILE
- LIVEFX\ Full-duplex example
- LIVEFX.C
- LIVEFX.RC
- LIVEFX.DSP
- MAKEFILE
- LIVESPEC\ "Live" version of spectrum analyser example
- LIVESPEC.C
- LIVESPEC.DSP
- MAKEFILE
- LOADNGET\ LoadLibrary/GetProcAddress example
- LOADNGET.C
- LOADNGET.RC
- LOADNGET.DSP
- MAKEFILE
- MULTI\ Multiple device example
- MULTI.C
- MULTI.RC
- MULTI.DSP
- MAKEFILE
- NETRADIO\ Internet streaming example
- NETRADIO.C
- NETRADIO.RC
- NETRADIO.DSP
- MAKEFILE
- PLUGINS\ Plugins example
- PLUGINS.C
- PLUGINS.RC
- PLUGINS.DSP
- MAKEFILE
- RECTEST\ Recording example
- RECTEST.C
- RECTEST.RC
- RECTEST.DSP
- MAKEFILE
- SPEAKERS\ Multi-speaker example
- SPEAKERS.C
- SPEAKERS.RC
- SPEAKERS.DSP
- MAKEFILE
- SPECTRUM\ Spectrum analyser example
- SPECTRUM.C
- SPECTRUM.DSP
- MAKEFILE
- SYNTH\ Synth example
- SYNTH.C
- SYNTH.DSP
- MAKEFILE
- WRITEWAV\ WAVE writer example
- WRITEWAV.C
- WRITEWAV.DSP
- MAKEFILE
- BIN\ Precompiled examples
- 3DTEST.EXE
- BASSTEST.EXE
- CONTEST.EXE
- CUSTLOOP.EXE
- DSPTEST.EXE
- FXTEST.EXE
- LIVEFX.EXE
- LIVESPEC.EXE
- LOADNGET.EXE
- MULTI.EXE
- NETRADIO.EXE
- RECTEST.EXE
- SPEAKERS.EXE
- SPECTRUM.EXE
- SYNTH.EXE
- WRITEWAV.EXE
-VB\ Visual Basic API and samples...
- BASS.BAS BASS Visual Basic module file
- 3DTEST\ 3D/EAX example
- PRJ3DTEST.VBP
- PRJ3DTEST.FRM
- PRJDEVICE.FRM
- BASSTEST\ Simple playback example
- PRJBASSTEST.VBP
- FRMBASSTEST.FRM
- CUSTLOOP\ Custom looping example
- PRJCUSTLOOP.VBP
- FRMCUSTLOOP.FRM
- MODCUSTLOOP.BAS
- DSPTEST\ DSP example
- PRJDSPTEST.VBP
- FRMDSPTEST.FRM
- MODDSPTEST.BAS
- FXTEST\ DX8 effect example
- PRJFXTEST.VBP
- FRMFXTEST.FRM
- LIVEFX\ Full-duplex example
- PRJLIVEFX.VBP
- FRMLIVEFX.FRM
- MODLIVEFX.BAS
- LIVESPEC\ "Live" version of spectrum analyser example
- PRJLIVESPEC.VBP
- FRMLIVESPEC.FRM
- MODLIVESPEC.BAS
- MULTI\ Multiple device example
- PRJMULTI.VBP
- PRJMULTI.FRM
- PRJDEVICE.FRM
- NETRADIO\ Internet streaming example
- PRJNETRADIO.VBP
- FRMNETRADIO.FRM
- MODNETRADIO.BAS
- CLSFILEIO.CLS
- PLUGINS\ Plugins example
- PRJPLUGINS.VBP
- FRMPLUGINS.FRM
- RECTEST\ Recording example
- PRJRECTEST.VBP
- FRMRECTEST.FRM
- MODRECTEST.BAS
- SPEAKERS\ Multi-speaker example
- PRJSPEAKERS.VBP
- FRMSPEAKERS.FRM
- SPECTRUM\ Spectrum analyser example
- PRJSPECTRUM.VBP
- FRMSPECTRUM.FRM
- MODSPECTRUM.BAS
- SYNTH\ Synth example
- PRJSYNTH.VBP
- FRMSYNTH.FRM
- MODSYNTH.BAS
- WRITEWAV\ WAVE writer example
- PRJWRITEWAVE.VBP
- PRJWRITEWAVE.FRM
- MEMORY\ Playing from memory example by Jobnik
- PRJMEMORY.VBP
- FRMMEMORY.FRM
- SYNCTEST.BAS
- CBASS_TIME.CLS
-DELPHI\ Delphi API and samples...
- BASS.PAS BASS Delphi unit
- 3DTEST\ 3D/EAX example
- D3TEST.DPR
- DTMAIN.PAS
- DTMAIN.DFM
- DTSELECT.PAS
- DTSELECT.DFM
- BASSTEST\ Simple playback example
- BASSTEST.DPR
- BTMAIN.PAS
- BTMAIN.DFM
- CONTEST\ Console example
- CONTEST.DPR
- CUSTLOOP\ Custom looping example
- CUSTLOOP.DPR
- UNIT1.PAS
- UNIT1.DFM
- DSPTEST\ DSP example
- DSPTEST.DPR
- DTMAIN.PAS
- DTMAIN.DFM
- FXTEST\ DX8 effect example
- FXTEST.DPR
- TEST.PAS
- TEST.DFM
- LIVEFX\ Full-duplex example
- LIVEFX.DPR
- UNIT1.PAS
- UNIT1.DFM
- MULTI\ Multiple device example
- MULTI.DPR
- UNIT1.PAS
- UNIT1.DFM
- UNIT2.PAS
- UNIT2.DFM
- NETRADIO\ Internet streaming example
- NETRADIO.DPR
- UNIT1.PAS
- UNIT1.DFM
- PLUGINS\ Plugins example
- PLUGINS.DPR
- UNIT1.PAS
- UNIT1.DFM
- RECORDTEST\ Recording example
- RECORDTEST.DPR
- UNIT1.PAS
- UNIT1.DFM
- SAMPLEVIS\ Visualisation example
- SAMPLEVIS.DPR
- MAIN.PAS
- MAIN.DFM
- SPECTRUM_VIS.PAS
- CIRCLE_VIS.PAS
- OSC_VIS.PAS
- COMMONTYPES.PAS
- SPEAKERS\ Multi-speaker example
- SPEAKERS.DPR
- UNIT1.PAS
- UNIT1.DFM
- STREAMTEST\ User stream example
- STREAMTEST.DPR
- STMAIN.PAS
- STMAIN.DFM
- WRITEWAV\ WAVE writer example
- WRITEWAV.DPR
- UNITMAIN.PAS
- UNITMAIN.DFM
- DYNAMIC\ Dynamic-loading Delphi API
- DYNAMIC_BASS.PAS Dynamic-loading Delphi unit
-MASM\ MASM API and samples...
- BASS.INC BASS MASM include file
- PLAYER\ Example MOD player
- PLAYER.EXE
- PLAYER.ASM
- RSRC.RC
- TOOLBAR.BMP
- COMPILE.BAT
-
-NOTE: To run the sample EXEs, first you'll have to copy BASS.DLL into the
- same directory as the EXEs.
-
-NOTE: To avoid unnecessary bloatage, the BASS DLLs are not digitally signed.
- Signed versions are available on request (email: bass@un4seen.com).
-
-MacOSX version
---------------
-BASS.TXT This file
-LIBBASS.DYLIB The BASS module
-BASS.CHM BASS documentation
-CHMOX.APP CHM file viewer
-BASS.H BASS C/C++ header file
-MAKEFILE Makefile for all examples
-MAKEFILE.IN Makefile helper macros
-MP3-FREE
- LIBBASS.DYLIB BASS module using the OSX MP3 decoder
-3DTEST\ 3D example
- 3DTEST.C
- MAKEFILE
- 3DTEST.NIB
-BASSTEST\ Simple playback example
- BASSTEST.C
- MAKEFILE
- BASSTEST.NIB
-CONTEST\ Console example
- CONTEST.C
- MAKEFILE
-CUSTLOOP\ Custom looping example
- CUSTLOOP.C
- MAKEFILE
-DSPTEST\ DSP example
- DSPTEST.C
- DSPTEST.RC
- MAKEFILE
- DSPTEST.NIB
-LIVESPEC\ "Live" version of spectrum analyser example
- LIVESPEC.C
- MAKEFILE
-MULTI\ Multiple device example
- MULTI.C
- MAKEFILE
- MULTI.NIB
-NETRADIO\ Internet streaming example
- NETRADIO.C
- MAKEFILE
- NETRADIO.NIB
-PLUGINS\ Plugins example
- PLUGINS.C
- MAKEFILE
- PLUGINS.NIB
-RECTEST\ Recording example
- RECTEST.C
- MAKEFILE
- RECTEST.NIB
-SPEAKERS\ Multi-speaker example
- SPEAKERS.C
- MAKEFILE
- SPEAKERS.NIB
-SPECTRUM\ Spectrum analyser example
- SPECTRUM.C
- MAKEFILE
-WRITEWAV\ WAVE writer example
- WRITEWAV.C
- MAKEFILE
-
-
-What's the point?
-=================
-BASS is an audio library for use in Windows and MacOSX software. Its
-purpose is to provide the most powerful and efficient (yet easy to use),
-sample, stream, MOD music, and recording functions. All in a tiny DLL,
-under 100KB in size.
-
-See the documentation for descriptions of all the BASS functions. You
-should also look at the included example program source-codes for some
-examples of how to use BASS in your own programs.
-
-
-Requirements
-============
-Win32 version
--------------
-BASS requires DirectX 3 or above for output. BASS does not require that a
-soundcard with DirectSound/DirectSound3D hardware accelerated drivers is
-installed, but it does improve performance if there is one. BASS also takes
-advantage of MMX, which improves the performance of the MOD music playback.
-
-MacOSX version
---------------
-OSX 10.3 or above is recommended. BASS uses CoreAudio for output, so there
-are no special library/driver requirements. BASS supports both PowerPC and
-Intel Macs.
-
-
-Main Features
-=============
-* Samples
-- supports WAV/AIFF/MP3/MP2/MP1/OGG and custom generated samples
-
-* Sample streams
-- stream any sample data in 8/16/32 bit
-
-* File streams
-- MP3/MP2/MP1/OGG/WAV/AIFF file streaming
-
-* Internet file streaming
-- stream MP3/MP2/MP1/OGG/WAV/AIFF files from the internet (inc. Shout/Icecast)
-
-* User file streaming
-- stream MP3/MP2/MP1/OGG/WAV/AIFF files from anywhere using any delivery method
-
-* Multi-channel streaming
-- support for more than plain stereo, including multi-channel OGG/WAV/AIFF files
-
-* MOD music
-- uses the same engine as XMPlay = best accuracy, speed and quality
-
-* MO3 music
-- MP3/OGG compressed MOD music
-
-* Add-on system
-- support for more formats is available via add-ons (aka plugins)
-
-* Multiple outputs
-- simultaneously use multiple soundcards, and move channels between them
-
-* Recording
-- flexible recording system, with support for multiple devices
-
-* Decode without playback
-- streams and musics can be outputted in any way you want
-
-* Speaker assignment
-- assign streams and musics to specific speakers
-
-* High precision synchronization
-- synchronize events in your software to the music
-
-* DirectX 8 effects
-- chorus/compressor/distortion/echo/flanger/gargle/parameq/reverb
-
-* User defined DSP functions
-- custom effects may be applied to musics and streams
-
-* 32 bit floating-point decoding and processing
-- floating-point stream/music decoding, DSP, FX, and recording
-
-* 3D sound
-- play samples/streams/musics in any 3D position, with EAX support
-
-* Expandable
-- underlying DirectSound object interfaces are accessible
-
-* Small
-- BASS is under 100KB (on Windows), so won't bloat your distribution
-
-
-Using BASS
-==========
-There is no guarantee that all future BASS versions will be compatible
-with all previous versions, so your program should use BASS_GetVersion
-to check the version that is loaded. This also means that you should
-put the BASS module in the same directory as your executable (not just
-somewhere in the path), to avoid the possibility of a wrong version being
-loaded.
-
-If you are updating your software from a previous BASS version, then
-you should check the "History" section (below), to see if any of the
-functions that you are using have been affected by a change.
-
-Win32 version
--------------
-C/C++, Visual Basic, Delphi and MASM APIs are provided, to use BASS with
-another language you'll first have to convert the header file. Or, as a
-last resort, you could use LoadLibrary and GetProcAddress.
-
-One benefit of the LoadLibrary method is that it allows you to look for
-the correct BASS version, because you can load and unload BASS.DLL at
-any time. This also allows those who'd prefer not to have a separate
-DLL to store it with the program (eg. in a resource), write it to disk,
-load it, use it, free it and delete it.
-
-The downside is that you have to manually import each function that you
-use, with the GetProcAddress function. But it has been made a lot simpler
-to import BASS this way by the use of the BASSDEF #define. Here's a small
-example:
-
-#define BASSDEF(f) (WINAPI *f) // define the functions as pointers
-#include "bass.h"
-...
-HINSTANCE bass=LoadLibrary("BASS.DLL"); // load BASS
-BASS_Init=GetProcAddress(bass,"BASS_Init"); // get BASS_Init
-BASS_Init(-1,44100,0,hWnd,NULL); // call BASS_Init
-
-See the LOADNGET.C file for a more complete example.
-
-To use BASS with Borland C++ Builder, you'll first have to create a
-Borland C++ Builder import library for it. This is done by using the
-IMPLIB tool that comes with Borland C++ Builder. Simply execute this:
-
- IMPLIB BASSBCB.LIB BASS.DLL
-
-... and then use BASSBCB.LIB in your projects to import BASS.
-
-To use BASS with LCC-Win32, you'll first have to create a compatible
-import library for it. This is done by using the PEDUMP and BUILDLIB
-tools that come with LCC-Win32. Run these 2 commands:
-
- PEDUMP /EXP BASS.LIB > BASSLCC.EXP
- BUILDLIB BASSLCC.EXP BASSLCC.LIB
-
-... and then use BASSLCC.LIB in your projects to import BASS.
-
-For the BASS functions that return strings (char*), VB users should use
-the VBStrFromAnsiPtr function to convert the returned pointer into a VB
-string.
-
-MacOSX version
---------------
-A separate "LIB" file is not required for OSX. Using XCode, you can simply
-add the DYLIB file to the project. Or using a makefile, you can build your
-programs like this, for example:
-
- gcc yoursource -L. -lbass -o yourprog
-
-The LIBBASS.DYLIB file must be put in the same directory as the executable
-(it can't just be somewhere in the path). See the example makefiles.
-
-LIBBASS.DYLIB is a universal binary, with support for both PowerPC and
-Intel Macs. If you want PowerPC-only or Intel-only versions, the included
-makefile can create them for you, by typing "make ppc" or "make i386". It
-will also process any BASS add-ons placed in the same directory.
-
-
-Latest Version
-==============
-The latest version of BASS can always be found at the BASS website:
-
- www.un4seen.com
-
-
-Copyright, disclaimer, and all that other jazz
-==============================================
-The BASS library is free for non-commercial use. If you are a non-
-commercial entity (eg. an individual) and are not charging for your
-product, and the product has no other commercial purpose, then you
-can use BASS in it for free. If you wish to use BASS in commercial
-products, then please also see the next section.
-
-TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASS IS PROVIDED
-"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
-AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
-LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASS. BASICALLY,
-YOU USE BASS ENTIRELY AT YOUR OWN RISK.
-
-Usage of BASS indicates that you agree to the above conditions.
-
-All trademarks and other registered names contained in the BASS
-package are the property of their respective owners.
-
-
-BASS in commercial products?
-============================
-BASS is available for use in your commercial products. The licence
-types available are as follows:
-
-SHAREWARE: Allows the usage of BASS in an unlimited number of your
-shareware products, which must sell for no more than 40 Euros each.
-If you're an individual making and selling your own software (and
-its price is within the limit), this is the licence for you.
-
-SINGLE COMMERCIAL: Allows the usage of BASS in a single commercial
-product.
-
-UNLIMITED COMMERCIAL: Allows the usage of BASS in an unlimited number
-of your commercial products. This licence is on a per site basis. So
-if your company has two sites that use BASS, then two licences are
-required.
-
-Please note the products must be end-user products, eg. not components
-used by other products.
-
-These licences only cover your own software. not the publishing of
-other's software. If you publish other's software, its developers (or
-the software itself) will need to be licensed to use BASS.
-
-These licences are on a per-platform basis, with reductions available
-when licensing for both platforms. In all cases there are no royalties
-to pay, and you can use future BASS updates without further cost. One
-licence covers one person or entity and is not transferable.
-
-These licences do not allow reselling/sublicensing of BASS. For example,
-if a product is a development system, the users of said product are not
-licensed to use BASS in their productions - they will need their own
-licences.
-
-If the standard licences do not meet your requirements, or if you have
-any questions, please get in touch (email: bass@un4seen.com).
-
-Visit the BASS website for the latest pricing:
-
- www.un4seen.com
-
-
-MP3
-===
-MP3 technology is patented, and Thomson license the use of their and
-Fraunhofer's patents. The inclusion of an MP3 decoder (eg. BASS) in a
-commercial product requires an MP3 patent licence. Contact Thomson for
-details:
-
- www.mp3licensing.com
-
-Alternatively, the "MP3-FREE" BASS version doesn't include its own MP3
-decoder but instead makes use of the operating system's already licensed
-decoder.
-
-NOTE: When using the OS's MP3 decoder, BASS still does the file handling
- so all the usual features are still supported, including streaming,
- tag reading, pre-scanning, gapless playback, etc...
-
-
-History
-=======
-These are the major (and not so major) changes at each version stage.
-There are of course bug fixes and other little improvements made along
-the way too! To make upgrading simpler, all functions affected by a
-change to the BASS interface are listed.
-
-2.3.0.3 - 30/7/2007
--------------------
-* FX state resetting
- BASS_FXReset
-* PLS/M3U playlist URL processing
- BASS_CONFIG_NET_PLAYLIST
- NETRADIO example updated
-* Internet stream connection status retrieval
- BASS_FILEPOS_CONNECTED (BASS_StreamGetFilePosition mode)
-* Lyrics3v2 tags
- BASS_TAG_LYRICS3 (BASS_ChannelGetTags type)
-* IT virtual channel configuration
- BASS_CONFIG_MUSIC_VIRTUAL
-* Accurate speaker detection on Vista
- BASS_INFO (speakers member)
-* Device output/input rate retrieval on Vista
- BASS_INFO (freq member)
- BASS_RECORDINFO (freq member)
-* Syncing upon position changes
- BASS_SYNC_SETPOS (BASS_ChannelSetSync type)
-* Improved stall handling
- BASS_SYNC_STALL
-* Invalid decoding channel flags produce an error instead of being ignored
- BASS_StreamCreate/File/User/Url
- BASS_MusicLoad
-
-2.3.0.2 - 22/1/2007
--------------------
-* Retrieval of a sample's existing channel handles
- BASS_SampleGetChannels
-* 8192 sample FFT
- BASS_DATA_FFT8192 (BASS_ChannelGetData flag)
-* Adjustable recording buffer
- BASS_CONFIG_REC_BUFFER (BASS_SetConfig option)
-* Stopping decoding channels before the end
- BASS_ChannelStop
-* Sample channels created paused to prevent overriding before playback
- BASS_SampleGetChannel
-* Separate "MP3-FREE" version using Windows/OSX MP3 decoder
- BASS_CONFIG_MP3_CODEC *removed*
-
-2.3.0.1 - 12/6/2006
--------------------
-* Ability to move a channel to another device
- BASS_ChannelSetDevice
- MULTI example updated
-* Support for ID3v2.4 tags at end of file
- BASS_TAG_ID3V2 (BASS_ChannelGetTags type)
-
-2.3 - 21/5/2006
----------------
-* MOD message/instrument/sample text retrieval, merged with stream tag retrieval function
- BASS_ChannelGetTags
- BASS_TAG_MUSIC_NAME/MESSAGE/INST/SAMPLE (BASS_ChannelGetTags types)
- BASS_MusicGetName *removed*
- BASS_StreamGetTags *removed*
-* Plugin information retrieval
- BASS_PluginGetInfo
- BASS_PLUGININFO/FORM structures
- BASS_CHANNELINFO (plugin member)
- PLUGINS example updated
-* RIFF/WAVE "INFO" tag retrieval
- BASS_TAG_RIFF_INFO (BASS_StreamGetTags type)
-* More specific WAVE format information
- BASS_CTYPE_STREAM_WAV_PCM/FLOAT (channel types)
- BASS_CTYPE_STREAM_WAV (channel type flag)
-* Proxy server configuration
- BASS_CONFIG_NET_PROXY (BASS_SetConfig option)
- BASS_CONFIG_NET_NOPROXY *removed*
- NETRADIO example updated
-* Passive FTP mode
- BASS_CONFIG_NET_PASSIVE (BASS_SetConfig option)
-* Agent changes take immediate effect
- BASS_CONFIG_NET_AGENT (BASS_SetConfig option)
-* Minimum time gap between creating new sample channels
- BASS_SAMPLE (mingap member)
- BASS_SampleGetChannel
-* Support for Unicode plugin filenames
- BASS_PluginLoad
-* Device output/input rate retrieval (MacOSX only)
- BASS_INFO (freq member)
- BASS_RECORDINFO (freq member)
-* Extended version info (minor revision)
- BASS_GetVersion
-* Unsupported codec error code
- BASS_ERROR_CODEC
-* Optional use of the Windows MP3 codec
- BASS_CONFIG_MP3_CODEC (BASS_SetConfig option)
-* 3D support for MacOSX
- BASS_Set3DFactors
- BASS_Get3DFactors
- BASS_Set3DPosition
- BASS_Get3DPosition
- BASS_Apply3D
- BASS_ChannelSet3DAttributes
- BASS_ChannelGet3DAttributes
- BASS_ChannelSet3DPosition
- BASS_ChannelGet3DPosition
- 3DTEST example added (Win32 example also updated)
-* VB version of SYNTH example added
-
-2.2 - 2/10/2005
----------------
-* Add-on plugin system
- BASS_PluginLoad
- BASS_PluginFree
- BASS_StreamCreateFile/User/Url
- BASS_SampleLoad
- PLUGINS example added
-* MOD position & syncing in bytes
- BASS_ChannelSetPosition
- BASS_ChannelGetPosition
- BASS_MusicGetOrderPosition added for orders position
- BASS_SYNC_MUSICPOS added for orders syncing
- MAKEMUSICPOS macro/define
- CUSTLOOP example updated
-* Stream/MOD "length" functions combined (also works with samples), new MOD orders length function
- BASS_ChannelGetLength
- BASS_MusicGetOrders
- BASS_StreamGetLength *removed*
- BASS_MusicGetLength *removed*
-* Support for AIFF files
- BASS_StreamCreateFile/User/Url
- BASS_SampleLoad
-* Support for 24 and 32-bit (integer) WAV files
- BASS_StreamCreateFile/User/Url
- BASS_SampleLoad
-* WAV files are no longer converted to the "device" resolution
- BASS_StreamCreateFile/User/Url
-* Recording master control
- BASS_RecordGetInput
- BASS_RecordSetInput
-* Adjustable prebuffering
- BASS_ChannelPreBuf
-* Floating-point data retrieval
- BASS_DATA_FLOAT (BASS_ChannelGetData flag)
-* Support for floating-point samples
- BASS_SampleLoad
- BASS_SampleCreate
-* Multi-channel samples
- BASS_SampleLoad/Create
- BASS_SAMPLE (chans member)
-* Sample lengths given in bytes
- BASS_SampleCreate
- BASS_SAMPLE (length member)
-* MOD music 8-bit resolution option
- BASS_MusicLoad
-* OGG vendor tag retrieval
- BASS_TAG_VENDOR (BASS_StreamGetTags type)
-* Configurable "User-Agent" header for internet streams
- BASS_CONFIG_NET_AGENT (BASS_SetConfig option)
-* Shoutcast metadata is now requested automatically
- BASS_STREAM_META flag *removed*
-* Download callbacks receive all data from start of file/stream (including any non-audio data)
- DOWNLOADPROC
-* Length when streaming in blocks is unavailable (BASS_ERROR_NOTAVAIL, not just 0)
- BASS_ChannelGetLength
-* Support for growing custom file streams
- BASS_FILE_LEN (STREAMFILEPROC action)
-* Query file action removed
- BASS_FILE_QUERY *removed*
-* Recording channel syncing
- BASS_ChannelSetSync
-* Info structure "size" members removed
- BASS_INFO structure
- BASS_RECORDINFO structure
-* Little bit of flag reshuffling
- BASS_MP3_SETPOS renamed to BASS_STREAM_PRESCAN
- BASS_MUSIC_CALCLEN value changed and renamed to BASS_MUSIC_PRESCAN
- BASS_MUSIC_POSRESET value changed
-* Add-on API enhancements
-* MacOSX port introduced
-
-2.1 - 28/11/2004
-----------------
-* Improved "mixtime" sync system, allowing custom looping
- SYNCPROC
- CUSTLOOP example added
-* FX can now be in the DSP chain, so can be prioritized and applied in floating-point
- BASS_ChannelSetFX
- BASS_CONFIG_FLOATDSP (BASS_SetConfig option)
-* Ability to set channel flags (eg. looping) independent of playback
- BASS_ChannelSetFlags
- SPEAKERS example updated
-* Stream/MOD "play" and channel "resume" functions combined
- BASS_ChannelPlay
- BASS_StreamPlay *removed*
- BASS_MusicPlay *removed*
- BASS_MusicPlayEx *removed*
- BASS_ChannelResume *removed*
-* Stream/MOD prebuffering functions combined
- BASS_ChannelPreBuf
- BASS_StreamPreBuf *removed*
- BASS_MusicPreBuf *removed*
-* MOD attribute functions combined, with added BPM/speed/globalvolume options
- BASS_MusicSetAttribute
- BASS_MusicGetAttribute
- BASS_MUSIC_ATTRIB_AMPLIFY
- BASS_MUSIC_ATTRIB_PANSEP
- BASS_MUSIC_ATTRIB_PSCALER
- BASS_MUSIC_ATTRIB_BPM
- BASS_MUSIC_ATTRIB_SPEED
- BASS_MUSIC_ATTRIB_VOL_GLOBAL
- BASS_MUSIC_ATTRIB_VOL_CHAN
- BASS_MUSIC_ATTRIB_VOL_INST
- BASS_MusicSetAmplify *removed*
- BASS_MusicSetPanSep *removed*
- BASS_MusicSetPositionScaler *removed*
- BASS_MusicSetVolume *removed*
- BASS_MusicGetVolume *removed*
-* Flag to reset bpm/etc as well as notes when seeking in MOD musics
- BASS_MUSIC_POSRESETEX (BASS_MusicLoad & BASS_ChannelSetFlags flag)
-* More flexible and concise sample channel creation system
- BASS_SampleGetChannel
- BASS_SamplePlay *removed*
- BASS_SamplePlayEx *removed*
- BASS_SamplePlay3D *removed*
- BASS_SamplePlay3DEx *removed*
-* Support for up to 30 speakers
- BASS_SPEAKER_N macro/define
-* More precise level measurement
- BASS_ChannelGetLevel
-* Level can now be retrieved from decoding channels
- BASS_ChannelGetLevel
-* Retrieval of a sample/channel's original sample resolution
- BASS_SAMPLE (origres member)
- BASS_CHANNELINFO (origres member)
-* Support for streaming WAV files in "blocks"
- BASS_StreamCreateURL
- BASS_StreamCreateFileUser
-* Status info (HTTP/ICY tags) available during connection to server
- BASS_STREAM_STATUS (BASS_StreamCreateURL flag)
- DOWNLOADPROC
- NETRADIO example updated (Delphi version also added)
-* Adjustable internet stream prebuffering
- BASS_CONFIG_NET_PREBUF (BASS_SetConfig option)
-* Option to bypass proxy server
- BASS_CONFIG_NET_NOPROXY (BASS_SetConfig option)
-* Option whether to allow channels to be played after BASS_Pause
- BASS_CONFIG_PAUSE_NOPLAY (BASS_SetConfig option)
-* Recording channel count now a separate parameter
- BASS_RecordStart (chans parameter)
-* Synchronizer for when a channel is freed
- BASS_SYNC_FREE (BASS_ChannelSetSync type)
-* Data start file position retrieval
- BASS_FILEPOS_START (BASS_StreamGetFilePosition mode)
-* Performance improvements
- MP2 decoding ~20% faster
- MP3/MP1 decoding & FFT processing all up to 10% faster
- OGG decoding ~3% faster
-* C/C++ examples reorganised, with makefiles & VC++ projects
-* Add-on API enhancements
-* More DLL shrinkage :)
-
-2.0 - 31/10/2003
-----------------
-* Multiple output device support
- BASS_Init (device number changes)
- BASS_SetDevice
- BASS_GetDevice
- BASS_ChannelGetDevice
- MULTI example updated (VB version also added)
-* Multiple recording device support
- BASS_RecordSetDevice
- BASS_RecordGetDevice
- BASS_RecordStart
- BASS_ChannelGetDevice
- HRECORD handle
- RECORDPROC (handle parameter)
-* Recording with DSP/FX
- BASS_ChannelSetDSP
- BASS_ChannelSetFX
-* Recording position retrieval
- BASS_ChannelGetPosition
-* Start recording paused
- BASS_RECORD_PAUSE (BASS_RecordStart flag)
-* Multi-channel streams, inc. support for multichannel OGG & WAV files
- BASS_StreamCreate
- BASS_StreamCreateFile/User/Url
-* FFT for individual channels, inc. multi-channel streams
- BASS_DATA_FFT_INDIVIDUAL (BASS_ChannelGetData flag)
- BASS_DATA_FFT512S/1024S/2048S/4096S *removed*
-* DSP prioritizing
- BASS_ChannelSetDSP
- DSPTEST example updated
-* Seeking in internet streamed files
- BASS_ChannelSetPosition
-* Enhanced custom file stream systems
- BASS_StreamCreateFileUser
- BASS_FILE_SEEK (STREAMFILEPROC action)
- BASS_STREAM_FILEPROC flag *removed*
-* Enhanced custom stream system with automatic stalling/resuming
- STREAMPROC
- BASS_STREAMPROC_END (STREAMPROC flag)
-* Synchronizer for stalled/resumed playback
- BASS_SYNC_STALL (BASS_ChannelSetSync type)
-* Synchronizer for completed download
- BASS_SYNC_DOWNLOAD (BASS_ChannelSetSync type)
-* End sync support for custom streams
- BASS_SYNC_END (BASS_ChannelSetSync type)
-* Synchronizer support for decoding channels
- BASS_ChannelSetSync
-* Unified configuration function
- BASS_SetConfig
- BASS_GetConfig
- BASS_SetBufferLength *removed*
- BASS_SetNetConfig *removed*
- BASS_SetGlobalVolumes *removed*
- BASS_GetGlobalVolumes *removed*
- BASS_SetLogCurves *removed*
- BASS_Set3DAlgorithm *removed*
- BASS_DEVICE_FLOATDSP flag *removed*
-* Internet stream saving to disk replaced by more flexible callback
- BASS_StreamCreateURL
- DOWNLOADPROC
- VB NETRADIO example updated
-* Buffer length retrieval when "streaming in blocks"
- BASS_FILEPOS_END (BASS_StreamGetFilePosition mode)
-* Individual sample rate setting for MOD musics
- BASS_MusicLoad
-* Channel type and default sample rate retrieval
- BASS_ChannelGetInfo (replaces BASS_ChannelGetFlags)
- BASS_CHANNELINFO
-* MOD music flag retrieval
- BASS_CHANNELINFO (flags member)
-* Adjustable instrument volumes in MOD musics
- BASS_MusicSetVolume (replaces BASS_MusicSetChannelVol)
- BASS_MusicGetVolume (replaces BASS_MusicGetChannelVol)
-* Automatically free a MOD music when it stops or ends
- BASS_MUSIC_AUTOFREE (BASS_MusicLoad flag)
-* Class GUID added to initialization parameters
- BASS_Init
- BASS_SetCLSID *removed*
-* Update period adjustable at any time
- BASS_CONFIG_UPDATEPERIOD (BASS_SetConfig option)
- BASS_DEVICE_NOTHREAD flag *removed*
-* Customizable maximum volume setting
- BASS_CONFIG_MAXVOL (BASS_SetConfig option)
- BASS_DEVICE_VOL1000 flag *removed*
-* Device volume is now always left as it is during init/freeing
- BASS_DEVICE_LEAVEVOL flag *removed*
-* Device driver name retrieval
- BASS_INFO (driver member)
- BASS_RECORDINFO (driver member)
-* Error codes are local to the current thread
- BASS_ErrorGetCode
-* Performance improvements
- MP2 decoding 15-20% faster
- MP3 decoding ~5% faster
-* Built-in CD functions removed (replaced in BASSCD)
- BASS_CDDoor *removed*
- BASS_CDFree *removed*
- BASS_CDGetID *removed*
- BASS_CDGetTrackLength *removed*
- BASS_CDGetTracks *removed*
- BASS_CDInDrive *removed*
- BASS_CDInit *removed*
- BASS_CDPlay *removed*
-* Force channels to use software mixing
- BASS_SAMPLE_SOFTWARE (BASS_StreamCreate/File/User/URL & BASS_MusicLoad flag)
-* Support for high-pass filter and forward/reverse (S9E/F) IT/MPT effects
-* BASS_MUSIC flags rearranged to mirror BASS_SAMPLE/STREAM counterparts
-* Output automatically started during initialization
-* BASS_ChannelGetData once again accepts any "length" param
-* All function comments have been removed from the API headers to avoid
- outdated/incorrect information - the BASS.CHM documentation should be used.
-* TMT Pascal API removed from main distribution - now available on the website
-* A few more 'K' knocked off the DLL size :)
-
-1.8a - 18/6/2003
-----------------
-* Tweaks 'n' fixes, including...
- Fixed seeking bug on 32-bit OGG streams
- Fixed seeking on a decoding channel after it has reached the end
- Low FPU precision (eg. when using Direct3D) issue addressed
- Improved speakers (BASS_INFO) detection
- BASS_ChannelSeconds2Bytes return value is rounded down to nearest sample
- BASS_ChannelGetData "length" param must equal a whole number of samples
- Slide syncs are triggered by "-2" volume slides on "autofree" streams
-* Support for UNICODE filenames
- BASS_UNICODE (BASS_SampleLoad/BASS_StreamCreateFile/BASS_MusicLoad flag)
-* 4096 sample FFT
- BASS_DATA_FFT4096/S (BASS_ChannelGetData flags)
-* Another 'K' knocked off the DLL size
-
-1.8 - 9/3/2003
---------------
-* 32-bit floating-point channels
- BASS_SAMPLE_FLOAT (BASS_StreamCreate/URL/File flag)
- BASS_MUSIC_FLOAT (BASS_MusicLoad flag)
- BASS_SAMPLE_FLOAT (BASS_RecordStart flag)
- BASS_DEVICE_FLOATDSP (BASS_Init flag)
- DSPTEST example updated
-* Support for 32-bit floating-point (type 3) WAV files
- BASS_StreamCreateFile/URL
- BASS_SampleLoad
-* Channel speaker assignment
- BASS_SPEAKER_FRONT (BASS_MusicLoad/BASS_StreamCreate/File/URL flag)
- BASS_SPEAKER_REAR "
- BASS_SPEAKER_CENLFE "
- BASS_SPEAKER_REAR2 "
- BASS_SPEAKER_FRONTLEFT "
- BASS_SPEAKER_FRONTRIGHT "
- BASS_SPEAKER_REARLEFT "
- BASS_SPEAKER_REARRIGHT "
- BASS_SPEAKER_CENTER "
- BASS_SPEAKER_LFE "
- BASS_SPEAKER_REAR2LEFT "
- BASS_SPEAKER_REAR2RIGHT "
- BASS_INFO (speakers member)
- BASS_DEVICE_SPEAKERS (BASS_Init flag)
- 4SPEAKER example replaced by SPEAKERS example
-* Recording input type retrieval
- BASS_INPUT_TYPE_xxx (BASS_RecordGetInput)
- RECTEST example updated
-* Non-interpolated MOD mixing
- BASS_MUSIC_NONINTER (BASS_MusicLoad/PlayEx flag)
-* Performance improvements
- FFT up to 100% faster!
- MP3(MPEG2/2.5) decoding up to 60% faster
- MMX mixers 5-10% faster
- MP3(MPEG1)/MP2/MP1/OGG decoding all ~5% faster
-* Optional disabling of FFT windowing
- BASS_DATA_FFT_NOWINDOW (BASS_ChannelGetData flag)
-* BASS_ERROR_FILEFORM - error code to distinguish between file and sample format
- BASS_MusicLoad
- BASS_SampleLoad
- BASS_StreamCreate/File/URL
-* BASS_StreamGetFilePosition mode flags added
- BASS_FILEPOS_DECODE/DOWNLOAD/END
-* DirectX 9 detection
- BASS_INFO (dsver member)
-* Initialization flags retrieval
- BASS_INFO (initflags member)
-* Half-rate MP3 playback option removed
- BASS_MP3_HALFRATE flag *removed*
-* New internal "plugin" system - BASSWMA is further integrated as a result
-* Improved documentation - integrated with BASSWMA, search option added
-* VB version of DSPTEST example added
-* Delphi RECORDTEST example added
-* Guess what... reduced DLL size again :)
-
-1.7 - 27/10/2002
-----------------
-* New alternative DX8 (DMO) effects implementation
- BASS_StreamCreate/File/URL
- BASS_MusicLoad
- BASS_ChannelSetFX
- SYNTH example updated
-* User file streaming
- BASS_STREAM_FILEPROC (BASS_StreamCreate flag)
- STREAMFILEPROC
-* DSP & FX support for decoding channels
- BASS_ChannelSetDSP
- BASS_ChannelSetFX
-* Support for DX8 (DMO) effects in IT/XM/MO3 files
- BASS_MusicLoad
-* Support for chained OGG streaming (and syncing)
- BASS_StreamCreateURL
- BASS_SYNC_META (BASS_ChannelSetSync type)
-* Attribute (volume/frequency/pan) sliding
- BASS_ChannelSlideAttributes
- BASS_ChannelIsSliding
- BASS_SYNC_SLIDE (BASS_ChannelSetSync type)
-* Recording without a callback function
- BASS_RecordStart
- LIVEFX example added
-* Query a channel's buffered data
- BASS_DATA_AVAILABLE (BASS_ChannelGetData flag)
-* Discard data from the recording buffer
- BASS_ChannelGetData
-* Adjustable internet stream config (timeout/buffer lengths)
- BASS_SetNetConfig
-* Recommended minimum buffer length
- BASS_INFO (minbuf member)
-* MOD music flags adjustment without changing playback position
- BASS_MusicPlayEx
- PLAYER (MASM) example updated
-* More functions are now useable in MOD music "mixtime" syncs
- SYNCPROC
- BASS_ChannelSetPosition
- BASS_MusicPlayEx
- BASS_MusicSetAmplify
- BASS_MusicSetPanSep
-* Maximum buffer length increased to 5 seconds
- BASS_SetBufferLength
-* Support for extended filter range in IT files
- BASS_MusicLoad
-* Speedier MOD music file verification
- BASS_MusicLoad
-* Delphi 3DTEST example fixed
-* Magically reduced DLL size again :)
-
-1.6a - 25/8/2002
-----------------
-* OGG support updated to 1.0
-* Stereo FFT
- BASS_DATA_FFT512S/1024S/2048S (BASS_ChannelGetData flags)
-* Support for "Invert Loop" (EFx) MOD effect
-* Reduced DLL size
-* New Delphi examples
- WRITEWAV - WAVE writer example
- SAMPLEVIS - Visualisation example
-
-1.6 - 13/6/2002
----------------
-* 64-bit stream lengths and positions
- BASS_StreamGetLength
- BASS_ChannelBytes2Seconds
- BASS_ChannelSeconds2Bytes
- BASS_ChannelGetPosition
- BASS_ChannelSetPosition
- BASS_ChannelSetSync
-* Recording input selection
- BASS_RECORDINFO (inputs & singlein members)
- BASS_RecordGetInputName
- BASS_RecordGetInput
- BASS_RecordSetInput
-* Adjustable recording update period
- BASS_RecordStart
-* Load OGG files as samples
- BASS_SampleLoad
-* CD drive door opening & closing
- BASS_CDDoor
-* CDDB2 ID retrieval
- BASS_CDID_CDDB2 (BASS_CDGetID flag)
-* Streaming beyond initial file length
- BASS_StreamCreateFile
-* Recording position bytes<->seconds translation
- BASS_ChannelBytes2Seconds
- BASS_ChannelSeconds2Bytes
-* Improved multi-threaded support (play from any thread)
- BASS_MusicPlay/Ex
- BASS_SamplePlay/3D/Ex
- BASS_StreamPlay
- BASS_DEVICE_NOSYNC flag *removed*
-* Paused channel status
- BASS_ACTIVE_PAUSED (BASS_ChannelIsActive)
-* Integrated WMA stream freeing
- BASS_StreamFree
- BASS_Free
-* Pin-point accurate OGG seeking without BASS_MP3_SETPOS flag
-* Win2k DS buffer bug fix
-
-1.5a - 14/4/2002
-----------------
-* NT4 fix (also enables "nosound" device without DX installed)
- BASS_ERROR_DX error code
-* MOD music loading without the samples
- BASS_MUSIC_NOSAMPLE (BASS_MusicLoad flag)
-* Custom decoding channels
- BASS_STREAM_DECODE (BASS_StreamCreate flag)
-* 5 second HTTP connection timeout
- BASS_ERROR_TIMEOUT (BASS_StreamCreateURL error code)
-
-1.5 - 31/3/2002
----------------
-* Improved performance
- MMX mixers lot faster (over 50% faster in some cases!)
- OGG decoding 15-20% faster
- MP3 decoding 5-10% faster
-* Recording
- BASS_RecordGetDeviceDescription
- BASS_RecordInit
- BASS_RecordFree
- BASS_RecordGetInfo
- BASS_RecordStart
-* OGG support built-in (OGG/VORBIS DLLs not required)
- BASS_DEVICE_OGG flag *removed*
-* MOD music seeking in seconds
- BASS_MusicPlayEx
- BASS_ChannelSetPosition
-* Shoutcast metadata retrieval
- BASS_STREAM_META (BASS_StreamCreateURL flag)
- BASS_TAG_META (BASS_StreamGetTags type)
- BASS_SYNC_META (BASS_ChannelSetSync type)
-* 1000 volume levels
- BASS_DEVICE_VOL1000 (BASS_Init/CDInit flag)
-* CDDB ID retrieval
- BASS_CDID_CDDB (BASS_CDGetID flag)
-* Leave the CD volume as it is during init/closing
- BASS_DEVICE_LEAVEVOL (BASS_CDInit flag)
-* FFT enabled on decoding channels
- BASS_ChannelGetData
-* Left level duplicated on right for mono channels
- BASS_ChannelGetLevel
-* Improved MPEG length estimation without BASS_MP3_SETPOS flag
- BASS_StreamGetLength
-* Support for Modplug/ADPCM compressed files
- BASS_MusicLoad
-* Device description function parameter change
- BASS_GetDeviceDescription
-* MASM API
-
-1.4 - 30/1/2002
----------------
-* Channel decoding without playback
- BASS_MUSIC_DECODE (BASS_MusicLoad flag)
- BASS_STREAM_DECODE (BASS_StreamCreateFile/URL flag)
- BASS_ChannelGetData
-* Windows message sync callbacks
- BASS_SYNC_MESSAGE (BASS_ChannelSetSync flag)
-* Adjustable channel volumes in MOD musics
- BASS_MusicSetChannelVol
- BASS_MusicGetChannelVol
-* Customizable DirectSound initialization object
- BASS_SetCLSID
-* Retrieve HMUSIC/HSTREAM/HCHANNEL IDirectSoundBuffer interfaces
- BASS_GetDSoundObject
-* A3D functions removed (use BASS_SetCLSID/BASS_GetDSoundObject to access A3D)
- BASS_DEVICE_A3D (BASS_Init flag)
- BASS_SetA3DResManager
- BASS_GetA3DResManager
- BASS_SetA3DHFAbsorbtion
- BASS_GetA3DHFAbsorbtion
-* Callback functions now work in VB6
- DSPPROC
- STREAMPROC
- SYNCPROC
-* Improved PCM WAVE streaming performance
- BASS_StreamCreateFile
- BASS_StreamCreateURL
-* OGG modules updated to RC3
-* Stereo sample support in MO3 format
-* MO3 encoder now distributed separately from BASS
-
-1.3 - 17/11/2001
-----------------
-* Manual buffer updating
- BASS_DEVICE_NOTHREAD (BASS_Init flag)
- BASS_Update
-* Adjustable buffer update period (allows small buffer sizes)
- BASS_Init
-* Output device latency retrieval
- BASS_INFO (latency member)
-* MPEG/OGG seeking without BASS_MP3_SETPOS flag
- BASS_ChannelSetPosition
-* Internet file streaming from offsets
- BASS_StreamCreateURL
-* File stream tag/comment retrieval (ID3/ID3v2/OGG/HTTP/ICY tags)
- BASS_StreamGetTags
-* Byte<->time position translation
- BASS_ChannelBytes2Seconds
- BASS_ChannelSeconds2Bytes
-* UMX (Unreal/Tournament music package) format support
- BASS_MusicLoad
-* S3M/IT sync fx changed to S2x (S0x conflicted with S00)
- BASS_SYNC_MUSICFX
-* Stereo sample support in IT/XM/S3M formats
-* MO3: OGG compression supported
-
-1.2 - 25/9/2001
----------------
-* OGG (Ogg Vorbis) stream support
- BASS_DEVICE_OGG (BASS_Init flag)
- BASS_StreamCreateFile
- BASS_StreamCreateURL
-* Channel linking (start/stop/pause/resume channels together)
- BASS_ChannelSetLink
- BASS_ChannelRemoveLink
-* MOD music playback length calculation
- BASS_MUSIC_CALCLEN (BASS_MusicLoad flag)
- BASS_MusicGetLength
-* Pre-buffering
- BASS_MusicPreBuf
- BASS_StreamPreBuf
-* Samples with single simultaneous playbacks have same HSAMPLE/HCHANNEL handle
- BASS_SamplePlay/Ex
-* Stopping a custom stream flushes its buffer contents
- BASS_ChannelStop
-
-1.1a - 31/8/2001
-----------------
-* NT4 bug fixed
-* XM Wxx effect syncing
- BASS_SYNC_MUSICFX
-* MP3/2/1 rewinding without BASS_MP3_SETPOS
- BASS_ChannelSetPosition
-
-1.1 - 11/8/2001
----------------
-* DX8 (DMO) effects
- BASS_SAMPLE_FX (BASS_StreamCreate/File/URL flag)
- BASS_MUSIC_FX (BASS_MusicLoad flag)
- BASS_ChannelSetFX
- BASS_ChannelRemoveFX
- BASS_FXSetParameters
- BASS_FXGetParameters
- BASS_FXCHORUS structure
- BASS_FXCOMPRESSOR structure
- BASS_FXDISTORTION structure
- BASS_FXECHO structure
- BASS_FXFLANGER structure
- BASS_FXGARGLE structure
- BASS_FXI3DL2REVERB structure
- BASS_FXPARAMEQ structure
- BASS_FXREVERB structure
-* Internet file streaming in blocks (inc. Shoutcast/Icecast stream support)
- BASS_STREAM_BLOCK (BASS_StreamCreateURL flag)
-* 512/1024/2048 sample FFT
- BASS_DATA_FFT512/1024/2048 (BASS_ChannelGetData flags)
-* CD identification
- BASS_CDGetID
-* Improved DX version detection
- BASS_INFO (dsver member)
-
-1.0 - 20/6/2001
----------------
-* Load MP3/MP2/MP1 files as samples
- BASS_SampleLoad
-* Internet file streaming from FTP servers
- BASS_StreamCreateURL
-* Save a local copy of internet file streams
- BASS_StreamCreateURL
-* Sample accurate file stream seeking
- BASS_ChannelSetPosition
- BASS_StreamGetBlockLength *removed*
-* Stream position synchronizer
- BASS_SYNC_POS
-* Increased synchronizer precision
-* Improved MPEG file detection and error detection
-* Stop MOD musics on a backwards jump effect
- BASS_MUSIC_STOPBACK (BASS_MusicLoad/PlayEx flag)
-* Leave the volume as it is during closing (as well as initialization)
- BASS_DEVICE_LEAVEVOL (BASS_Init flag)
-* Optional automatic use of foreground window handle during initialization
- BASS_Init
-* Reduced DLL size
-* VB API fixes
-
-0.9 - 18/4/2001
----------------
-* Internet file streaming
- BASS_StreamCreateURL
-* MP1 & MP2 (MPEG layer 1 & 2) support
- BASS_StreamCreateFile/URL
-* MPEG 2.5 support (12000/11025/8000hz sample rates)
- BASS_StreamCreateFile/URL
-* Decoding/download/end file stream position retrieval
- BASS_StreamGetFilePosition
-* XMPlay surround sound for MOD musics
- BASS_MUSIC_SURROUND (BASS_MusicLoad/PlayEx flag)
- BASS_MUSIC_SURROUND2 (BASS_MusicLoad/PlayEx flag)
-* Restrict the download rate of internet file streams
- BASS_STREAM_RESTRATE (BASS_StreamCreateURL flag)
-* Check if an internet file stream is stalled
- BASS_ChannelIsActive
-* Automatically free a stream when it stops or ends
- BASS_STREAM_AUTOFREE (BASS_StreamCreate/File/URL flag)
-* Leave the volume as it is during initialization
- BASS_DEVICE_LEAVEVOL (BASS_Init flag)
-* Number of CD tracks retrieval
- BASS_CDGetTracks
-* CD track length retrieval
- BASS_CDGetTrackLength
-* Exact stream length set after whole file is streamed
- BASS_StreamGetLength
-* TMT Pascal API and samples
-* Dynamic-loading Delphi API
-
-0.8a - 28/2/2000
-----------------
-* Updated Delphi API and samples
-
-0.8 - 24/1/2000
----------------
-* Improved MP3 performance on P2/K6 and above CPUs - fast!
-* User DSP functions on streams and MOD musics
- BASS_ChannelSetDSP
- BASS_ChannelRemoveDSP
-* DX7 voice allocation & management
- BASS_SAMPLE_VAM (BASS_SampleLoad/Create flag)
- BASS_VAM_xxx flags
- BASS_SAMPLE (vam & priority members)
-* DX7 software 3D algorithm selection
- BASS_Set3DAlgorithm
-* DirectSound interface retrieval
- BASS_GetDSoundObject
-* Log/linear volume & panning curves
- BASS_SetLogCurves
-* User data passed to callback functions
- STREAMPROC - BASS_StreamCreate
- SYNCPROC - BASS_ChannelSetSync
-* New synchronizer
- BASS_SYNC_MUSICFX
-* New synchronizer flag
- BASS_SYNC_MIXTIME
-* Disable synchronizers option - saves a little CPU time
- BASS_DEVICE_NOSYNC (BASS_Init flag)
-* Hi-res floating-point CPU usage monitoring
- BASS_GetCPU
-* Wait for playback to start when playing a CD
- BASS_CDPlay
-* DirectSound (dsound.dll) version retrieval
- BASS_INFO (dsver member)
-* Removed volume sliding functions (they were fairly pointless)
- BASS_SlideVolume
- BASS_IsSliding
-* MO3: read/write encoder settings
-* MO3: remove inst/samp/message texts now optional
-* MO3: LAME encoder settings
-
-0.7 - 3/10/1999
----------------
-* MO3 (MP3 compressed MODs)
-* A3D functions
- BASS_DEVICE_A3D (BASS_Init flag)
- BASS_INFO (a3d member)
- BASS_SetA3DResManager
- BASS_GetA3DResManager
- BASS_SetA3DHFAbsorbtion
- BASS_GetA3DHFAbsorbtion
-* Music/stream immediate sample data retrieval
- BASS_ChannelGetData
-* File stream (WAV/MP3) length retrieval
- BASS_StreamGetLength
- BASS_StreamGetBlockLength
-* File stream seeking
- BASS_ChannelSetPosition
-* Mono MP3 option (lower CPU usage)
- BASS_StreamCreateFile
-* Music length retrieval
- BASS_MusicGetLength
-* Music name retrieval
- BASS_MusicGetName
-* Stop notes when moving MOD music position
- BASS_MUSIC_POSRESET (BASS_MusicLoad/BASS_MusicPlayEx flag)
-* BASS_ERROR_FREQ - invalid sample rate error code
- BASS_SampleCreate
- BASS_SamplePlayEx
- BASS_SamplePlay3DEx
- BASS_StreamCreate
- BASS_ChannelSetAttributes
-* Delphi and VB APIs
-
-0.6a - 26/7/1999
-----------------
-* Half rate MP3 option (lower CPU usage)
- BASS_MP3_HALFRATE
-* Loading/streaming from file offsets
- BASS_MusicLoad
- BASS_SampleLoad
- BASS_StreamCreateFile
-* Global music/sample/stream volume levels
- BASS_SetGlobalVolumes
- BASS_GetGlobalVolumes
-* Other new function
- BASS_SampleStop
-* New synchronizer
- BASS_SYNC_END
-* New sample overrider
- BASS_SAMPLE_OVER_DIST
-* LoadLibrary/GetProcAddress instructions and example
-
-0.5 - 4/7/1999
---------------
-* Documentation!
-* File streaming (MP3 and WAV)
- BASS_StreamCreateFile
-* Custom generated samples
- BASS_SampleCreate
- BASS_SampleCreateDone
-* Other new function
- BASS_MusicSetPositionScaler
-* Renamed function
- BASS_ChannelClearSync -> BASS_ChannelRemoveSync
-* Alterations made to
- BASS_ChannelGetPosition
- BASS_SampleLoad
- BASS_StreamPlay
-
-0.4 - 30/3/1999
----------------
-* Compressed WAV samples support (using audio CODECs)
-* Updated CD volume handling - now works with SB Live
-* More linear channel volume/pan scales (were slightly off before)
-* "no sound" device option
-* 3D sound functions
- BASS_Set3DFactors
- BASS_Get3DFactors
- BASS_Set3DPosition
- BASS_Get3DPosition
- BASS_Apply3D
- BASS_SamplePlay3D
- BASS_SamplePlay3DEx
- BASS_ChannelSet3DAttributes
- BASS_ChannelGet3DAttributes
- BASS_ChannelSet3DPosition
- BASS_ChannelGet3DPosition
-* EAX functions
- BASS_SetEAXParameters
- BASS_GetEAXParameters
- BASS_ChannelSetEAXMix
- BASS_ChannelGetEAXMix
-* Other new functions
- BASS_GetDeviceDescription
- BASS_SetBufferLen
- BASS_ChannelGetFlags
- BASS_ChannelPause
- BASS_ChannelResume
- BASS_ChannelSetPosition
-* Replaced function
- BASS_CDResume -> BASS_ChannelResume
-* Alterations made to
- BASS_Init
- BASS_CDInit
- BASS_SampleLoad
- BASS_StreamPlay
- BASS_INFO structure
- BASS_SAMPLE structure
- BASS_DEVICE_xxx flags
- BASS_SAMPLE_xxx flags
-
-0.3 - 8/3/1999
---------------
-* Synchronization functions
- BASS_ChannelSetSync
- BASS_ChannelClearSync
-* Other new functions
- BASS_GetVersion
- BASS_ChannelGetPosition
- BASS_ChannelGetLevel
- BASS_ChannelGetAttributes
- BASS_ChannelSetAttributes
-* Replaced functions
- BASS_MusicStop -> BASS_ChannelStop
- BASS_MusicSetVolume -> BASS_ChannelSetAttributes
- BASS_CDStop -> BASS_ChannelStop
- BASS_CDSetVolume -> BASS_ChannelSetAttributes
- BASS_CDGetVolume -> BASS_ChannelGetAttributes
- BASS_ChannelUpdate -> BASS_ChannelSetAttributes
-* Alterations made to
- BASS_MusicPlayEx
- BASS_StreamPlay
- BASS_INFO structure
-
-0.2 - 28/2/1999
----------------
-* First public release
-
-
-Credits - API/Sample Contributors
-=================================
-Visual Basic - Adam Hoult, Hendrik Knaepen, Arthur Aminov,
- Peter Hebels
-Delphi - Titus Miloi, Rogier Timmermans, Alessandro Cappellozza,
- Jesse Naranjo, Chris Troesken
-MASM - Octavian Chis
-
-CHMOX is (c)2004 Stéphane Boisson, http://chmox.sourceforge.net/
-
-
-Bug reports, Suggestions, Comments, Enquiries, etc...
-=====================================================
-If you have any of the aforementioned please see the BASS forum (at
-the website). If you can't find an answer there, you can email:
-
- bass@un4seen.com
-
diff --git a/Game/Code/lib/bass/delphi/bass.bpg b/Game/Code/lib/bass/delphi/bass.bpg
deleted file mode 100644
index 55c2e004..00000000
--- a/Game/Code/lib/bass/delphi/bass.bpg
+++ /dev/null
@@ -1,64 +0,0 @@
-#------------------------------------------------------------------------------
-VERSION = BWS.01
-#------------------------------------------------------------------------------
-!ifndef ROOT
-ROOT = $(MAKEDIR)\..
-!endif
-#------------------------------------------------------------------------------
-MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
-DCC = $(ROOT)\bin\dcc32.exe $**
-BRCC = $(ROOT)\bin\brcc32.exe $**
-#------------------------------------------------------------------------------
-PROJECTS = D3Test.exe BassTest.exe ConTest.exe custloop.exe DspTest.exe \
- FXtest.exe livefx.exe Multi.exe netradio.exe plugins.exe RecordTest.exe \
- samplevis.exe Speakers.exe StreamTest.exe writewav.exe
-#------------------------------------------------------------------------------
-default: $(PROJECTS)
-#------------------------------------------------------------------------------
-
-D3Test.exe: 3dTest\D3Test.dpr
- $(DCC)
-
-BassTest.exe: BassTest\BassTest.dpr
- $(DCC)
-
-ConTest.exe: ConTest\ConTest.dpr
- $(DCC)
-
-custloop.exe: custloop\custloop.dpr
- $(DCC)
-
-DspTest.exe: DspTest\DspTest.dpr
- $(DCC)
-
-FXtest.exe: fxtest\FXtest.dpr
- $(DCC)
-
-livefx.exe: livefx\livefx.dpr
- $(DCC)
-
-Multi.exe: multi\Multi.dpr
- $(DCC)
-
-netradio.exe: netradio\netradio.dpr
- $(DCC)
-
-plugins.exe: plugins\plugins.dpr
- $(DCC)
-
-RecordTest.exe: RecordTest\RecordTest.dpr
- $(DCC)
-
-samplevis.exe: SampleVis\samplevis.dpr
- $(DCC)
-
-Speakers.exe: Speakers\Speakers.dpr
- $(DCC)
-
-StreamTest.exe: StreamTest\StreamTest.dpr
- $(DCC)
-
-writewav.exe: writewav\writewav.dpr
- $(DCC)
-
-
diff --git a/Game/Code/lib/bass/delphi/bass.pas b/Game/Code/lib/bass/delphi/bass.pas
deleted file mode 100644
index ba661699..00000000
--- a/Game/Code/lib/bass/delphi/bass.pas
+++ /dev/null
@@ -1,968 +0,0 @@
-{
- BASS 2.3 Audio Library, (c) 1999-2007 Ian Luck.
- Please report bugs/suggestions/etc... to bass@un4seen.com
-
- See the BASS.CHM file for more complete documentation
-
-
- How to install
- ----------------
- Copy BASS.PAS to the \LIB subdirectory of your Delphi path or your project dir
-}
-unit Bass;
-
-interface
-
-uses
- Windows;
-
-const
- BASSVERSION = $203; // API version
-
- // Use these to test for error from functions that return a DWORD or QWORD
- DW_ERROR = Cardinal(-1); // -1 (DWORD)
- QW_ERROR = Int64(-1); // -1 (QWORD)
-
- // Error codes returned by BASS_GetErrorCode()
- BASS_OK = 0; // all is OK
- BASS_ERROR_MEM = 1; // memory error
- BASS_ERROR_FILEOPEN = 2; // can't open the file
- BASS_ERROR_DRIVER = 3; // can't find a free sound driver
- BASS_ERROR_BUFLOST = 4; // the sample buffer was lost - please report this!
- BASS_ERROR_HANDLE = 5; // invalid handle
- BASS_ERROR_FORMAT = 6; // unsupported sample format
- BASS_ERROR_POSITION = 7; // invalid playback position
- BASS_ERROR_INIT = 8; // BASS_Init has not been successfully called
- BASS_ERROR_START = 9; // BASS_Start has not been successfully called
- BASS_ERROR_ALREADY = 14; // already initialized/paused/whatever
- BASS_ERROR_NOPAUSE = 16; // not paused
- BASS_ERROR_NOCHAN = 18; // can't get a free channel
- BASS_ERROR_ILLTYPE = 19; // an illegal type was specified
- BASS_ERROR_ILLPARAM = 20; // an illegal parameter was specified
- BASS_ERROR_NO3D = 21; // no 3D support
- BASS_ERROR_NOEAX = 22; // no EAX support
- BASS_ERROR_DEVICE = 23; // illegal device number
- BASS_ERROR_NOPLAY = 24; // not playing
- BASS_ERROR_FREQ = 25; // illegal sample rate
- BASS_ERROR_NOTFILE = 27; // the stream is not a file stream
- BASS_ERROR_NOHW = 29; // no hardware voices available
- BASS_ERROR_EMPTY = 31; // the MOD music has no sequence data
- BASS_ERROR_NONET = 32; // no internet connection could be opened
- BASS_ERROR_CREATE = 33; // couldn't create the file
- BASS_ERROR_NOFX = 34; // effects are not enabled
- BASS_ERROR_PLAYING = 35; // the channel is playing
- BASS_ERROR_NOTAVAIL = 37; // requested data is not available
- BASS_ERROR_DECODE = 38; // the channel is a "decoding channel"
- BASS_ERROR_DX = 39; // a sufficient DirectX version is not installed
- BASS_ERROR_TIMEOUT = 40; // connection timedout
- BASS_ERROR_FILEFORM = 41; // unsupported file format
- BASS_ERROR_SPEAKER = 42; // unavailable speaker
- BASS_ERROR_VERSION = 43; // invalid BASS version (used by add-ons)
- BASS_ERROR_CODEC = 44; // codec is not available/supported
- BASS_ERROR_UNKNOWN = -1; // some other mystery error
-
- // Initialization flags
- BASS_DEVICE_8BITS = 1; // use 8 bit resolution, else 16 bit
- BASS_DEVICE_MONO = 2; // use mono, else stereo
- BASS_DEVICE_3D = 4; // enable 3D functionality
- {
- If the BASS_DEVICE_3D flag is not specified when
- initilizing BASS, then the 3D flags (BASS_SAMPLE_3D
- and BASS_MUSIC_3D) are ignored when loading/creating
- a sample/stream/music.
- }
- BASS_DEVICE_LATENCY = 256; // calculate device latency (BASS_INFO struct)
- BASS_DEVICE_SPEAKERS = 2048; // force enabling of speaker assignment
- BASS_DEVICE_NOSPEAKER = 4096; // ignore speaker arrangement
-
- // DirectSound interfaces (for use with BASS_GetDSoundObject)
- BASS_OBJECT_DS = 1; // IDirectSound
- BASS_OBJECT_DS3DL = 2; // IDirectSound3DListener
-
- // BASS_INFO flags (from DSOUND.H)
- DSCAPS_CONTINUOUSRATE = $00000010;
- { supports all sample rates between min/maxrate }
- DSCAPS_EMULDRIVER = $00000020;
- { device does NOT have hardware DirectSound support }
- DSCAPS_CERTIFIED = $00000040;
- { device driver has been certified by Microsoft }
- {
- The following flags tell what type of samples are
- supported by HARDWARE mixing, all these formats are
- supported by SOFTWARE mixing
- }
- DSCAPS_SECONDARYMONO = $00000100; // mono
- DSCAPS_SECONDARYSTEREO = $00000200; // stereo
- DSCAPS_SECONDARY8BIT = $00000400; // 8 bit
- DSCAPS_SECONDARY16BIT = $00000800; // 16 bit
-
- // BASS_RECORDINFO flags (from DSOUND.H)
- DSCCAPS_EMULDRIVER = DSCAPS_EMULDRIVER;
- { device does NOT have hardware DirectSound recording support }
- DSCCAPS_CERTIFIED = DSCAPS_CERTIFIED;
- { device driver has been certified by Microsoft }
-
- // defines for formats field of BASS_RECORDINFO (from MMSYSTEM.H)
- WAVE_FORMAT_1M08 = $00000001; // 11.025 kHz, Mono, 8-bit
- WAVE_FORMAT_1S08 = $00000002; // 11.025 kHz, Stereo, 8-bit
- WAVE_FORMAT_1M16 = $00000004; // 11.025 kHz, Mono, 16-bit
- WAVE_FORMAT_1S16 = $00000008; // 11.025 kHz, Stereo, 16-bit
- WAVE_FORMAT_2M08 = $00000010; // 22.05 kHz, Mono, 8-bit
- WAVE_FORMAT_2S08 = $00000020; // 22.05 kHz, Stereo, 8-bit
- WAVE_FORMAT_2M16 = $00000040; // 22.05 kHz, Mono, 16-bit
- WAVE_FORMAT_2S16 = $00000080; // 22.05 kHz, Stereo, 16-bit
- WAVE_FORMAT_4M08 = $00000100; // 44.1 kHz, Mono, 8-bit
- WAVE_FORMAT_4S08 = $00000200; // 44.1 kHz, Stereo, 8-bit
- WAVE_FORMAT_4M16 = $00000400; // 44.1 kHz, Mono, 16-bit
- WAVE_FORMAT_4S16 = $00000800; // 44.1 kHz, Stereo, 16-bit
-
- // Sample info flags
- BASS_SAMPLE_8BITS = 1; // 8 bit
- BASS_SAMPLE_FLOAT = 256; // 32-bit floating-point
- BASS_SAMPLE_MONO = 2; // mono, else stereo
- BASS_SAMPLE_LOOP = 4; // looped
- BASS_SAMPLE_3D = 8; // 3D functionality enabled
- BASS_SAMPLE_SOFTWARE = 16; // it's NOT using hardware mixing
- BASS_SAMPLE_MUTEMAX = 32; // muted at max distance (3D only)
- BASS_SAMPLE_VAM = 64; // uses the DX7 voice allocation & management
- BASS_SAMPLE_FX = 128; // old implementation of DX8 effects are enabled
- BASS_SAMPLE_OVER_VOL = $10000; // override lowest volume
- BASS_SAMPLE_OVER_POS = $20000; // override longest playing
- BASS_SAMPLE_OVER_DIST = $30000; // override furthest from listener (3D only)
-
- BASS_STREAM_PRESCAN = $20000; // enable pin-point seeking (MP3/MP2/MP1)
- BASS_MP3_SETPOS = BASS_STREAM_PRESCAN;
- BASS_STREAM_AUTOFREE = $40000; // automatically free the stream when it stop/ends
- BASS_STREAM_RESTRATE = $80000; // restrict the download rate of internet file streams
- BASS_STREAM_BLOCK = $100000;// download/play internet file stream in small blocks
- BASS_STREAM_DECODE = $200000;// don't play the stream, only decode (BASS_ChannelGetData)
- BASS_STREAM_STATUS = $800000;// give server status info (HTTP/ICY tags) in DOWNLOADPROC
-
- BASS_MUSIC_FLOAT = BASS_SAMPLE_FLOAT; // 32-bit floating-point
- BASS_MUSIC_MONO = BASS_SAMPLE_MONO; // force mono mixing (less CPU usage)
- BASS_MUSIC_LOOP = BASS_SAMPLE_LOOP; // loop music
- BASS_MUSIC_3D = BASS_SAMPLE_3D; // enable 3D functionality
- BASS_MUSIC_FX = BASS_SAMPLE_FX; // enable old implementation of DX8 effects
- BASS_MUSIC_AUTOFREE = BASS_STREAM_AUTOFREE; // automatically free the music when it stop/ends
- BASS_MUSIC_DECODE = BASS_STREAM_DECODE; // don't play the music, only decode (BASS_ChannelGetData)
- BASS_MUSIC_PRESCAN = BASS_STREAM_PRESCAN; // calculate playback length
- BASS_MUSIC_CALCLEN = BASS_MUSIC_PRESCAN;
- BASS_MUSIC_RAMP = $200; // normal ramping
- BASS_MUSIC_RAMPS = $400; // sensitive ramping
- BASS_MUSIC_SURROUND = $800; // surround sound
- BASS_MUSIC_SURROUND2 = $1000; // surround sound (mode 2)
- BASS_MUSIC_FT2MOD = $2000; // play .MOD as FastTracker 2 does
- BASS_MUSIC_PT1MOD = $4000; // play .MOD as ProTracker 1 does
- BASS_MUSIC_NONINTER = $10000; // non-interpolated mixing
- BASS_MUSIC_POSRESET = $8000; // stop all notes when moving position
- BASS_MUSIC_POSRESETEX = $400000; // stop all notes and reset bmp/etc when moving position
- BASS_MUSIC_STOPBACK = $80000; // stop the music on a backwards jump effect
- BASS_MUSIC_NOSAMPLE = $100000; // don't load the samples
-
- // Speaker assignment flags
- BASS_SPEAKER_FRONT = $1000000; // front speakers
- BASS_SPEAKER_REAR = $2000000; // rear/side speakers
- BASS_SPEAKER_CENLFE = $3000000; // center & LFE speakers (5.1)
- BASS_SPEAKER_REAR2 = $4000000; // rear center speakers (7.1)
- BASS_SPEAKER_LEFT = $10000000; // modifier: left
- BASS_SPEAKER_RIGHT = $20000000; // modifier: right
- BASS_SPEAKER_FRONTLEFT = BASS_SPEAKER_FRONT or BASS_SPEAKER_LEFT;
- BASS_SPEAKER_FRONTRIGHT = BASS_SPEAKER_FRONT or BASS_SPEAKER_RIGHT;
- BASS_SPEAKER_REARLEFT = BASS_SPEAKER_REAR or BASS_SPEAKER_LEFT;
- BASS_SPEAKER_REARRIGHT = BASS_SPEAKER_REAR or BASS_SPEAKER_RIGHT;
- BASS_SPEAKER_CENTER = BASS_SPEAKER_CENLFE or BASS_SPEAKER_LEFT;
- BASS_SPEAKER_LFE = BASS_SPEAKER_CENLFE or BASS_SPEAKER_RIGHT;
- BASS_SPEAKER_REAR2LEFT = BASS_SPEAKER_REAR2 or BASS_SPEAKER_LEFT;
- BASS_SPEAKER_REAR2RIGHT = BASS_SPEAKER_REAR2 or BASS_SPEAKER_RIGHT;
-
- BASS_UNICODE = $80000000;
-
- BASS_RECORD_PAUSE = $8000; // start recording paused
-
- // DX7 voice allocation flags
- BASS_VAM_HARDWARE = 1;
- {
- Play the sample in hardware. If no hardware voices are available then
- the "play" call will fail
- }
- BASS_VAM_SOFTWARE = 2;
- {
- Play the sample in software (ie. non-accelerated). No other VAM flags
- may be used together with this flag.
- }
-
- // DX7 voice management flags
- {
- These flags enable hardware resource stealing... if the hardware has no
- available voices, a currently playing buffer will be stopped to make room
- for the new buffer. NOTE: only samples loaded/created with the
- BASS_SAMPLE_VAM flag are considered for termination by the DX7 voice
- management.
- }
- BASS_VAM_TERM_TIME = 4;
- {
- If there are no free hardware voices, the buffer to be terminated will be
- the one with the least time left to play.
- }
- BASS_VAM_TERM_DIST = 8;
- {
- If there are no free hardware voices, the buffer to be terminated will be
- one that was loaded/created with the BASS_SAMPLE_MUTEMAX flag and is
- beyond
- it's max distance. If there are no buffers that match this criteria, then
- the "play" call will fail.
- }
- BASS_VAM_TERM_PRIO = 16;
- {
- If there are no free hardware voices, the buffer to be terminated will be
- the one with the lowest priority.
- }
-
- // BASS_CHANNELINFO types
- BASS_CTYPE_SAMPLE = 1;
- BASS_CTYPE_RECORD = 2;
- BASS_CTYPE_STREAM = $10000;
- BASS_CTYPE_STREAM_OGG = $10002;
- BASS_CTYPE_STREAM_MP1 = $10003;
- BASS_CTYPE_STREAM_MP2 = $10004;
- BASS_CTYPE_STREAM_MP3 = $10005;
- BASS_CTYPE_STREAM_AIFF = $10006;
- BASS_CTYPE_STREAM_WAV = $40000; // WAVE flag, LOWORD=codec
- BASS_CTYPE_STREAM_WAV_PCM = $50001;
- BASS_CTYPE_STREAM_WAV_FLOAT = $50003;
- BASS_CTYPE_MUSIC_MOD = $20000;
- BASS_CTYPE_MUSIC_MTM = $20001;
- BASS_CTYPE_MUSIC_S3M = $20002;
- BASS_CTYPE_MUSIC_XM = $20003;
- BASS_CTYPE_MUSIC_IT = $20004;
- BASS_CTYPE_MUSIC_MO3 = $00100; // MO3 flag
-
- // 3D channel modes
- BASS_3DMODE_NORMAL = 0;
- { normal 3D processing }
- BASS_3DMODE_RELATIVE = 1;
- {
- The channel's 3D position (position/velocity/
- orientation) are relative to the listener. When the
- listener's position/velocity/orientation is changed
- with BASS_Set3DPosition, the channel's position
- relative to the listener does not change.
- }
- BASS_3DMODE_OFF = 2;
- {
- Turn off 3D processing on the channel, the sound will
- be played in the center.
- }
-
- // EAX environments, use with BASS_SetEAXParameters
- EAX_ENVIRONMENT_GENERIC = 0;
- EAX_ENVIRONMENT_PADDEDCELL = 1;
- EAX_ENVIRONMENT_ROOM = 2;
- EAX_ENVIRONMENT_BATHROOM = 3;
- EAX_ENVIRONMENT_LIVINGROOM = 4;
- EAX_ENVIRONMENT_STONEROOM = 5;
- EAX_ENVIRONMENT_AUDITORIUM = 6;
- EAX_ENVIRONMENT_CONCERTHALL = 7;
- EAX_ENVIRONMENT_CAVE = 8;
- EAX_ENVIRONMENT_ARENA = 9;
- EAX_ENVIRONMENT_HANGAR = 10;
- EAX_ENVIRONMENT_CARPETEDHALLWAY = 11;
- EAX_ENVIRONMENT_HALLWAY = 12;
- EAX_ENVIRONMENT_STONECORRIDOR = 13;
- EAX_ENVIRONMENT_ALLEY = 14;
- EAX_ENVIRONMENT_FOREST = 15;
- EAX_ENVIRONMENT_CITY = 16;
- EAX_ENVIRONMENT_MOUNTAINS = 17;
- EAX_ENVIRONMENT_QUARRY = 18;
- EAX_ENVIRONMENT_PLAIN = 19;
- EAX_ENVIRONMENT_PARKINGLOT = 20;
- EAX_ENVIRONMENT_SEWERPIPE = 21;
- EAX_ENVIRONMENT_UNDERWATER = 22;
- EAX_ENVIRONMENT_DRUGGED = 23;
- EAX_ENVIRONMENT_DIZZY = 24;
- EAX_ENVIRONMENT_PSYCHOTIC = 25;
- // total number of environments
- EAX_ENVIRONMENT_COUNT = 26;
-
- // software 3D mixing algorithm modes (used with BASS_Set3DAlgorithm)
- BASS_3DALG_DEFAULT = 0;
- {
- default algorithm (currently translates to BASS_3DALG_OFF)
- }
- BASS_3DALG_OFF = 1;
- {
- Uses normal left and right panning. The vertical axis is ignored except
- for scaling of volume due to distance. Doppler shift and volume scaling
- are still applied, but the 3D filtering is not performed. This is the
- most CPU efficient software implementation, but provides no virtual 3D
- audio effect. Head Related Transfer Function processing will not be done.
- Since only normal stereo panning is used, a channel using this algorithm
- may be accelerated by a 2D hardware voice if no free 3D hardware voices
- are available.
- }
- BASS_3DALG_FULL = 2;
- {
- This algorithm gives the highest quality 3D audio effect, but uses more
- CPU. Requires Windows 98 2nd Edition or Windows 2000 that uses WDM
- drivers, if this mode is not available then BASS_3DALG_OFF will be used
- instead.
- }
- BASS_3DALG_LIGHT = 3;
- {
- This algorithm gives a good 3D audio effect, and uses less CPU than the
- FULL mode. Requires Windows 98 2nd Edition or Windows 2000 that uses WDM
- drivers, if this mode is not available then BASS_3DALG_OFF will be used
- instead.
- }
-
- {
- Sync types (with BASS_ChannelSetSync() "param" and
- SYNCPROC "data" definitions) & flags.
- }
- BASS_SYNC_POS = 0;
- {
- Sync when a channel reaches a position.
- param: position in bytes
- data : not used
- }
- BASS_SYNC_END = 2;
- {
- Sync when a channel reaches the end.
- param: not used
- data : not used
- }
- BASS_SYNC_META = 4;
- {
- Sync when metadata is received in a stream.
- param: not used
- data : pointer to the metadata
- }
- BASS_SYNC_SLIDE = 5;
- {
- Sync when an attribute slide is completed.
- param: not used
- data : the type of slide completed (one of the BASS_SLIDE_xxx values)
- }
- BASS_SYNC_STALL = 6;
- {
- Sync when playback has stalled.
- param: not used
- data : 0=stalled, 1=resumed
- }
- BASS_SYNC_DOWNLOAD = 7;
- {
- Sync when downloading of an internet (or "buffered" user file) stream has ended.
- param: not used
- data : not used
- }
- BASS_SYNC_FREE = 8;
- {
- Sync when a channel is freed.
- param: not used
- data : not used
- }
- BASS_SYNC_SETPOS = 11;
- {
- Sync when a channel's position is set.
- param: not used
- data : 0 = playback buffer not flushed, 1 = playback buffer flushed
- }
- BASS_SYNC_MUSICPOS = 10;
- {
- Sync when a MOD music reaches an order:row position.
- param: LOWORD=order (0=first, -1=all) HIWORD=row (0=first, -1=all)
- data : LOWORD=order HIWORD=row
- }
- BASS_SYNC_MUSICINST = 1;
- {
- Sync when an instrument (sample for the non-instrument based formats)
- is played in a MOD music (not including retrigs).
- param: LOWORD=instrument (1=first) HIWORD=note (0=c0...119=b9, -1=all)
- data : LOWORD=note HIWORD=volume (0-64)
- }
- BASS_SYNC_MUSICFX = 3;
- {
- Sync when the "sync" effect (XM/MTM/MOD: E8x/Wxx, IT/S3M: S2x) is used.
- param: 0:data=pos, 1:data="x" value
- data : param=0: LOWORD=order HIWORD=row, param=1: "x" value
- }
- BASS_SYNC_MESSAGE = $20000000;
- { FLAG: post a Windows message (instead of callback)
- When using a window message "callback", the message to post is given in the "proc"
- parameter of BASS_ChannelSetSync, and is posted to the window specified in the BASS_Init
- call. The message parameters are: WPARAM = data, LPARAM = user.
- }
- BASS_SYNC_MIXTIME = $40000000;
- { FLAG: sync at mixtime, else at playtime }
- BASS_SYNC_ONETIME = $80000000;
- { FLAG: sync only once, else continuously }
-
- // BASS_ChannelIsActive return values
- BASS_ACTIVE_STOPPED = 0;
- BASS_ACTIVE_PLAYING = 1;
- BASS_ACTIVE_STALLED = 2;
- BASS_ACTIVE_PAUSED = 3;
-
- // BASS_ChannelIsSliding return flags
- BASS_SLIDE_FREQ = 1;
- BASS_SLIDE_VOL = 2;
- BASS_SLIDE_PAN = 4;
-
- // BASS_ChannelGetData flags
- BASS_DATA_AVAILABLE = 0; // query how much data is buffered
- BASS_DATA_FLOAT = $40000000; // flag: return floating-point sample data
- BASS_DATA_FFT512 = $80000000; // 512 sample FFT
- BASS_DATA_FFT1024 = $80000001; // 1024 FFT
- BASS_DATA_FFT2048 = $80000002; // 2048 FFT
- BASS_DATA_FFT4096 = $80000003; // 4096 FFT
- BASS_DATA_FFT8192 = $80000004; // 8192 FFT
- BASS_DATA_FFT_INDIVIDUAL = $10; // FFT flag: FFT for each channel, else all combined
- BASS_DATA_FFT_NOWINDOW = $20; // FFT flag: no Hanning window
-
- // BASS_ChannelGetTags types : what's returned
- BASS_TAG_ID3 = 0; // ID3v1 tags : 128 byte block
- BASS_TAG_ID3V2 = 1; // ID3v2 tags : variable length block
- BASS_TAG_OGG = 2; // OGG comments : array of null-terminated strings
- BASS_TAG_HTTP = 3; // HTTP headers : array of null-terminated strings
- BASS_TAG_ICY = 4; // ICY headers : array of null-terminated strings
- BASS_TAG_META = 5; // ICY metadata : null-terminated string
- BASS_TAG_VENDOR = 9; // OGG encoder : null-terminated string
- BASS_TAG_LYRICS3 = 10; // Lyric3v2 tag : ASCII string
- BASS_TAG_RIFF_INFO = $100; // RIFF/WAVE tags : array of null-terminated ANSI strings
- BASS_TAG_MUSIC_NAME = $10000; // MOD music name : ANSI string
- BASS_TAG_MUSIC_MESSAGE = $10001; // MOD message : ANSI string
- BASS_TAG_MUSIC_INST = $10100; // + instrument #, MOD instrument name : ANSI string
- BASS_TAG_MUSIC_SAMPLE = $10300; // + sample #, MOD sample name : ANSI string
-
- BASS_FX_CHORUS = 0; // GUID_DSFX_STANDARD_CHORUS
- BASS_FX_COMPRESSOR = 1; // GUID_DSFX_STANDARD_COMPRESSOR
- BASS_FX_DISTORTION = 2; // GUID_DSFX_STANDARD_DISTORTION
- BASS_FX_ECHO = 3; // GUID_DSFX_STANDARD_ECHO
- BASS_FX_FLANGER = 4; // GUID_DSFX_STANDARD_FLANGER
- BASS_FX_GARGLE = 5; // GUID_DSFX_STANDARD_GARGLE
- BASS_FX_I3DL2REVERB = 6; // GUID_DSFX_STANDARD_I3DL2REVERB
- BASS_FX_PARAMEQ = 7; // GUID_DSFX_STANDARD_PARAMEQ
- BASS_FX_REVERB = 8; // GUID_DSFX_WAVES_REVERB
-
- BASS_FX_PHASE_NEG_180 = 0;
- BASS_FX_PHASE_NEG_90 = 1;
- BASS_FX_PHASE_ZERO = 2;
- BASS_FX_PHASE_90 = 3;
- BASS_FX_PHASE_180 = 4;
-
- // BASS_RecordSetInput flags
- BASS_INPUT_OFF = $10000;
- BASS_INPUT_ON = $20000;
- BASS_INPUT_LEVEL = $40000;
-
- BASS_INPUT_TYPE_MASK = $ff000000;
- BASS_INPUT_TYPE_UNDEF = $00000000;
- BASS_INPUT_TYPE_DIGITAL = $01000000;
- BASS_INPUT_TYPE_LINE = $02000000;
- BASS_INPUT_TYPE_MIC = $03000000;
- BASS_INPUT_TYPE_SYNTH = $04000000;
- BASS_INPUT_TYPE_CD = $05000000;
- BASS_INPUT_TYPE_PHONE = $06000000;
- BASS_INPUT_TYPE_SPEAKER = $07000000;
- BASS_INPUT_TYPE_WAVE = $08000000;
- BASS_INPUT_TYPE_AUX = $09000000;
- BASS_INPUT_TYPE_ANALOG = $0a000000;
-
- // BASS_SetNetConfig flags
- BASS_NET_TIMEOUT = 0;
- BASS_NET_BUFFER = 1;
-
- // BASS_StreamGetFilePosition modes
- BASS_FILEPOS_CURRENT = 0;
- BASS_FILEPOS_DECODE = BASS_FILEPOS_CURRENT;
- BASS_FILEPOS_DOWNLOAD = 1;
- BASS_FILEPOS_END = 2;
- BASS_FILEPOS_START = 3;
- BASS_FILEPOS_CONNECTED = 4;
-
- // STREAMFILEPROC actions
- BASS_FILE_CLOSE = 0;
- BASS_FILE_READ = 1;
- BASS_FILE_LEN = 3;
- BASS_FILE_SEEK = 4;
-
- BASS_STREAMPROC_END = $80000000; // end of user stream flag
-
- // BASS_MusicSet/GetAttribute options
- BASS_MUSIC_ATTRIB_AMPLIFY = 0;
- BASS_MUSIC_ATTRIB_PANSEP = 1;
- BASS_MUSIC_ATTRIB_PSCALER = 2;
- BASS_MUSIC_ATTRIB_BPM = 3;
- BASS_MUSIC_ATTRIB_SPEED = 4;
- BASS_MUSIC_ATTRIB_VOL_GLOBAL = 5;
- BASS_MUSIC_ATTRIB_VOL_CHAN = $100; // + channel #
- BASS_MUSIC_ATTRIB_VOL_INST = $200; // + instrument #
-
- // BASS_Set/GetConfig options
- BASS_CONFIG_BUFFER = 0;
- BASS_CONFIG_UPDATEPERIOD = 1;
- BASS_CONFIG_MAXVOL = 3;
- BASS_CONFIG_GVOL_SAMPLE = 4;
- BASS_CONFIG_GVOL_STREAM = 5;
- BASS_CONFIG_GVOL_MUSIC = 6;
- BASS_CONFIG_CURVE_VOL = 7;
- BASS_CONFIG_CURVE_PAN = 8;
- BASS_CONFIG_FLOATDSP = 9;
- BASS_CONFIG_3DALGORITHM = 10;
- BASS_CONFIG_NET_TIMEOUT = 11;
- BASS_CONFIG_NET_BUFFER = 12;
- BASS_CONFIG_PAUSE_NOPLAY = 13;
- BASS_CONFIG_NET_PREBUF = 15;
- BASS_CONFIG_NET_AGENT = 16;
- BASS_CONFIG_NET_PROXY = 17;
- BASS_CONFIG_NET_PASSIVE = 18;
- BASS_CONFIG_REC_BUFFER = 19;
- BASS_CONFIG_NET_PLAYLIST = 21;
- BASS_CONFIG_MUSIC_VIRTUAL = 22;
-
-type
- DWORD = cardinal;
- BOOL = LongBool;
- FLOAT = Single;
- QWORD = int64; // 64-bit (replace "int64" with "comp" if using Delphi 3)
-
- HMUSIC = DWORD; // MOD music handle
- HSAMPLE = DWORD; // sample handle
- HCHANNEL = DWORD; // playing sample's channel handle
- HSTREAM = DWORD; // sample stream handle
- HRECORD = DWORD; // recording handle
- HSYNC = DWORD; // synchronizer handle
- HDSP = DWORD; // DSP handle
- HFX = DWORD; // DX8 effect handle
- HPLUGIN = DWORD; // Plugin handle
-
- BASS_INFO = record
- flags: DWORD; // device capabilities (DSCAPS_xxx flags)
- hwsize: DWORD; // size of total device hardware memory
- hwfree: DWORD; // size of free device hardware memory
- freesam: DWORD; // number of free sample slots in the hardware
- free3d: DWORD; // number of free 3D sample slots in the hardware
- minrate: DWORD; // min sample rate supported by the hardware
- maxrate: DWORD; // max sample rate supported by the hardware
- eax: BOOL; // device supports EAX? (always FALSE if BASS_DEVICE_3D was not used)
- minbuf: DWORD; // recommended minimum buffer length in ms (requires BASS_DEVICE_LATENCY)
- dsver: DWORD; // DirectSound version
- latency: DWORD; // delay (in ms) before start of playback (requires BASS_DEVICE_LATENCY)
- initflags: DWORD; // "flags" parameter of BASS_Init call
- speakers: DWORD; // number of speakers available
- driver: PChar; // driver
- freq: DWORD; // current output rate (OSX only)
- end;
-
- BASS_RECORDINFO = record
- flags: DWORD; // device capabilities (DSCCAPS_xxx flags)
- formats: DWORD; // supported standard formats (WAVE_FORMAT_xxx flags)
- inputs: DWORD; // number of inputs
- singlein: BOOL; // only 1 input can be set at a time
- driver: PChar; // driver
- freq: DWORD; // current input rate (OSX only)
- end;
-
- BASS_CHANNELINFO = record
- freq: DWORD; // default playback rate
- chans: DWORD; // channels
- flags: DWORD; // BASS_SAMPLE/STREAM/MUSIC/SPEAKER flags
- ctype: DWORD; // type of channel
- origres: DWORD; // original resolution
- plugin: HPLUGIN; // plugin
- end;
-
- BASS_PLUGINFORM = record
- ctype: DWORD; // channel type
- name: PChar; // format description
- exts: PChar; // file extension filter (*.ext1;*.ext2;etc...)
- end;
- PBASS_PLUGINFORMS = ^TBASS_PLUGINFORMS;
- TBASS_PLUGINFORMS = array[0..maxInt div sizeOf(BASS_PLUGINFORM) - 1] of BASS_PLUGINFORM;
-
- BASS_PLUGININFO = record
- version: DWORD; // version (same form as BASS_GetVersion)
- formatc: DWORD; // number of formats
- formats: PBASS_PLUGINFORMS; // the array of formats
- end;
- PBASS_PLUGININFO = ^BASS_PLUGININFO;
-
- // Sample info structure
- BASS_SAMPLE = record
- freq: DWORD; // default playback rate
- volume: DWORD; // default volume (0-100)
- pan: Integer; // default pan (-100=left, 0=middle, 100=right)
- flags: DWORD; // BASS_SAMPLE_xxx flags
- length: DWORD; // length (in samples, not bytes)
- max: DWORD; // maximum simultaneous playbacks
- origres: DWORD; // original resolution
- chans: DWORD; // number of channels
- mingap: DWORD; // minimum gap (ms) between creating channels
- {
- The following are the sample's default 3D attributes
- (if the sample is 3D, BASS_SAMPLE_3D is in flags)
- see BASS_ChannelSet3DAttributes
- }
- mode3d: DWORD; // BASS_3DMODE_xxx mode
- mindist: FLOAT; // minimum distance
- maxdist: FLOAT; // maximum distance
- iangle: DWORD; // angle of inside projection cone
- oangle: DWORD; // angle of outside projection cone
- outvol: DWORD; // delta-volume outside the projection cone
- {
- The following are the defaults used if the sample uses the DirectX 7
- voice allocation/management features.
- }
- vam: DWORD; // voice allocation/management flags (BASS_VAM_xxx)
- priority: DWORD; // priority (0=lowest, $ffffffff=highest)
- end;
-
- // 3D vector (for 3D positions/velocities/orientations)
- BASS_3DVECTOR = record
- x: FLOAT; // +=right, -=left
- y: FLOAT; // +=up, -=down
- z: FLOAT; // +=front, -=behind
- end;
-
- BASS_FXCHORUS = record
- fWetDryMix: FLOAT;
- fDepth: FLOAT;
- fFeedback: FLOAT;
- fFrequency: FLOAT;
- lWaveform: DWORD; // 0=triangle, 1=sine
- fDelay: FLOAT;
- lPhase: DWORD; // BASS_FX_PHASE_xxx
- end;
-
- BASS_FXCOMPRESSOR = record
- fGain: FLOAT;
- fAttack: FLOAT;
- fRelease: FLOAT;
- fThreshold: FLOAT;
- fRatio: FLOAT;
- fPredelay: FLOAT;
- end;
-
- BASS_FXDISTORTION = record
- fGain: FLOAT;
- fEdge: FLOAT;
- fPostEQCenterFrequency: FLOAT;
- fPostEQBandwidth: FLOAT;
- fPreLowpassCutoff: FLOAT;
- end;
-
- BASS_FXECHO = record
- fWetDryMix: FLOAT;
- fFeedback: FLOAT;
- fLeftDelay: FLOAT;
- fRightDelay: FLOAT;
- lPanDelay: BOOL;
- end;
-
- BASS_FXFLANGER = record
- fWetDryMix: FLOAT;
- fDepth: FLOAT;
- fFeedback: FLOAT;
- fFrequency: FLOAT;
- lWaveform: DWORD; // 0=triangle, 1=sine
- fDelay: FLOAT;
- lPhase: DWORD; // BASS_FX_PHASE_xxx
- end;
-
- BASS_FXGARGLE = record
- dwRateHz: DWORD; // Rate of modulation in hz
- dwWaveShape: DWORD; // 0=triangle, 1=square
- end;
-
- BASS_FXI3DL2REVERB = record
- lRoom: Longint; // [-10000, 0] default: -1000 mB
- lRoomHF: Longint; // [-10000, 0] default: 0 mB
- flRoomRolloffFactor: FLOAT; // [0.0, 10.0] default: 0.0
- flDecayTime: FLOAT; // [0.1, 20.0] default: 1.49s
- flDecayHFRatio: FLOAT; // [0.1, 2.0] default: 0.83
- lReflections: Longint; // [-10000, 1000] default: -2602 mB
- flReflectionsDelay: FLOAT; // [0.0, 0.3] default: 0.007 s
- lReverb: Longint; // [-10000, 2000] default: 200 mB
- flReverbDelay: FLOAT; // [0.0, 0.1] default: 0.011 s
- flDiffusion: FLOAT; // [0.0, 100.0] default: 100.0 %
- flDensity: FLOAT; // [0.0, 100.0] default: 100.0 %
- flHFReference: FLOAT; // [20.0, 20000.0] default: 5000.0 Hz
- end;
-
- BASS_FXPARAMEQ = record
- fCenter: FLOAT;
- fBandwidth: FLOAT;
- fGain: FLOAT;
- end;
-
- BASS_FXREVERB = record
- fInGain: FLOAT; // [-96.0,0.0] default: 0.0 dB
- fReverbMix: FLOAT; // [-96.0,0.0] default: 0.0 db
- fReverbTime: FLOAT; // [0.001,3000.0] default: 1000.0 ms
- fHighFreqRTRatio: FLOAT; // [0.001,0.999] default: 0.001
- end;
-
- // callback function types
- STREAMPROC = function(handle: HSTREAM; buffer: Pointer; length: DWORD; user: DWORD): DWORD; stdcall;
- {
- User stream callback function. NOTE: A stream function should obviously be as
- quick as possible, other streams (and MOD musics) can't be mixed until
- it's finished.
- handle : The stream that needs writing
- buffer : Buffer to write the samples in
- length : Number of bytes to write
- user : The 'user' parameter value given when calling BASS_StreamCreate
- RETURN : Number of bytes written. Set the BASS_STREAMPROC_END flag to end
- the stream.
- }
-
- STREAMFILEPROC = function(action, param1, param2, user: DWORD): DWORD; stdcall;
- {
- User file stream callback function.
- action : The action to perform, one of BASS_FILE_xxx values.
- param1 : Depends on "action"
- param2 : Depends on "action"
- user : The 'user' parameter value given when calling BASS_StreamCreate
- RETURN : Depends on "action"
- }
-
- DOWNLOADPROC = procedure(buffer: Pointer; length: DWORD; user: DWORD); stdcall;
- {
- Internet stream download callback function.
- buffer : Buffer containing the downloaded data... NULL=end of download
- length : Number of bytes in the buffer
- user : The 'user' parameter value given when calling BASS_StreamCreateURL
- }
-
- SYNCPROC = procedure(handle: HSYNC; channel, data: DWORD; user: DWORD); stdcall;
- {
- Sync callback function. NOTE: a sync callback function should be very
- quick as other syncs cannot be processed until it has finished. If the
- sync is a "mixtime" sync, then other streams and MOD musics can not be
- mixed until it's finished either.
- handle : The sync that has occured
- channel: Channel that the sync occured in
- data : Additional data associated with the sync's occurance
- user : The 'user' parameter given when calling BASS_ChannelSetSync
- }
-
- DSPPROC = procedure(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: DWORD); stdcall;
- {
- DSP callback function. NOTE: A DSP function should obviously be as quick
- as possible... other DSP functions, streams and MOD musics can not be
- processed until it's finished.
- handle : The DSP handle
- channel: Channel that the DSP is being applied to
- buffer : Buffer to apply the DSP to
- length : Number of bytes in the buffer
- user : The 'user' parameter given when calling BASS_ChannelSetDSP
- }
-
- RECORDPROC = function(handle: HRECORD; buffer: Pointer; length: DWORD; user: DWORD): BOOL; stdcall;
- {
- Recording callback function.
- handle : The recording handle
- buffer : Buffer containing the recorded sample data
- length : Number of bytes
- user : The 'user' parameter value given when calling BASS_RecordStart
- RETURN : TRUE = continue recording, FALSE = stop
- }
-
-
-// Functions
-const
- bassdll = 'bass.dll';
-
-function BASS_SetConfig(option, value: DWORD): DWORD; stdcall; external bassdll;
-function BASS_GetConfig(option: DWORD): DWORD; stdcall; external bassdll;
-function BASS_GetVersion: DWORD; stdcall; external bassdll;
-function BASS_GetDeviceDescription(device: DWORD): PChar; stdcall; external bassdll;
-function BASS_ErrorGetCode: Integer; stdcall; external bassdll;
-function BASS_Init(device: Integer; freq, flags: DWORD; win: HWND; clsid: PGUID): BOOL; stdcall; external bassdll;
-function BASS_SetDevice(device: DWORD): BOOL; stdcall; external bassdll;
-function BASS_GetDevice: DWORD; stdcall; external bassdll;
-function BASS_Free: BOOL; stdcall; external bassdll;
-function BASS_GetDSoundObject(obj: DWORD): Pointer; stdcall; external bassdll;
-function BASS_GetInfo(var info: BASS_INFO): BOOL; stdcall; external bassdll;
-function BASS_Update: BOOL; stdcall; external bassdll;
-function BASS_GetCPU: FLOAT; stdcall; external bassdll;
-function BASS_Start: BOOL; stdcall; external bassdll;
-function BASS_Stop: BOOL; stdcall; external bassdll;
-function BASS_Pause: BOOL; stdcall; external bassdll;
-function BASS_SetVolume(volume: DWORD): BOOL; stdcall; external bassdll;
-function BASS_GetVolume: Integer; stdcall; external bassdll;
-
-function BASS_PluginLoad(filename: PChar; flags: DWORD): HPLUGIN; stdcall; external bassdll;
-function BASS_PluginFree(handle: HPLUGIN): BOOL; stdcall; external bassdll;
-function BASS_PluginGetInfo(handle: HPLUGIN): PBASS_PLUGININFO; stdcall; external bassdll;
-
-function BASS_Set3DFactors(distf, rollf, doppf: FLOAT): BOOL; stdcall; external bassdll;
-function BASS_Get3DFactors(var distf, rollf, doppf: FLOAT): BOOL; stdcall; external bassdll;
-function BASS_Set3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; stdcall; external bassdll;
-function BASS_Get3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; stdcall; external bassdll;
-procedure BASS_Apply3D; stdcall; external bassdll;
-function BASS_SetEAXParameters(env: Integer; vol, decay, damp: FLOAT): BOOL; stdcall; external bassdll;
-function BASS_GetEAXParameters(var env: DWORD; var vol, decay, damp: FLOAT): BOOL; stdcall; external bassdll;
-
-function BASS_MusicLoad(mem: BOOL; f: Pointer; offset, length, flags, freq: DWORD): HMUSIC; stdcall; external bassdll;
-function BASS_MusicFree(handle: HMUSIC): BOOL; stdcall; external bassdll;
-function BASS_MusicSetAttribute(handle: HMUSIC; attrib,value: DWORD): DWORD; stdcall; external bassdll;
-function BASS_MusicGetAttribute(handle: HMUSIC; attrib: DWORD): DWORD; stdcall; external bassdll;
-function BASS_MusicGetOrders(handle: HMUSIC): DWORD; stdcall; external bassdll;
-function BASS_MusicGetOrderPosition(handle: HMUSIC): DWORD; stdcall; external bassdll;
-
-function BASS_SampleLoad(mem: BOOL; f: Pointer; offset, length, max, flags: DWORD): HSAMPLE; stdcall; external bassdll;
-function BASS_SampleCreate(length, freq, chans, max, flags: DWORD): Pointer; stdcall; external bassdll;
-function BASS_SampleCreateDone: HSAMPLE; stdcall; external bassdll;
-function BASS_SampleFree(handle: HSAMPLE): BOOL; stdcall; external bassdll;
-function BASS_SampleGetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; stdcall; external bassdll;
-function BASS_SampleSetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; stdcall; external bassdll;
-function BASS_SampleGetChannel(handle: HSAMPLE; onlynew: BOOL): HCHANNEL; stdcall; external bassdll;
-function BASS_SampleGetChannels(handle: HSAMPLE; channels: Pointer): DWORD; stdcall; external bassdll;
-function BASS_SampleStop(handle: HSAMPLE): BOOL; stdcall; external bassdll;
-
-function BASS_StreamCreate(freq, chans, flags: DWORD; proc: Pointer; user: DWORD): HSTREAM; stdcall; external bassdll;
-function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length, flags: DWORD): HSTREAM; stdcall; external bassdll;
-function BASS_StreamCreateURL(url: PChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: DWORD):HSTREAM; stdcall; external bassdll;
-function BASS_StreamCreateFileUser(buffered: BOOL; flags: DWORD; proc: STREAMFILEPROC; user: DWORD): HSTREAM; stdcall; external bassdll;
-function BASS_StreamFree(handle: HSTREAM): BOOL; stdcall; external bassdll;
-function BASS_StreamGetFilePosition(handle:HSTREAM; mode:DWORD) : DWORD;stdcall;external bassdll;
-
-function BASS_RecordGetDeviceDescription(devnum: DWORD):PChar;stdcall;external bassdll;
-function BASS_RecordInit(device: Integer):BOOL;stdcall;external bassdll;
-function BASS_RecordSetDevice(device: DWORD): BOOL; stdcall; external bassdll;
-function BASS_RecordGetDevice: DWORD; stdcall; external bassdll;
-function BASS_RecordFree:BOOL;stdcall;external bassdll;
-function BASS_RecordGetInfo(var info:BASS_RECORDINFO):BOOL;stdcall;external bassdll;
-function BASS_RecordGetInputName(input:Integer):PChar;stdcall;external bassdll;
-function BASS_RecordSetInput(input:Integer; setting:DWORD):BOOL;stdcall;external bassdll;
-function BASS_RecordGetInput(input:Integer):DWORD;stdcall;external bassdll;
-function BASS_RecordStart(freq,chans,flags:DWORD; proc:RECORDPROC; user:DWORD):HRECORD;stdcall;external bassdll;
-
-function BASS_ChannelBytes2Seconds(handle: DWORD; pos: QWORD): FLOAT; stdcall;external bassdll;
-function BASS_ChannelSeconds2Bytes(handle: DWORD; pos: FLOAT): QWORD; stdcall;external bassdll;
-function BASS_ChannelGetDevice(handle: DWORD): DWORD; stdcall; external bassdll;
-function BASS_ChannelSetDevice(handle, device: DWORD): BOOL; stdcall; external bassdll;
-function BASS_ChannelIsActive(handle: DWORD): DWORD; stdcall;external bassdll;
-function BASS_ChannelGetInfo(handle: DWORD; var info:BASS_CHANNELINFO):BOOL;stdcall;external bassdll;
-function BASS_ChannelGetTags(handle: HSTREAM; tags : DWORD): PChar; stdcall; external bassdll;
-function BASS_ChannelSetFlags(handle, flags: DWORD): BOOL; stdcall; external bassdll;
-function BASS_ChannelPreBuf(handle, length: DWORD): BOOL; stdcall; external bassdll;
-function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL; stdcall; external bassdll;
-function BASS_ChannelStop(handle: DWORD): BOOL; stdcall; external bassdll;
-function BASS_ChannelPause(handle: DWORD): BOOL; stdcall; external bassdll;
-function BASS_ChannelSetAttributes(handle: DWORD; freq, volume, pan: Integer): BOOL; stdcall; external bassdll;
-function BASS_ChannelGetAttributes(handle: DWORD; var freq, volume: DWORD; var pan: Integer): BOOL; stdcall; external bassdll;
-function BASS_ChannelSlideAttributes(handle: DWORD; freq, volume, pan: Integer; time: DWORD): BOOL; stdcall; external bassdll;
-function BASS_ChannelIsSliding(handle: DWORD): DWORD; stdcall;external bassdll;
-function BASS_ChannelSet3DAttributes(handle: DWORD; mode: Integer; min, max: FLOAT; iangle, oangle, outvol: Integer): BOOL; stdcall; external bassdll;
-function BASS_ChannelGet3DAttributes(handle: DWORD; var mode: DWORD; var min, max: FLOAT; var iangle, oangle, outvol: DWORD): BOOL; stdcall; external bassdll;
-function BASS_ChannelSet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; stdcall; external bassdll;
-function BASS_ChannelGet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; stdcall; external bassdll;
-function BASS_ChannelGetLength(handle: DWORD): QWORD; stdcall; external bassdll;
-function BASS_ChannelSetPosition(handle: DWORD; pos: QWORD): BOOL; stdcall; external bassdll;
-function BASS_ChannelGetPosition(handle: DWORD): QWORD; stdcall; external bassdll;
-function BASS_ChannelGetLevel(handle: DWORD): DWORD; stdcall; external bassdll;
-function BASS_ChannelGetData(handle: DWORD; buffer: Pointer; length: DWORD): DWORD; stdcall; external bassdll;
-function BASS_ChannelSetSync(handle: DWORD; stype: DWORD; param: QWORD; proc: SYNCPROC; user: DWORD): HSYNC; stdcall; external bassdll;
-function BASS_ChannelRemoveSync(handle: DWORD; sync: HSYNC): BOOL; stdcall; external bassdll;
-function BASS_ChannelSetDSP(handle: DWORD; proc: DSPPROC; user: DWORD; priority: Integer): HDSP; stdcall; external bassdll;
-function BASS_ChannelRemoveDSP(handle: DWORD; dsp: HDSP): BOOL; stdcall; external bassdll;
-function BASS_ChannelSetEAXMix(handle: DWORD; mix: FLOAT): BOOL; stdcall; external bassdll;
-function BASS_ChannelGetEAXMix(handle: DWORD; var mix: FLOAT): BOOL; stdcall; external bassdll;
-function BASS_ChannelSetLink(handle, chan: DWORD): BOOL; stdcall; external bassdll;
-function BASS_ChannelRemoveLink(handle, chan: DWORD): BOOL; stdcall; external bassdll;
-function BASS_ChannelSetFX(handle, etype: DWORD; priority: Integer): HFX; stdcall; external bassdll;
-function BASS_ChannelRemoveFX(handle: DWORD; fx: HFX): BOOL; stdcall; external bassdll;
-
-function BASS_FXSetParameters(handle: HFX; par: Pointer): BOOL; stdcall; external bassdll;
-function BASS_FXGetParameters(handle: HFX; par: Pointer): BOOL; stdcall; external bassdll;
-function BASS_FXReset(handle: HFX): BOOL; stdcall; external bassdll;
-
-
-function BASS_SPEAKER_N(n: DWORD): DWORD;
-function MAKEMUSICPOS(order,row: DWORD): DWORD;
-function BASS_SetEAXPreset(env: Integer): BOOL;
-{
- This function is defined in the implementation part of this unit.
- It is not part of BASS.DLL but an extra function which makes it easier
- to set the predefined EAX environments.
- env : a EAX_ENVIRONMENT_xxx constant
-}
-
-
-implementation
-
-function BASS_SPEAKER_N(n: DWORD): DWORD;
-begin
- Result := n shl 24;
-end;
-
-function MAKEMUSICPOS(order,row: DWORD): DWORD;
-begin
- Result := $80000000 or DWORD(MAKELONG(order,row));
-end;
-
-function BASS_SetEAXPreset(env: Integer): BOOL;
-begin
- case (env) of
- EAX_ENVIRONMENT_GENERIC:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_GENERIC, 0.5, 1.493, 0.5);
- EAX_ENVIRONMENT_PADDEDCELL:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PADDEDCELL, 0.25, 0.1, 0);
- EAX_ENVIRONMENT_ROOM:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ROOM, 0.417, 0.4, 0.666);
- EAX_ENVIRONMENT_BATHROOM:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_BATHROOM, 0.653, 1.499, 0.166);
- EAX_ENVIRONMENT_LIVINGROOM:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_LIVINGROOM, 0.208, 0.478, 0);
- EAX_ENVIRONMENT_STONEROOM:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_STONEROOM, 0.5, 2.309, 0.888);
- EAX_ENVIRONMENT_AUDITORIUM:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_AUDITORIUM, 0.403, 4.279, 0.5);
- EAX_ENVIRONMENT_CONCERTHALL:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CONCERTHALL, 0.5, 3.961, 0.5);
- EAX_ENVIRONMENT_CAVE:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CAVE, 0.5, 2.886, 1.304);
- EAX_ENVIRONMENT_ARENA:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ARENA, 0.361, 7.284, 0.332);
- EAX_ENVIRONMENT_HANGAR:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_HANGAR, 0.5, 10.0, 0.3);
- EAX_ENVIRONMENT_CARPETEDHALLWAY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CARPETEDHALLWAY, 0.153, 0.259, 2.0);
- EAX_ENVIRONMENT_HALLWAY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_HALLWAY, 0.361, 1.493, 0);
- EAX_ENVIRONMENT_STONECORRIDOR:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_STONECORRIDOR, 0.444, 2.697, 0.638);
- EAX_ENVIRONMENT_ALLEY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ALLEY, 0.25, 1.752, 0.776);
- EAX_ENVIRONMENT_FOREST:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_FOREST, 0.111, 3.145, 0.472);
- EAX_ENVIRONMENT_CITY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CITY, 0.111, 2.767, 0.224);
- EAX_ENVIRONMENT_MOUNTAINS:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_MOUNTAINS, 0.194, 7.841, 0.472);
- EAX_ENVIRONMENT_QUARRY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_QUARRY, 1, 1.499, 0.5);
- EAX_ENVIRONMENT_PLAIN:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PLAIN, 0.097, 2.767, 0.224);
- EAX_ENVIRONMENT_PARKINGLOT:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PARKINGLOT, 0.208, 1.652, 1.5);
- EAX_ENVIRONMENT_SEWERPIPE:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_SEWERPIPE, 0.652, 2.886, 0.25);
- EAX_ENVIRONMENT_UNDERWATER:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_UNDERWATER, 1, 1.499, 0);
- EAX_ENVIRONMENT_DRUGGED:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_DRUGGED, 0.875, 8.392, 1.388);
- EAX_ENVIRONMENT_DIZZY:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_DIZZY, 0.139, 17.234, 0.666);
- EAX_ENVIRONMENT_PSYCHOTIC:
- Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PSYCHOTIC, 0.486, 7.563, 0.806);
- else
- Result := FALSE;
- end;
-end;
-
-end.
-// END OF FILE /////////////////////////////////////////////////////////////////
-
diff --git a/Game/Code/lib/bass/lazarustest.lpi b/Game/Code/lib/bass/lazarustest.lpi
deleted file mode 100644
index fd0f1c9c..00000000
--- a/Game/Code/lib/bass/lazarustest.lpi
+++ /dev/null
@@ -1,192 +0,0 @@
-<?xml version="1.0"?>
-<CONFIG>
- <ProjectOptions>
- <PathDelim Value="\"/>
- <Version Value="5"/>
- <General>
- <MainUnit Value="0"/>
- <TargetFileExt Value=".exe"/>
- <ActiveEditorIndexAtStart Value="0"/>
- </General>
- <VersionInfo>
- <ProjectVersion Value=""/>
- <Language Value=""/>
- <CharSet Value=""/>
- </VersionInfo>
- <PublishOptions>
- <Version Value="2"/>
- <IgnoreBinaries Value="False"/>
- <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
- <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
- </PublishOptions>
- <RunParams>
- <local>
- <FormatVersion Value="1"/>
- <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
- </local>
- </RunParams>
- <Units Count="2">
- <Unit0>
- <Filename Value="lazarustest.lpr"/>
- <IsPartOfProject Value="True"/>
- <UnitName Value="lazarustest"/>
- <CursorPos X="38" Y="33"/>
- <TopLine Value="10"/>
- <EditorIndex Value="0"/>
- <UsageCount Value="20"/>
- <Loaded Value="True"/>
- </Unit0>
- <Unit1>
- <Filename Value="delphi\bass.pas"/>
- <UnitName Value="Bass"/>
- <CursorPos X="12" Y="539"/>
- <TopLine Value="589"/>
- <EditorIndex Value="1"/>
- <UsageCount Value="10"/>
- <Loaded Value="True"/>
- </Unit1>
- </Units>
- <JumpHistory Count="30" HistoryIndex="29">
- <Position1>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="778" Column="59" TopLine="758"/>
- </Position1>
- <Position2>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="779" Column="84" TopLine="759"/>
- </Position2>
- <Position3>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="780" Column="63" TopLine="760"/>
- </Position3>
- <Position4>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="781" Column="114" TopLine="761"/>
- </Position4>
- <Position5>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="782" Column="72" TopLine="762"/>
- </Position5>
- <Position6>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="783" Column="58" TopLine="763"/>
- </Position6>
- <Position7>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="784" Column="52" TopLine="764"/>
- </Position7>
- <Position8>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="785" Column="78" TopLine="765"/>
- </Position8>
- <Position9>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="786" Column="76" TopLine="766"/>
- </Position9>
- <Position10>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="787" Column="54" TopLine="767"/>
- </Position10>
- <Position11>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="788" Column="55" TopLine="768"/>
- </Position11>
- <Position12>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="789" Column="53" TopLine="769"/>
- </Position12>
- <Position13>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="790" Column="52" TopLine="770"/>
- </Position13>
- <Position14>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="791" Column="53" TopLine="771"/>
- </Position14>
- <Position15>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="792" Column="72" TopLine="772"/>
- </Position15>
- <Position16>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="793" Column="60" TopLine="773"/>
- </Position16>
- <Position17>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="795" Column="92" TopLine="775"/>
- </Position17>
- <Position18>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="796" Column="75" TopLine="776"/>
- </Position18>
- <Position19>
- <Filename Value="lazarustest.lpr"/>
- <Caret Line="11" Column="42" TopLine="1"/>
- </Position19>
- <Position20>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="786" Column="42" TopLine="762"/>
- </Position20>
- <Position21>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="1" Column="1" TopLine="1"/>
- </Position21>
- <Position22>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="74" Column="73" TopLine="54"/>
- </Position22>
- <Position23>
- <Filename Value="delphi\bass.pas"/>
- <Caret Line="82" Column="15" TopLine="62"/>
- </Position23>
- <Position24>
- <Filename Value="lazarustest.lpr"/>
- <Caret Line="43" Column="67" TopLine="6"/>
- </Position24>
- <Position25>
- <Filename Value="lazarustest.lpr"/>
- <Caret Line="7" Column="9" TopLine="1"/>
- </Position25>
- <Position26>
- <Filename Value="lazarustest.lpr"/>
- <Caret Line="16" Column="12" TopLine="1"/>
- </Position26>
- <Position27>
- <Filename Value="lazarustest.lpr"/>
- <Caret Line="7" Column="1" TopLine="1"/>
- </Position27>
- <Position28>
- <Filename Value="lazarustest.lpr"/>
- <Caret Line="15" Column="9" TopLine="1"/>
- </Position28>
- <Position29>
- <Filename Value="lazarustest.lpr"/>
- <Caret Line="17" Column="58" TopLine="1"/>
- </Position29>
- <Position30>
- <Filename Value="lazarustest.lpr"/>
- <Caret Line="22" Column="32" TopLine="2"/>
- </Position30>
- </JumpHistory>
- </ProjectOptions>
- <CompilerOptions>
- <Version Value="5"/>
- <PathDelim Value="\"/>
- <CodeGeneration>
- <Generate Value="Faster"/>
- </CodeGeneration>
- <Other>
- <CompilerPath Value="$(CompPath)"/>
- </Other>
- </CompilerOptions>
- <Debugging>
- <Exceptions Count="2">
- <Item1>
- <Name Value="ECodetoolError"/>
- </Item1>
- <Item2>
- <Name Value="EFOpenError"/>
- </Item2>
- </Exceptions>
- </Debugging>
-</CONFIG>
diff --git a/Game/Code/lib/bass/lazarustest.lpr b/Game/Code/lib/bass/lazarustest.lpr
deleted file mode 100644
index 6faee86d..00000000
--- a/Game/Code/lib/bass/lazarustest.lpr
+++ /dev/null
@@ -1,51 +0,0 @@
-program lazarustest;
-
-{$mode objfpc}{$H+}
-
-uses
- sysutils,
- bass in 'delphi\bass.pas'
- { add your units here };
-
-var
- chan : HSTREAM;
-
-begin
- // check the correct BASS was loaded
- if (hi(BASS_GetVersion) <> BASSVERSION) then
- begin
- writeln('An incorrect version of BASS.DLL was loaded');
- Halt;
- end;
-
- //init BASS
- if not BASS_Init(0,44100,0,0,nil) then
- writeln('Can''t initialize device');
-
- //creating stream
- if fileexists( 'music.mp3 ') then
- begin
- chan := BASS_StreamCreateFile(FALSE,pchar('music.mp3'),0,0,0);
- if chan = 0 then
- begin
- chan := BASS_MusicLoad(False, pchar('music.mp3'), 0, 0, BASS_MUSIC_RAMPS or BASS_MUSIC_POSRESET or BASS_MUSIC_PRESCAN, 0);
- if (chan = 0) then
- begin
- writeln('Can''t play file');
- Exit;
- end;
- end;
-
- BASS_ChannelPlay(chan,FALSE); // start playing
- end
- else
- begin
- writeln( 'music.mp3 not found.. could not test mp3 playback');
- end;
-
- BASS_Free();
- writeln( 'Seems BASS is compatible with lazarus :) ');
-
-
-end.
-
diff --git a/Game/Code/lib/bass/libbass.dylib b/Game/Code/lib/bass/libbass.dylib
deleted file mode 100755
index 1168bd07..00000000
--- a/Game/Code/lib/bass/libbass.dylib
+++ /dev/null
Binary files differ