2023-03-10 02:23:12 +07:00
|
|
|
/*
|
|
|
|
* bass.dll
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
#ifndef __WINE_BASS_DLL_H
|
|
|
|
#define __WINE_BASS_DLL_H
|
|
|
|
|
2023-03-11 20:20:25 +07:00
|
|
|
#include "linux_bass.h"
|
2023-03-10 02:23:12 +07:00
|
|
|
#define WIN32_LEAN_AND_MEAN
|
2023-03-11 20:20:25 +07:00
|
|
|
|
|
|
|
#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
|
|
|
|
|
2023-03-10 02:23:12 +07:00
|
|
|
#include "windef.h"
|
2023-03-11 20:20:25 +07:00
|
|
|
#include "windows.h"
|
2023-03-10 02:23:12 +07:00
|
|
|
#include "wine/debug.h"
|
|
|
|
#include "winbase.h"
|
|
|
|
#include "winnt.h"
|
|
|
|
#include "winternl.h"
|
|
|
|
|
2023-03-11 20:20:25 +07:00
|
|
|
/*
|
2023-03-10 02:23:12 +07:00
|
|
|
// 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;
|
|
|
|
|
2023-03-11 20:20:25 +07:00
|
|
|
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);
|
|
|
|
*/
|
2023-03-10 02:23:12 +07:00
|
|
|
/* __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 */
|