/* * bass.dll * */ #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 "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; typedef HSAMPLE WIN_HSAMPLE; typedef HCHANNEL WIN_HCHANNEL; typedef HSTREAM WIN_HSTREAM; typedef HRECORD WIN_HRECORD; typedef HSYNC WIN_HSYNC; typedef HDSP WIN_HDSP; typedef HFX WIN_HFX; typedef HPLUGIN WIN_HPLUGIN; typedef BASS_CHANNELINFO WIN_BASS_CHANNELINFO; typedef BASS_DEVICEINFO WIN_BASS_DEVICEINFO; typedef BASS_SAMPLE WIN_BASS_SAMPLE; typedef BASS_INFO WIN_BASS_INFO; typedef BASS_RECORDINFO WIN_BASS_RECORDINFO; typedef BASS_PLUGININFO WIN_BASS_PLUGININFO; #define WIN_CALLBACK __stdcall typedef void (WIN_CALLBACK WIN_SYNCPROC)(WIN_HSYNC handle, DWORD channel, DWORD data, void *user); typedef void (WIN_CALLBACK WIN_DSPPROC)(WIN_HDSP handle, DWORD channel, void *buffer, DWORD length, void *user); typedef BOOL (WIN_CALLBACK WIN_RECORDPROC)(WIN_HRECORD handle, const void *buffer, DWORD length, void *user); typedef DWORD (WIN_CALLBACK WIN_STREAMPROC)(WIN_HSTREAM handle, void *buffer, DWORD length, void *user); typedef void (WIN_CALLBACK WIN_DOWNLOADPROC)(const void *buffer, DWORD length, void *user); typedef void (WIN_CALLBACK WIN_FILECLOSEPROC)(void *user); typedef WIN_QWORD (WIN_CALLBACK WIN_FILELENPROC)(void *user); typedef DWORD (WIN_CALLBACK WIN_FILEREADPROC)(void *buffer, DWORD length, void *user); typedef BOOL (WIN_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; 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); void __stdcall wine_bass_user_data_remove_ex(DWORD key, DWORD altKey); #endif /* __WINE_BASS_DLL_H */