more type checking; more debug; still doesn't work :(

This commit is contained in:
chayleaf 2023-03-11 20:20:25 +07:00
parent 4b8865c3aa
commit d6c349df6f
6 changed files with 3330 additions and 483 deletions

View file

@ -1,106 +1,106 @@
# Generated from bass.dll by winedump
1 stdcall BASS_Apply3D() BASS_BASS_Apply3D
2 stdcall BASS_ChannelBytes2Seconds( long long ) BASS_BASS_ChannelBytes2Seconds
3 stdcall BASS_ChannelFlags( long long long ) BASS_BASS_ChannelFlags
4 stdcall BASS_ChannelGet3DAttributes( long ptr ptr ptr ptr ptr ptr ) BASS_BASS_ChannelGet3DAttributes
5 stdcall BASS_ChannelGet3DPosition( long ptr ptr ptr ) BASS_BASS_ChannelGet3DPosition
6 stdcall BASS_ChannelGetAttribute( long long ptr ) BASS_BASS_ChannelGetAttribute
7 stdcall BASS_ChannelGetAttributeEx( long long ptr long ) BASS_BASS_ChannelGetAttributeEx
8 stdcall BASS_ChannelGetData( long ptr long ) BASS_BASS_ChannelGetData
9 stdcall BASS_ChannelGetDevice( long ) BASS_BASS_ChannelGetDevice
10 stdcall BASS_ChannelGetInfo( long ptr ) BASS_BASS_ChannelGetInfo
11 stdcall BASS_ChannelGetLength( long long ) BASS_BASS_ChannelGetLength
12 stdcall BASS_ChannelGetLevel( long ) BASS_BASS_ChannelGetLevel
13 stdcall BASS_ChannelGetLevelEx( long ptr long long ) BASS_BASS_ChannelGetLevelEx
14 stdcall BASS_ChannelGetPosition( long long ) BASS_BASS_ChannelGetPosition
15 stdcall BASS_ChannelGetTags( long long ) BASS_BASS_ChannelGetTags
16 stdcall BASS_ChannelIsActive( long ) BASS_BASS_ChannelIsActive
17 stdcall BASS_ChannelIsSliding( long long ) BASS_BASS_ChannelIsSliding
18 stdcall BASS_ChannelLock( long long ) BASS_BASS_ChannelLock
19 stdcall BASS_ChannelPause( long ) BASS_BASS_ChannelPause
20 stdcall BASS_ChannelPlay( long long ) BASS_BASS_ChannelPlay
21 stdcall BASS_ChannelRemoveDSP( long ptr ) BASS_BASS_ChannelRemoveDSP
22 stdcall BASS_ChannelRemoveFX( long ptr ) BASS_BASS_ChannelRemoveFX
23 stdcall BASS_ChannelRemoveLink( long long ) BASS_BASS_ChannelRemoveLink
24 stdcall BASS_ChannelRemoveSync( long ptr ) BASS_BASS_ChannelRemoveSync
25 stdcall BASS_ChannelSeconds2Bytes( long double ) BASS_BASS_ChannelSeconds2Bytes
26 stdcall BASS_ChannelSet3DAttributes( long long long long long long long ) BASS_BASS_ChannelSet3DAttributes
27 stdcall BASS_ChannelSet3DPosition( long ptr ptr ptr ) BASS_BASS_ChannelSet3DPosition
28 stdcall BASS_ChannelSetAttribute( long long long ) BASS_BASS_ChannelSetAttribute
29 stdcall BASS_ChannelSetAttributeEx( long long ptr long ) BASS_BASS_ChannelSetAttributeEx
30 stdcall BASS_ChannelSetDSP( long ptr ptr long ) BASS_BASS_ChannelSetDSP
31 stdcall BASS_ChannelSetDevice( long long ) BASS_BASS_ChannelSetDevice
32 stdcall BASS_ChannelSetFX( long long long ) BASS_BASS_ChannelSetFX
33 stdcall BASS_ChannelSetLink( long long ) BASS_BASS_ChannelSetLink
34 stdcall BASS_ChannelSetPosition( long long long ) BASS_BASS_ChannelSetPosition
35 stdcall BASS_ChannelSetSync( long long long ptr ptr ) BASS_BASS_ChannelSetSync
36 stdcall BASS_ChannelSlideAttribute( long long long long ) BASS_BASS_ChannelSlideAttribute
37 stdcall BASS_ChannelStop( long ) BASS_BASS_ChannelStop
38 stdcall BASS_ChannelUpdate( long long ) BASS_BASS_ChannelUpdate
39 stdcall BASS_ErrorGetCode() BASS_BASS_ErrorGetCode
40 stdcall BASS_FXGetParameters( ptr ptr ) BASS_BASS_FXGetParameters
41 stdcall BASS_FXReset( long ) BASS_BASS_FXReset
42 stdcall BASS_FXSetParameters( ptr ptr ) BASS_BASS_FXSetParameters
43 stdcall BASS_FXSetPriority( ptr long ) BASS_BASS_FXSetPriority
44 stdcall BASS_Free() BASS_BASS_Free
45 stdcall BASS_Get3DFactors( ptr ptr ptr ) BASS_BASS_Get3DFactors
46 stdcall BASS_Get3DPosition( ptr ptr ptr ptr ) BASS_BASS_Get3DPosition
47 stdcall BASS_GetCPU() BASS_BASS_GetCPU
48 stdcall BASS_GetConfig( long ) BASS_BASS_GetConfig
49 stdcall BASS_GetConfigPtr( long ) BASS_BASS_GetConfigPtr
50 stdcall BASS_GetDSoundObject( long ) BASS_BASS_GetDSoundObject
51 stdcall BASS_GetDevice() BASS_BASS_GetDevice
52 stdcall BASS_GetDeviceInfo( long ptr ) BASS_BASS_GetDeviceInfo
53 stdcall BASS_GetEAXParameters( long long long long ) BASS_BASS_GetEAXParameters
54 stdcall BASS_GetInfo( ptr ) BASS_BASS_GetInfo
55 stdcall BASS_GetVersion() BASS_BASS_GetVersion
56 stdcall BASS_GetVolume() BASS_BASS_GetVolume
57 stdcall BASS_Init( long long long ptr ptr ) BASS_BASS_Init
58 stdcall BASS_IsStarted() BASS_BASS_IsStarted
59 stdcall BASS_MusicFree( ptr ) BASS_BASS_MusicFree
60 stdcall BASS_MusicLoad( long ptr long long long long ) BASS_BASS_MusicLoad
61 stdcall BASS_Pause() BASS_BASS_Pause
62 stdcall BASS_PluginFree( ptr ) BASS_BASS_PluginFree
63 stdcall BASS_PluginGetInfo( ptr ) BASS_BASS_PluginGetInfo
64 stdcall BASS_PluginLoad( str long ) BASS_BASS_PluginLoad
65 stdcall BASS_RecordFree() BASS_BASS_RecordFree
66 stdcall BASS_RecordGetDevice() BASS_BASS_RecordGetDevice
67 stdcall BASS_RecordGetDeviceInfo( long ptr ) BASS_BASS_RecordGetDeviceInfo
68 stdcall BASS_RecordGetInfo( ptr ) BASS_BASS_RecordGetInfo
69 stdcall BASS_RecordGetInput( long ptr ) BASS_BASS_RecordGetInput
70 stdcall BASS_RecordGetInputName( long ) BASS_BASS_RecordGetInputName
71 stdcall BASS_RecordInit( long ) BASS_BASS_RecordInit
72 stdcall BASS_RecordSetDevice( long ) BASS_BASS_RecordSetDevice
73 stdcall BASS_RecordSetInput( long long long ) BASS_BASS_RecordSetInput
74 stdcall BASS_RecordStart( long long long ptr ptr ) BASS_BASS_RecordStart
75 stdcall BASS_SampleCreate( long long long long long ) BASS_BASS_SampleCreate
76 stdcall BASS_SampleFree( ptr ) BASS_BASS_SampleFree
77 stdcall BASS_SampleGetChannel( ptr long ) BASS_BASS_SampleGetChannel
78 stdcall BASS_SampleGetChannels( ptr ptr ) BASS_BASS_SampleGetChannels
79 stdcall BASS_SampleGetData( ptr ptr ) BASS_BASS_SampleGetData
80 stdcall BASS_SampleGetInfo( ptr ptr ) BASS_BASS_SampleGetInfo
81 stdcall BASS_SampleLoad( long ptr long long long long ) BASS_BASS_SampleLoad
82 stdcall BASS_SampleSetData( ptr ptr ) BASS_BASS_SampleSetData
83 stdcall BASS_SampleSetInfo( ptr ptr ) BASS_BASS_SampleSetInfo
84 stdcall BASS_SampleStop( ptr ) BASS_BASS_SampleStop
85 stdcall BASS_Set3DFactors( long long long ) BASS_BASS_Set3DFactors
86 stdcall BASS_Set3DPosition( ptr ptr ptr ptr ) BASS_BASS_Set3DPosition
87 stdcall BASS_SetConfig( long long ) BASS_BASS_SetConfig
88 stdcall BASS_SetConfigPtr( long ptr ) BASS_BASS_SetConfigPtr
89 stdcall BASS_SetDevice( long ) BASS_BASS_SetDevice
90 stdcall BASS_SetEAXParameters( long long long long ) BASS_BASS_SetEAXParameters
91 stdcall BASS_SetVolume( long ) BASS_BASS_SetVolume
92 stdcall BASS_Start() BASS_BASS_Start
93 stdcall BASS_Stop() BASS_BASS_Stop
94 stdcall BASS_StreamCreate( long long long str ptr ) BASS_BASS_StreamCreate
95 stdcall BASS_StreamCreateFile( long ptr long long long ) BASS_BASS_StreamCreateFile
96 stdcall BASS_StreamCreateFileUser( long long ptr ptr ) BASS_BASS_StreamCreateFileUser
97 stdcall BASS_StreamCreateURL( str long long ptr ptr ) BASS_BASS_StreamCreateURL
98 stdcall BASS_StreamFree( str ) BASS_BASS_StreamFree
99 stdcall BASS_StreamGetFilePosition( str long ) BASS_BASS_StreamGetFilePosition
100 stdcall BASS_StreamPutData( str ptr long ) BASS_BASS_StreamPutData
101 stdcall BASS_StreamPutFileData( str ptr long ) BASS_BASS_StreamPutFileData
102 stdcall BASS_Update( long ) BASS_BASS_Update
1 stdcall BASS_Apply3D() WIN_BASS_Apply3D
2 stdcall BASS_ChannelBytes2Seconds( long long ) WIN_BASS_ChannelBytes2Seconds
3 stdcall BASS_ChannelFlags( long long long ) WIN_BASS_ChannelFlags
4 stdcall BASS_ChannelGet3DAttributes( long ptr ptr ptr ptr ptr ptr ) WIN_BASS_ChannelGet3DAttributes
5 stdcall BASS_ChannelGet3DPosition( long ptr ptr ptr ) WIN_BASS_ChannelGet3DPosition
6 stdcall BASS_ChannelGetAttribute( long long ptr ) WIN_BASS_ChannelGetAttribute
7 stdcall BASS_ChannelGetAttributeEx( long long ptr long ) WIN_BASS_ChannelGetAttributeEx
8 stdcall BASS_ChannelGetData( long ptr long ) WIN_BASS_ChannelGetData
9 stdcall BASS_ChannelGetDevice( long ) WIN_BASS_ChannelGetDevice
10 stdcall BASS_ChannelGetInfo( long ptr ) WIN_BASS_ChannelGetInfo
11 stdcall BASS_ChannelGetLength( long long ) WIN_BASS_ChannelGetLength
12 stdcall BASS_ChannelGetLevel( long ) WIN_BASS_ChannelGetLevel
13 stdcall BASS_ChannelGetLevelEx( long ptr long long ) WIN_BASS_ChannelGetLevelEx
14 stdcall BASS_ChannelGetPosition( long long ) WIN_BASS_ChannelGetPosition
15 stdcall BASS_ChannelGetTags( long long ) WIN_BASS_ChannelGetTags
16 stdcall BASS_ChannelIsActive( long ) WIN_BASS_ChannelIsActive
17 stdcall BASS_ChannelIsSliding( long long ) WIN_BASS_ChannelIsSliding
18 stdcall BASS_ChannelLock( long long ) WIN_BASS_ChannelLock
19 stdcall BASS_ChannelPause( long ) WIN_BASS_ChannelPause
20 stdcall BASS_ChannelPlay( long long ) WIN_BASS_ChannelPlay
21 stdcall BASS_ChannelRemoveDSP( long ptr ) WIN_BASS_ChannelRemoveDSP
22 stdcall BASS_ChannelRemoveFX( long ptr ) WIN_BASS_ChannelRemoveFX
23 stdcall BASS_ChannelRemoveLink( long long ) WIN_BASS_ChannelRemoveLink
24 stdcall BASS_ChannelRemoveSync( long ptr ) WIN_BASS_ChannelRemoveSync
25 stdcall BASS_ChannelSeconds2Bytes( long double ) WIN_BASS_ChannelSeconds2Bytes
26 stdcall BASS_ChannelSet3DAttributes( long long long long long long long ) WIN_BASS_ChannelSet3DAttributes
27 stdcall BASS_ChannelSet3DPosition( long ptr ptr ptr ) WIN_BASS_ChannelSet3DPosition
28 stdcall BASS_ChannelSetAttribute( long long long ) WIN_BASS_ChannelSetAttribute
29 stdcall BASS_ChannelSetAttributeEx( long long ptr long ) WIN_BASS_ChannelSetAttributeEx
30 stdcall BASS_ChannelSetDSP( long ptr ptr long ) WIN_BASS_ChannelSetDSP
31 stdcall BASS_ChannelSetDevice( long long ) WIN_BASS_ChannelSetDevice
32 stdcall BASS_ChannelSetFX( long long long ) WIN_BASS_ChannelSetFX
33 stdcall BASS_ChannelSetLink( long long ) WIN_BASS_ChannelSetLink
34 stdcall BASS_ChannelSetPosition( long long long ) WIN_BASS_ChannelSetPosition
35 stdcall BASS_ChannelSetSync( long long long ptr ptr ) WIN_BASS_ChannelSetSync
36 stdcall BASS_ChannelSlideAttribute( long long long long ) WIN_BASS_ChannelSlideAttribute
37 stdcall BASS_ChannelStop( long ) WIN_BASS_ChannelStop
38 stdcall BASS_ChannelUpdate( long long ) WIN_BASS_ChannelUpdate
39 stdcall BASS_ErrorGetCode() WIN_BASS_ErrorGetCode
40 stdcall BASS_FXGetParameters( ptr ptr ) WIN_BASS_FXGetParameters
41 stdcall BASS_FXReset( long ) WIN_BASS_FXReset
42 stdcall BASS_FXSetParameters( ptr ptr ) WIN_BASS_FXSetParameters
43 stdcall BASS_FXSetPriority( ptr long ) WIN_BASS_FXSetPriority
44 stdcall BASS_Free() WIN_BASS_Free
45 stdcall BASS_Get3DFactors( ptr ptr ptr ) WIN_BASS_Get3DFactors
46 stdcall BASS_Get3DPosition( ptr ptr ptr ptr ) WIN_BASS_Get3DPosition
47 stdcall BASS_GetCPU() WIN_BASS_GetCPU
48 stdcall BASS_GetConfig( long ) WIN_BASS_GetConfig
49 stdcall BASS_GetConfigPtr( long ) WIN_BASS_GetConfigPtr
50 stdcall BASS_GetDSoundObject( long ) WIN_BASS_GetDSoundObject
51 stdcall BASS_GetDevice() WIN_BASS_GetDevice
52 stdcall BASS_GetDeviceInfo( long ptr ) WIN_BASS_GetDeviceInfo
53 stdcall BASS_GetEAXParameters( long long long long ) WIN_BASS_GetEAXParameters
54 stdcall BASS_GetInfo( ptr ) WIN_BASS_GetInfo
55 stdcall BASS_GetVersion() WIN_BASS_GetVersion
56 stdcall BASS_GetVolume() WIN_BASS_GetVolume
57 stdcall BASS_Init( long long long ptr ptr ) WIN_BASS_Init
58 stdcall BASS_IsStarted() WIN_BASS_IsStarted
59 stdcall BASS_MusicFree( ptr ) WIN_BASS_MusicFree
60 stdcall BASS_MusicLoad( long ptr long long long long ) WIN_BASS_MusicLoad
61 stdcall BASS_Pause() WIN_BASS_Pause
62 stdcall BASS_PluginFree( ptr ) WIN_BASS_PluginFree
63 stdcall BASS_PluginGetInfo( ptr ) WIN_BASS_PluginGetInfo
64 stdcall BASS_PluginLoad( str long ) WIN_BASS_PluginLoad
65 stdcall BASS_RecordFree() WIN_BASS_RecordFree
66 stdcall BASS_RecordGetDevice() WIN_BASS_RecordGetDevice
67 stdcall BASS_RecordGetDeviceInfo( long ptr ) WIN_BASS_RecordGetDeviceInfo
68 stdcall BASS_RecordGetInfo( ptr ) WIN_BASS_RecordGetInfo
69 stdcall BASS_RecordGetInput( long ptr ) WIN_BASS_RecordGetInput
70 stdcall BASS_RecordGetInputName( long ) WIN_BASS_RecordGetInputName
71 stdcall BASS_RecordInit( long ) WIN_BASS_RecordInit
72 stdcall BASS_RecordSetDevice( long ) WIN_BASS_RecordSetDevice
73 stdcall BASS_RecordSetInput( long long long ) WIN_BASS_RecordSetInput
74 stdcall BASS_RecordStart( long long long ptr ptr ) WIN_BASS_RecordStart
75 stdcall BASS_SampleCreate( long long long long long ) WIN_BASS_SampleCreate
76 stdcall BASS_SampleFree( ptr ) WIN_BASS_SampleFree
77 stdcall BASS_SampleGetChannel( ptr long ) WIN_BASS_SampleGetChannel
78 stdcall BASS_SampleGetChannels( ptr ptr ) WIN_BASS_SampleGetChannels
79 stdcall BASS_SampleGetData( ptr ptr ) WIN_BASS_SampleGetData
80 stdcall BASS_SampleGetInfo( ptr ptr ) WIN_BASS_SampleGetInfo
81 stdcall BASS_SampleLoad( long ptr long long long long ) WIN_BASS_SampleLoad
82 stdcall BASS_SampleSetData( ptr ptr ) WIN_BASS_SampleSetData
83 stdcall BASS_SampleSetInfo( ptr ptr ) WIN_BASS_SampleSetInfo
84 stdcall BASS_SampleStop( ptr ) WIN_BASS_SampleStop
85 stdcall BASS_Set3DFactors( long long long ) WIN_BASS_Set3DFactors
86 stdcall BASS_Set3DPosition( ptr ptr ptr ptr ) WIN_BASS_Set3DPosition
87 stdcall BASS_SetConfig( long long ) WIN_BASS_SetConfig
88 stdcall BASS_SetConfigPtr( long ptr ) WIN_BASS_SetConfigPtr
89 stdcall BASS_SetDevice( long ) WIN_BASS_SetDevice
90 stdcall BASS_SetEAXParameters( long long long long ) WIN_BASS_SetEAXParameters
91 stdcall BASS_SetVolume( long ) WIN_BASS_SetVolume
92 stdcall BASS_Start() WIN_BASS_Start
93 stdcall BASS_Stop() WIN_BASS_Stop
94 stdcall BASS_StreamCreate( long long long str ptr ) WIN_BASS_StreamCreate
95 stdcall BASS_StreamCreateFile( long ptr long long long ) WIN_BASS_StreamCreateFile
96 stdcall BASS_StreamCreateFileUser( long long ptr ptr ) WIN_BASS_StreamCreateFileUser
97 stdcall BASS_StreamCreateURL( str long long ptr ptr ) WIN_BASS_StreamCreateURL
98 stdcall BASS_StreamFree( str ) WIN_BASS_StreamFree
99 stdcall BASS_StreamGetFilePosition( str long ) WIN_BASS_StreamGetFilePosition
100 stdcall BASS_StreamPutData( str ptr long ) WIN_BASS_StreamPutData
101 stdcall BASS_StreamPutFileData( str ptr long ) WIN_BASS_StreamPutFileData
102 stdcall BASS_Update( long ) WIN_BASS_Update
103 stdcall wine_bass_user_data_remove_export( long long ) wine_bass_user_data_remove_ex
104 stdcall wine_bass_user_data_add_export( long long ptr ) wine_bass_user_data_add_ex

