From 1ba91d5a0e1df7419a561f6dcf16a0839509a5e7 Mon Sep 17 00:00:00 2001 From: k-m_schindler Date: Wed, 27 Aug 2008 13:28:57 +0000 Subject: Reordering of the directories[1]: moving Game/Code to src git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1302 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/lib/bass/bass.chm | Bin 210668 -> 0 bytes Game/Code/lib/bass/bass.txt | 1658 --------------------------- Game/Code/lib/bass/delphi/bass-macosx.patch | 368 ------ Game/Code/lib/bass/delphi/bass.pas | 865 -------------- 4 files changed, 2891 deletions(-) delete mode 100644 Game/Code/lib/bass/bass.chm delete mode 100644 Game/Code/lib/bass/bass.txt delete mode 100644 Game/Code/lib/bass/delphi/bass-macosx.patch delete mode 100644 Game/Code/lib/bass/delphi/bass.pas (limited to 'Game/Code/lib/bass') diff --git a/Game/Code/lib/bass/bass.chm b/Game/Code/lib/bass/bass.chm deleted file mode 100644 index 79ab64a2..00000000 Binary files a/Game/Code/lib/bass/bass.chm and /dev/null differ diff --git a/Game/Code/lib/bass/bass.txt b/Game/Code/lib/bass/bass.txt deleted file mode 100644 index cdaa7bf0..00000000 --- a/Game/Code/lib/bass/bass.txt +++ /dev/null @@ -1,1658 +0,0 @@ -BASS 2.4 -Copyright (c) 1999-2008 Un4seen Developments Ltd. 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 examples... - 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.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 - 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 - MULTI.EXE - NETRADIO.EXE - RECTEST.EXE - SPEAKERS.EXE - SPECTRUM.EXE - SYNTH.EXE - WRITEWAV.EXE -VB\ Visual Basic API and examples... - BASS.BAS BASS Visual Basic module - 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 examples... - 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 examples... - BASS.INC BASS MASM include file - PLAYER\ Example MOD player - PLAYER.EXE - PLAYER.ASM - RSRC.RC - TOOLBAR.BMP - COMPILE.BAT - -NOTE: To run the example EXEs, first you will have to copy BASS.DLL into the - same directory as them. - -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, with both "push" and "pull" systems - -* File streams - MP3/MP2/MP1/OGG/WAV/AIFF file streaming - -* Internet file streaming - stream files from the internet, including Shout/Icecast - -* User file streaming - stream 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 MOD musics can be outputted in any way you want - -* Speaker assignment - assign streams and MOD musics to specific speakers - -* High precision synchronization - synchronize events in your software to the streams and MOD musics - -* 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 - -* 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. - -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 - -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 - - -Licence -======= -BASS is free for non-commercial use. If you are a non-commercial entity -(eg. an individual) and you 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. 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. - -Commercial licensing --------------------- -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 are an individual (not a corporation) 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 does not 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.4 - 2/4/2008 --------------- -* "Push" streaming - STREAMPROC_PUSH (BASS_StreamCreate "proc") - BASS_StreamPutData - LIVEFX and MULTI examples updated -* "Push" buffered file streaming - STREAMFILE_BUFFERPUSH (BASS_StreamCreateFileUser system) - BASS_StreamPutFileData -* STREAMFILEPROC replaced by table of callbacks for each file operation - BASS_FILEPROCS (FILECLOSEPROC/FILELENPROC/FILEREADPROC/FILESEEKPROC) - STREAMFILEPROC *removed* -* 64-bit file positioning - BASS_SampleLoad - BASS_MusicLoad - BASS_StreamCreateFile - BASS_StreamGetFilePosition -* File buffer level retrieval - BASS_FILEPOS_BUFFER (BASS_StreamGetFilePosition mode) -* Sinc interpolated MOD music mixing - BASS_MUSIC_SINCINTER (BASS_MusicLoad flag) -* MO3 v2.4 support - BASS_MusicLoad -* MOD orders positioning incorporated into channel functions - BASS_ChannelGetLength - BASS_ChannelSetPosition - BASS_ChannelGetPosition - BASS_MusicGetOrderPosition *removed* - BASS_MusicGetOrders *removed* -* Channel attribute functions consolidated - BASS_ChannelSetAttribute - BASS_ChannelGetAttribute - BASS_ChannelSlideAttribute - BASS_ChannelIsSliding - BASS_ChannelSetAttributes *removed* - BASS_ChannelGetAttributes *removed* - BASS_ChannelSlideAttributes *removed* - BASS_ChannelSetEAXMix *removed* - BASS_ChannelGetEAXMix *removed* - BASS_MusicSetAttribute *removed* - BASS_MusicGetAttribute *removed* -* Floating-point volume and panning - BASS_SetVolume - BASS_GetVolume - BASS_RecordSetInput - BASS_RecordGetInput - BASS_ATTRIB_PAN/VOL (BASS_ChannelGet/Set/SlideAttribute options) - BASS_ATTRIB_MUSIC_VOL_CHAN/INST (BASS_ChannelGet/Set/SlideAttribute options) - BASS_SAMPLE (volume/pan/outvol members) - BASS_CONFIG_MAXVOL *removed* - BASSTEST and RECTEST examples updated -* Output device volume control on Vista (as on other OS) - BASS_SetVolume - BASS_GetVolume -* Multiple update threads - BASS_CONFIG_UPDATETHREADS - BASSTEST example updated -* Global volume range increased to 10000 - BASS_CONFIG_GVOL_SAMPLE/STREAM/MUSIC (BASS_SetConfig options) - BASSTEST example updated -* Setting and retrieving of a sample's data - BASS_SampleSetData - BASS_SampleGetData - BASS_SampleCreate - BASS_SampleCreateDone *removed* -* Channel flag setting mask - BASS_ChannelFlags - BASS_ChannelSetFlags *removed* - SPEAKERS example updated -* 256 sample FFT - BASS_DATA_FFT256 (BASS_ChannelGetDat flag) -* Channel locking to prevent access by other threads - BASS_ChannelLock -* Manual channel buffer updating - BASS_ChannelUpdate - BASS_ChannelPreBuf *removed* -* Configurable manual update length - BASS_Update -* Extended device information retrieval and detection of new/removed devices - BASS_GetDeviceInfo - BASS_RecordGetDeviceInfo - BASS_DEVICEINFO structure - BASS_GetDeviceDescription *removed* - BASS_RecordGetDeviceDescription *removed* - BASS_INFO (driver member) *removed* - BASS_RECORDINFO (driver member) *removed* - MULTI example updated -* Default device change tracking on Windows (as on OSX) - BASS_Init - BASS_RecordInit -* Speaker detection from Windows control panel - BASS_DEVICE_CPSPEAKERS (BASS_Init flag) -* Channel automatically stopped & resumed for DX8 effects - BASS_ChannelSetFX - BASS_ChannelRemoveFX -* "double" precision position conversion - BASS_ChannelBytes2Seconds - BASS_ChannelSeconds2Bytes -* Separate config functions for pointers - BASS_SetConfigPtr - BASS_GetConfigPtr - BASS_CONFIG_NET_AGENT/PROXY (BASS_SetConfigPtr options) -* Configurable file format verification length - BASS_CONFIG_VERIFY (BASS_SetConfig option) -* Stream filename retrieval - BASS_CHANNELINFO (file member) -* Channel sample retrieval - BASS_CHANNELINFO (sample member) -* META syncs no longer receive metadata in the "data" parameter - BASS_SYNC_META (BASS_ChannelSetSync type) -* Separate sync for OGG logical bitstream changes (instead of BASS_SYNC_META) - BASS_SYNC_OGG_CHANGE (BASS_ChannelSetSync type) - NETRADIO example updated (C version) -* Message syncing removed (use PostMessage instead) - BASS_SYNC_MESSAGE (BASS_ChannelSetSync flag) *removed* -* Data retrieval from stopped/paused channels - BASS_ChannelGetData -* Callback "user" parameters changed to pointers - BASS_StreamCreate / STREAMPROC - BASS_StreamCreateFileUser - BASS_StreamCreateURL / DOWNLOADPROC - BASS_RecordStart / RECORDPROC - BASS_ChannelSetDSP / DSPPROC - BASS_ChannelSetSync / SYNCPROC - -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 -======= -Ogg Vorbis decoding is based on libogg/vorbis, -Copyright (c) 2002-2004 Xiph.org Foundation - -CHMOX is (c) 2004 Stéphane Boisson, http://chmox.sourceforge.net/ - -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 - - -Bug reports, Suggestions, Comments, Enquiries, etc... -===================================================== -If you have any of the aforementioned please visit the BASS forum at -the website. If you can't find an answer there, you can also email: - - bass@un4seen.com - diff --git a/Game/Code/lib/bass/delphi/bass-macosx.patch b/Game/Code/lib/bass/delphi/bass-macosx.patch deleted file mode 100644 index f79b3925..00000000 --- a/Game/Code/lib/bass/delphi/bass-macosx.patch +++ /dev/null @@ -1,368 +0,0 @@ ---- D:/daten/bass.pas Sun Mar 23 18:58:56 2008 -+++ D:/daten/Projekte/UltraStarDX/Kopie von trunk/Game/Code/lib/bass/delphi/bass.pas Sat May 03 03:52:56 2008 -@@ -13,8 +13,20 @@ - - interface - -+{$IFDEF FPC} -+ {$PACKRECORDS C} -+{$ENDIF} -+ -+{$IFDEF MSWINDOWS} -+ {$DEFINE DLL_STDCALL} -+{$ELSE} -+ {$DEFINE DLL_CDECL} -+{$ENDIF} -+ -+{$IFDEF MSWINDOWS} - uses - Windows; -+{$ENDIF} - - const - BASSVERSION = $204; // API version -@@ -231,6 +243,7 @@ - BASS_3DALG_FULL = 2; - BASS_3DALG_LIGHT = 3; - -+{$IFDEF MSWINDOWS} - // EAX environments, use with BASS_SetEAXParameters - EAX_ENVIRONMENT_GENERIC = 0; - EAX_ENVIRONMENT_PADDEDCELL = 1; -@@ -260,6 +273,7 @@ - EAX_ENVIRONMENT_PSYCHOTIC = 25; - // total number of environments - EAX_ENVIRONMENT_COUNT = 26; -+{$ENDIF} - - BASS_STREAMPROC_END = $80000000; // end of user stream flag - -@@ -487,10 +501,10 @@ - end; - - // User file stream callback functions -- FILECLOSEPROC = procedure(user: Pointer); stdcall; -- FILELENPROC = function(user: Pointer): QWORD; stdcall; -- FILEREADPROC = function(buffer: Pointer; length: DWORD; user: Pointer): DWORD; stdcall; -- FILESEEKPROC = function(offset: QWORD; user: Pointer): BOOL; stdcall; -+ FILECLOSEPROC = procedure(user: Pointer); {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} -+ FILELENPROC = function(user: Pointer): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} -+ FILEREADPROC = function(buffer: Pointer; length: DWORD; user: Pointer): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} -+ FILESEEKPROC = function(offset: QWORD; user: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} - - BASS_FILEPROCS = record - close: FILECLOSEPROC; -@@ -578,7 +592,7 @@ - end; - - // callback function types -- STREAMPROC = function(handle: HSTREAM; buffer: Pointer; length: DWORD; user: Pointer): DWORD; stdcall; -+ STREAMPROC = function(handle: HSTREAM; buffer: Pointer; length: DWORD; user: Pointer): 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 -@@ -593,12 +607,12 @@ - - const - // special STREAMPROCs -- STREAMPROC_DUMMY : STREAMPROC = STREAMPROC(0); // "dummy" stream -- STREAMPROC_PUSH : STREAMPROC = STREAMPROC(-1); // push stream -+ STREAMPROC_DUMMY {: STREAMPROC} = Pointer(0); // "dummy" stream -+ STREAMPROC_PUSH {: STREAMPROC} = Pointer(-1); // push stream - - type - -- DOWNLOADPROC = procedure(buffer: Pointer; length: DWORD; user: Pointer); stdcall; -+ DOWNLOADPROC = procedure(buffer: Pointer; length: DWORD; user: Pointer); {$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 -@@ -606,7 +620,7 @@ - user : The 'user' parameter value given when calling BASS_StreamCreateURL - } - -- SYNCPROC = procedure(handle: HSYNC; channel, data: DWORD; user: Pointer); stdcall; -+ SYNCPROC = procedure(handle: HSYNC; channel, data: DWORD; user: Pointer); {$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 -@@ -618,7 +632,7 @@ - user : The 'user' parameter given when calling BASS_ChannelSetSync - } - -- DSPPROC = procedure(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: Pointer); stdcall; -+ DSPPROC = procedure(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: Pointer); {$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 -@@ -630,7 +644,7 @@ - user : The 'user' parameter given when calling BASS_ChannelSetDSP - } - -- RECORDPROC = function(handle: HRECORD; buffer: Pointer; length: DWORD; user: Pointer): BOOL; stdcall; -+ RECORDPROC = function(handle: HRECORD; buffer: Pointer; length: DWORD; user: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} - { - Recording callback function. - handle : The recording handle -@@ -643,116 +657,130 @@ - - // Functions - const -+{$IFDEF MSWINDOWS} - bassdll = 'bass.dll'; -- --function BASS_SetConfig(option, value: DWORD): BOOL; stdcall; external bassdll; --function BASS_GetConfig(option: DWORD): DWORD; stdcall; external bassdll; --function BASS_SetConfigPtr(option: DWORD; value: Pointer): BOOL; stdcall; external bassdll; --function BASS_GetConfigPtr(option: DWORD): Pointer; stdcall; external bassdll; --function BASS_GetVersion: DWORD; stdcall; external bassdll; --function BASS_ErrorGetCode: Integer; stdcall; external bassdll; --function BASS_GetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; 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(length: DWORD): 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: FLOAT): BOOL; stdcall; external bassdll; --function BASS_GetVolume: FLOAT; 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: QWORD; length, flags, freq: DWORD): HMUSIC; stdcall; external bassdll; --function BASS_MusicFree(handle: HMUSIC): BOOL; stdcall; external bassdll; -- --function BASS_SampleLoad(mem: BOOL; f: Pointer; offset: QWORD; length, max, flags: DWORD): HSAMPLE; stdcall; external bassdll; --function BASS_SampleCreate(length, freq, chans, max, flags: DWORD): HSAMPLE; stdcall; external bassdll; --function BASS_SampleFree(handle: HSAMPLE): BOOL; stdcall; external bassdll; --function BASS_SampleSetData(handle: HSAMPLE; buffer: Pointer): BOOL; stdcall; external bassdll; --function BASS_SampleGetData(handle: HSAMPLE; buffer: Pointer): 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: STREAMPROC; user: Pointer): HSTREAM; stdcall; external bassdll; --function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length: QWORD; flags: DWORD): HSTREAM; stdcall; external bassdll; --function BASS_StreamCreateURL(url: PChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: Pointer):HSTREAM; stdcall; external bassdll; --function BASS_StreamCreateFileUser(system, flags: DWORD; var procs: BASS_FILEPROCS; user: Pointer): HSTREAM; stdcall; external bassdll; --function BASS_StreamFree(handle: HSTREAM): BOOL; stdcall; external bassdll; --function BASS_StreamGetFilePosition(handle: HSTREAM; mode: DWORD): QWORD; stdcall; external bassdll; --function BASS_StreamPutData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; stdcall; external bassdll; --function BASS_StreamPutFileData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; stdcall; external bassdll; -- --function BASS_RecordGetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; 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; flags: DWORD; volume: FLOAT): BOOL; stdcall; external bassdll; --function BASS_RecordGetInput(input: Integer; var volume: FLOAT): DWORD; stdcall; external bassdll; --function BASS_RecordStart(freq, chans, flags: DWORD; proc: RECORDPROC; user: Pointer): HRECORD; stdcall; external bassdll; -- --function BASS_ChannelBytes2Seconds(handle: DWORD; pos: QWORD): Double; stdcall;external bassdll; --function BASS_ChannelSeconds2Bytes(handle: DWORD; pos: Double): 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_ChannelFlags(handle, flags, mask: DWORD): DWORD; stdcall; external bassdll; --function BASS_ChannelUpdate(handle, length: DWORD): BOOL; stdcall; external bassdll; --function BASS_ChannelLock(handle: DWORD; lock: BOOL): 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_ChannelSetAttribute(handle, attrib: DWORD; value: FLOAT): BOOL; stdcall; external bassdll; --function BASS_ChannelGetAttribute(handle, attrib: DWORD; var value: FLOAT): BOOL; stdcall; external bassdll; --function BASS_ChannelSlideAttribute(handle, attrib: DWORD; value: FLOAT; time: DWORD): BOOL; stdcall; external bassdll; --function BASS_ChannelIsSliding(handle, attrib: DWORD): BOOL; 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, mode: DWORD): QWORD; stdcall; external bassdll; --function BASS_ChannelSetPosition(handle: DWORD; pos: QWORD; mode: DWORD): BOOL; stdcall; external bassdll; --function BASS_ChannelGetPosition(handle, mode: 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; type_: DWORD; param: QWORD; proc: SYNCPROC; user: Pointer): HSYNC; stdcall; external bassdll; --function BASS_ChannelRemoveSync(handle: DWORD; sync: HSYNC): BOOL; stdcall; external bassdll; --function BASS_ChannelSetDSP(handle: DWORD; proc: DSPPROC; user: Pointer; priority: Integer): HDSP; stdcall; external bassdll; --function BASS_ChannelRemoveDSP(handle: DWORD; dsp: HDSP): 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, type_: 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; -+{$ENDIF} -+{$IFDEF DARWIN} -+ bassdll = 'libbass.dylib'; -+{$ENDIF} -+ -+function BASS_SetConfig(option, value: DWORD): BOOL; {$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_SetConfigPtr(option: DWORD; value: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_GetConfigPtr(option: DWORD): Pointer; {$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_ErrorGetCode: Integer; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_GetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+{$IFDEF MSWINDOWS} -+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; -+{$ELSE} -+function BASS_Init(device: Integer; freq, flags: DWORD; win: Pointer; clsid: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+{$ENDIF} -+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; -+{$IFDEF MSWINDOWS} -+function BASS_GetDSoundObject(obj: DWORD): Pointer; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+{$ENDIF} -+function BASS_GetInfo(var info: BASS_INFO): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_Update(length: DWORD): 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: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_GetVolume: FLOAT; {$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: QWORD; 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_SampleLoad(mem: BOOL; f: Pointer; offset: QWORD; 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): 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_SampleSetData(handle: HSAMPLE; buffer: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_SampleGetData(handle: HSAMPLE; buffer: Pointer): 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: STREAMPROC; user: Pointer): HSTREAM; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length: QWORD; 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: Pointer):HSTREAM; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_StreamCreateFileUser(system, flags: DWORD; var procs: BASS_FILEPROCS; user: Pointer): 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): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_StreamPutData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_StreamPutFileData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+ -+function BASS_RecordGetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; {$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; flags: DWORD; volume: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_RecordGetInput(input: Integer; var volume: FLOAT): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_RecordStart(freq, chans, flags: DWORD; proc: RECORDPROC; user: Pointer): HRECORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+ -+function BASS_ChannelBytes2Seconds(handle: DWORD; pos: QWORD): Double; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}external bassdll; -+function BASS_ChannelSeconds2Bytes(handle: DWORD; pos: Double): 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_ChannelFlags(handle, flags, mask: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_ChannelUpdate(handle, length: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_ChannelLock(handle: DWORD; lock: BOOL): 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_ChannelSetAttribute(handle, attrib: DWORD; value: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_ChannelGetAttribute(handle, attrib: DWORD; var value: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_ChannelSlideAttribute(handle, attrib: DWORD; value: FLOAT; time: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_ChannelIsSliding(handle, attrib: DWORD): BOOL; {$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, mode: DWORD): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_ChannelSetPosition(handle: DWORD; pos: QWORD; mode: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -+function BASS_ChannelGetPosition(handle, mode: 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; type_: DWORD; param: QWORD; proc: SYNCPROC; user: Pointer): 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: Pointer; 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; -+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, type_: 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; -+{$IFDEF MSWINDOWS} - function BASS_SetEAXPreset(env: Integer): BOOL; - { - This function is defined in the implementation part of this unit. -@@ -760,7 +788,7 @@ - to set the predefined EAX environments. - env : a EAX_ENVIRONMENT_xxx constant - } -- -+{$ENDIF} - - implementation - -@@ -769,6 +797,7 @@ - Result := n shl 24; - end; - -+{$IFDEF MSWINDOWS} - function BASS_SetEAXPreset(env: Integer): BOOL; - begin - case (env) of -@@ -828,6 +857,7 @@ - Result := FALSE; - end; - end; -+{$ENDIF} - - end. - // END OF FILE ///////////////////////////////////////////////////////////////// diff --git a/Game/Code/lib/bass/delphi/bass.pas b/Game/Code/lib/bass/delphi/bass.pas deleted file mode 100644 index 3a342a78..00000000 --- a/Game/Code/lib/bass/delphi/bass.pas +++ /dev/null @@ -1,865 +0,0 @@ -{ - BASS 2.4 Delphi unit - Copyright (c) 1999-2008 Un4seen Developments Ltd. - - See the BASS.CHM file for more detailed documentation - - How to install - -------------- - Copy BASS.PAS to the \LIB subdirectory of your Delphi path or your project dir -} - -unit Bass; - -interface - -{$IFDEF FPC} - {$PACKRECORDS C} -{$ENDIF} - -{$IFDEF MSWINDOWS} - {$DEFINE DLL_STDCALL} -{$ELSE} - {$DEFINE DLL_CDECL} -{$ENDIF} - -{$IFDEF MSWINDOWS} -uses - Windows; -{$ENDIF} - -const - BASSVERSION = $204; // API version - BASSVERSIONTEXT = '2.4'; - - // 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_ErrorGetCode() - 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 - BASS_ERROR_HANDLE = 5; // invalid handle - BASS_ERROR_FORMAT = 6; // unsupported sample format - BASS_ERROR_POSITION = 7; // invalid 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_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_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_ENDED = 45; // the channel/file has ended - BASS_ERROR_UNKNOWN = -1; // some other mystery problem - - // BASS_SetConfig options - BASS_CONFIG_BUFFER = 0; - BASS_CONFIG_UPDATEPERIOD = 1; - 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_PASSIVE = 18; - BASS_CONFIG_REC_BUFFER = 19; - BASS_CONFIG_NET_PLAYLIST = 21; - BASS_CONFIG_MUSIC_VIRTUAL = 22; - BASS_CONFIG_VERIFY = 23; - BASS_CONFIG_UPDATETHREADS = 24; - - // BASS_SetConfigPtr options - BASS_CONFIG_NET_AGENT = 16; - BASS_CONFIG_NET_PROXY = 17; - - // 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 - BASS_DEVICE_LATENCY = 256; // calculate device latency (BASS_INFO struct) - BASS_DEVICE_CPSPEAKERS = 1024; // detect speakers via Windows control panel - 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_DEVICEINFO flags - BASS_DEVICE_ENABLED = 1; - BASS_DEVICE_DEFAULT = 2; - BASS_DEVICE_INIT = 4; - - // 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 - 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 - - BASS_SAMPLE_8BITS = 1; // 8 bit - BASS_SAMPLE_FLOAT = 256; // 32-bit floating-point - BASS_SAMPLE_MONO = 2; // mono - BASS_SAMPLE_LOOP = 4; // looped - BASS_SAMPLE_3D = 8; // 3D functionality - BASS_SAMPLE_SOFTWARE = 16; // not using hardware mixing - BASS_SAMPLE_MUTEMAX = 32; // mute at max distance (3D only) - BASS_SAMPLE_VAM = 64; // DX7 voice allocation & management - BASS_SAMPLE_FX = 128; // old implementation of DX8 effects - 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/length (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; - BASS_MUSIC_MONO = BASS_SAMPLE_MONO; - BASS_MUSIC_LOOP = BASS_SAMPLE_LOOP; - BASS_MUSIC_3D = BASS_SAMPLE_3D; - BASS_MUSIC_FX = BASS_SAMPLE_FX; - BASS_MUSIC_AUTOFREE = BASS_STREAM_AUTOFREE; - BASS_MUSIC_DECODE = BASS_STREAM_DECODE; - 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 sample mixing - BASS_MUSIC_SINCINTER = $800000; // sinc interpolated sample 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 & management flags - BASS_VAM_HARDWARE = 1; - BASS_VAM_SOFTWARE = 2; - BASS_VAM_TERM_TIME = 4; - BASS_VAM_TERM_DIST = 8; - BASS_VAM_TERM_PRIO = 16; - - // 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; // position is relative to the listener - BASS_3DMODE_OFF = 2; // no 3D processing - - // software 3D mixing algorithms (used with BASS_CONFIG_3DALGORITHM) - BASS_3DALG_DEFAULT = 0; - BASS_3DALG_OFF = 1; - BASS_3DALG_FULL = 2; - BASS_3DALG_LIGHT = 3; - -{$IFDEF MSWINDOWS} - // 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; -{$ENDIF} - - BASS_STREAMPROC_END = $80000000; // end of user stream flag - - - // BASS_StreamCreateFileUser file systems - STREAMFILE_NOBUFFER = 0; - STREAMFILE_BUFFER = 1; - STREAMFILE_BUFFERPUSH = 2; - - // BASS_StreamPutFileData options - BASS_FILEDATA_END = 0; // end & close the file - - // 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; - BASS_FILEPOS_BUFFER = 5; - - // BASS_ChannelSetSync types - BASS_SYNC_POS = 0; - BASS_SYNC_END = 2; - BASS_SYNC_META = 4; - BASS_SYNC_SLIDE = 5; - BASS_SYNC_STALL = 6; - BASS_SYNC_DOWNLOAD = 7; - BASS_SYNC_FREE = 8; - BASS_SYNC_SETPOS = 11; - BASS_SYNC_MUSICPOS = 10; - BASS_SYNC_MUSICINST = 1; - BASS_SYNC_MUSICFX = 3; - BASS_SYNC_OGG_CHANGE = 12; - 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; - - // Channel attributes - BASS_ATTRIB_FREQ = 1; - BASS_ATTRIB_VOL = 2; - BASS_ATTRIB_PAN = 3; - BASS_ATTRIB_EAXMIX = 4; - BASS_ATTRIB_MUSIC_AMPLIFY = $100; - BASS_ATTRIB_MUSIC_PANSEP = $101; - BASS_ATTRIB_MUSIC_PSCALER = $102; - BASS_ATTRIB_MUSIC_BPM = $103; - BASS_ATTRIB_MUSIC_SPEED = $104; - BASS_ATTRIB_MUSIC_VOL_GLOBAL = $105; - BASS_ATTRIB_MUSIC_VOL_CHAN = $200; // + channel # - BASS_ATTRIB_MUSIC_VOL_INST = $300; // + instrument # - - // 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_FFT256 = $80000000; // 256 sample FFT - BASS_DATA_FFT512 = $80000001; // 512 FFT - BASS_DATA_FFT1024 = $80000002; // 1024 FFT - BASS_DATA_FFT2048 = $80000003; // 2048 FFT - BASS_DATA_FFT4096 = $80000004; // 4096 FFT - BASS_DATA_FFT8192 = $80000005; // 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 : series of null-terminated strings - BASS_TAG_HTTP = 3; // HTTP headers : series of null-terminated strings - BASS_TAG_ICY = 4; // ICY headers : series 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 : series 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_ChannelGetLength/GetPosition/SetPosition modes - BASS_POS_BYTE = 0; // byte position - BASS_POS_MUSIC_ORDER = 1; // order.row position, MAKELONG(order,row) - - // BASS_RecordSetInput flags - BASS_INPUT_OFF = $10000; - BASS_INPUT_ON = $20000; - - 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_FX_DX8_CHORUS = 0; - BASS_FX_DX8_COMPRESSOR = 1; - BASS_FX_DX8_DISTORTION = 2; - BASS_FX_DX8_ECHO = 3; - BASS_FX_DX8_FLANGER = 4; - BASS_FX_DX8_GARGLE = 5; - BASS_FX_DX8_I3DL2REVERB = 6; - BASS_FX_DX8_PARAMEQ = 7; - BASS_FX_DX8_REVERB = 8; - - BASS_DX8_PHASE_NEG_180 = 0; - BASS_DX8_PHASE_NEG_90 = 1; - BASS_DX8_PHASE_ZERO = 2; - BASS_DX8_PHASE_90 = 3; - BASS_DX8_PHASE_180 = 4; - -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 - - // Device info structure - BASS_DEVICEINFO = record - name: PChar; // description - driver: PChar; // driver - flags: DWORD; - end; - - 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; // BASS_Init "flags" parameter - speakers: DWORD; // number of speakers available - freq: DWORD; // current output rate (OSX only) - end; - - // Recording device info structure - 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; - - // Sample info structure - BASS_SAMPLE = record - freq: DWORD; // default playback rate - volume: FLOAT; // default volume (0-100) - pan: FLOAT; // 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 - 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: FLOAT; // delta-volume outside the projection cone - vam: DWORD; // voice allocation/management flags (BASS_VAM_xxx) - priority: DWORD; // priority (0=lowest, $ffffffff=highest) - end; - - // Channel info structure - 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 - sample: HSAMPLE; // sample - filename: PChar; // filename - 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; - - // 3D vector (for 3D positions/velocities/orientations) - BASS_3DVECTOR = record - x: FLOAT; // +=right, -=left - y: FLOAT; // +=up, -=down - z: FLOAT; // +=front, -=behind - end; - - // User file stream callback functions - FILECLOSEPROC = procedure(user: Pointer); {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} - FILELENPROC = function(user: Pointer): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} - FILEREADPROC = function(buffer: Pointer; length: DWORD; user: Pointer): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} - FILESEEKPROC = function(offset: QWORD; user: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} - - BASS_FILEPROCS = record - close: FILECLOSEPROC; - length: FILELENPROC; - read: FILEREADPROC; - seek: FILESEEKPROC; - end; - - BASS_DX8_CHORUS = record - fWetDryMix: FLOAT; - fDepth: FLOAT; - fFeedback: FLOAT; - fFrequency: FLOAT; - lWaveform: DWORD; // 0=triangle, 1=sine - fDelay: FLOAT; - lPhase: DWORD; // BASS_DX8_PHASE_xxx - end; - - BASS_DX8_COMPRESSOR = record - fGain: FLOAT; - fAttack: FLOAT; - fRelease: FLOAT; - fThreshold: FLOAT; - fRatio: FLOAT; - fPredelay: FLOAT; - end; - - BASS_DX8_DISTORTION = record - fGain: FLOAT; - fEdge: FLOAT; - fPostEQCenterFrequency: FLOAT; - fPostEQBandwidth: FLOAT; - fPreLowpassCutoff: FLOAT; - end; - - BASS_DX8_ECHO = record - fWetDryMix: FLOAT; - fFeedback: FLOAT; - fLeftDelay: FLOAT; - fRightDelay: FLOAT; - lPanDelay: BOOL; - end; - - BASS_DX8_FLANGER = record - fWetDryMix: FLOAT; - fDepth: FLOAT; - fFeedback: FLOAT; - fFrequency: FLOAT; - lWaveform: DWORD; // 0=triangle, 1=sine - fDelay: FLOAT; - lPhase: DWORD; // BASS_DX8_PHASE_xxx - end; - - BASS_DX8_GARGLE = record - dwRateHz: DWORD; // Rate of modulation in hz - dwWaveShape: DWORD; // 0=triangle, 1=square - end; - - BASS_DX8_I3DL2REVERB = 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_DX8_PARAMEQ = record - fCenter: FLOAT; - fBandwidth: FLOAT; - fGain: FLOAT; - end; - - BASS_DX8_REVERB = 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: Pointer): 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. - } - -const - // special STREAMPROCs - STREAMPROC_DUMMY {: STREAMPROC} = Pointer(0); // "dummy" stream - STREAMPROC_PUSH {: STREAMPROC} = Pointer(-1); // push stream - -type - - DOWNLOADPROC = procedure(buffer: Pointer; length: DWORD; user: Pointer); {$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: Pointer); {$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: Pointer); {$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; buffer: Pointer; length: DWORD; user: Pointer): 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'; - {$linklib libbass} -{$ENDIF} - -function BASS_SetConfig(option, value: DWORD): BOOL; {$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_SetConfigPtr(option: DWORD; value: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_GetConfigPtr(option: DWORD): Pointer; {$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_ErrorGetCode: Integer; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_GetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -{$IFDEF MSWINDOWS} -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; -{$ELSE} -function BASS_Init(device: Integer; freq, flags: DWORD; win: Pointer; clsid: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -{$ENDIF} -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; -{$IFDEF MSWINDOWS} -function BASS_GetDSoundObject(obj: DWORD): Pointer; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -{$ENDIF} -function BASS_GetInfo(var info: BASS_INFO): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_Update(length: DWORD): 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: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_GetVolume: FLOAT; {$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: QWORD; 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_SampleLoad(mem: BOOL; f: Pointer; offset: QWORD; 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): 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_SampleSetData(handle: HSAMPLE; buffer: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_SampleGetData(handle: HSAMPLE; buffer: Pointer): 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: STREAMPROC; user: Pointer): HSTREAM; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length: QWORD; 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: Pointer):HSTREAM; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_StreamCreateFileUser(system, flags: DWORD; var procs: BASS_FILEPROCS; user: Pointer): 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): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_StreamPutData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_StreamPutFileData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; - -function BASS_RecordGetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; {$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; flags: DWORD; volume: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_RecordGetInput(input: Integer; var volume: FLOAT): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_RecordStart(freq, chans, flags: DWORD; proc: RECORDPROC; user: Pointer): HRECORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; - -function BASS_ChannelBytes2Seconds(handle: DWORD; pos: QWORD): Double; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}external bassdll; -function BASS_ChannelSeconds2Bytes(handle: DWORD; pos: Double): 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_ChannelFlags(handle, flags, mask: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_ChannelUpdate(handle, length: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_ChannelLock(handle: DWORD; lock: BOOL): 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_ChannelSetAttribute(handle, attrib: DWORD; value: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_ChannelGetAttribute(handle, attrib: DWORD; var value: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_ChannelSlideAttribute(handle, attrib: DWORD; value: FLOAT; time: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_ChannelIsSliding(handle, attrib: DWORD): BOOL; {$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, mode: DWORD): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_ChannelSetPosition(handle: DWORD; pos: QWORD; mode: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll; -function BASS_ChannelGetPosition(handle, mode: 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; type_: DWORD; param: QWORD; proc: SYNCPROC; user: Pointer): 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: Pointer; 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; -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, type_: 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; -{$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; - -{$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 ///////////////////////////////////////////////////////////////// - -- cgit v1.2.3