From: Zebediah Figura zfigura@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=41048 Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- v2: Don't use a switch statement for XACTNOTIFICATIONTYPE_* constants.
configure | 3 + configure.ac | 2 + dlls/xactengine2_0/Makefile.in | 11 +++ dlls/xactengine2_0/xactengine2_0.spec | 4 + dlls/xactengine3_7/xact_classes.idl | 4 +- dlls/xactengine3_7/xact_dll.c | 115 ++++++++++++++++++++++++-- 6 files changed, 132 insertions(+), 7 deletions(-) create mode 100644 dlls/xactengine2_0/Makefile.in create mode 100644 dlls/xactengine2_0/xactengine2_0.spec
diff --git a/configure b/configure index 9d1df64891b..d7a88f0f499 100755 --- a/configure +++ b/configure @@ -1727,6 +1727,7 @@ enable_x3daudio1_4 enable_x3daudio1_5 enable_x3daudio1_6 enable_x3daudio1_7 +enable_xactengine2_0 enable_xactengine3_0 enable_xactengine3_1 enable_xactengine3_2 @@ -16424,6 +16425,7 @@ then enable_x3daudio1_5=${enable_x3daudio1_5:-no} enable_x3daudio1_6=${enable_x3daudio1_6:-no} enable_x3daudio1_7=${enable_x3daudio1_7:-no} + enable_xactengine2_0=${enable_xactengine2_0:-no} enable_xactengine3_0=${enable_xactengine3_0:-no} enable_xactengine3_1=${enable_xactengine3_1:-no} enable_xactengine3_2=${enable_xactengine3_2:-no} @@ -21209,6 +21211,7 @@ wine_fn_config_makefile dlls/x3daudio1_4 enable_x3daudio1_4 wine_fn_config_makefile dlls/x3daudio1_5 enable_x3daudio1_5 wine_fn_config_makefile dlls/x3daudio1_6 enable_x3daudio1_6 wine_fn_config_makefile dlls/x3daudio1_7 enable_x3daudio1_7 +wine_fn_config_makefile dlls/xactengine2_0 enable_xactengine2_0 wine_fn_config_makefile dlls/xactengine3_0 enable_xactengine3_0 wine_fn_config_makefile dlls/xactengine3_1 enable_xactengine3_1 wine_fn_config_makefile dlls/xactengine3_2 enable_xactengine3_2 diff --git a/configure.ac b/configure.ac index 30bbe7bc5cd..7f966e744a1 100644 --- a/configure.ac +++ b/configure.ac @@ -1915,6 +1915,7 @@ then enable_x3daudio1_5=${enable_x3daudio1_5:-no} enable_x3daudio1_6=${enable_x3daudio1_6:-no} enable_x3daudio1_7=${enable_x3daudio1_7:-no} + enable_xactengine2_0=${enable_xactengine2_0:-no} enable_xactengine3_0=${enable_xactengine3_0:-no} enable_xactengine3_1=${enable_xactengine3_1:-no} enable_xactengine3_2=${enable_xactengine3_2:-no} @@ -3892,6 +3893,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_4) WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5) WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6) WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7) +WINE_CONFIG_MAKEFILE(dlls/xactengine2_0) WINE_CONFIG_MAKEFILE(dlls/xactengine3_0) WINE_CONFIG_MAKEFILE(dlls/xactengine3_1) WINE_CONFIG_MAKEFILE(dlls/xactengine3_2) diff --git a/dlls/xactengine2_0/Makefile.in b/dlls/xactengine2_0/Makefile.in new file mode 100644 index 00000000000..3196ecd9b5a --- /dev/null +++ b/dlls/xactengine2_0/Makefile.in @@ -0,0 +1,11 @@ +MODULE = xactengine2_0.dll +IMPORTS = ole32 uuid +EXTRADEFS = -DXACT3_VER=0x0200 +PARENTSRC = ../xactengine3_7 +EXTRALIBS = $(FAUDIO_LIBS) +EXTRAINCL = $(FAUDIO_CFLAGS) + +C_SRCS = \ + xact_dll.c + +IDL_SRCS = xact_classes.idl diff --git a/dlls/xactengine2_0/xactengine2_0.spec b/dlls/xactengine2_0/xactengine2_0.spec new file mode 100644 index 00000000000..b16365d0c9f --- /dev/null +++ b/dlls/xactengine2_0/xactengine2_0.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dlls/xactengine3_7/xact_classes.idl b/dlls/xactengine3_7/xact_classes.idl index 40c00f4ff06..91a9c19ff67 100644 --- a/dlls/xactengine3_7/xact_classes.idl +++ b/dlls/xactengine3_7/xact_classes.idl @@ -22,7 +22,9 @@
[ threading(both), -#if XACT3_VER == 0x0300 +#if XACT3_VER == 0x0200 + uuid(0aa000aa-f404-11d9-bd7a-0010dc4f8f81) +#elif XACT3_VER == 0x0300 uuid(3b80ee2a-b0f5-4780-9e30-90cb39685b03) #elif XACT3_VER == 0x0301 uuid(962f5027-99be-4692-a468-85802cf8de61) diff --git a/dlls/xactengine3_7/xact_dll.c b/dlls/xactengine3_7/xact_dll.c index 3fbb4875930..d7ee07490de 100644 --- a/dlls/xactengine3_7/xact_dll.c +++ b/dlls/xactengine3_7/xact_dll.c @@ -25,12 +25,31 @@ #define COBJMACROS
#include "initguid.h" +#if XACT3_VER < 0x0300 +#include "xact.h" +#else #include "xact3.h" +#endif #include "rpcproxy.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(xact3);
+#if XACT3_VER < 0x0300 +#define IID_IXACT3Engine IID_IXACTEngine +#define IXACT3Cue IXACTCue +#define IXACT3CueVtbl IXACTCueVtbl +#define IXACT3Engine IXACTEngine +#define IXACT3EngineVtbl IXACTEngineVtbl +#define IXACT3Engine_QueryInterface IXACTEngine_QueryInterface +#define IXACT3SoundBank IXACTSoundBank +#define IXACT3SoundBankVtbl IXACTSoundBankVtbl +#define IXACT3Wave IXACTWave +#define IXACT3WaveVtbl IXACTWaveVtbl +#define IXACT3WaveBank IXACTWaveBank +#define IXACT3WaveBankVtbl IXACTWaveBankVtbl +#endif + static HINSTANCE instance;
typedef struct _XACT3CueImpl { @@ -84,6 +103,39 @@ static HRESULT WINAPI IXACT3CueImpl_Destroy(IXACT3Cue *iface) return S_OK; }
+#if XACT3_VER < 0x0300 + +static HRESULT WINAPI IXACT3CueImpl_GetChannelMap(IXACT3Cue *iface, + XACTCHANNELMAP *map, DWORD size, DWORD *needed_size) +{ + FIXME("(%p)->(%p, %u, %p)\n", iface, map, size, needed_size); + + return E_NOTIMPL; +} + +static HRESULT WINAPI IXACT3CueImpl_SetChannelMap(IXACT3Cue *iface, XACTCHANNELMAP *map) +{ + FIXME("(%p)->(%p)\n", iface, map); + + return E_NOTIMPL; +} + +static HRESULT WINAPI IXACT3CueImpl_GetChannelVolume(IXACT3Cue *iface, XACTCHANNELVOLUME *volume) +{ + FIXME("(%p)->(%p)\n", iface, volume); + + return E_NOTIMPL; +} + +static HRESULT WINAPI IXACT3CueImpl_SetChannelVolume(IXACT3Cue *iface, XACTCHANNELVOLUME *volume) +{ + FIXME("(%p)->(%p)\n", iface, volume); + + return E_NOTIMPL; +} + +#endif + static HRESULT WINAPI IXACT3CueImpl_SetMatrixCoefficients(IXACT3Cue *iface, UINT32 uSrcChannelCount, UINT32 uDstChannelCount, float *pMatrixCoefficients) @@ -136,6 +188,7 @@ static HRESULT WINAPI IXACT3CueImpl_Pause(IXACT3Cue *iface, BOOL fPause) return FACTCue_Pause(This->fact_cue, fPause); }
+#if XACT3_VER >= 0x0205 static HRESULT WINAPI IXACT3CueImpl_GetProperties(IXACT3Cue *iface, XACT_CUE_INSTANCE_PROPERTIES **ppProperties) { @@ -152,7 +205,9 @@ static HRESULT WINAPI IXACT3CueImpl_GetProperties(IXACT3Cue *iface, *ppProperties = (XACT_CUE_INSTANCE_PROPERTIES*) fProps; return hr; } +#endif
+#if XACT3_VER >= 0x0300 static HRESULT WINAPI IXACT3CueImpl_SetOutputVoices(IXACT3Cue *iface, const XAUDIO2_VOICE_SENDS *pSendList) { @@ -170,6 +225,7 @@ static HRESULT WINAPI IXACT3CueImpl_SetOutputVoiceMatrix(IXACT3Cue *iface, DestinationChannels, pLevelMatrix); return S_OK; } +#endif
static const IXACT3CueVtbl XACT3Cue_Vtbl = { @@ -177,14 +233,24 @@ static const IXACT3CueVtbl XACT3Cue_Vtbl = IXACT3CueImpl_Stop, IXACT3CueImpl_GetState, IXACT3CueImpl_Destroy, +#if XACT3_VER < 0x0300 + IXACT3CueImpl_GetChannelMap, + IXACT3CueImpl_SetChannelMap, + IXACT3CueImpl_GetChannelVolume, + IXACT3CueImpl_SetChannelVolume, +#endif IXACT3CueImpl_SetMatrixCoefficients, IXACT3CueImpl_GetVariableIndex, IXACT3CueImpl_SetVariable, IXACT3CueImpl_GetVariable, IXACT3CueImpl_Pause, +#if XACT3_VER >= 0x0205 IXACT3CueImpl_GetProperties, +#endif +#if XACT3_VER >= 0x0300 IXACT3CueImpl_SetOutputVoices, IXACT3CueImpl_SetOutputVoiceMatrix +#endif };
typedef struct _XACT3SoundBankImpl { @@ -208,6 +274,7 @@ static XACTINDEX WINAPI IXACT3SoundBankImpl_GetCueIndex(IXACT3SoundBank *iface, return FACTSoundBank_GetCueIndex(This->fact_soundbank, szFriendlyName); }
+#if XACT3_VER >= 0x0205 static HRESULT WINAPI IXACT3SoundBankImpl_GetNumCues(IXACT3SoundBank *iface, XACTINDEX *pnNumCues) { @@ -228,6 +295,7 @@ static HRESULT WINAPI IXACT3SoundBankImpl_GetCueProperties(IXACT3SoundBank *ifac return FACTSoundBank_GetCueProperties(This->fact_soundbank, nCueIndex, (FACTCueProperties*) pProperties); } +#endif
static HRESULT WINAPI IXACT3SoundBankImpl_Prepare(IXACT3SoundBank *iface, XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, @@ -342,8 +410,10 @@ static HRESULT WINAPI IXACT3SoundBankImpl_GetState(IXACT3SoundBank *iface, static const IXACT3SoundBankVtbl XACT3SoundBank_Vtbl = { IXACT3SoundBankImpl_GetCueIndex, +#if XACT3_VER >= 0x0205 IXACT3SoundBankImpl_GetNumCues, IXACT3SoundBankImpl_GetCueProperties, +#endif IXACT3SoundBankImpl_Prepare, IXACT3SoundBankImpl_Play, IXACT3SoundBankImpl_Stop, @@ -351,6 +421,8 @@ static const IXACT3SoundBankVtbl XACT3SoundBank_Vtbl = IXACT3SoundBankImpl_GetState };
+#if XACT3_VER >= 0x0205 + typedef struct _XACT3WaveImpl { IXACT3Wave IXACT3Wave_iface;
@@ -465,6 +537,8 @@ static const IXACT3WaveVtbl XACT3Wave_Vtbl = IXACT3WaveImpl_GetProperties };
+#endif + typedef struct _XACT3WaveBankImpl { IXACT3WaveBank IXACT3WaveBank_iface;
@@ -488,6 +562,8 @@ static HRESULT WINAPI IXACT3WaveBankImpl_Destroy(IXACT3WaveBank *iface) return hr; }
+#if XACT3_VER >= 0x0205 + static HRESULT WINAPI IXACT3WaveBankImpl_GetNumWaves(IXACT3WaveBank *iface, XACTINDEX *pnNumWaves) { @@ -607,6 +683,8 @@ static HRESULT WINAPI IXACT3WaveBankImpl_Stop(IXACT3WaveBank *iface, return FACTWaveBank_Stop(This->fact_wavebank, nWaveIndex, dwFlags); }
+#endif + static HRESULT WINAPI IXACT3WaveBankImpl_GetState(IXACT3WaveBank *iface, DWORD *pdwState) { @@ -620,12 +698,14 @@ static HRESULT WINAPI IXACT3WaveBankImpl_GetState(IXACT3WaveBank *iface, static const IXACT3WaveBankVtbl XACT3WaveBank_Vtbl = { IXACT3WaveBankImpl_Destroy, +#if XACT3_VER >= 0x0205 IXACT3WaveBankImpl_GetNumWaves, IXACT3WaveBankImpl_GetWaveIndex, IXACT3WaveBankImpl_GetWaveProperties, IXACT3WaveBankImpl_Prepare, IXACT3WaveBankImpl_Play, IXACT3WaveBankImpl_Stop, +#endif IXACT3WaveBankImpl_GetState };
@@ -737,6 +817,8 @@ static HRESULT WINAPI IXACT3EngineImpl_GetRendererDetails(IXACT3Engine *iface, nRendererIndex, (FACTRendererDetails*) pRendererDetails); }
+#if XACT3_VER >= 0x0205 + static HRESULT WINAPI IXACT3EngineImpl_GetFinalMixFormat(IXACT3Engine *iface, WAVEFORMATEXTENSIBLE *pFinalMixFormat) { @@ -748,6 +830,8 @@ static HRESULT WINAPI IXACT3EngineImpl_GetFinalMixFormat(IXACT3Engine *iface, (FAudioWaveFormatExtensible*) pFinalMixFormat); }
+#endif + static void FACTCALL fact_notification_cb(const FACTNotification *notification) { XACT3EngineImpl *engine = (XACT3EngineImpl *)notification->pvContext; @@ -787,6 +871,7 @@ static HRESULT WINAPI IXACT3EngineImpl_Initialize(IXACT3Engine *iface, params.pXAudio2 = NULL; params.pMasteringVoice = NULL;
+#if XACT3_VER >= 0x0300 /* FIXME: pXAudio2 and pMasteringVoice are pointers to * IXAudio2/IXAudio2MasteringVoice objects. FACT wants pointers to * FAudio/FAudioMasteringVoice objects. In Wine's XAudio2 implementation, we @@ -804,6 +889,7 @@ static HRESULT WINAPI IXACT3EngineImpl_Initialize(IXACT3Engine *iface, FIXME("pMasteringVoice parameter not supported!\n"); } } +#endif
/* Force Windows I/O, do NOT use the FACT default! */ This->pReadFile = (XACT_READFILE_CALLBACK) @@ -968,6 +1054,8 @@ static HRESULT WINAPI IXACT3EngineImpl_CreateStreamingWaveBank(IXACT3Engine *ifa return S_OK; }
+#if XACT3_VER >= 0x0205 + static HRESULT WINAPI IXACT3EngineImpl_PrepareInMemoryWave(IXACT3Engine *iface, DWORD dwFlags, WAVEBANKENTRY entry, DWORD *pdwSeekTable, BYTE *pbWaveData, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, @@ -1026,6 +1114,8 @@ static HRESULT WINAPI IXACT3EngineImpl_PrepareWave(IXACT3Engine *iface, return S_OK; }
+#endif + enum { NOTIFY_SoundBank = 0x01, NOTIFY_WaveBank = 0x02, @@ -1062,17 +1152,22 @@ static inline void unwrap_notificationdesc(FACTNotificationDescription *fd, { flags = NOTIFY_SoundBank; } + /* Supports SoundBank, SoundBank, Cue index, Cue instance, WaveBank, Wave instance */ + else if (xd->type == XACTNOTIFICATIONTYPE_WAVEPLAY || xd->type == XACTNOTIFICATIONTYPE_WAVESTOP) + { + flags = NOTIFY_SoundBank | NOTIFY_cueIndex | NOTIFY_Cue | NOTIFY_WaveBank | NOTIFY_Wave; + } +#if XACT3_VER >= 0x0205 + else if (xd->type == XACTNOTIFICATIONTYPE_WAVELOOPED) + { + flags = NOTIFY_SoundBank | NOTIFY_cueIndex | NOTIFY_Cue | NOTIFY_WaveBank | NOTIFY_Wave; + } /* Supports WaveBank, Wave index, Wave instance */ else if (xd->type == XACTNOTIFICATIONTYPE_WAVEPREPARED || xd->type == XACTNOTIFICATIONTYPE_WAVEDESTROYED) { flags = NOTIFY_WaveBank | NOTIFY_waveIndex | NOTIFY_Wave; } - /* Supports SoundBank, SoundBank, Cue index, Cue instance, WaveBank, Wave instance */ - else if (xd->type == XACTNOTIFICATIONTYPE_WAVEPLAY || xd->type == XACTNOTIFICATIONTYPE_WAVESTOP || - xd->type == XACTNOTIFICATIONTYPE_WAVELOOPED) - { - flags = NOTIFY_SoundBank | NOTIFY_cueIndex | NOTIFY_Cue | NOTIFY_WaveBank | NOTIFY_Wave; - } +#endif
/* We have to unwrap the FACT object first! */ fd->type = xd->type; @@ -1080,8 +1175,10 @@ static inline void unwrap_notificationdesc(FACTNotificationDescription *fd, fd->pvContext = xd->pvContext; if (flags & NOTIFY_cueIndex) fd->cueIndex = xd->cueIndex; +#if XACT3_VER >= 0x0205 if (flags & NOTIFY_waveIndex) fd->waveIndex = xd->waveIndex; +#endif
if (flags & NOTIFY_Cue && xd->pCue != NULL) { @@ -1104,12 +1201,14 @@ static inline void unwrap_notificationdesc(FACTNotificationDescription *fd, fd->pWaveBank = bank->fact_wavebank; }
+#if XACT3_VER >= 0x0205 if (flags & NOTIFY_Wave && xd->pWave != NULL) { XACT3WaveImpl *wave = impl_from_IXACT3Wave(xd->pWave); if (wave) fd->pWave = wave->fact_wave; } +#endif }
static HRESULT WINAPI IXACT3EngineImpl_RegisterNotification(IXACT3Engine *iface, @@ -1216,16 +1315,20 @@ static const IXACT3EngineVtbl XACT3Engine_Vtbl = IXACT3EngineImpl_Release, IXACT3EngineImpl_GetRendererCount, IXACT3EngineImpl_GetRendererDetails, +#if XACT3_VER >= 0x0205 IXACT3EngineImpl_GetFinalMixFormat, +#endif IXACT3EngineImpl_Initialize, IXACT3EngineImpl_ShutDown, IXACT3EngineImpl_DoWork, IXACT3EngineImpl_CreateSoundBank, IXACT3EngineImpl_CreateInMemoryWaveBank, IXACT3EngineImpl_CreateStreamingWaveBank, +#if XACT3_VER >= 0x0205 IXACT3EngineImpl_PrepareWave, IXACT3EngineImpl_PrepareInMemoryWave, IXACT3EngineImpl_PrepareStreamingWave, +#endif IXACT3EngineImpl_RegisterNotification, IXACT3EngineImpl_UnRegisterNotification, IXACT3EngineImpl_GetCategory,
From: Zebediah Figura zfigura@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=49671 Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- configure | 3 +++ configure.ac | 2 ++ dlls/xactengine2_4/Makefile.in | 11 +++++++++++ dlls/xactengine2_4/xactengine2_4.spec | 4 ++++ dlls/xactengine3_7/xact_classes.idl | 2 ++ 5 files changed, 22 insertions(+) create mode 100644 dlls/xactengine2_4/Makefile.in create mode 100644 dlls/xactengine2_4/xactengine2_4.spec
diff --git a/configure b/configure index d7a88f0f499..0f0561fa8e6 100755 --- a/configure +++ b/configure @@ -1728,6 +1728,7 @@ enable_x3daudio1_5 enable_x3daudio1_6 enable_x3daudio1_7 enable_xactengine2_0 +enable_xactengine2_4 enable_xactengine3_0 enable_xactengine3_1 enable_xactengine3_2 @@ -16426,6 +16427,7 @@ then enable_x3daudio1_6=${enable_x3daudio1_6:-no} enable_x3daudio1_7=${enable_x3daudio1_7:-no} enable_xactengine2_0=${enable_xactengine2_0:-no} + enable_xactengine2_4=${enable_xactengine2_4:-no} enable_xactengine3_0=${enable_xactengine3_0:-no} enable_xactengine3_1=${enable_xactengine3_1:-no} enable_xactengine3_2=${enable_xactengine3_2:-no} @@ -21212,6 +21214,7 @@ wine_fn_config_makefile dlls/x3daudio1_5 enable_x3daudio1_5 wine_fn_config_makefile dlls/x3daudio1_6 enable_x3daudio1_6 wine_fn_config_makefile dlls/x3daudio1_7 enable_x3daudio1_7 wine_fn_config_makefile dlls/xactengine2_0 enable_xactengine2_0 +wine_fn_config_makefile dlls/xactengine2_4 enable_xactengine2_4 wine_fn_config_makefile dlls/xactengine3_0 enable_xactengine3_0 wine_fn_config_makefile dlls/xactengine3_1 enable_xactengine3_1 wine_fn_config_makefile dlls/xactengine3_2 enable_xactengine3_2 diff --git a/configure.ac b/configure.ac index 7f966e744a1..414a135612f 100644 --- a/configure.ac +++ b/configure.ac @@ -1916,6 +1916,7 @@ then enable_x3daudio1_6=${enable_x3daudio1_6:-no} enable_x3daudio1_7=${enable_x3daudio1_7:-no} enable_xactengine2_0=${enable_xactengine2_0:-no} + enable_xactengine2_4=${enable_xactengine2_4:-no} enable_xactengine3_0=${enable_xactengine3_0:-no} enable_xactengine3_1=${enable_xactengine3_1:-no} enable_xactengine3_2=${enable_xactengine3_2:-no} @@ -3894,6 +3895,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5) WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6) WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7) WINE_CONFIG_MAKEFILE(dlls/xactengine2_0) +WINE_CONFIG_MAKEFILE(dlls/xactengine2_4) WINE_CONFIG_MAKEFILE(dlls/xactengine3_0) WINE_CONFIG_MAKEFILE(dlls/xactengine3_1) WINE_CONFIG_MAKEFILE(dlls/xactengine3_2) diff --git a/dlls/xactengine2_4/Makefile.in b/dlls/xactengine2_4/Makefile.in new file mode 100644 index 00000000000..51c7e5eb45a --- /dev/null +++ b/dlls/xactengine2_4/Makefile.in @@ -0,0 +1,11 @@ +MODULE = xactengine2_4.dll +IMPORTS = ole32 uuid +EXTRADEFS = -DXACT3_VER=0x0204 +PARENTSRC = ../xactengine3_7 +EXTRALIBS = $(FAUDIO_LIBS) +EXTRAINCL = $(FAUDIO_CFLAGS) + +C_SRCS = \ + xact_dll.c + +IDL_SRCS = xact_classes.idl diff --git a/dlls/xactengine2_4/xactengine2_4.spec b/dlls/xactengine2_4/xactengine2_4.spec new file mode 100644 index 00000000000..b16365d0c9f --- /dev/null +++ b/dlls/xactengine2_4/xactengine2_4.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dlls/xactengine3_7/xact_classes.idl b/dlls/xactengine3_7/xact_classes.idl index 91a9c19ff67..72de1cf302d 100644 --- a/dlls/xactengine3_7/xact_classes.idl +++ b/dlls/xactengine3_7/xact_classes.idl @@ -24,6 +24,8 @@ threading(both), #if XACT3_VER == 0x0200 uuid(0aa000aa-f404-11d9-bd7a-0010dc4f8f81) +#elif XACT3_VER == 0x0204 + uuid(bc3e0fc6-2e0d-4c45-bc61-d9c328319bd8) #elif XACT3_VER == 0x0300 uuid(3b80ee2a-b0f5-4780-9e30-90cb39685b03) #elif XACT3_VER == 0x0301
From: Zebediah Figura zfigura@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49668 Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- configure | 3 +++ configure.ac | 2 ++ dlls/xactengine2_7/Makefile.in | 11 +++++++++++ dlls/xactengine2_7/xactengine2_7.spec | 4 ++++ dlls/xactengine3_7/xact_classes.idl | 2 ++ 5 files changed, 22 insertions(+) create mode 100644 dlls/xactengine2_7/Makefile.in create mode 100644 dlls/xactengine2_7/xactengine2_7.spec
diff --git a/configure b/configure index 0f0561fa8e6..cb03311c9dd 100755 --- a/configure +++ b/configure @@ -1729,6 +1729,7 @@ enable_x3daudio1_6 enable_x3daudio1_7 enable_xactengine2_0 enable_xactengine2_4 +enable_xactengine2_7 enable_xactengine3_0 enable_xactengine3_1 enable_xactengine3_2 @@ -16428,6 +16429,7 @@ then enable_x3daudio1_7=${enable_x3daudio1_7:-no} enable_xactengine2_0=${enable_xactengine2_0:-no} enable_xactengine2_4=${enable_xactengine2_4:-no} + enable_xactengine2_7=${enable_xactengine2_7:-no} enable_xactengine3_0=${enable_xactengine3_0:-no} enable_xactengine3_1=${enable_xactengine3_1:-no} enable_xactengine3_2=${enable_xactengine3_2:-no} @@ -21215,6 +21217,7 @@ wine_fn_config_makefile dlls/x3daudio1_6 enable_x3daudio1_6 wine_fn_config_makefile dlls/x3daudio1_7 enable_x3daudio1_7 wine_fn_config_makefile dlls/xactengine2_0 enable_xactengine2_0 wine_fn_config_makefile dlls/xactengine2_4 enable_xactengine2_4 +wine_fn_config_makefile dlls/xactengine2_7 enable_xactengine2_7 wine_fn_config_makefile dlls/xactengine3_0 enable_xactengine3_0 wine_fn_config_makefile dlls/xactengine3_1 enable_xactengine3_1 wine_fn_config_makefile dlls/xactengine3_2 enable_xactengine3_2 diff --git a/configure.ac b/configure.ac index 414a135612f..8a0a8714bd8 100644 --- a/configure.ac +++ b/configure.ac @@ -1917,6 +1917,7 @@ then enable_x3daudio1_7=${enable_x3daudio1_7:-no} enable_xactengine2_0=${enable_xactengine2_0:-no} enable_xactengine2_4=${enable_xactengine2_4:-no} + enable_xactengine2_7=${enable_xactengine2_7:-no} enable_xactengine3_0=${enable_xactengine3_0:-no} enable_xactengine3_1=${enable_xactengine3_1:-no} enable_xactengine3_2=${enable_xactengine3_2:-no} @@ -3896,6 +3897,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6) WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7) WINE_CONFIG_MAKEFILE(dlls/xactengine2_0) WINE_CONFIG_MAKEFILE(dlls/xactengine2_4) +WINE_CONFIG_MAKEFILE(dlls/xactengine2_7) WINE_CONFIG_MAKEFILE(dlls/xactengine3_0) WINE_CONFIG_MAKEFILE(dlls/xactengine3_1) WINE_CONFIG_MAKEFILE(dlls/xactengine3_2) diff --git a/dlls/xactengine2_7/Makefile.in b/dlls/xactengine2_7/Makefile.in new file mode 100644 index 00000000000..8807677e44a --- /dev/null +++ b/dlls/xactengine2_7/Makefile.in @@ -0,0 +1,11 @@ +MODULE = xactengine2_7.dll +IMPORTS = ole32 uuid +EXTRADEFS = -DXACT3_VER=0x0207 +PARENTSRC = ../xactengine3_7 +EXTRALIBS = $(FAUDIO_LIBS) +EXTRAINCL = $(FAUDIO_CFLAGS) + +C_SRCS = \ + xact_dll.c + +IDL_SRCS = xact_classes.idl diff --git a/dlls/xactengine2_7/xactengine2_7.spec b/dlls/xactengine2_7/xactengine2_7.spec new file mode 100644 index 00000000000..b16365d0c9f --- /dev/null +++ b/dlls/xactengine2_7/xactengine2_7.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dlls/xactengine3_7/xact_classes.idl b/dlls/xactengine3_7/xact_classes.idl index 72de1cf302d..077f64a78e1 100644 --- a/dlls/xactengine3_7/xact_classes.idl +++ b/dlls/xactengine3_7/xact_classes.idl @@ -26,6 +26,8 @@ uuid(0aa000aa-f404-11d9-bd7a-0010dc4f8f81) #elif XACT3_VER == 0x0204 uuid(bc3e0fc6-2e0d-4c45-bc61-d9c328319bd8) +#elif XACT3_VER == 0x0207 + uuid(cd0d66ec-8057-43f5-acbd-66dfb36fd78c) #elif XACT3_VER == 0x0300 uuid(3b80ee2a-b0f5-4780-9e30-90cb39685b03) #elif XACT3_VER == 0x0301
From: Zebediah Figura zfigura@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=41468 Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- configure | 3 +++ configure.ac | 2 ++ dlls/xactengine2_9/Makefile.in | 11 +++++++++++ dlls/xactengine2_9/xactengine2_9.spec | 4 ++++ dlls/xactengine3_7/xact_classes.idl | 2 ++ 5 files changed, 22 insertions(+) create mode 100644 dlls/xactengine2_9/Makefile.in create mode 100644 dlls/xactengine2_9/xactengine2_9.spec
diff --git a/configure b/configure index cb03311c9dd..0b5fac4eff1 100755 --- a/configure +++ b/configure @@ -1730,6 +1730,7 @@ enable_x3daudio1_7 enable_xactengine2_0 enable_xactengine2_4 enable_xactengine2_7 +enable_xactengine2_9 enable_xactengine3_0 enable_xactengine3_1 enable_xactengine3_2 @@ -16430,6 +16431,7 @@ then enable_xactengine2_0=${enable_xactengine2_0:-no} enable_xactengine2_4=${enable_xactengine2_4:-no} enable_xactengine2_7=${enable_xactengine2_7:-no} + enable_xactengine2_9=${enable_xactengine2_9:-no} enable_xactengine3_0=${enable_xactengine3_0:-no} enable_xactengine3_1=${enable_xactengine3_1:-no} enable_xactengine3_2=${enable_xactengine3_2:-no} @@ -21218,6 +21220,7 @@ wine_fn_config_makefile dlls/x3daudio1_7 enable_x3daudio1_7 wine_fn_config_makefile dlls/xactengine2_0 enable_xactengine2_0 wine_fn_config_makefile dlls/xactengine2_4 enable_xactengine2_4 wine_fn_config_makefile dlls/xactengine2_7 enable_xactengine2_7 +wine_fn_config_makefile dlls/xactengine2_9 enable_xactengine2_9 wine_fn_config_makefile dlls/xactengine3_0 enable_xactengine3_0 wine_fn_config_makefile dlls/xactengine3_1 enable_xactengine3_1 wine_fn_config_makefile dlls/xactengine3_2 enable_xactengine3_2 diff --git a/configure.ac b/configure.ac index 8a0a8714bd8..8b80b7cac82 100644 --- a/configure.ac +++ b/configure.ac @@ -1918,6 +1918,7 @@ then enable_xactengine2_0=${enable_xactengine2_0:-no} enable_xactengine2_4=${enable_xactengine2_4:-no} enable_xactengine2_7=${enable_xactengine2_7:-no} + enable_xactengine2_9=${enable_xactengine2_9:-no} enable_xactengine3_0=${enable_xactengine3_0:-no} enable_xactengine3_1=${enable_xactengine3_1:-no} enable_xactengine3_2=${enable_xactengine3_2:-no} @@ -3898,6 +3899,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7) WINE_CONFIG_MAKEFILE(dlls/xactengine2_0) WINE_CONFIG_MAKEFILE(dlls/xactengine2_4) WINE_CONFIG_MAKEFILE(dlls/xactengine2_7) +WINE_CONFIG_MAKEFILE(dlls/xactengine2_9) WINE_CONFIG_MAKEFILE(dlls/xactengine3_0) WINE_CONFIG_MAKEFILE(dlls/xactengine3_1) WINE_CONFIG_MAKEFILE(dlls/xactengine3_2) diff --git a/dlls/xactengine2_9/Makefile.in b/dlls/xactengine2_9/Makefile.in new file mode 100644 index 00000000000..eae7c26b9fb --- /dev/null +++ b/dlls/xactengine2_9/Makefile.in @@ -0,0 +1,11 @@ +MODULE = xactengine2_9.dll +IMPORTS = ole32 uuid +EXTRADEFS = -DXACT3_VER=0x0209 +PARENTSRC = ../xactengine3_7 +EXTRALIBS = $(FAUDIO_LIBS) +EXTRAINCL = $(FAUDIO_CFLAGS) + +C_SRCS = \ + xact_dll.c + +IDL_SRCS = xact_classes.idl diff --git a/dlls/xactengine2_9/xactengine2_9.spec b/dlls/xactengine2_9/xactengine2_9.spec new file mode 100644 index 00000000000..b16365d0c9f --- /dev/null +++ b/dlls/xactengine2_9/xactengine2_9.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dlls/xactengine3_7/xact_classes.idl b/dlls/xactengine3_7/xact_classes.idl index 077f64a78e1..f978c05d18e 100644 --- a/dlls/xactengine3_7/xact_classes.idl +++ b/dlls/xactengine3_7/xact_classes.idl @@ -28,6 +28,8 @@ uuid(bc3e0fc6-2e0d-4c45-bc61-d9c328319bd8) #elif XACT3_VER == 0x0207 uuid(cd0d66ec-8057-43f5-acbd-66dfb36fd78c) +#elif XACT3_VER == 0x0209 + uuid(343e68e6-8f82-4a8d-a2da-6e9a944b378c) #elif XACT3_VER == 0x0300 uuid(3b80ee2a-b0f5-4780-9e30-90cb39685b03) #elif XACT3_VER == 0x0301