View file

@ -5,21 +5,36 @@
#ifndef __WINE_BASS_DLL_H
#define __WINE_BASS_DLL_H
#include "linux_bass.h"
#define WIN32_LEAN_AND_MEAN
#define BASSDLLVER_2415 20415
#define BASSDLLVER_2416 20416
#define BASSDLLVER_2417 20417
#define BASSDLLVER BASSDLLVER_2415
#if BASSDLLVER == BASSDLLVER_2415
#include "windows_bass_2_4_15.h"
#elif BASSDLLVER == BASSDLLVER_2417
#include "windows_bass_2_4_17.h"
#else
#error "unknown bass version"
#endif
#include "windef.h"
#include <windows.h>
#include "windows.h"
#include "wine/debug.h"
#include "winbase.h"
#include "winnt.h"
#include "winternl.h"
/*
// to make the ABI compatible
#undef CALLBACK
#undef WINAPI
#define CALLBACK
#define WINAPI
#include "bass.h"
typedef QWORD WIN_QWORD;
typedef BASS_3DVECTOR WIN_BASS_3DVECTOR;
typedef HMUSIC WIN_HMUSIC;
@ -57,108 +72,109 @@ typedef struct {
WIN_FILESEEKPROC *seek;
} WIN_BASS_FILEPROCS;
void __stdcall BASS_BASS_Apply3D(void);
double __stdcall BASS_BASS_ChannelBytes2Seconds(DWORD handle, WIN_QWORD pos);
DWORD __stdcall BASS_BASS_ChannelFlags(DWORD handle, DWORD flags, DWORD mask);
BOOL __stdcall BASS_BASS_ChannelGet3DAttributes(DWORD handle, DWORD * mode, float * min, float * max, DWORD * iangle, DWORD * oangle, float * outvol);
BOOL __stdcall BASS_BASS_ChannelGet3DPosition(DWORD handle, WIN_BASS_3DVECTOR * pos, WIN_BASS_3DVECTOR * orient, WIN_BASS_3DVECTOR * vel);
BOOL __stdcall BASS_BASS_ChannelGetAttribute(DWORD handle, DWORD attrib, float * value);
DWORD __stdcall BASS_BASS_ChannelGetAttributeEx(DWORD handle, DWORD attrib, void * value, DWORD size);
DWORD __stdcall BASS_BASS_ChannelGetData(DWORD handle, void * buffer, DWORD length);
DWORD __stdcall BASS_BASS_ChannelGetDevice(DWORD handle);
BOOL __stdcall BASS_BASS_ChannelGetInfo(DWORD handle, WIN_BASS_CHANNELINFO * info);
WIN_QWORD __stdcall BASS_BASS_ChannelGetLength(DWORD handle, DWORD mode);
DWORD __stdcall BASS_BASS_ChannelGetLevel(DWORD handle);
BOOL __stdcall BASS_BASS_ChannelGetLevelEx(DWORD handle, float * levels, float length, DWORD flags);
WIN_QWORD __stdcall BASS_BASS_ChannelGetPosition(DWORD handle, DWORD mode);
const char * __stdcall BASS_BASS_ChannelGetTags(DWORD handle, DWORD tags);
DWORD __stdcall BASS_BASS_ChannelIsActive(DWORD handle);
BOOL __stdcall BASS_BASS_ChannelIsSliding(DWORD handle, DWORD attrib);
BOOL __stdcall BASS_BASS_ChannelLock(DWORD handle, BOOL lock);
BOOL __stdcall BASS_BASS_ChannelPause(DWORD handle);
BOOL __stdcall BASS_BASS_ChannelPlay(DWORD handle, BOOL restart);
BOOL __stdcall BASS_BASS_ChannelRemoveDSP(DWORD handle, WIN_HDSP dsp);
BOOL __stdcall BASS_BASS_ChannelRemoveFX(DWORD handle, WIN_HFX fx);
BOOL __stdcall BASS_BASS_ChannelRemoveLink(DWORD handle, DWORD chan);
BOOL __stdcall BASS_BASS_ChannelRemoveSync(DWORD handle, WIN_HSYNC sync);
WIN_QWORD __stdcall BASS_BASS_ChannelSeconds2Bytes(DWORD handle, double pos);
BOOL __stdcall BASS_BASS_ChannelSet3DAttributes(DWORD handle, int mode, float min, float max, int iangle, int oangle, float outvol);
BOOL __stdcall BASS_BASS_ChannelSet3DPosition(DWORD handle, WIN_BASS_3DVECTOR * pos, WIN_BASS_3DVECTOR * orient, WIN_BASS_3DVECTOR * vel);
BOOL __stdcall BASS_BASS_ChannelSetAttribute(DWORD handle, DWORD attrib, float value);
BOOL __stdcall BASS_BASS_ChannelSetAttributeEx(DWORD handle, DWORD attrib, void * value, DWORD size);
WIN_HDSP __stdcall BASS_BASS_ChannelSetDSP(DWORD handle, WIN_DSPPROC * proc, void * user, int priority);
BOOL __stdcall BASS_BASS_ChannelSetDevice(DWORD handle, DWORD device);
WIN_HFX __stdcall BASS_BASS_ChannelSetFX(DWORD handle, DWORD type, int priority);
BOOL __stdcall BASS_BASS_ChannelSetLink(DWORD handle, DWORD chan);
BOOL __stdcall BASS_BASS_ChannelSetPosition(DWORD handle, WIN_QWORD pos, DWORD mode);
WIN_HSYNC __stdcall BASS_BASS_ChannelSetSync(DWORD handle, DWORD type, WIN_QWORD param, WIN_SYNCPROC * proc, void * user);
BOOL __stdcall BASS_BASS_ChannelSlideAttribute(DWORD handle, DWORD attrib, float value, DWORD time);
BOOL __stdcall BASS_BASS_ChannelStop(DWORD handle);
BOOL __stdcall BASS_BASS_ChannelUpdate(DWORD handle, DWORD length);
int __stdcall BASS_BASS_ErrorGetCode(void);
BOOL __stdcall BASS_BASS_FXGetParameters(WIN_HFX handle, void * params);
BOOL __stdcall BASS_BASS_FXReset(DWORD handle);
BOOL __stdcall BASS_BASS_FXSetParameters(WIN_HFX handle, void * params);
BOOL __stdcall BASS_BASS_FXSetPriority(WIN_HFX handle, int priority);
BOOL __stdcall BASS_BASS_Free(void);
BOOL __stdcall BASS_BASS_Get3DFactors(float * distf, float * rollf, float * doppf);
BOOL __stdcall BASS_BASS_Get3DPosition(WIN_BASS_3DVECTOR * pos, WIN_BASS_3DVECTOR * vel, WIN_BASS_3DVECTOR * front, WIN_BASS_3DVECTOR * top);
float __stdcall BASS_BASS_GetCPU(void);
DWORD __stdcall BASS_BASS_GetConfig(DWORD option);
const void * __stdcall BASS_BASS_GetConfigPtr(DWORD option);
void * __stdcall BASS_BASS_GetDSoundObject(DWORD object);
DWORD __stdcall BASS_BASS_GetDevice(void);
BOOL __stdcall BASS_BASS_GetDeviceInfo(DWORD device, WIN_BASS_DEVICEINFO * info);
BOOL __stdcall BASS_BASS_GetEAXParameters(DWORD * env, float * vol, float * decay, float * damp);
BOOL __stdcall BASS_BASS_GetInfo(WIN_BASS_INFO * info);
DWORD __stdcall BASS_BASS_GetVersion(void);
float __stdcall BASS_BASS_GetVolume(void);
BOOL __stdcall BASS_BASS_Init(int device, DWORD freq, DWORD flags, HWND win, void * dsguid);
DWORD __stdcall BASS_BASS_IsStarted(void);
BOOL __stdcall BASS_BASS_MusicFree(WIN_HMUSIC handle);
WIN_HMUSIC __stdcall BASS_BASS_MusicLoad(BOOL mem, void * file, WIN_QWORD offset, DWORD length, DWORD flags, DWORD freq);
BOOL __stdcall BASS_BASS_Pause(void);
BOOL __stdcall BASS_BASS_PluginFree(WIN_HPLUGIN handle);
const WIN_BASS_PLUGININFO * __stdcall BASS_BASS_PluginGetInfo(WIN_HPLUGIN handle);
WIN_HPLUGIN __stdcall BASS_BASS_PluginLoad(char * file, DWORD flags);
BOOL __stdcall BASS_BASS_RecordFree(void);
DWORD __stdcall BASS_BASS_RecordGetDevice(void);
BOOL __stdcall BASS_BASS_RecordGetDeviceInfo(DWORD device, WIN_BASS_DEVICEINFO * info);
BOOL __stdcall BASS_BASS_RecordGetInfo(WIN_BASS_RECORDINFO * info);
DWORD __stdcall BASS_BASS_RecordGetInput(int input, float * volume);
const char * __stdcall BASS_BASS_RecordGetInputName(int input);
BOOL __stdcall BASS_BASS_RecordInit(int device);
BOOL __stdcall BASS_BASS_RecordSetDevice(DWORD device);
BOOL __stdcall BASS_BASS_RecordSetInput(int input, DWORD flags, float volume);
WIN_HRECORD __stdcall BASS_BASS_RecordStart(DWORD freq, DWORD chans, DWORD flags, WIN_RECORDPROC * proc, void * user);
WIN_HSAMPLE __stdcall BASS_BASS_SampleCreate(DWORD length, DWORD freq, DWORD chans, DWORD max, DWORD flags);
BOOL __stdcall BASS_BASS_SampleFree(WIN_HSAMPLE handle);
DWORD __stdcall BASS_BASS_SampleGetChannel(WIN_HSAMPLE handle, DWORD flags);
DWORD __stdcall BASS_BASS_SampleGetChannels(WIN_HSAMPLE handle, WIN_HCHANNEL * channels);
BOOL __stdcall BASS_BASS_SampleGetData(WIN_HSAMPLE handle, void * buffer);
BOOL __stdcall BASS_BASS_SampleGetInfo(WIN_HSAMPLE handle, WIN_BASS_SAMPLE * info);
WIN_HSAMPLE __stdcall BASS_BASS_SampleLoad(BOOL mem, void * file, WIN_QWORD offset, DWORD length, DWORD max, DWORD flags);
BOOL __stdcall BASS_BASS_SampleSetData(WIN_HSAMPLE handle, void * buffer);
BOOL __stdcall BASS_BASS_SampleSetInfo(WIN_HSAMPLE handle, WIN_BASS_SAMPLE * info);
BOOL __stdcall BASS_BASS_SampleStop(WIN_HSAMPLE handle);
BOOL __stdcall BASS_BASS_Set3DFactors(float distf, float rollf, float doppf);
BOOL __stdcall BASS_BASS_Set3DPosition(WIN_BASS_3DVECTOR * pos, WIN_BASS_3DVECTOR * vel, WIN_BASS_3DVECTOR * front, WIN_BASS_3DVECTOR * top);
BOOL __stdcall BASS_BASS_SetConfig(DWORD option, DWORD value);
BOOL __stdcall BASS_BASS_SetConfigPtr(DWORD option, void * value);
BOOL __stdcall BASS_BASS_SetDevice(DWORD device);
BOOL __stdcall BASS_BASS_SetEAXParameters(int env, float vol, float decay, float damp);
BOOL __stdcall BASS_BASS_SetVolume(float volume);
BOOL __stdcall BASS_BASS_Start(void);
BOOL __stdcall BASS_BASS_Stop(void);
WIN_HSTREAM __stdcall BASS_BASS_StreamCreate(DWORD freq, DWORD chans, DWORD flags, WIN_STREAMPROC * proc, void * user);
WIN_HSTREAM __stdcall BASS_BASS_StreamCreateFile(BOOL mem, void * file, WIN_QWORD offset, WIN_QWORD length, DWORD flags);
WIN_HSTREAM __stdcall BASS_BASS_StreamCreateFileUser(DWORD system, DWORD flags, WIN_BASS_FILEPROCS * proc, void * user);
WIN_HSTREAM __stdcall BASS_BASS_StreamCreateURL(char * url, DWORD offset, DWORD flags, WIN_DOWNLOADPROC * proc, void * user);
BOOL __stdcall BASS_BASS_StreamFree(WIN_HSTREAM handle);
WIN_QWORD __stdcall BASS_BASS_StreamGetFilePosition(WIN_HSTREAM handle, DWORD mode);
DWORD __stdcall BASS_BASS_StreamPutData(WIN_HSTREAM handle, void * buffer, DWORD length);
DWORD __stdcall BASS_BASS_StreamPutFileData(WIN_HSTREAM handle, void * buffer, DWORD length);
BOOL __stdcall BASS_BASS_Update(DWORD length);
void __stdcall WIN_BASS_Apply3D(void);
double __stdcall WIN_BASS_ChannelBytes2Seconds(DWORD handle, WIN_QWORD pos);
DWORD __stdcall WIN_BASS_ChannelFlags(DWORD handle, DWORD flags, DWORD mask);
BOOL __stdcall WIN_BASS_ChannelGet3DAttributes(DWORD handle, DWORD * mode, float * min, float * max, DWORD * iangle, DWORD * oangle, float * outvol);
BOOL __stdcall WIN_BASS_ChannelGet3DPosition(DWORD handle, WIN_BASS_3DVECTOR * pos, WIN_BASS_3DVECTOR * orient, WIN_BASS_3DVECTOR * vel);
BOOL __stdcall WIN_BASS_ChannelGetAttribute(DWORD handle, DWORD attrib, float * value);
DWORD __stdcall WIN_BASS_ChannelGetAttributeEx(DWORD handle, DWORD attrib, void * value, DWORD size);
DWORD __stdcall WIN_BASS_ChannelGetData(DWORD handle, void * buffer, DWORD length);
DWORD __stdcall WIN_BASS_ChannelGetDevice(DWORD handle);
BOOL __stdcall WIN_BASS_ChannelGetInfo(DWORD handle, WIN_BASS_CHANNELINFO * info);
WIN_QWORD __stdcall WIN_BASS_ChannelGetLength(DWORD handle, DWORD mode);
DWORD __stdcall WIN_BASS_ChannelGetLevel(DWORD handle);
BOOL __stdcall WIN_BASS_ChannelGetLevelEx(DWORD handle, float * levels, float length, DWORD flags);
WIN_QWORD __stdcall WIN_BASS_ChannelGetPosition(DWORD handle, DWORD mode);
const char * __stdcall WIN_BASS_ChannelGetTags(DWORD handle, DWORD tags);
DWORD __stdcall WIN_BASS_ChannelIsActive(DWORD handle);
BOOL __stdcall WIN_BASS_ChannelIsSliding(DWORD handle, DWORD attrib);
BOOL __stdcall WIN_BASS_ChannelLock(DWORD handle, BOOL lock);
BOOL __stdcall WIN_BASS_ChannelPause(DWORD handle);
BOOL __stdcall WIN_BASS_ChannelPlay(DWORD handle, BOOL restart);
BOOL __stdcall WIN_BASS_ChannelRemoveDSP(DWORD handle, WIN_HDSP dsp);
BOOL __stdcall WIN_BASS_ChannelRemoveFX(DWORD handle, WIN_HFX fx);
BOOL __stdcall WIN_BASS_ChannelRemoveLink(DWORD handle, DWORD chan);
BOOL __stdcall WIN_BASS_ChannelRemoveSync(DWORD handle, WIN_HSYNC sync);
WIN_QWORD __stdcall WIN_BASS_ChannelSeconds2Bytes(DWORD handle, double pos);
BOOL __stdcall WIN_BASS_ChannelSet3DAttributes(DWORD handle, int mode, float min, float max, int iangle, int oangle, float outvol);
BOOL __stdcall WIN_BASS_ChannelSet3DPosition(DWORD handle, WIN_BASS_3DVECTOR * pos, WIN_BASS_3DVECTOR * orient, WIN_BASS_3DVECTOR * vel);
BOOL __stdcall WIN_BASS_ChannelSetAttribute(DWORD handle, DWORD attrib, float value);
BOOL __stdcall WIN_BASS_ChannelSetAttributeEx(DWORD handle, DWORD attrib, void * value, DWORD size);
WIN_HDSP __stdcall WIN_BASS_ChannelSetDSP(DWORD handle, WIN_DSPPROC * proc, void * user, int priority);
BOOL __stdcall WIN_BASS_ChannelSetDevice(DWORD handle, DWORD device);
WIN_HFX __stdcall WIN_BASS_ChannelSetFX(DWORD handle, DWORD type, int priority);
BOOL __stdcall WIN_BASS_ChannelSetLink(DWORD handle, DWORD chan);
BOOL __stdcall WIN_BASS_ChannelSetPosition(DWORD handle, WIN_QWORD pos, DWORD mode);
WIN_HSYNC __stdcall WIN_BASS_ChannelSetSync(DWORD handle, DWORD type, WIN_QWORD param, WIN_SYNCPROC * proc, void * user);
BOOL __stdcall WIN_BASS_ChannelSlideAttribute(DWORD handle, DWORD attrib, float value, DWORD time);
BOOL __stdcall WIN_BASS_ChannelStop(DWORD handle);
BOOL __stdcall WIN_BASS_ChannelUpdate(DWORD handle, DWORD length);
int __stdcall WIN_BASS_ErrorGetCode(void);
BOOL __stdcall WIN_BASS_FXGetParameters(WIN_HFX handle, void * params);
BOOL __stdcall WIN_BASS_FXReset(DWORD handle);
BOOL __stdcall WIN_BASS_FXSetParameters(WIN_HFX handle, void * params);
BOOL __stdcall WIN_BASS_FXSetPriority(WIN_HFX handle, int priority);
BOOL __stdcall WIN_BASS_Free(void);
BOOL __stdcall WIN_BASS_Get3DFactors(float * distf, float * rollf, float * doppf);
BOOL __stdcall WIN_BASS_Get3DPosition(WIN_BASS_3DVECTOR * pos, WIN_BASS_3DVECTOR * vel, WIN_BASS_3DVECTOR * front, WIN_BASS_3DVECTOR * top);
float __stdcall WIN_BASS_GetCPU(void);
DWORD __stdcall WIN_BASS_GetConfig(DWORD option);
const void * __stdcall WIN_BASS_GetConfigPtr(DWORD option);
void * __stdcall WIN_BASS_GetDSoundObject(DWORD object);
DWORD __stdcall WIN_BASS_GetDevice(void);
BOOL __stdcall WIN_BASS_GetDeviceInfo(DWORD device, WIN_BASS_DEVICEINFO * info);
BOOL __stdcall WIN_BASS_GetEAXParameters(DWORD * env, float * vol, float * decay, float * damp);
BOOL __stdcall WIN_BASS_GetInfo(WIN_BASS_INFO * info);
DWORD __stdcall WIN_BASS_GetVersion(void);
float __stdcall WIN_BASS_GetVolume(void);
BOOL __stdcall WIN_BASS_Init(int device, DWORD freq, DWORD flags, HWND win, void * dsguid);
DWORD __stdcall WIN_BASS_IsStarted(void);
BOOL __stdcall WIN_BASS_MusicFree(WIN_HMUSIC handle);
WIN_HMUSIC __stdcall WIN_BASS_MusicLoad(BOOL mem, void * file, WIN_QWORD offset, DWORD length, DWORD flags, DWORD freq);
BOOL __stdcall WIN_BASS_Pause(void);
BOOL __stdcall WIN_BASS_PluginFree(WIN_HPLUGIN handle);
const WIN_BASS_PLUGININFO * __stdcall WIN_BASS_PluginGetInfo(WIN_HPLUGIN handle);
WIN_HPLUGIN __stdcall WIN_BASS_PluginLoad(char * file, DWORD flags);
BOOL __stdcall WIN_BASS_RecordFree(void);
DWORD __stdcall WIN_BASS_RecordGetDevice(void);
BOOL __stdcall WIN_BASS_RecordGetDeviceInfo(DWORD device, WIN_BASS_DEVICEINFO * info);
BOOL __stdcall WIN_BASS_RecordGetInfo(WIN_BASS_RECORDINFO * info);
DWORD __stdcall WIN_BASS_RecordGetInput(int input, float * volume);
const char * __stdcall WIN_BASS_RecordGetInputName(int input);
BOOL __stdcall WIN_BASS_RecordInit(int device);
BOOL __stdcall WIN_BASS_RecordSetDevice(DWORD device);
BOOL __stdcall WIN_BASS_RecordSetInput(int input, DWORD flags, float volume);
WIN_HRECORD __stdcall WIN_BASS_RecordStart(DWORD freq, DWORD chans, DWORD flags, WIN_RECORDPROC * proc, void * user);
WIN_HSAMPLE __stdcall WIN_BASS_SampleCreate(DWORD length, DWORD freq, DWORD chans, DWORD max, DWORD flags);
BOOL __stdcall WIN_BASS_SampleFree(WIN_HSAMPLE handle);
DWORD __stdcall WIN_BASS_SampleGetChannel(WIN_HSAMPLE handle, DWORD flags);
DWORD __stdcall WIN_BASS_SampleGetChannels(WIN_HSAMPLE handle, WIN_HCHANNEL * channels);
BOOL __stdcall WIN_BASS_SampleGetData(WIN_HSAMPLE handle, void * buffer);
BOOL __stdcall WIN_BASS_SampleGetInfo(WIN_HSAMPLE handle, WIN_BASS_SAMPLE * info);
WIN_HSAMPLE __stdcall WIN_BASS_SampleLoad(BOOL mem, void * file, WIN_QWORD offset, DWORD length, DWORD max, DWORD flags);
BOOL __stdcall WIN_BASS_SampleSetData(WIN_HSAMPLE handle, void * buffer);
BOOL __stdcall WIN_BASS_SampleSetInfo(WIN_HSAMPLE handle, WIN_BASS_SAMPLE * info);
BOOL __stdcall WIN_BASS_SampleStop(WIN_HSAMPLE handle);
BOOL __stdcall WIN_BASS_Set3DFactors(float distf, float rollf, float doppf);
BOOL __stdcall WIN_BASS_Set3DPosition(WIN_BASS_3DVECTOR * pos, WIN_BASS_3DVECTOR * vel, WIN_BASS_3DVECTOR * front, WIN_BASS_3DVECTOR * top);
BOOL __stdcall WIN_BASS_SetConfig(DWORD option, DWORD value);
BOOL __stdcall WIN_BASS_SetConfigPtr(DWORD option, void * value);
BOOL __stdcall WIN_BASS_SetDevice(DWORD device);
BOOL __stdcall WIN_BASS_SetEAXParameters(int env, float vol, float decay, float damp);
BOOL __stdcall WIN_BASS_SetVolume(float volume);
BOOL __stdcall WIN_BASS_Start(void);
BOOL __stdcall WIN_BASS_Stop(void);
WIN_HSTREAM __stdcall WIN_BASS_StreamCreate(DWORD freq, DWORD chans, DWORD flags, WIN_STREAMPROC * proc, void * user);
WIN_HSTREAM __stdcall WIN_BASS_StreamCreateFile(BOOL mem, void * file, WIN_QWORD offset, WIN_QWORD length, DWORD flags);
WIN_HSTREAM __stdcall WIN_BASS_StreamCreateFileUser(DWORD system, DWORD flags, WIN_BASS_FILEPROCS * proc, void * user);
WIN_HSTREAM __stdcall WIN_BASS_StreamCreateURL(char * url, DWORD offset, DWORD flags, WIN_DOWNLOADPROC * proc, void * user);
BOOL __stdcall WIN_BASS_StreamFree(WIN_HSTREAM handle);
WIN_QWORD __stdcall WIN_BASS_StreamGetFilePosition(WIN_HSTREAM handle, DWORD mode);
DWORD __stdcall WIN_BASS_StreamPutData(WIN_HSTREAM handle, void * buffer, DWORD length);
DWORD __stdcall WIN_BASS_StreamPutFileData(WIN_HSTREAM handle, void * buffer, DWORD length);
BOOL __stdcall WIN_BASS_Update(DWORD length);
*/
/* __stdcall BASS__(); */
BOOL __stdcall wine_bass_user_data_add_ex(DWORD key, DWORD altKey, void *val);

