dinput.h and dsound.h updates, based on wine git commits 0c8bf1, 2e0c60, 872647, a30da0, 3994f3, ed475a, 06c43e, 74c675 and 332dc2.
diff --git a/mingw-w64-headers/direct-x/include/dinput.h b/mingw-w64-headers/direct-x/include/dinput.h index 14438f7..42b95fd 100644 --- a/mingw-w64-headers/direct-x/include/dinput.h +++ b/mingw-w64-headers/direct-x/include/dinput.h
@@ -2461,6 +2461,220 @@ HRESULT WINAPI DirectInputCreateEx(HINSTANCE,DWORD,REFIID,LPVOID *,LPUNKNOWN); #endif /* DI8 */ + +/* New DirectInput8 style keyboard constants */ + +#define DIKEYBOARD_ESCAPE (DIK_ESCAPE | 0x81000400) +#define DIKEYBOARD_1 (DIK_1 | 0x81000400) +#define DIKEYBOARD_2 (DIK_2 | 0x81000400) +#define DIKEYBOARD_3 (DIK_3 | 0x81000400) +#define DIKEYBOARD_4 (DIK_4 | 0x81000400) +#define DIKEYBOARD_5 (DIK_5 | 0x81000400) +#define DIKEYBOARD_6 (DIK_6 | 0x81000400) +#define DIKEYBOARD_7 (DIK_7 | 0x81000400) +#define DIKEYBOARD_8 (DIK_8 | 0x81000400) +#define DIKEYBOARD_9 (DIK_9 | 0x81000400) +#define DIKEYBOARD_0 (DIK_0 | 0x81000400) +#define DIKEYBOARD_MINUS (DIK_MINUS | 0x81000400) +#define DIKEYBOARD_EQUALS (DIK_EQUALS | 0x81000400) +#define DIKEYBOARD_BACK (DIK_BACK | 0x81000400) +#define DIKEYBOARD_TAB (DIK_TAB | 0x81000400) +#define DIKEYBOARD_Q (DIK_Q | 0x81000400) +#define DIKEYBOARD_W (DIK_W | 0x81000400) +#define DIKEYBOARD_E (DIK_E | 0x81000400) +#define DIKEYBOARD_R (DIK_R | 0x81000400) +#define DIKEYBOARD_T (DIK_T | 0x81000400) +#define DIKEYBOARD_Y (DIK_Y | 0x81000400) +#define DIKEYBOARD_U (DIK_U | 0x81000400) +#define DIKEYBOARD_I (DIK_I | 0x81000400) +#define DIKEYBOARD_O (DIK_O | 0x81000400) +#define DIKEYBOARD_P (DIK_P | 0x81000400) +#define DIKEYBOARD_LBRACKET (DIK_LBRACKET | 0x81000400) +#define DIKEYBOARD_RBRACKET (DIK_RBRACKET | 0x81000400) +#define DIKEYBOARD_RETURN (DIK_RETURN | 0x81000400) +#define DIKEYBOARD_LCONTROL (DIK_LCONTROL | 0x81000400) +#define DIKEYBOARD_A (DIK_A | 0x81000400) +#define DIKEYBOARD_S (DIK_S | 0x81000400) +#define DIKEYBOARD_D (DIK_D | 0x81000400) +#define DIKEYBOARD_F (DIK_F | 0x81000400) +#define DIKEYBOARD_G (DIK_G | 0x81000400) +#define DIKEYBOARD_H (DIK_H | 0x81000400) +#define DIKEYBOARD_J (DIK_J | 0x81000400) +#define DIKEYBOARD_K (DIK_K | 0x81000400) +#define DIKEYBOARD_L (DIK_L | 0x81000400) +#define DIKEYBOARD_SEMICOLON (DIK_SEMICOLON | 0x81000400) +#define DIKEYBOARD_APOSTROPHE (DIK_APOSTROPHE | 0x81000400) +#define DIKEYBOARD_GRAVE (DIK_GRAVE | 0x81000400) +#define DIKEYBOARD_LSHIFT (DIK_LSHIFT | 0x81000400) +#define DIKEYBOARD_BACKSLASH (DIK_BACKSLASH | 0x81000400) +#define DIKEYBOARD_Z (DIK_Z | 0x81000400) +#define DIKEYBOARD_X (DIK_X | 0x81000400) +#define DIKEYBOARD_C (DIK_C | 0x81000400) +#define DIKEYBOARD_V (DIK_V | 0x81000400) +#define DIKEYBOARD_B (DIK_B | 0x81000400) +#define DIKEYBOARD_N (DIK_N | 0x81000400) +#define DIKEYBOARD_M (DIK_M | 0x81000400) +#define DIKEYBOARD_COMMA (DIK_COMMA | 0x81000400) +#define DIKEYBOARD_PERIOD (DIK_PERIOD | 0x81000400) +#define DIKEYBOARD_SLASH (DIK_SLASH | 0x81000400) +#define DIKEYBOARD_RSHIFT (DIK_RSHIFT | 0x81000400) +#define DIKEYBOARD_MULTIPLY (DIK_MULTIPLY | 0x81000400) +#define DIKEYBOARD_LMENU (DIK_LMENU | 0x81000400) +#define DIKEYBOARD_SPACE (DIK_SPACE | 0x81000400) +#define DIKEYBOARD_CAPITAL (DIK_CAPITAL | 0x81000400) +#define DIKEYBOARD_F1 (DIK_F1 | 0x81000400) +#define DIKEYBOARD_F2 (DIK_F2 | 0x81000400) +#define DIKEYBOARD_F3 (DIK_F3 | 0x81000400) +#define DIKEYBOARD_F4 (DIK_F4 | 0x81000400) +#define DIKEYBOARD_F5 (DIK_F5 | 0x81000400) +#define DIKEYBOARD_F6 (DIK_F6 | 0x81000400) +#define DIKEYBOARD_F7 (DIK_F7 | 0x81000400) +#define DIKEYBOARD_F8 (DIK_F8 | 0x81000400) +#define DIKEYBOARD_F9 (DIK_F9 | 0x81000400) +#define DIKEYBOARD_F10 (DIK_F10 | 0x81000400) +#define DIKEYBOARD_NUMLOCK (DIK_NUMLOCK | 0x81000400) +#define DIKEYBOARD_SCROLL (DIK_SCROLL | 0x81000400) +#define DIKEYBOARD_NUMPAD7 (DIK_NUMPAD7 | 0x81000400) +#define DIKEYBOARD_NUMPAD8 (DIK_NUMPAD8 | 0x81000400) +#define DIKEYBOARD_NUMPAD9 (DIK_NUMPAD9 | 0x81000400) +#define DIKEYBOARD_SUBTRACT (DIK_SUBTRACT | 0x81000400) +#define DIKEYBOARD_NUMPAD4 (DIK_NUMPAD4 | 0x81000400) +#define DIKEYBOARD_NUMPAD5 (DIK_NUMPAD5 | 0x81000400) +#define DIKEYBOARD_NUMPAD6 (DIK_NUMPAD6 | 0x81000400) +#define DIKEYBOARD_ADD (DIK_ADD | 0x81000400) +#define DIKEYBOARD_NUMPAD1 (DIK_NUMPAD1 | 0x81000400) +#define DIKEYBOARD_NUMPAD2 (DIK_NUMPAD2 | 0x81000400) +#define DIKEYBOARD_NUMPAD3 (DIK_NUMPAD3 | 0x81000400) +#define DIKEYBOARD_NUMPAD0 (DIK_NUMPAD0 | 0x81000400) +#define DIKEYBOARD_DECIMAL (DIK_DECIMAL | 0x81000400) +#define DIKEYBOARD_F11 (DIK_F11 | 0x81000400) +#define DIKEYBOARD_F12 (DIK_F12 | 0x81000400) +#define DIKEYBOARD_F13 (DIK_F13 | 0x81000400) +#define DIKEYBOARD_F14 (DIK_F14 | 0x81000400) +#define DIKEYBOARD_F15 (DIK_F15 | 0x81000400) +#define DIKEYBOARD_KANA (DIK_KANA | 0x81000400) +#define DIKEYBOARD_CONVERT (DIK_CONVERT | 0x81000400) +#define DIKEYBOARD_NOCONVERT (DIK_NOCONVERT | 0x81000400) +#define DIKEYBOARD_YEN (DIK_YEN | 0x81000400) +#define DIKEYBOARD_NUMPADEQUALS (DIK_NUMPADEQUALS | 0x81000400) +#define DIKEYBOARD_CIRCUMFLEX (DIK_CIRCUMFLEX | 0x81000400) +#define DIKEYBOARD_AT (DIK_AT | 0x81000400) +#define DIKEYBOARD_COLON (DIK_COLON | 0x81000400) +#define DIKEYBOARD_UNDERLINE (DIK_UNDERLINE | 0x81000400) +#define DIKEYBOARD_KANJI (DIK_KANJI | 0x81000400) +#define DIKEYBOARD_STOP (DIK_STOP | 0x81000400) +#define DIKEYBOARD_AX (DIK_AX | 0x81000400) +#define DIKEYBOARD_UNLABELED (DIK_UNLABELED | 0x81000400) +#define DIKEYBOARD_NUMPADENTER (DIK_NUMPADENTER | 0x81000400) +#define DIKEYBOARD_RCONTROL (DIK_RCONTROL | 0x81000400) +#define DIKEYBOARD_NUMPADCOMMA (DIK_NUMPADCOMMA | 0x81000400) +#define DIKEYBOARD_DIVIDE (DIK_DIVIDE | 0x81000400) +#define DIKEYBOARD_SYSRQ (DIK_SYSRQ | 0x81000400) +#define DIKEYBOARD_RMENU (DIK_RMENU | 0x81000400) +#define DIKEYBOARD_PAUSE (DIK_PAUSE | 0x81000400) +#define DIKEYBOARD_HOME (DIK_HOME | 0x81000400) +#define DIKEYBOARD_UP (DIK_UP | 0x81000400) +#define DIKEYBOARD_PRIOR (DIK_PRIOR | 0x81000400) +#define DIKEYBOARD_LEFT (DIK_LEFT | 0x81000400) +#define DIKEYBOARD_RIGHT (DIK_RIGHT | 0x81000400) +#define DIKEYBOARD_END (DIK_END | 0x81000400) +#define DIKEYBOARD_DOWN (DIK_DOWN | 0x81000400) +#define DIKEYBOARD_NEXT (DIK_NEXT | 0x81000400) +#define DIKEYBOARD_INSERT (DIK_INSERT | 0x81000400) +#define DIKEYBOARD_DELETE (DIK_DELETE | 0x81000400) +#define DIKEYBOARD_LWIN (DIK_LWIN | 0x81000400) +#define DIKEYBOARD_RWIN (DIK_RWIN | 0x81000400) +#define DIKEYBOARD_APPS (DIK_APPS | 0x81000400) +#define DIKEYBOARD_POWER (DIK_POWER | 0x81000400) +#define DIKEYBOARD_SLEEP (DIK_SLEEP | 0x81000400) +#define DIKEYBOARD_BACKSPACE (DIK_BACKSPACE | 0x81000400) +#define DIKEYBOARD_NUMPADSTAR (DIK_NUMPADSTAR | 0x81000400) +#define DIKEYBOARD_LALT (DIK_LALT | 0x81000400) +#define DIKEYBOARD_CAPSLOCK (DIK_CAPSLOCK | 0x81000400) +#define DIKEYBOARD_NUMPADMINUS (DIK_NUMPADMINUS | 0x81000400) +#define DIKEYBOARD_NUMPADPLUS (DIK_NUMPADPLUS | 0x81000400) +#define DIKEYBOARD_NUMPADPERIOD (DIK_NUMPADPERIOD | 0x81000400) +#define DIKEYBOARD_NUMPADSLASH (DIK_NUMPADSLASH | 0x81000400) +#define DIKEYBOARD_RALT (DIK_RALT | 0x81000400) +#define DIKEYBOARD_UPARROW (DIK_UPARROW | 0x81000400) +#define DIKEYBOARD_PGUP (DIK_PGUP | 0x81000400) +#define DIKEYBOARD_LEFTARROW (DIK_LEFTARROW | 0x81000400) +#define DIKEYBOARD_RIGHTARROW (DIK_RIGHTARROW | 0x81000400) +#define DIKEYBOARD_DOWNARROW (DIK_DOWNARROW | 0x81000400) +#define DIKEYBOARD_PGDN (DIK_PGDN | 0x81000400) + +/* New DirectInput8 mouse definitions */ + +#define DIMOUSE_XAXISAB (0x82000200 | DIMOFS_X) +#define DIMOUSE_YAXISAB (0x82000200 | DIMOFS_Y) +#define DIMOUSE_XAXIS (0x82000300 | DIMOFS_X) +#define DIMOUSE_YAXIS (0x82000300 | DIMOFS_Y) +#define DIMOUSE_WHEEL (0x82000300 | DIMOFS_Z) +#define DIMOUSE_BUTTON0 (0x82000400 | DIMOFS_BUTTON0) +#define DIMOUSE_BUTTON1 (0x82000400 | DIMOFS_BUTTON1) +#define DIMOUSE_BUTTON2 (0x82000400 | DIMOFS_BUTTON2) +#define DIMOUSE_BUTTON3 (0x82000400 | DIMOFS_BUTTON3) +#define DIMOUSE_BUTTON4 (0x82000400 | DIMOFS_BUTTON4) +#define DIMOUSE_BUTTON5 (0x82000400 | DIMOFS_BUTTON5) +#define DIMOUSE_BUTTON6 (0x82000400 | DIMOFS_BUTTON6) +#define DIMOUSE_BUTTON7 (0x82000400 | DIMOFS_BUTTON7) + + +#define DIAXIS_ANY_X_1 0xFF00C201 +#define DIAXIS_ANY_X_2 0xFF00C202 +#define DIAXIS_ANY_Y_1 0xFF014201 +#define DIAXIS_ANY_Y_2 0xFF014202 +#define DIAXIS_ANY_Z_1 0xFF01C201 +#define DIAXIS_ANY_Z_2 0xFF01C202 +#define DIAXIS_ANY_R_1 0xFF024201 +#define DIAXIS_ANY_R_2 0xFF024202 +#define DIAXIS_ANY_U_1 0xFF02C201 +#define DIAXIS_ANY_U_2 0xFF02C202 +#define DIAXIS_ANY_V_1 0xFF034201 +#define DIAXIS_ANY_V_2 0xFF034202 +#define DIAXIS_ANY_A_1 0xFF03C201 +#define DIAXIS_ANY_A_2 0xFF03C202 +#define DIAXIS_ANY_B_1 0xFF044201 +#define DIAXIS_ANY_B_2 0xFF044202 +#define DIAXIS_ANY_C_1 0xFF04C201 +#define DIAXIS_ANY_C_2 0xFF04C202 +#define DIAXIS_ANY_S_1 0xFF054201 +#define DIAXIS_ANY_S_2 0xFF054202 +#define DIAXIS_ANY_1 0xFF004201 +#define DIAXIS_ANY_2 0xFF004202 +#define DIAXIS_ANY_3 0xFF004203 +#define DIAXIS_ANY_4 0xFF004204 +#define DIPOV_ANY_1 0xFF004601 +#define DIPOV_ANY_2 0xFF004602 +#define DIPOV_ANY_3 0xFF004603 +#define DIPOV_ANY_4 0xFF004604 +#define DIBUTTON_ANY(instance) (0xFF004400 | (instance)) + + +#define DIVIRTUAL_FLYING_HELICOPTER 0x06000000 +#define DIBUTTON_FLYINGH_MENU 0x060004fd +#define DIBUTTON_FLYINGH_FIRE 0x06001401 +#define DIBUTTON_FLYINGH_WEAPONS 0x06001402 +#define DIBUTTON_FLYINGH_TARGET 0x06001403 +#define DIBUTTON_FLYINGH_DEVICE 0x060044fe +#define DIBUTTON_FLYINGH_PAUSE 0x060044fc +#define DIHATSWITCH_FLYINGH_GLANCE 0x06004601 +#define DIBUTTON_FLYINGH_FIRESECONDARY 0x06004c07 +#define DIBUTTON_FLYINGH_COUNTER 0x06005404 +#define DIBUTTON_FLYINGH_VIEW 0x06006405 +#define DIBUTTON_FLYINGH_GEAR 0x06006406 +#define DIAXIS_FLYINGH_BANK 0x06008a01 +#define DIAXIS_FLYINGH_PITCH 0x06010a02 +#define DIAXIS_FLYINGH_COLLECTIVE 0x06018a03 +#define DIAXIS_FLYINGH_TORQUE 0x06025a04 +#define DIAXIS_FLYINGH_THROTTLE 0x0603da05 +#define DIBUTTON_FLYINGH_FASTER_LINK 0x0603dce0 +#define DIBUTTON_FLYINGH_SLOWER_LINK 0x0603dce8 +#define DIBUTTON_FLYINGH_GLANCE_LEFT_LINK 0x0607c4e4 +#define DIBUTTON_FLYINGH_GLANCE_RIGHT_LINK 0x0607c4ec +#define DIBUTTON_FLYINGH_GLANCE_UP_LINK 0x0607c4e0 +#define DIBUTTON_FLYINGH_GLANCE_DOWN_LINK 0x0607c4e8 + #ifdef __cplusplus }; #endif
diff --git a/mingw-w64-headers/direct-x/include/dsound.h b/mingw-w64-headers/direct-x/include/dsound.h index f4835fd..45ff107 100644 --- a/mingw-w64-headers/direct-x/include/dsound.h +++ b/mingw-w64-headers/direct-x/include/dsound.h
@@ -132,6 +132,46 @@ DEFINE_GUID(GUID_DSCFX_MS_NS, 0x11C5C73B,0x66E9,0x4BA1,0xA0,0xBA,0xE8,0x14,0xC6,0xEE,0xD9,0x2D); DEFINE_GUID(GUID_DSCFX_SYSTEM_NS, 0x5AB0882E,0x7274,0x4516,0x87,0x7D,0x4E,0xEE,0x99,0xBA,0x4F,0xD0); +DEFINE_GUID(IID_IDirectSoundFXGargle, 0xd616f352,0xd622,0x11ce,0xaa,0xc5,0x00,0x20,0xaf,0x0b,0x99,0xa3); +#define IDirectSoundFXGargle8 IDirectSoundFXGargle +typedef struct IDirectSoundFXGargle8 *LPDIRECTSOUNDFXGARGLE8; +#define IID_IDirectSoundFXGargle8 IID_IDirectSoundFXGargle + +DEFINE_GUID(IID_IDirectSoundFXChorus, 0x880842e3,0x145f,0x43e6,0xa9,0x34,0xa7,0x18,0x06,0xe5,0x05,0x47); +#define IDirectSoundFXChorus8 IDirectSoundFXChorus +typedef struct IDirectSoundFXChorus8 *LPDIRECTSOUNDFXCHORUS8; +#define IID_IDirectSoundFXChorus8 IID_IDirectSoundFXChorus + +DEFINE_GUID(IID_IDirectSoundFXFlanger, 0x903e9878,0x2c92,0x4072,0x9b,0x2c,0xea,0x68,0xf5,0x39,0x67,0x83); +#define IDirectSoundFXFlanger8 IDirectSoundFXFlanger +typedef struct IDirectSoundFXFlanger8 *LPDIRECTSOUNDFXFLANGER8; +#define IID_IDirectSoundFXFlanger8 IID_IDirectSoundFXFlanger + +DEFINE_GUID(IID_IDirectSoundFXEcho, 0x8bd28edf,0x50db,0x4e92,0xa2,0xbd,0x44,0x54,0x88, 0xd1,0xed,0x42); +#define IDirectSoundFXEcho8 IDirectSoundFXEcho +typedef struct IDirectSoundFXEcho8 *LPDIRECTSOUNDFXECHO8; +#define IID_IDirectSoundFXEcho8 IID_IDirectSoundFXEcho + +DEFINE_GUID(IID_IDirectSoundFXDistortion, 0x8ecf4326,0x455f,0x4d8b,0xbd,0xa9,0x8d,0x5d,0x3e,0x9e,0x3e,0x0b); +#define IDirectSoundFXDistortion8 IDirectSoundFXDistortion +typedef struct IDirectSoundFXDistortion8 *LPDIRECTSOUNDFXDISTORTION8; +#define IID_IDirectSoundFXDistortion8 IID_IDirectSoundFXDistortion + +DEFINE_GUID(IID_IDirectSoundFXCompressor, 0x4bbd1154,0x62f6,0x4e2c,0xa1,0x5c,0xd3,0xb6,0xc4,0x17,0xf7,0xa0); +#define IDirectSoundFXCompressor8 IDirectSoundFXCompressor +typedef struct IDirectSoundFXCompressor8 *LPDIRECTSOUNDFXCOMPRESSOR8; +#define IID_IDirectSoundFXCompressor8 IID_IDirectSoundFXCompressor + +DEFINE_GUID(IID_IDirectSoundFXParamEq, 0xc03ca9fe,0xfe90,0x4204,0x80,0x78,0x82,0x33,0x4c,0xd1,0x77,0xda); +#define IDirectSoundFXParamEq8 IDirectSoundFXParamEq +typedef struct IDirectSoundFXParamEq8 *LPDIRECTSOUNDFXPARAMEQ8; +#define IID_IDirectSoundFXParamEq8 IID_IDirectSoundFXParamEq + +DEFINE_GUID(IID_IDirectSoundFXWavesReverb, 0x46858c3a,0x0dc6,0x45e3,0xb7,0x60,0xd4,0xee,0xf1,0x6c,0xb3,0x25); +#define IDirectSoundFXWavesReverb8 IDirectSoundFXWavesReverb +typedef struct IDirectSoundFXWavesReverb8 *LPDIRECTSOUNDFXWAVESREVERB8; +#define IID_IDirectSoundFXWavesReverb8 IID_IDirectSoundFXWavesReverb + #define _FACDS 0x878 #define MAKE_DSHRESULT(code) MAKE_HRESULT(1,_FACDS,code) @@ -431,6 +471,46 @@ FLOAT flHFReference; } DSFXI3DL2Reverb, *LPDSFXI3DL2Reverb; +#define DSFX_I3DL2REVERB_DECAYTIME_DEFAULT 1.49f +#define DSFX_I3DL2REVERB_DECAYTIME_MIN 0.1f +#define DSFX_I3DL2REVERB_DECAYTIME_MAX 20.0f +#define DSFX_I3DL2REVERB_DECAYHFRATIO_DEFAULT 0.83f +#define DSFX_I3DL2REVERB_DECAYHFRATIO_MIN 0.1f +#define DSFX_I3DL2REVERB_DECAYHFRATIO_MAX 2.0f +#define DSFX_I3DL2REVERB_DENSITY_DEFAULT 100.0f +#define DSFX_I3DL2REVERB_DENSITY_MIN 0.0f +#define DSFX_I3DL2REVERB_DENSITY_MAX 100.0f +#define DSFX_I3DL2REVERB_DIFFUSION_DEFAULT 100.0f +#define DSFX_I3DL2REVERB_DIFFUSION_MIN 0.0f +#define DSFX_I3DL2REVERB_DIFFUSION_MAX 100.0f +#define DSFX_I3DL2REVERB_HFREFERENCE_DEFAULT 5000.0f +#define DSFX_I3DL2REVERB_HFREFERENCE_MIN 20.0f +#define DSFX_I3DL2REVERB_HFREFERENCE_MAX 20000.0f +#define DSFX_I3DL2REVERB_QUALITY_DEFAULT 2 +#define DSFX_I3DL2REVERB_QUALITY_MIN 0 +#define DSFX_I3DL2REVERB_QUALITY_MAX 3 +#define DSFX_I3DL2REVERB_REFLECTIONS_DEFAULT (-2602) +#define DSFX_I3DL2REVERB_REFLECTIONS_MIN (-10000) +#define DSFX_I3DL2REVERB_REFLECTIONS_MAX 1000 +#define DSFX_I3DL2REVERB_REFLECTIONSDELAY_DEFAULT 0.007f +#define DSFX_I3DL2REVERB_REFLECTIONSDELAY_MIN 0.0f +#define DSFX_I3DL2REVERB_REFLECTIONSDELAY_MAX 0.3f +#define DSFX_I3DL2REVERB_REVERB_MIN (-10000) +#define DSFX_I3DL2REVERB_REVERB_MAX 2000 +#define DSFX_I3DL2REVERB_REVERB_DEFAULT 200 +#define DSFX_I3DL2REVERB_REVERBDELAY_MIN 0.0f +#define DSFX_I3DL2REVERB_REVERBDELAY_MAX 0.1f +#define DSFX_I3DL2REVERB_REVERBDELAY_DEFAULT 0.011f +#define DSFX_I3DL2REVERB_ROOM_DEFAULT (-1000) +#define DSFX_I3DL2REVERB_ROOM_MIN (-10000) +#define DSFX_I3DL2REVERB_ROOM_MAX 0 +#define DSFX_I3DL2REVERB_ROOMHF_MIN (-10000) +#define DSFX_I3DL2REVERB_ROOMHF_MAX 0 +#define DSFX_I3DL2REVERB_ROOMHF_DEFAULT (-100) +#define DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MIN 0.0f +#define DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MAX 10.0f +#define DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_DEFAULT 0.0f + typedef const DSFXI3DL2Reverb *LPCDSFXI3DL2Reverb; #define DSCCAPS_EMULDRIVER DSCAPS_EMULDRIVER @@ -1289,6 +1369,417 @@ #define IDirectSoundFXI3DL2Reverb_GetPreset(p,a) (p)->GetPreset(a) #endif +typedef struct _DSFXGargle +{ + DWORD dwRateHz; + DWORD dwWaveShape; +} DSFXGargle, *LPDSFXGargle; + +typedef const DSFXGargle *LPCDSFXGargle; + +#define DSFXGARGLE_RATEHZ_MIN 1 +#define DSFXGARGLE_RATEHZ_MAX 1000 +#define DSFXGARGLE_WAVE_SQUARE 1 +#define DSFXGARGLE_WAVE_TRIANGLE 0 + +#define INTERFACE IDirectSoundFXGargle +DECLARE_INTERFACE_(IDirectSoundFXGargle,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD(QueryInterface)(THIS_ REFIID, void**) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + + /*** IDirectSoundFXGargle methods ***/ + STDMETHOD(SetAllParameters)(THIS_ const DSFXGargle *gargle) PURE; + STDMETHOD(GetAllParameters)(THIS_ DSFXGargle *gargle) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +#define IDirectSoundFXGargle_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirectSoundFXGargle_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirectSoundFXGargle_Release(p) (p)->lpVtbl->Release(p) +#define IDirectSoundFXGargle_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) +#define IDirectSoundFXGargle_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) +#else +#define IDirectSoundFXGargle_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b) +#define IDirectSoundFXGargle_AddRef(p) (p)->AddRef(p) +#define IDirectSoundFXGargle_Release(p) (p)->Release(p) +#define IDirectSoundFXGargle_SetAllParameters(p,a) (p)->SetAllParameters(a) +#define IDirectSoundFXGargle_GetAllParameters(p,a) (p)->GetAllParameters(a) +#endif + +typedef struct _DSFXChorus +{ + FLOAT fWetDryMix; + FLOAT fDepth; + FLOAT fFeedback; + FLOAT fFrequency; + LONG lWaveform; + FLOAT fDelay; + LONG lPhase; +} DSFXChorus, *LPDSFXChorus; + +typedef const DSFXChorus *LPCDSFXChorus; + +#define DSFXCHORUS_DEPTH_MIN 0.0f +#define DSFXCHORUS_DEPTH_MAX 100.0f +#define DSFXCHORUS_DELAY_MIN 0.0f +#define DSFXCHORUS_DELAY_MAX 20.0f +#define DSFXCHORUS_FEEDBACK_MIN -99.0f +#define DSFXCHORUS_FEEDBACK_MAX 99.0f +#define DSFXCHORUS_FREQUENCY_MIN 0.0f +#define DSFXCHORUS_FREQUENCY_MAX 10.0f +#define DSFXCHORUS_PHASE_MIN 0 +#define DSFXCHORUS_PHASE_MAX 4 +#define DSFXCHORUS_PHASE_NEG_180 0 +#define DSFXCHORUS_PHASE_NEG_90 1 +#define DSFXCHORUS_PHASE_ZERO 2 +#define DSFXCHORUS_PHASE_90 3 +#define DSFXCHORUS_PHASE_180 4 +#define DSFXCHORUS_WAVE_TRIANGLE 0 +#define DSFXCHORUS_WAVE_SIN 1 +#define DSFXCHORUS_WETDRYMIX_MIN 0.0f +#define DSFXCHORUS_WETDRYMIX_MAX 100.0f + +#define INTERFACE IDirectSoundFXChorus +DECLARE_INTERFACE_(IDirectSoundFXChorus,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD(QueryInterface)(THIS_ REFIID, void**) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + + /*** IDirectSoundFXChorus methods ***/ + STDMETHOD(SetAllParameters)(THIS_ const DSFXChorus *chorus) PURE; + STDMETHOD(GetAllParameters)(THIS_ DSFXChorus *chorus) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +#define IDirectSoundFXChorus_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirectSoundFXChorus_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirectSoundFXChorus_Release(p) (p)->lpVtbl->Release(p) +#define IDirectSoundFXChorus_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) +#define IDirectSoundFXChorus_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) +#else +#define IDirectSoundFXChorus_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b) +#define IDirectSoundFXChorus_AddRef(p) (p)->AddRef(p) +#define IDirectSoundFXChorus_Release(p) (p)->Release(p) +#define IDirectSoundFXChorus_SetAllParameters(p,a) (p)->SetAllParameters(a) +#define IDirectSoundFXChorus_GetAllParameters(p,a) (p)->GetAllParameters(a) +#endif + +typedef struct _DSFXFlanger +{ + FLOAT fWetDryMix; + FLOAT fDepth; + FLOAT fFeedback; + FLOAT fFrequency; + LONG lWaveform; + FLOAT fDelay; + LONG lPhase; +} DSFXFlanger, *LPDSFXFlanger; + +typedef const DSFXFlanger *LPCDSFXFlanger; + +#define DSFXFLANGER_DELAY_MIN 0.0f +#define DSFXFLANGER_DELAY_MAX 4.0f +#define DSFXFLANGER_DEPTH_MIN 0.0f +#define DSFXFLANGER_DEPTH_MAX 100.0f +#define DSFXFLANGER_FREQUENCY_MIN 0.0f +#define DSFXFLANGER_FREQUENCY_MAX 10.0f +#define DSFXFLANGER_FEEDBACK_MIN -99.0f +#define DSFXFLANGER_FEEDBACK_MAX 99.0f +#define DSFXFLANGER_PHASE_MIN 0 +#define DSFXFLANGER_PHASE_MAX 4 +#define DSFXFLANGER_PHASE_NEG_180 0 +#define DSFXFLANGER_PHASE_NEG_90 1 +#define DSFXFLANGER_PHASE_ZERO 2 +#define DSFXFLANGER_PHASE_90 3 +#define DSFXFLANGER_PHASE_180 4 +#define DSFXFLANGER_WAVE_SIN 1 +#define DSFXFLANGER_WAVE_TRIANGLE 0 +#define DSFXFLANGER_WETDRYMIX_MIN 0.0f +#define DSFXFLANGER_WETDRYMIX_MAX 100.0f + +#define INTERFACE IDirectSoundFXFlanger +DECLARE_INTERFACE_(IDirectSoundFXFlanger,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD(QueryInterface)(THIS_ REFIID, void**) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + + /*** IDirectSoundFXFlanger methods ***/ + STDMETHOD(SetAllParameters)(THIS_ const DSFXFlanger *flanger) PURE; + STDMETHOD(GetAllParameters)(THIS_ DSFXFlanger *flanger) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +#define IDirectSoundFXFlanger_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirectSoundFXFlanger_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirectSoundFXFlanger_Release(p) (p)->lpVtbl->Release(p) +#define IDirectSoundFXFlanger_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) +#define IDirectSoundFXFlanger_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) +#else +#define IDirectSoundFXFlanger_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b) +#define IDirectSoundFXFlanger_AddRef(p) (p)->AddRef(p) +#define IDirectSoundFXFlanger_Release(p) (p)->Release(p) +#define IDirectSoundFXFlanger_SetAllParameters(p,a) (p)->SetAllParameters(a) +#define IDirectSoundFXFlanger_GetAllParameters(p,a) (p)->GetAllParameters(a) +#endif + +typedef struct _DSFXEcho +{ + FLOAT fWetDryMix; + FLOAT fFeedback; + FLOAT fLeftDelay; + FLOAT fRightDelay; + LONG lPanDelay; +} DSFXEcho, *LPDSFXEcho; + +typedef const DSFXEcho *LPCDSFXEcho; + +#define DSFXECHO_FEEDBACK_MIN 0.0f +#define DSFXECHO_FEEDBACK_MAX 100.0f +#define DSFXECHO_LEFTDELAY_MIN 1.0f +#define DSFXECHO_LEFTDELAY_MAX 2000.0f +#define DSFXECHO_PANDELAY_MIN 0 +#define DSFXECHO_PANDELAY_MAX 1 +#define DSFXECHO_RIGHTDELAY_MIN 1.0f +#define DSFXECHO_RIGHTDELAY_MAX 2000.0f +#define DSFXECHO_WETDRYMIX_MIN 0.0f +#define DSFXECHO_WETDRYMIX_MAX 100.0f + +#define INTERFACE IDirectSoundFXEcho +DECLARE_INTERFACE_(IDirectSoundFXEcho,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD(QueryInterface)(THIS_ REFIID, void**) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + + /*** IDirectSoundFXEcho methods ***/ + STDMETHOD(SetAllParameters)(THIS_ const DSFXEcho *echo) PURE; + STDMETHOD(GetAllParameters)(THIS_ DSFXEcho *echo) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +#define IDirectSoundFXEcho_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirectSoundFXEcho_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirectSoundFXEcho_Release(p) (p)->lpVtbl->Release(p) +#define IDirectSoundFXEcho_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) +#define IDirectSoundFXEcho_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) +#else +#define IDirectSoundFXEcho_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b) +#define IDirectSoundFXEcho_AddRef(p) (p)->AddRef(p) +#define IDirectSoundFXEcho_Release(p) (p)->Release(p) +#define IDirectSoundFXEcho_SetAllParameters(p,a) (p)->SetAllParameters(a) +#define IDirectSoundFXEcho_GetAllParameters(p,a) (p)->GetAllParameters(a) +#endif + +typedef struct _DSFXDistortion +{ + FLOAT fGain; + FLOAT fEdge; + FLOAT fPostEQCenterFrequency; + FLOAT fPostEQBandwidth; + FLOAT fPreLowpassCutoff; +} DSFXDistortion, *LPDSFXDistortion; + +typedef const DSFXDistortion *LPCDSFXDistortion; + +#define DSFXDISTORTION_EDGE_MIN 0.0f +#define DSFXDISTORTION_EDGE_MAX 100.0f +#define DSFXDISTORTION_GAIN_MIN -60.0f +#define DSFXDISTORTION_GAIN_MAX 0.0f +#define DSFXDISTORTION_POSTEQCENTERFREQUENCY_MIN 100.0f +#define DSFXDISTORTION_POSTEQCENTERFREQUENCY_MAX 8000.0f +#define DSFXDISTORTION_POSTEQBANDWIDTH_MIN 100.0f +#define DSFXDISTORTION_POSTEQBANDWIDTH_MAX 8000.0f +#define DSFXDISTORTION_PRELOWPASSCUTOFF_MIN 100.0f +#define DSFXDISTORTION_PRELOWPASSCUTOFF_MAX 8000.0f + +#define INTERFACE IDirectSoundFXDistortion +DECLARE_INTERFACE_(IDirectSoundFXDistortion,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD(QueryInterface)(THIS_ REFIID, void**) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + + /*** IDirectSoundFXDistortion methods ***/ + STDMETHOD(SetAllParameters)(THIS_ const DSFXDistortion *distortion) PURE; + STDMETHOD(GetAllParameters)(THIS_ DSFXDistortion *distortion) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +#define IDirectSoundFXDistortion_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirectSoundFXDistortion_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirectSoundFXDistortion_Release(p) (p)->lpVtbl->Release(p) +#define IDirectSoundFXDistortion_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) +#define IDirectSoundFXDistortion_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) +#else +#define IDirectSoundFXDistortion_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b) +#define IDirectSoundFXDistortion_AddRef(p) (p)->AddRef(p) +#define IDirectSoundFXDistortion_Release(p) (p)->Release(p) +#define IDirectSoundFXDistortion_SetAllParameters(p,a) (p)->SetAllParameters(a) +#define IDirectSoundFXDistortion_GetAllParameters(p,a) (p)->GetAllParameters(a) +#endif + +typedef struct _DSFXCompressor +{ + FLOAT fGain; + FLOAT fAttack; + FLOAT fRelease; + FLOAT fThreshold; + FLOAT fRatio; + FLOAT fPredelay; +} DSFXCompressor, *LPDSFXCompressor; + +typedef const DSFXCompressor *LPCDSFXCompressor; + +#define DSFXCOMPRESSOR_ATTACK_MIN 0.01f +#define DSFXCOMPRESSOR_ATTACK_MAX 500.0f +#define DSFXCOMPRESSOR_GAIN_MIN -60.0f +#define DSFXCOMPRESSOR_GAIN_MAX 60.0f +#define DSFXCOMPRESSOR_PREDELAY_MIN 0.0f +#define DSFXCOMPRESSOR_PREDELAY_MAX 4.0f +#define DSFXCOMPRESSOR_RATIO_MIN 1.0f +#define DSFXCOMPRESSOR_RATIO_MAX 100.0f +#define DSFXCOMPRESSOR_RELEASE_MIN 50.0f +#define DSFXCOMPRESSOR_RELEASE_MAX 3000.0f +#define DSFXCOMPRESSOR_THRESHOLD_MIN -60.0f +#define DSFXCOMPRESSOR_THRESHOLD_MAX 0.0f + +#define INTERFACE IDirectSoundFXCompressor +DECLARE_INTERFACE_(IDirectSoundFXCompressor, IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD(QueryInterface)(THIS_ REFIID, void**) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + + /*** IDirectSoundFXCompressor methods ***/ + STDMETHOD(SetAllParameters)(THIS_ const DSFXCompressor *compressor) PURE; + STDMETHOD(GetAllParameters)(THIS_ DSFXCompressor *compressor) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +#define IDirectSoundFXCompressor_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirectSoundFXCompressor_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirectSoundFXCompressor_Release(p) (p)->lpVtbl->Release(p) +#define IDirectSoundFXCompressor_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) +#define IDirectSoundFXCompressor_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) +#else +#define IDirectSoundFXCompressor_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b) +#define IDirectSoundFXCompressor_AddRef(p) (p)->AddRef(p) +#define IDirectSoundFXCompressor_Release(p) (p)->Release(p) +#define IDirectSoundFXCompressor_SetAllParameters(p,a) (p)->SetAllParameters(a) +#define IDirectSoundFXCompressor_GetAllParameters(p,a) (p)->GetAllParameters(a) +#endif + +typedef struct _DSFXParamEq +{ + FLOAT fCenter; + FLOAT fBandwidth; + FLOAT fGain; +} DSFXParamEq, *LPDSFXParamEq; + +typedef const DSFXParamEq *LPCDSFXParamEq; + +#define DSFXPARAMEQ_BANDWIDTH_MIN 1.0f +#define DSFXPARAMEQ_BANDWIDTH_MAX 36.0f +#define DSFXPARAMEQ_CENTER_MIN 80.0f +#define DSFXPARAMEQ_CENTER_MAX 16000.0f +#define DSFXPARAMEQ_GAIN_MIN -15.0f +#define DSFXPARAMEQ_GAIN_MAX 15.0f + +#define INTERFACE IDirectSoundFXParamEq +DECLARE_INTERFACE_(IDirectSoundFXParamEq, IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD(QueryInterface)(THIS_ REFIID, void**) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + + /*** IDirectSoundFXParamEq methods ***/ + STDMETHOD(SetAllParameters)(THIS_ const DSFXParamEq *param) PURE; + STDMETHOD(GetAllParameters)(THIS_ DSFXParamEq *param) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +#define IDirectSoundFXParamEq_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirectSoundFXParamEq_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirectSoundFXParamEq_Release(p) (p)->lpVtbl->Release(p) +#define IDirectSoundFXParamEq_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) +#define IDirectSoundFXParamEq_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) +#else +#define IDirectSoundFXParamEq_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b) +#define IDirectSoundFXParamEq_AddRef(p) (p)->AddRef(p) +#define IDirectSoundFXParamEq_Release(p) (p)->Release(p) +#define IDirectSoundFXParamEq_SetAllParameters(p,a) (p)->SetAllParameters(a) +#define IDirectSoundFXParamEq_GetAllParameters(p,a) (p)->GetAllParameters(a) +#endif + +typedef struct _DSFXWavesReverb +{ + FLOAT fInGain; + FLOAT fReverbMix; + FLOAT fReverbTime; + FLOAT fHighFreqRTRatio; +} DSFXWavesReverb, *LPDSFXWavesReverb; + +typedef const DSFXWavesReverb *LPCDSFXWavesReverb; + +#define DSFX_WAVESREVERB_HIGHFREQRTRATIO_MIN 0.001f +#define DSFX_WAVESREVERB_HIGHFREQRTRATIO_MAX 0.999f +#define DSFX_WAVESREVERB_HIGHFREQRTRATIO_DEFAULT 0.001f +#define DSFX_WAVESREVERB_INGAIN_MIN -96.0f +#define DSFX_WAVESREVERB_INGAIN_MAX 0.0f +#define DSFX_WAVESREVERB_INGAIN_DEFAULT 0.0f +#define DSFX_WAVESREVERB_REVERBMIX_MIN -96.0f +#define DSFX_WAVESREVERB_REVERBMIX_MAX 0.0f +#define DSFX_WAVESREVERB_REVERBMIX_DEFAULT 0.0f +#define DSFX_WAVESREVERB_REVERBTIME_MIN 0.001f +#define DSFX_WAVESREVERB_REVERBTIME_MAX 3000.0f +#define DSFX_WAVESREVERB_REVERBTIME_DEFAULT 1000.0f + +#define INTERFACE IDirectSoundFXWavesReverb +DECLARE_INTERFACE_(IDirectSoundFXWavesReverb,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD(QueryInterface)(THIS_ REFIID, void**) PURE; + STDMETHOD_(ULONG,AddRef)(THIS) PURE; + STDMETHOD_(ULONG,Release)(THIS) PURE; + + /*** IDirectSoundFXWavesReverb methods ***/ + STDMETHOD(SetAllParameters)(THIS_ const DSFXWavesReverb *reverb) PURE; + STDMETHOD(GetAllParameters)(THIS_ DSFXWavesReverb *reverb) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +#define IDirectSoundFXWavesReverb_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IDirectSoundFXWavesReverb_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IDirectSoundFXWavesReverb_Release(p) (p)->lpVtbl->Release(p) +#define IDirectSoundFXWavesReverb_SetAllParameters(p,a) (p)->lpVtbl->SetAllParameters(p,a) +#define IDirectSoundFXWavesReverb_GetAllParameters(p,a) (p)->lpVtbl->GetAllParameters(p,a) +#else +#define IDirectSoundFXWavesReverb_QueryInterface(p,a,b) (p)->QueryInterface(p,a,b) +#define IDirectSoundFXWavesReverb_AddRef(p) (p)->AddRef(p) +#define IDirectSoundFXWavesReverb_Release(p) (p)->Release(p) +#define IDirectSoundFXWavesReverb_SetAllParameters(p,a) (p)->SetAllParameters(a) +#define IDirectSoundFXWavesReverb_GetAllParameters(p,a) (p)->GetAllParameters(a) +#endif + #ifdef __cplusplus } /* extern "C" */ #endif /* defined(__cplusplus) */