wine-bass/bass/bass_dll.h

184 lines
10 KiB
C
Raw Normal View History

2023-03-10 02:23:12 +07:00
/*
* bass.dll
*
*/
#ifndef __WINE_BASS_DLL_H
#define __WINE_BASS_DLL_H
#include "linux_bass.h"
2023-03-10 02:23:12 +07:00
#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
2023-03-10 02:23:12 +07:00
#include "windef.h"
#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-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;
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 */