File diff suppressed because it is too large Load diff

1079
bass/linux_bass.h Normal file

File diff suppressed because it is too large Load diff

598
bass/windows_bass_2_4_15.h Normal file
View file

@ -0,0 +1,598 @@
/*
BASS 2.4 C/C++ header file
Copyright (c) 1999-2019 Un4seen Developments Ltd.
See the BASS.CHM file for more detailed documentation
Modified for Wine dll
*/
#ifndef WINBASS_H
#define WINBASS_H
#ifdef WINAPI_FAMILY
#include <winapifamily.h>
#endif
#include <wtypes.h>
typedef unsigned __int64 WIN_QWORD;
#define WIN_LOBYTE(a) LOBYTE(a)
#define WIN_HIBYTE(a) HIBYTE(a)
#define WIN_LOWORD(a) LOWORD(a)
#define WIN_HIWORD(a) HIWORD(a)
#define WIN_MAKEWORD(a,b) MAKEWORD(a,b)
#define WIN_MAKELONG(a,b) MAKELONG(a,b)
#ifdef __cplusplus
extern "C" {
#endif
#define WIN_BASSVERSION 0x204
#define WIN_BASSVERSIONTEXT "2.4"
#ifdef __cplusplus
#define WIN_BASS_UNICODE 0x80000000
#endif
#ifndef WIN_BASSDEF
#define WIN_BASSDEF(f) WINAPI f
#else
#define NOBASSOVERLOADS
#endif
typedef DWORD WIN_HMUSIC;
typedef DWORD WIN_HSAMPLE;
typedef DWORD WIN_HCHANNEL;
typedef DWORD WIN_HSTREAM;
typedef DWORD WIN_HRECORD;
typedef DWORD WIN_HSYNC;
typedef DWORD WIN_HDSP;
typedef DWORD WIN_HFX;
typedef DWORD WIN_HPLUGIN;
typedef struct {
#if defined(_WIN32_WCE) || (defined(WINAPI_FAMILY) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
const wchar_t *name;
const wchar_t *driver;
#else
const char *name;
const char *driver;
#endif
DWORD flags;
} WIN_BASS_DEVICEINFO;
typedef struct {
DWORD flags;
DWORD hwsize;
DWORD hwfree;
DWORD freesam;
DWORD free3d;
DWORD minrate;
DWORD maxrate;
BOOL eax;
DWORD minbuf;
DWORD dsver;
DWORD latency;
DWORD initflags;
DWORD speakers;
DWORD freq;
} WIN_BASS_INFO;
typedef struct {
DWORD flags;
DWORD formats;
DWORD inputs;
BOOL singlein;
DWORD freq;
} WIN_BASS_RECORDINFO;
typedef struct {
DWORD freq;
float volume;
float pan;
DWORD flags;
DWORD length;
DWORD max;
DWORD origres;
DWORD chans;
DWORD mingap;
DWORD mode3d;
float mindist;
float maxdist;
DWORD iangle;
DWORD oangle;
float outvol;
DWORD vam;
DWORD priority;
} WIN_BASS_SAMPLE;
typedef struct {
DWORD freq;
DWORD chans;
DWORD flags;
DWORD ctype;
DWORD origres;
WIN_HPLUGIN plugin;
WIN_HSAMPLE sample;
const char *filename;
} WIN_BASS_CHANNELINFO;
typedef struct {
DWORD ctype;
#if defined(_WIN32_WCE) || (defined(WINAPI_FAMILY) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
const wchar_t *name;
const wchar_t *exts;
#else
const char *name;
const char *exts;
#endif
} WIN_BASS_PLUGINFORM;
typedef struct {
DWORD version;
DWORD formatc;
const WIN_BASS_PLUGINFORM *formats;
} WIN_BASS_PLUGININFO;
typedef struct WIN_BASS_3DVECTOR {
#ifdef __cplusplus
WIN_BASS_3DVECTOR() {}
WIN_BASS_3DVECTOR(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {}
#endif
float x;
float y;
float z;
} WIN_BASS_3DVECTOR;
enum
{
EAX_ENVIRONMENT_GENERIC,
EAX_ENVIRONMENT_PADDEDCELL,
EAX_ENVIRONMENT_ROOM,
EAX_ENVIRONMENT_BATHROOM,
EAX_ENVIRONMENT_LIVINGROOM,
EAX_ENVIRONMENT_STONEROOM,
EAX_ENVIRONMENT_AUDITORIUM,
EAX_ENVIRONMENT_CONCERTHALL,
EAX_ENVIRONMENT_CAVE,
EAX_ENVIRONMENT_ARENA,
EAX_ENVIRONMENT_HANGAR,
EAX_ENVIRONMENT_CARPETEDHALLWAY,
EAX_ENVIRONMENT_HALLWAY,
EAX_ENVIRONMENT_STONECORRIDOR,
EAX_ENVIRONMENT_ALLEY,
EAX_ENVIRONMENT_FOREST,
EAX_ENVIRONMENT_CITY,
EAX_ENVIRONMENT_MOUNTAINS,
EAX_ENVIRONMENT_QUARRY,
EAX_ENVIRONMENT_PLAIN,
EAX_ENVIRONMENT_PARKINGLOT,
EAX_ENVIRONMENT_SEWERPIPE,
EAX_ENVIRONMENT_UNDERWATER,
EAX_ENVIRONMENT_DRUGGED,
EAX_ENVIRONMENT_DIZZY,
EAX_ENVIRONMENT_PSYCHOTIC,
EAX_ENVIRONMENT_COUNT
};
typedef DWORD (CALLBACK WIN_STREAMPROC)(WIN_HSTREAM handle, void *buffer, DWORD length, void *user);
typedef void (CALLBACK WIN_FILECLOSEPROC)(void *user);
typedef WIN_QWORD (CALLBACK WIN_FILELENPROC)(void *user);
typedef DWORD (CALLBACK WIN_FILEREADPROC)(void *buffer, DWORD length, void *user);
typedef BOOL (CALLBACK WIN_FILESEEKPROC)(WIN_QWORD offset, void *user);
typedef struct {
WIN_FILECLOSEPROC *close;
WIN_FILELENPROC *length;
WIN_FILEREADPROC *read;
WIN_FILESEEKPROC *seek;
} WIN_BASS_FILEPROCS;
typedef void (CALLBACK WIN_DOWNLOADPROC)(const void *buffer, DWORD length, void *user);
typedef void (CALLBACK WIN_SYNCPROC)(WIN_HSYNC handle, DWORD channel, DWORD data, void *user);
typedef void (CALLBACK WIN_DSPPROC)(WIN_HDSP handle, DWORD channel, void *buffer, DWORD length, void *user);
typedef BOOL (CALLBACK WIN_RECORDPROC)(WIN_HRECORD handle, const void *buffer, DWORD length, void *user);
typedef struct {
char id[3];
char title[30];
char artist[30];
char album[30];
char year[4];
char comment[30];
BYTE genre;
} WIN_TAG_ID3;
typedef struct {
const char *key;
const void *data;
DWORD length;
} WIN_TAG_APE_BINARY;
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4200)
#endif
#pragma pack(push,1)
typedef struct {
char Description[256];
char Originator[32];
char OriginatorReference[32];
char OriginationDate[10];
char OriginationTime[8];
WIN_QWORD TimeReference;
WORD Version;
BYTE UMID[64];
BYTE Reserved[190];
#if defined(__GNUC__) && __GNUC__<3
char CodingHistory[0];
#elif 1 // change to 0 if compiler fails the following line
char CodingHistory[];
#else
char CodingHistory[1];
#endif
} WIN_TAG_BEXT;
#pragma pack(pop)
typedef struct
{
DWORD dwUsage;
DWORD dwValue;
} WIN_TAG_CART_TIMER;
typedef struct
{
char Version[4];
char Title[64];
char Artist[64];
char CutID[64];
char ClientID[64];
char Category[64];
char Classification[64];
char OutCue[64];
char StartDate[10];
char StartTime[8];
char EndDate[10];
char EndTime[8];
char ProducerAppID[64];
char ProducerAppVersion[64];
char UserDef[64];
DWORD dwLevelReference;
WIN_TAG_CART_TIMER PostTimer[8];
char Reserved[276];
char URL[1024];
#if defined(__GNUC__) && __GNUC__<3
char TagText[0];
#elif 1 // change to 0 if compiler fails the following line
char TagText[];
#else
char TagText[1];
#endif
} WIN_TAG_CART;
typedef struct
{
DWORD dwName;
DWORD dwPosition;
DWORD fccChunk;
DWORD dwChunkStart;
DWORD dwBlockStart;
DWORD dwSampleOffset;
} WIN_TAG_CUE_POINT;
typedef struct
{
DWORD dwCuePoints;
#if defined(__GNUC__) && __GNUC__<3
WIN_TAG_CUE_POINT CuePoints[0];
#elif 1 // change to 0 if compiler fails the following line
WIN_TAG_CUE_POINT CuePoints[];
#else
WIN_TAG_CUE_POINT CuePoints[1];
#endif
} WIN_TAG_CUE;
typedef struct
{
DWORD dwIdentifier;
DWORD dwType;
DWORD dwStart;
DWORD dwEnd;
DWORD dwFraction;
DWORD dwPlayCount;
} WIN_TAG_SMPL_LOOP;
typedef struct
{
DWORD dwManufacturer;
DWORD dwProduct;
DWORD dwSamplePeriod;
DWORD dwMIDIUnityNote;
DWORD dwMIDIPitchFraction;
DWORD dwSMPTEFormat;
DWORD dwSMPTEOffset;
DWORD cSampleLoops;
DWORD cbSamplerData;
#if defined(__GNUC__) && __GNUC__<3
WIN_TAG_SMPL_LOOP SampleLoops[0];
#elif 1 // change to 0 if compiler fails the following line
WIN_TAG_SMPL_LOOP SampleLoops[];
#else
WIN_TAG_SMPL_LOOP SampleLoops[1];
#endif
} WIN_TAG_SMPL;
#ifdef _MSC_VER
#pragma warning(pop)
#endif
typedef struct {
DWORD ftype;
DWORD atype;
const char *name;
} WIN_TAG_CA_CODEC;
#ifndef _WIN_WAVEFORMATEX_
#define _WIN_WAVEFORMATEX_
#pragma pack(push,1)
typedef struct WIN_tWAVEFORMATEX
{
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
} WIN_WAVEFORMATEX, *WIN_PWAVEFORMATEX, *WIN_LPWAVEFORMATEX;
typedef const WIN_WAVEFORMATEX *WIN_LPCWAVEFORMATEX;
#pragma pack(pop)
#endif
typedef struct {
float fWetDryMix;
float fDepth;
float fFeedback;
float fFrequency;
DWORD lWaveform;
float fDelay;
DWORD lPhase;
} WIN_BASS_DX8_CHORUS;
typedef struct {
float fGain;
float fAttack;
float fRelease;
float fThreshold;
float fRatio;
float fPredelay;
} WIN_BASS_DX8_COMPRESSOR;
typedef struct {
float fGain;
float fEdge;
float fPostEQCenterFrequency;
float fPostEQBandwidth;
float fPreLowpassCutoff;
} WIN_BASS_DX8_DISTORTION;
typedef struct {
float fWetDryMix;
float fFeedback;
float fLeftDelay;
float fRightDelay;
BOOL lPanDelay;
} WIN_BASS_DX8_ECHO;
typedef struct {
float fWetDryMix;
float fDepth;
float fFeedback;
float fFrequency;
DWORD lWaveform;
float fDelay;
DWORD lPhase;
} WIN_BASS_DX8_FLANGER;
typedef struct {
DWORD dwRateHz;
DWORD dwWaveShape;
} WIN_BASS_DX8_GARGLE;
typedef struct {
int lRoom;
int lRoomHF;
float flRoomRolloffFactor;
float flDecayTime;
float flDecayHFRatio;
int lReflections;
float flReflectionsDelay;
int lReverb;
float flReverbDelay;
float flDiffusion;
float flDensity;
float flHFReference;
} WIN_BASS_DX8_I3DL2REVERB;
typedef struct {
float fCenter;
float fBandwidth;
float fGain;
} WIN_BASS_DX8_PARAMEQ;
typedef struct {
float fInGain;
float fReverbMix;
float fReverbTime;
float fHighFreqRTRatio;
} WIN_BASS_DX8_REVERB;
typedef struct {
float fTarget;
float fCurrent;
float fTime;
DWORD lCurve;
} WIN_BASS_FX_VOLUME_PARAM;
typedef void (CALLBACK WIN_IOSNOTIFYPROC)(DWORD status);
BOOL WIN_BASSDEF(WIN_BASS_SetConfig)(DWORD option, DWORD value);
DWORD WIN_BASSDEF(WIN_BASS_GetConfig)(DWORD option);
BOOL WIN_BASSDEF(WIN_BASS_SetConfigPtr)(DWORD option, const void *value);
void *WIN_BASSDEF(WIN_BASS_GetConfigPtr)(DWORD option);
DWORD WIN_BASSDEF(WIN_BASS_GetVersion)(void);
int WIN_BASSDEF(WIN_BASS_ErrorGetCode)(void);
BOOL WIN_BASSDEF(WIN_BASS_GetDeviceInfo)(DWORD device, WIN_BASS_DEVICEINFO *info);
#if !defined(_WIN32_WCE) && !(defined(WINAPI_FAMILY) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
BOOL WIN_BASSDEF(WIN_BASS_Init)(int device, DWORD freq, DWORD flags, HWND win, const GUID *dsguid);
#else
BOOL WIN_BASSDEF(WIN_BASS_Init)(int device, DWORD freq, DWORD flags, void *win, void *dsguid);
#endif
BOOL WIN_BASSDEF(WIN_BASS_Free)(void);
BOOL WIN_BASSDEF(WIN_BASS_SetDevice)(DWORD device);
DWORD WIN_BASSDEF(WIN_BASS_GetDevice)(void);
BOOL WIN_BASSDEF(WIN_BASS_GetInfo)(WIN_BASS_INFO *info);
BOOL WIN_BASSDEF(WIN_BASS_Start)(void);
BOOL WIN_BASSDEF(WIN_BASS_Stop)(void);
BOOL WIN_BASSDEF(WIN_BASS_Pause)(void);
BOOL WIN_BASSDEF(WIN_BASS_IsStarted)(void);
BOOL WIN_BASSDEF(WIN_BASS_Update)(DWORD length);
float WIN_BASSDEF(WIN_BASS_GetCPU)(void);
BOOL WIN_BASSDEF(WIN_BASS_SetVolume)(float volume);
float WIN_BASSDEF(WIN_BASS_GetVolume)(void);
#if !defined(_WIN32_WCE) && !(defined(WINAPI_FAMILY) && WINAPI_FAMILY!=WINAPI_FAMILY_DESKTOP_APP)
void *WIN_BASSDEF(WIN_BASS_GetDSoundObject)(DWORD object);
#endif
BOOL WIN_BASSDEF(WIN_BASS_Set3DFactors)(float distf, float rollf, float doppf);
BOOL WIN_BASSDEF(WIN_BASS_Get3DFactors)(float *distf, float *rollf, float *doppf);
BOOL WIN_BASSDEF(WIN_BASS_Set3DPosition)(const WIN_BASS_3DVECTOR *pos, const WIN_BASS_3DVECTOR *vel, const WIN_BASS_3DVECTOR *front, const WIN_BASS_3DVECTOR *top);
BOOL WIN_BASSDEF(WIN_BASS_Get3DPosition)(WIN_BASS_3DVECTOR *pos, WIN_BASS_3DVECTOR *vel, WIN_BASS_3DVECTOR *front, WIN_BASS_3DVECTOR *top);
void WIN_BASSDEF(WIN_BASS_Apply3D)(void);
#if !defined(_WIN32_WCE) && !(defined(WINAPI_FAMILY) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
BOOL WIN_BASSDEF(WIN_BASS_SetEAXParameters)(int env, float vol, float decay, float damp);
BOOL WIN_BASSDEF(WIN_BASS_GetEAXParameters)(DWORD *env, float *vol, float *decay, float *damp);
#endif
WIN_HPLUGIN WIN_BASSDEF(WIN_BASS_PluginLoad)(const char *file, DWORD flags);
BOOL WIN_BASSDEF(WIN_BASS_PluginFree)(WIN_HPLUGIN handle);
const WIN_BASS_PLUGININFO *WIN_BASSDEF(WIN_BASS_PluginGetInfo)(WIN_HPLUGIN handle);
WIN_HSAMPLE WIN_BASSDEF(WIN_BASS_SampleLoad)(BOOL mem, const void *file, WIN_QWORD offset, DWORD length, DWORD max, DWORD flags);
WIN_HSAMPLE WIN_BASSDEF(WIN_BASS_SampleCreate)(DWORD length, DWORD freq, DWORD chans, DWORD max, DWORD flags);
BOOL WIN_BASSDEF(WIN_BASS_SampleFree)(WIN_HSAMPLE handle);
BOOL WIN_BASSDEF(WIN_BASS_SampleSetData)(WIN_HSAMPLE handle, const void *buffer);
BOOL WIN_BASSDEF(WIN_BASS_SampleGetData)(WIN_HSAMPLE handle, void *buffer);
BOOL WIN_BASSDEF(WIN_BASS_SampleGetInfo)(WIN_HSAMPLE handle, WIN_BASS_SAMPLE *info);
BOOL WIN_BASSDEF(WIN_BASS_SampleSetInfo)(WIN_HSAMPLE handle, const WIN_BASS_SAMPLE *info);
WIN_HCHANNEL WIN_BASSDEF(WIN_BASS_SampleGetChannel)(WIN_HSAMPLE handle, BOOL onlynew);
DWORD WIN_BASSDEF(WIN_BASS_SampleGetChannels)(WIN_HSAMPLE handle, WIN_HCHANNEL *channels);
BOOL WIN_BASSDEF(WIN_BASS_SampleStop)(WIN_HSAMPLE handle);
WIN_HSTREAM WIN_BASSDEF(WIN_BASS_StreamCreate)(DWORD freq, DWORD chans, DWORD flags, WIN_STREAMPROC *proc, void *user);
WIN_HSTREAM WIN_BASSDEF(WIN_BASS_StreamCreateFile)(BOOL mem, const void *file, WIN_QWORD offset, WIN_QWORD length, DWORD flags);
WIN_HSTREAM WIN_BASSDEF(WIN_BASS_StreamCreateURL)(const char *url, DWORD offset, DWORD flags, WIN_DOWNLOADPROC *proc, void *user);
WIN_HSTREAM WIN_BASSDEF(WIN_BASS_StreamCreateFileUser)(DWORD system, DWORD flags, const WIN_BASS_FILEPROCS *proc, void *user);
BOOL WIN_BASSDEF(WIN_BASS_StreamFree)(WIN_HSTREAM handle);
WIN_QWORD WIN_BASSDEF(WIN_BASS_StreamGetFilePosition)(WIN_HSTREAM handle, DWORD mode);
DWORD WIN_BASSDEF(WIN_BASS_StreamPutData)(WIN_HSTREAM handle, const void *buffer, DWORD length);
DWORD WIN_BASSDEF(WIN_BASS_StreamPutFileData)(WIN_HSTREAM handle, const void *buffer, DWORD length);
WIN_HMUSIC WIN_BASSDEF(WIN_BASS_MusicLoad)(BOOL mem, const void *file, WIN_QWORD offset, DWORD length, DWORD flags, DWORD freq);
BOOL WIN_BASSDEF(WIN_BASS_MusicFree)(WIN_HMUSIC handle);
BOOL WIN_BASSDEF(WIN_BASS_RecordGetDeviceInfo)(DWORD device, WIN_BASS_DEVICEINFO *info);
BOOL WIN_BASSDEF(WIN_BASS_RecordInit)(int device);
BOOL WIN_BASSDEF(WIN_BASS_RecordFree)(void);
BOOL WIN_BASSDEF(WIN_BASS_RecordSetDevice)(DWORD device);
DWORD WIN_BASSDEF(WIN_BASS_RecordGetDevice)(void);
BOOL WIN_BASSDEF(WIN_BASS_RecordGetInfo)(WIN_BASS_RECORDINFO *info);
const char *WIN_BASSDEF(WIN_BASS_RecordGetInputName)(int input);
BOOL WIN_BASSDEF(WIN_BASS_RecordSetInput)(int input, DWORD flags, float volume);
DWORD WIN_BASSDEF(WIN_BASS_RecordGetInput)(int input, float *volume);
WIN_HRECORD WIN_BASSDEF(WIN_BASS_RecordStart)(DWORD freq, DWORD chans, DWORD flags, WIN_RECORDPROC *proc, void *user);
double WIN_BASSDEF(WIN_BASS_ChannelBytes2Seconds)(DWORD handle, WIN_QWORD pos);
WIN_QWORD WIN_BASSDEF(WIN_BASS_ChannelSeconds2Bytes)(DWORD handle, double pos);
DWORD WIN_BASSDEF(WIN_BASS_ChannelGetDevice)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSetDevice)(DWORD handle, DWORD device);
DWORD WIN_BASSDEF(WIN_BASS_ChannelIsActive)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelGetInfo)(DWORD handle, WIN_BASS_CHANNELINFO *info);
const char *WIN_BASSDEF(WIN_BASS_ChannelGetTags)(DWORD handle, DWORD tags);
DWORD WIN_BASSDEF(WIN_BASS_ChannelFlags)(DWORD handle, DWORD flags, DWORD mask);
BOOL WIN_BASSDEF(WIN_BASS_ChannelLock)(DWORD handle, BOOL lock);
BOOL WIN_BASSDEF(WIN_BASS_ChannelPlay)(DWORD handle, BOOL restart);
BOOL WIN_BASSDEF(WIN_BASS_ChannelStop)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelPause)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelUpdate)(DWORD handle, DWORD length);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSetAttribute)(DWORD handle, DWORD attrib, float value);
BOOL WIN_BASSDEF(WIN_BASS_ChannelGetAttribute)(DWORD handle, DWORD attrib, float *value);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSlideAttribute)(DWORD handle, DWORD attrib, float value, DWORD time);
BOOL WIN_BASSDEF(WIN_BASS_ChannelIsSliding)(DWORD handle, DWORD attrib);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSetAttributeEx)(DWORD handle, DWORD attrib, void *value, DWORD size);
DWORD WIN_BASSDEF(WIN_BASS_ChannelGetAttributeEx)(DWORD handle, DWORD attrib, void *value, DWORD size);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSet3DAttributes)(DWORD handle, int mode, float min, float max, int iangle, int oangle, float outvol);
BOOL WIN_BASSDEF(WIN_BASS_ChannelGet3DAttributes)(DWORD handle, DWORD *mode, float *min, float *max, DWORD *iangle, DWORD *oangle, float *outvol);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSet3DPosition)(DWORD handle, const WIN_BASS_3DVECTOR *pos, const WIN_BASS_3DVECTOR *orient, const WIN_BASS_3DVECTOR *vel);
BOOL WIN_BASSDEF(WIN_BASS_ChannelGet3DPosition)(DWORD handle, WIN_BASS_3DVECTOR *pos, WIN_BASS_3DVECTOR *orient, WIN_BASS_3DVECTOR *vel);
WIN_QWORD WIN_BASSDEF(WIN_BASS_ChannelGetLength)(DWORD handle, DWORD mode);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSetPosition)(DWORD handle, WIN_QWORD pos, DWORD mode);
WIN_QWORD WIN_BASSDEF(WIN_BASS_ChannelGetPosition)(DWORD handle, DWORD mode);
DWORD WIN_BASSDEF(WIN_BASS_ChannelGetLevel)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelGetLevelEx)(DWORD handle, float *levels, float length, DWORD flags);
DWORD WIN_BASSDEF(WIN_BASS_ChannelGetData)(DWORD handle, void *buffer, DWORD length);
WIN_HSYNC WIN_BASSDEF(WIN_BASS_ChannelSetSync)(DWORD handle, DWORD type, WIN_QWORD param, WIN_SYNCPROC *proc, void *user);
BOOL WIN_BASSDEF(WIN_BASS_ChannelRemoveSync)(DWORD handle, WIN_HSYNC sync);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSetLink)(DWORD handle, DWORD chan);
BOOL WIN_BASSDEF(WIN_BASS_ChannelRemoveLink)(DWORD handle, DWORD chan);
WIN_HDSP WIN_BASSDEF(WIN_BASS_ChannelSetDSP)(DWORD handle, WIN_DSPPROC *proc, void *user, int priority);
BOOL WIN_BASSDEF(WIN_BASS_ChannelRemoveDSP)(DWORD handle, WIN_HDSP dsp);
WIN_HFX WIN_BASSDEF(WIN_BASS_ChannelSetFX)(DWORD handle, DWORD type, int priority);
BOOL WIN_BASSDEF(WIN_BASS_ChannelRemoveFX)(DWORD handle, WIN_HFX fx);
BOOL WIN_BASSDEF(WIN_BASS_FXSetParameters)(WIN_HFX handle, const void *params);
BOOL WIN_BASSDEF(WIN_BASS_FXGetParameters)(WIN_HFX handle, void *params);
BOOL WIN_BASSDEF(WIN_BASS_FXSetPriority)(WIN_HFX handle, int priority);
BOOL WIN_BASSDEF(WIN_BASS_FXReset)(WIN_HFX handle);
#ifdef __cplusplus
}
#if !defined(NOBASSOVERLOADS)
static inline WIN_HPLUGIN WIN_BASS_PluginLoad(const WCHAR *file, DWORD flags)
{
return WIN_BASS_PluginLoad((const char*)file, flags | WIN_BASS_UNICODE);
}
static inline WIN_HMUSIC WIN_BASS_MusicLoad(BOOL mem, const WCHAR *file, WIN_QWORD offset, DWORD length, DWORD flags, DWORD freq)
{
return WIN_BASS_MusicLoad(mem, (const void*)file, offset, length, flags | WIN_BASS_UNICODE, freq);
}
static inline WIN_HSAMPLE WIN_BASS_SampleLoad(BOOL mem, const WCHAR *file, WIN_QWORD offset, DWORD length, DWORD max, DWORD flags)
{
return WIN_BASS_SampleLoad(mem, (const void*)file, offset, length, max, flags | WIN_BASS_UNICODE);
}
static inline WIN_HSTREAM WIN_BASS_StreamCreateFile(BOOL mem, const WCHAR *file, WIN_QWORD offset, WIN_QWORD length, DWORD flags)
{
return WIN_BASS_StreamCreateFile(mem, (const void*)file, offset, length, flags | WIN_BASS_UNICODE);
}
static inline WIN_HSTREAM WIN_BASS_StreamCreateURL(const WCHAR *url, DWORD offset, DWORD flags, WIN_DOWNLOADPROC *proc, void *user)
{
return WIN_BASS_StreamCreateURL((const char*)url, offset, flags | WIN_BASS_UNICODE, proc, user);
}
static inline BOOL WIN_BASS_SetConfigPtr(DWORD option, const WCHAR *value)
{
return WIN_BASS_SetConfigPtr(option | WIN_BASS_UNICODE, (const void*)value);
}
#endif
#endif
#endif

569
bass/windows_bass_2_4_17.h Normal file
View file

@ -0,0 +1,569 @@
/*
BASS 2.4 C/C++ header file
Copyright (c) 1999-2022 Un4seen Developments Ltd.
See the BASS.CHM file for more detailed documentation
Modified for Wine dll
*/
#ifndef WINBASS_H
#define WINBASS_H
#ifdef WINAPI_FAMILY
#include <winapifamily.h>
#endif
#include <wtypes.h>
typedef unsigned __int64 WIN_QWORD;
#define WIN_LOBYTE(a) LOBYTE(a)
#define WIN_HIBYTE(a) HIBYTE(a)
#define WIN_LOWORD(a) LOWORD(a)
#define WIN_HIWORD(a) HIWORD(a)
#define WIN_MAKEWORD(a,b) MAKEWORD(a,b)
#define WIN_MAKELONG(a,b) MAKELONG(a,b)
#ifdef __cplusplus
extern "C" {
#endif
#define WIN_BASSVERSION 0x204
#define WIN_BASSVERSIONTEXT "2.4"
#ifdef __cplusplus
#define WIN_BASS_UNICODE 0x80000000
#endif
#ifndef WIN_BASSDEF
#define WIN_BASSDEF(f) WINAPI f
#else
#define NOBASSOVERLOADS
#endif
typedef DWORD WIN_HMUSIC;
typedef DWORD WIN_HSAMPLE;
typedef DWORD WIN_HCHANNEL;
typedef DWORD WIN_HSTREAM;
typedef DWORD WIN_HRECORD;
typedef DWORD WIN_HSYNC;
typedef DWORD WIN_HDSP;
typedef DWORD WIN_HFX;
typedef DWORD WIN_HPLUGIN;
typedef struct {
#if defined(_WIN32_WCE) || (defined(WINAPI_FAMILY) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
const wchar_t *name;
const wchar_t *driver;
#else
const char *name;
const char *driver;
#endif
DWORD flags;
} WIN_BASS_DEVICEINFO;
typedef struct {
DWORD flags;
DWORD hwsize;
DWORD hwfree;
DWORD freesam;
DWORD free3d;
DWORD minrate;
DWORD maxrate;
BOOL eax;
DWORD minbuf;
DWORD dsver;
DWORD latency;
DWORD initflags;
DWORD speakers;
DWORD freq;
} WIN_BASS_INFO;
typedef struct {
DWORD flags;
DWORD formats;
DWORD inputs;
BOOL singlein;
DWORD freq;
} WIN_BASS_RECORDINFO;
typedef struct {
DWORD freq;
float volume;
float pan;
DWORD flags;
DWORD length;
DWORD max;
DWORD origres;
DWORD chans;
DWORD mingap;
DWORD mode3d;
float mindist;
float maxdist;
DWORD iangle;
DWORD oangle;
float outvol;
DWORD vam;
DWORD priority;
} WIN_BASS_SAMPLE;
typedef struct {
DWORD freq;
DWORD chans;
DWORD flags;
DWORD ctype;
DWORD origres;
WIN_HPLUGIN plugin;
WIN_HSAMPLE sample;
const char *filename;
} WIN_BASS_CHANNELINFO;
typedef struct {
DWORD ctype;
#if defined(_WIN32_WCE) || (defined(WINAPI_FAMILY) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
const wchar_t *name;
const wchar_t *exts;
#else
const char *name;
const char *exts;
#endif
} WIN_BASS_PLUGINFORM;
typedef struct {
DWORD version;
DWORD formatc;
const WIN_BASS_PLUGINFORM *formats;
} WIN_BASS_PLUGININFO;
typedef struct WIN_BASS_3DVECTOR {
#ifdef __cplusplus
WIN_BASS_3DVECTOR() {}
WIN_BASS_3DVECTOR(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {}
#endif
float x;
float y;
float z;
} WIN_BASS_3DVECTOR;
typedef DWORD (CALLBACK WIN_STREAMPROC)(WIN_HSTREAM handle, void *buffer, DWORD length, void *user);
typedef void (CALLBACK WIN_FILECLOSEPROC)(void *user);
typedef WIN_QWORD (CALLBACK WIN_FILELENPROC)(void *user);
typedef DWORD (CALLBACK WIN_FILEREADPROC)(void *buffer, DWORD length, void *user);
typedef BOOL (CALLBACK WIN_FILESEEKPROC)(WIN_QWORD offset, void *user);
typedef struct {
WIN_FILECLOSEPROC *close;
WIN_FILELENPROC *length;
WIN_FILEREADPROC *read;
WIN_FILESEEKPROC *seek;
} WIN_BASS_FILEPROCS;
typedef void (CALLBACK WIN_DOWNLOADPROC)(const void *buffer, DWORD length, void *user);
typedef void (CALLBACK WIN_SYNCPROC)(WIN_HSYNC handle, DWORD channel, DWORD data, void *user);
typedef void (CALLBACK WIN_DSPPROC)(WIN_HDSP handle, DWORD channel, void *buffer, DWORD length, void *user);
typedef BOOL (CALLBACK WIN_RECORDPROC)(WIN_HRECORD handle, const void *buffer, DWORD length, void *user);
typedef struct {
char id[3];
char title[30];
char artist[30];
char album[30];
char year[4];
char comment[30];
BYTE genre;
} WIN_TAG_ID3;
typedef struct {
const char *key;
const void *data;
DWORD length;
} WIN_TAG_APE_BINARY;
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4200)
#endif
#pragma pack(push,1)
typedef struct {
char Description[256];
char Originator[32];
char OriginatorReference[32];
char OriginationDate[10];
char OriginationTime[8];
WIN_QWORD TimeReference;
WORD Version;
BYTE UMID[64];
BYTE Reserved[190];
#if defined(__GNUC__) && __GNUC__<3
char CodingHistory[0];
#elif 1 // change to 0 if compiler fails the following line
char CodingHistory[];
#else
char CodingHistory[1];
#endif
} WIN_TAG_BEXT;
#pragma pack(pop)
typedef struct
{
DWORD dwUsage;
DWORD dwValue;
} WIN_TAG_CART_TIMER;
typedef struct
{
char Version[4];
char Title[64];
char Artist[64];
char CutID[64];
char ClientID[64];
char Category[64];
char Classification[64];
char OutCue[64];
char StartDate[10];
char StartTime[8];
char EndDate[10];
char EndTime[8];
char ProducerAppID[64];
char ProducerAppVersion[64];
char UserDef[64];
DWORD dwLevelReference;
WIN_TAG_CART_TIMER PostTimer[8];
char Reserved[276];
char URL[1024];
#if defined(__GNUC__) && __GNUC__<3
char TagText[0];
#elif 1 // change to 0 if compiler fails the following line
char TagText[];
#else
char TagText[1];
#endif
} WIN_TAG_CART;
typedef struct
{
DWORD dwName;
DWORD dwPosition;
DWORD fccChunk;
DWORD dwChunkStart;
DWORD dwBlockStart;
DWORD dwSampleOffset;
} WIN_TAG_CUE_POINT;
typedef struct
{
DWORD dwCuePoints;
#if defined(__GNUC__) && __GNUC__<3
WIN_TAG_CUE_POINT CuePoints[0];
#elif 1 // change to 0 if compiler fails the following line
WIN_TAG_CUE_POINT CuePoints[];
#else
WIN_TAG_CUE_POINT CuePoints[1];
#endif
} WIN_TAG_CUE;
typedef struct
{
DWORD dwIdentifier;
DWORD dwType;
DWORD dwStart;
DWORD dwEnd;
DWORD dwFraction;
DWORD dwPlayCount;
} WIN_TAG_SMPL_LOOP;
typedef struct
{
DWORD dwManufacturer;
DWORD dwProduct;
DWORD dwSamplePeriod;
DWORD dwMIDIUnityNote;
DWORD dwMIDIPitchFraction;
DWORD dwSMPTEFormat;
DWORD dwSMPTEOffset;
DWORD cSampleLoops;
DWORD cbSamplerData;
#if defined(__GNUC__) && __GNUC__<3
WIN_TAG_SMPL_LOOP SampleLoops[0];
#elif 1 // change to 0 if compiler fails the following line
WIN_TAG_SMPL_LOOP SampleLoops[];
#else
WIN_TAG_SMPL_LOOP SampleLoops[1];
#endif
} WIN_TAG_SMPL;
#ifdef _MSC_VER
#pragma warning(pop)
#endif
typedef struct {
DWORD ftype;
DWORD atype;
const char *name;
} WIN_TAG_CA_CODEC;
#ifndef _WIN_WAVEFORMATEX_
#define _WIN_WAVEFORMATEX_
#pragma pack(push,1)
typedef struct WIN_tWAVEFORMATEX
{
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
} WIN_WAVEFORMATEX, *WIN_PWAVEFORMATEX, *WIN_LPWAVEFORMATEX;
typedef const WIN_WAVEFORMATEX *WIN_LPCWAVEFORMATEX;
#pragma pack(pop)
#endif
typedef struct {
float fWetDryMix;
float fDepth;
float fFeedback;
float fFrequency;
DWORD lWaveform;
float fDelay;
DWORD lPhase;
} WIN_BASS_DX8_CHORUS;
typedef struct {
float fGain;
float fAttack;
float fRelease;
float fThreshold;
float fRatio;
float fPredelay;
} WIN_BASS_DX8_COMPRESSOR;
typedef struct {
float fGain;
float fEdge;
float fPostEQCenterFrequency;
float fPostEQBandwidth;
float fPreLowpassCutoff;
} WIN_BASS_DX8_DISTORTION;
typedef struct {
float fWetDryMix;
float fFeedback;
float fLeftDelay;
float fRightDelay;
BOOL lPanDelay;
} WIN_BASS_DX8_ECHO;
typedef struct {
float fWetDryMix;
float fDepth;
float fFeedback;
float fFrequency;
DWORD lWaveform;
float fDelay;
DWORD lPhase;
} WIN_BASS_DX8_FLANGER;
typedef struct {
DWORD dwRateHz;
DWORD dwWaveShape;
} WIN_BASS_DX8_GARGLE;
typedef struct {
int lRoom;
int lRoomHF;
float flRoomRolloffFactor;
float flDecayTime;
float flDecayHFRatio;
int lReflections;
float flReflectionsDelay;
int lReverb;
float flReverbDelay;
float flDiffusion;
float flDensity;
float flHFReference;
} WIN_BASS_DX8_I3DL2REVERB;
typedef struct {
float fCenter;
float fBandwidth;
float fGain;
} WIN_BASS_DX8_PARAMEQ;
typedef struct {
float fInGain;
float fReverbMix;
float fReverbTime;
float fHighFreqRTRatio;
} WIN_BASS_DX8_REVERB;
typedef struct {
float fTarget;
float fCurrent;
float fTime;
DWORD lCurve;
} WIN_BASS_FX_VOLUME_PARAM;
typedef void (CALLBACK WIN_IOSNOTIFYPROC)(DWORD status);
BOOL WIN_BASSDEF(WIN_BASS_SetConfig)(DWORD option, DWORD value);
DWORD WIN_BASSDEF(WIN_BASS_GetConfig)(DWORD option);
BOOL WIN_BASSDEF(WIN_BASS_SetConfigPtr)(DWORD option, const void *value);
const void *WIN_BASSDEF(WIN_BASS_GetConfigPtr)(DWORD option);
DWORD WIN_BASSDEF(WIN_BASS_GetVersion)(void);
int WIN_BASSDEF(WIN_BASS_ErrorGetCode)(void);
BOOL WIN_BASSDEF(WIN_BASS_GetDeviceInfo)(DWORD device, WIN_BASS_DEVICEINFO *info);
#if !defined(_WIN32_WCE) && !(defined(WINAPI_FAMILY) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
BOOL WIN_BASSDEF(WIN_BASS_Init)(int device, DWORD freq, DWORD flags, HWND win, const void *dsguid);
#else
BOOL WIN_BASSDEF(WIN_BASS_Init)(int device, DWORD freq, DWORD flags, void *win, const void *dsguid);
#endif
BOOL WIN_BASSDEF(WIN_BASS_Free)(void);
BOOL WIN_BASSDEF(WIN_BASS_SetDevice)(DWORD device);
DWORD WIN_BASSDEF(WIN_BASS_GetDevice)(void);
BOOL WIN_BASSDEF(WIN_BASS_GetInfo)(WIN_BASS_INFO *info);
BOOL WIN_BASSDEF(WIN_BASS_Start)(void);
BOOL WIN_BASSDEF(WIN_BASS_Stop)(void);
BOOL WIN_BASSDEF(WIN_BASS_Pause)(void);
DWORD WIN_BASSDEF(WIN_BASS_IsStarted)(void);
BOOL WIN_BASSDEF(WIN_BASS_Update)(DWORD length);
float WIN_BASSDEF(WIN_BASS_GetCPU)(void);
BOOL WIN_BASSDEF(WIN_BASS_SetVolume)(float volume);
float WIN_BASSDEF(WIN_BASS_GetVolume)(void);
#if !defined(_WIN32_WCE) && !(defined(WINAPI_FAMILY) && WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
void *WIN_BASSDEF(WIN_BASS_GetDSoundObject)(DWORD object);
#endif
BOOL WIN_BASSDEF(WIN_BASS_Set3DFactors)(float distf, float rollf, float doppf);
BOOL WIN_BASSDEF(WIN_BASS_Get3DFactors)(float *distf, float *rollf, float *doppf);
BOOL WIN_BASSDEF(WIN_BASS_Set3DPosition)(const WIN_BASS_3DVECTOR *pos, const WIN_BASS_3DVECTOR *vel, const WIN_BASS_3DVECTOR *front, const WIN_BASS_3DVECTOR *top);
BOOL WIN_BASSDEF(WIN_BASS_Get3DPosition)(WIN_BASS_3DVECTOR *pos, WIN_BASS_3DVECTOR *vel, WIN_BASS_3DVECTOR *front, WIN_BASS_3DVECTOR *top);
void WIN_BASSDEF(WIN_BASS_Apply3D)(void);
#if !defined(_WIN32_WCE) && !(WINAPI_FAMILY && WINAPI_FAMILY!=WINAPI_FAMILY_DESKTOP_APP)
BOOL WIN_BASSDEF(WIN_BASS_SetEAXParameters)(int env, float vol, float decay, float damp);
BOOL WIN_BASSDEF(WIN_BASS_GetEAXParameters)(DWORD *env, float *vol, float *decay, float *damp);
#endif
WIN_HPLUGIN WIN_BASSDEF(WIN_BASS_PluginLoad)(const char *file, DWORD flags);
BOOL WIN_BASSDEF(WIN_BASS_PluginFree)(WIN_HPLUGIN handle);
BOOL WIN_BASSDEF(WIN_BASS_PluginEnable)(WIN_HPLUGIN handle, BOOL enable);
const WIN_BASS_PLUGININFO *WIN_BASSDEF(WIN_BASS_PluginGetInfo)(WIN_HPLUGIN handle);
WIN_HSAMPLE WIN_BASSDEF(WIN_BASS_SampleLoad)(BOOL mem, const void *file, WIN_QWORD offset, DWORD length, DWORD max, DWORD flags);
WIN_HSAMPLE WIN_BASSDEF(WIN_BASS_SampleCreate)(DWORD length, DWORD freq, DWORD chans, DWORD max, DWORD flags);
BOOL WIN_BASSDEF(WIN_BASS_SampleFree)(WIN_HSAMPLE handle);
BOOL WIN_BASSDEF(WIN_BASS_SampleSetData)(WIN_HSAMPLE handle, const void *buffer);
BOOL WIN_BASSDEF(WIN_BASS_SampleGetData)(WIN_HSAMPLE handle, void *buffer);
BOOL WIN_BASSDEF(WIN_BASS_SampleGetInfo)(WIN_HSAMPLE handle, WIN_BASS_SAMPLE *info);
BOOL WIN_BASSDEF(WIN_BASS_SampleSetInfo)(WIN_HSAMPLE handle, const WIN_BASS_SAMPLE *info);
DWORD WIN_BASSDEF(WIN_BASS_SampleGetChannel)(WIN_HSAMPLE handle, DWORD flags);
DWORD WIN_BASSDEF(WIN_BASS_SampleGetChannels)(WIN_HSAMPLE handle, WIN_HCHANNEL *channels);
BOOL WIN_BASSDEF(WIN_BASS_SampleStop)(WIN_HSAMPLE handle);
WIN_HSTREAM WIN_BASSDEF(WIN_BASS_StreamCreate)(DWORD freq, DWORD chans, DWORD flags, WIN_STREAMPROC *proc, void *user);
WIN_HSTREAM WIN_BASSDEF(WIN_BASS_StreamCreateFile)(BOOL mem, const void *file, WIN_QWORD offset, WIN_QWORD length, DWORD flags);
WIN_HSTREAM WIN_BASSDEF(WIN_BASS_StreamCreateURL)(const char *url, DWORD offset, DWORD flags, WIN_DOWNLOADPROC *proc, void *user);
WIN_HSTREAM WIN_BASSDEF(WIN_BASS_StreamCreateFileUser)(DWORD system, DWORD flags, const WIN_BASS_FILEPROCS *proc, void *user);
BOOL WIN_BASSDEF(WIN_BASS_StreamFree)(WIN_HSTREAM handle);
WIN_QWORD WIN_BASSDEF(WIN_BASS_StreamGetFilePosition)(WIN_HSTREAM handle, DWORD mode);
DWORD WIN_BASSDEF(WIN_BASS_StreamPutData)(WIN_HSTREAM handle, const void *buffer, DWORD length);
DWORD WIN_BASSDEF(WIN_BASS_StreamPutFileData)(WIN_HSTREAM handle, const void *buffer, DWORD length);
WIN_HMUSIC WIN_BASSDEF(WIN_BASS_MusicLoad)(BOOL mem, const void *file, WIN_QWORD offset, DWORD length, DWORD flags, DWORD freq);
BOOL WIN_BASSDEF(WIN_BASS_MusicFree)(WIN_HMUSIC handle);
BOOL WIN_BASSDEF(WIN_BASS_RecordGetDeviceInfo)(DWORD device, WIN_BASS_DEVICEINFO *info);
BOOL WIN_BASSDEF(WIN_BASS_RecordInit)(int device);
BOOL WIN_BASSDEF(WIN_BASS_RecordFree)(void);
BOOL WIN_BASSDEF(WIN_BASS_RecordSetDevice)(DWORD device);
DWORD WIN_BASSDEF(WIN_BASS_RecordGetDevice)(void);
BOOL WIN_BASSDEF(WIN_BASS_RecordGetInfo)(WIN_BASS_RECORDINFO *info);
const char *WIN_BASSDEF(WIN_BASS_RecordGetInputName)(int input);
BOOL WIN_BASSDEF(WIN_BASS_RecordSetInput)(int input, DWORD flags, float volume);
DWORD WIN_BASSDEF(WIN_BASS_RecordGetInput)(int input, float *volume);
WIN_HRECORD WIN_BASSDEF(WIN_BASS_RecordStart)(DWORD freq, DWORD chans, DWORD flags, WIN_RECORDPROC *proc, void *user);
double WIN_BASSDEF(WIN_BASS_ChannelBytes2Seconds)(DWORD handle, WIN_QWORD pos);
WIN_QWORD WIN_BASSDEF(WIN_BASS_ChannelSeconds2Bytes)(DWORD handle, double pos);
DWORD WIN_BASSDEF(WIN_BASS_ChannelGetDevice)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSetDevice)(DWORD handle, DWORD device);
DWORD WIN_BASSDEF(WIN_BASS_ChannelIsActive)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelGetInfo)(DWORD handle, WIN_BASS_CHANNELINFO *info);
const char *WIN_BASSDEF(WIN_BASS_ChannelGetTags)(DWORD handle, DWORD tags);
DWORD WIN_BASSDEF(WIN_BASS_ChannelFlags)(DWORD handle, DWORD flags, DWORD mask);
BOOL WIN_BASSDEF(WIN_BASS_ChannelLock)(DWORD handle, BOOL lock);
BOOL WIN_BASSDEF(WIN_BASS_ChannelFree)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelPlay)(DWORD handle, BOOL restart);
BOOL WIN_BASSDEF(WIN_BASS_ChannelStart)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelStop)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelPause)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelUpdate)(DWORD handle, DWORD length);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSetAttribute)(DWORD handle, DWORD attrib, float value);
BOOL WIN_BASSDEF(WIN_BASS_ChannelGetAttribute)(DWORD handle, DWORD attrib, float *value);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSlideAttribute)(DWORD handle, DWORD attrib, float value, DWORD time);
BOOL WIN_BASSDEF(WIN_BASS_ChannelIsSliding)(DWORD handle, DWORD attrib);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSetAttributeEx)(DWORD handle, DWORD attrib, void *value, DWORD size);
DWORD WIN_BASSDEF(WIN_BASS_ChannelGetAttributeEx)(DWORD handle, DWORD attrib, void *value, DWORD size);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSet3DAttributes)(DWORD handle, int mode, float min, float max, int iangle, int oangle, float outvol);
BOOL WIN_BASSDEF(WIN_BASS_ChannelGet3DAttributes)(DWORD handle, DWORD *mode, float *min, float *max, DWORD *iangle, DWORD *oangle, float *outvol);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSet3DPosition)(DWORD handle, const WIN_BASS_3DVECTOR *pos, const WIN_BASS_3DVECTOR *orient, const WIN_BASS_3DVECTOR *vel);
BOOL WIN_BASSDEF(WIN_BASS_ChannelGet3DPosition)(DWORD handle, WIN_BASS_3DVECTOR *pos, WIN_BASS_3DVECTOR *orient, WIN_BASS_3DVECTOR *vel);
WIN_QWORD WIN_BASSDEF(WIN_BASS_ChannelGetLength)(DWORD handle, DWORD mode);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSetPosition)(DWORD handle, WIN_QWORD pos, DWORD mode);
WIN_QWORD WIN_BASSDEF(WIN_BASS_ChannelGetPosition)(DWORD handle, DWORD mode);
DWORD WIN_BASSDEF(WIN_BASS_ChannelGetLevel)(DWORD handle);
BOOL WIN_BASSDEF(WIN_BASS_ChannelGetLevelEx)(DWORD handle, float *levels, float length, DWORD flags);
DWORD WIN_BASSDEF(WIN_BASS_ChannelGetData)(DWORD handle, void *buffer, DWORD length);
WIN_HSYNC WIN_BASSDEF(WIN_BASS_ChannelSetSync)(DWORD handle, DWORD type, WIN_QWORD param, WIN_SYNCPROC *proc, void *user);
BOOL WIN_BASSDEF(WIN_BASS_ChannelRemoveSync)(DWORD handle, WIN_HSYNC sync);
BOOL WIN_BASSDEF(WIN_BASS_ChannelSetLink)(DWORD handle, DWORD chan);
BOOL WIN_BASSDEF(WIN_BASS_ChannelRemoveLink)(DWORD handle, DWORD chan);
WIN_HDSP WIN_BASSDEF(WIN_BASS_ChannelSetDSP)(DWORD handle, WIN_DSPPROC *proc, void *user, int priority);
BOOL WIN_BASSDEF(WIN_BASS_ChannelRemoveDSP)(DWORD handle, WIN_HDSP dsp);
WIN_HFX WIN_BASSDEF(WIN_BASS_ChannelSetFX)(DWORD handle, DWORD type, int priority);
BOOL WIN_BASSDEF(WIN_BASS_ChannelRemoveFX)(DWORD handle, WIN_HFX fx);
BOOL WIN_BASSDEF(WIN_BASS_FXSetParameters)(WIN_HFX handle, const void *params);
BOOL WIN_BASSDEF(WIN_BASS_FXGetParameters)(WIN_HFX handle, void *params);
BOOL WIN_BASSDEF(WIN_BASS_FXSetPriority)(WIN_HFX handle, int priority);
BOOL WIN_BASSDEF(WIN_BASS_FXReset)(DWORD handle);
#ifdef __cplusplus
}
#if !defined(NOBASSOVERLOADS)
static inline WIN_HPLUGIN WIN_BASS_PluginLoad(const WCHAR *file, DWORD flags)
{
return WIN_BASS_PluginLoad((const char*)file, flags | WIN_BASS_UNICODE);
}
static inline WIN_HMUSIC WIN_BASS_MusicLoad(BOOL mem, const WCHAR *file, WIN_QWORD offset, DWORD length, DWORD flags, DWORD freq)
{
return WIN_BASS_MusicLoad(mem, (const void*)file, offset, length, flags | WIN_BASS_UNICODE, freq);
}
static inline WIN_HSAMPLE WIN_BASS_SampleLoad(BOOL mem, const WCHAR *file, WIN_QWORD offset, DWORD length, DWORD max, DWORD flags)
{
return WIN_BASS_SampleLoad(mem, (const void*)file, offset, length, max, flags | WIN_BASS_UNICODE);
}
static inline WIN_HSTREAM WIN_BASS_StreamCreateFile(BOOL mem, const WCHAR *file, WIN_QWORD offset, WIN_QWORD length, DWORD flags)
{
return WIN_BASS_StreamCreateFile(mem, (const void*)file, offset, length, flags | WIN_BASS_UNICODE);
}
static inline WIN_HSTREAM WIN_BASS_StreamCreateURL(const WCHAR *url, DWORD offset, DWORD flags, WIN_DOWNLOADPROC *proc, void *user)
{
return WIN_BASS_StreamCreateURL((const char*)url, offset, flags | WIN_BASS_UNICODE, proc, user);
}
static inline BOOL WIN_BASS_SetConfigPtr(DWORD option, const WCHAR *value)
{
return WIN_BASS_SetConfigPtr(option | WIN_BASS_UNICODE, (const void*)value);
}
#endif
#endif
#endif