Commit 4185cc7a authored by Andrew Eikum's avatar Andrew Eikum Committed by Alexandre Julliard

xaudio2_0: Add compatibility implementation and forward to xaudio2_7.

parent 76aa675d
...@@ -1377,6 +1377,7 @@ enable_xapofx1_2 ...@@ -1377,6 +1377,7 @@ enable_xapofx1_2
enable_xapofx1_3 enable_xapofx1_3
enable_xapofx1_4 enable_xapofx1_4
enable_xapofx1_5 enable_xapofx1_5
enable_xaudio2_0
enable_xaudio2_1 enable_xaudio2_1
enable_xaudio2_2 enable_xaudio2_2
enable_xaudio2_3 enable_xaudio2_3
...@@ -17949,6 +17950,7 @@ wine_fn_config_dll xapofx1_2 enable_xapofx1_2 ...@@ -17949,6 +17950,7 @@ wine_fn_config_dll xapofx1_2 enable_xapofx1_2
wine_fn_config_dll xapofx1_3 enable_xapofx1_3 wine_fn_config_dll xapofx1_3 enable_xapofx1_3
wine_fn_config_dll xapofx1_4 enable_xapofx1_4 wine_fn_config_dll xapofx1_4 enable_xapofx1_4
wine_fn_config_dll xapofx1_5 enable_xapofx1_5 wine_fn_config_dll xapofx1_5 enable_xapofx1_5
wine_fn_config_dll xaudio2_0 enable_xaudio2_0 clean
wine_fn_config_dll xaudio2_1 enable_xaudio2_1 clean wine_fn_config_dll xaudio2_1 enable_xaudio2_1 clean
wine_fn_config_dll xaudio2_2 enable_xaudio2_2 clean wine_fn_config_dll xaudio2_2 enable_xaudio2_2 clean
wine_fn_config_dll xaudio2_3 enable_xaudio2_3 clean wine_fn_config_dll xaudio2_3 enable_xaudio2_3 clean
......
...@@ -3463,6 +3463,7 @@ WINE_CONFIG_DLL(xapofx1_2) ...@@ -3463,6 +3463,7 @@ WINE_CONFIG_DLL(xapofx1_2)
WINE_CONFIG_DLL(xapofx1_3) WINE_CONFIG_DLL(xapofx1_3)
WINE_CONFIG_DLL(xapofx1_4) WINE_CONFIG_DLL(xapofx1_4)
WINE_CONFIG_DLL(xapofx1_5) WINE_CONFIG_DLL(xapofx1_5)
WINE_CONFIG_DLL(xaudio2_0,,[clean])
WINE_CONFIG_DLL(xaudio2_1,,[clean]) WINE_CONFIG_DLL(xaudio2_1,,[clean])
WINE_CONFIG_DLL(xaudio2_2,,[clean]) WINE_CONFIG_DLL(xaudio2_2,,[clean])
WINE_CONFIG_DLL(xaudio2_3,,[clean]) WINE_CONFIG_DLL(xaudio2_3,,[clean])
......
MODULE = xaudio2_0.dll
IMPORTS = ole32
C_SRCS = \
xaudio_dll.c
IDL_SRCS = xaudio_classes.idl
@ stdcall -private DllCanUnloadNow()
@ stdcall -private DllGetClassObject(ptr ptr ptr) xaudio2_7.DllGetClassObject
@ stdcall -private DllRegisterServer()
@ stdcall -private DllUnregisterServer()
/*
* COM Classes for xaudio
*
* Copyright 2015 Andrew Eikum for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#pragma makedep register
[
helpstring("XAudio2.0 Class"),
threading(both),
uuid(e21a7345-eb21-468e-be50-804db97cf708)
]
coclass XAudio20 { interface IXAudio20; }
[
helpstring("XAudio2.0 AudioReverb Class"),
threading(both),
uuid(6f6ea3a9-2cf5-41cf-91c1-2170b1540063)
]
coclass AudioReverb20 { interface IXAPO; }
[
helpstring("XAudio2.0 AudioVolumeMeter Class"),
threading(both),
uuid(c0c56f46-29b1-44e9-9939-a32ce86867e2)
]
coclass AudioVolumeMeter20 { interface IXAPO; }
/*
* Copyright (c) 2015 Andrew Eikum for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
#include "rpcproxy.h"
static HINSTANCE instance;
BOOL WINAPI DllMain(HINSTANCE hinstance, DWORD reason, LPVOID reserved)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
instance = hinstance;
DisableThreadLibraryCalls(hinstance);
break;
}
return TRUE;
}
HRESULT WINAPI DllCanUnloadNow(void)
{
return S_FALSE;
}
HRESULT WINAPI DllRegisterServer(void)
{
return __wine_register_resources(instance);
}
HRESULT WINAPI DllUnregisterServer(void)
{
return __wine_unregister_resources(instance);
}
...@@ -42,6 +42,7 @@ typedef struct _XA2Buffer { ...@@ -42,6 +42,7 @@ typedef struct _XA2Buffer {
typedef struct _IXAudio2Impl IXAudio2Impl; typedef struct _IXAudio2Impl IXAudio2Impl;
typedef struct _XA2SourceImpl { typedef struct _XA2SourceImpl {
IXAudio20SourceVoice IXAudio20SourceVoice_iface;
IXAudio23SourceVoice IXAudio23SourceVoice_iface; IXAudio23SourceVoice IXAudio23SourceVoice_iface;
IXAudio27SourceVoice IXAudio27SourceVoice_iface; IXAudio27SourceVoice IXAudio27SourceVoice_iface;
IXAudio2SourceVoice IXAudio2SourceVoice_iface; IXAudio2SourceVoice IXAudio2SourceVoice_iface;
...@@ -81,6 +82,7 @@ typedef struct _XA2SourceImpl { ...@@ -81,6 +82,7 @@ typedef struct _XA2SourceImpl {
} XA2SourceImpl; } XA2SourceImpl;
typedef struct _XA2SubmixImpl { typedef struct _XA2SubmixImpl {
IXAudio20SubmixVoice IXAudio20SubmixVoice_iface;
IXAudio23SubmixVoice IXAudio23SubmixVoice_iface; IXAudio23SubmixVoice IXAudio23SubmixVoice_iface;
IXAudio2SubmixVoice IXAudio2SubmixVoice_iface; IXAudio2SubmixVoice IXAudio2SubmixVoice_iface;
...@@ -92,9 +94,11 @@ typedef struct _XA2SubmixImpl { ...@@ -92,9 +94,11 @@ typedef struct _XA2SubmixImpl {
} XA2SubmixImpl; } XA2SubmixImpl;
struct _IXAudio2Impl { struct _IXAudio2Impl {
IXAudio20 IXAudio20_iface;
IXAudio22 IXAudio22_iface; IXAudio22 IXAudio22_iface;
IXAudio27 IXAudio27_iface; IXAudio27 IXAudio27_iface;
IXAudio2 IXAudio2_iface; IXAudio2 IXAudio2_iface;
IXAudio20MasteringVoice IXAudio20MasteringVoice_iface;
IXAudio23MasteringVoice IXAudio23MasteringVoice_iface; IXAudio23MasteringVoice IXAudio23MasteringVoice_iface;
IXAudio2MasteringVoice IXAudio2MasteringVoice_iface; IXAudio2MasteringVoice IXAudio2MasteringVoice_iface;
...@@ -115,6 +119,8 @@ struct _IXAudio2Impl { ...@@ -115,6 +119,8 @@ struct _IXAudio2Impl {
WCHAR **devids; WCHAR **devids;
UINT32 ndevs; UINT32 ndevs;
UINT32 last_query_glitches;
IAudioClient *aclient; IAudioClient *aclient;
IAudioRenderClient *render; IAudioRenderClient *render;
...@@ -139,3 +145,8 @@ extern const IXAudio23SubmixVoiceVtbl XAudio23SubmixVoice_Vtbl DECLSPEC_HIDDEN; ...@@ -139,3 +145,8 @@ extern const IXAudio23SubmixVoiceVtbl XAudio23SubmixVoice_Vtbl DECLSPEC_HIDDEN;
extern const IXAudio23MasteringVoiceVtbl XAudio23MasteringVoice_Vtbl DECLSPEC_HIDDEN; extern const IXAudio23MasteringVoiceVtbl XAudio23MasteringVoice_Vtbl DECLSPEC_HIDDEN;
extern const IXAudio22Vtbl XAudio22_Vtbl DECLSPEC_HIDDEN; extern const IXAudio22Vtbl XAudio22_Vtbl DECLSPEC_HIDDEN;
extern const IXAudio20Vtbl XAudio20_Vtbl DECLSPEC_HIDDEN;
extern const IXAudio20SourceVoiceVtbl XAudio20SourceVoice_Vtbl DECLSPEC_HIDDEN;
extern const IXAudio20SubmixVoiceVtbl XAudio20SubmixVoice_Vtbl DECLSPEC_HIDDEN;
extern const IXAudio20MasteringVoiceVtbl XAudio20MasteringVoice_Vtbl DECLSPEC_HIDDEN;
...@@ -60,6 +60,22 @@ typedef struct XAPO_REGISTRATION_PROPERTIES ...@@ -60,6 +60,22 @@ typedef struct XAPO_REGISTRATION_PROPERTIES
UINT32 MaxOutputBufferCount; UINT32 MaxOutputBufferCount;
} XAPO_REGISTRATION_PROPERTIES; } XAPO_REGISTRATION_PROPERTIES;
typedef struct XAPO20_REGISTRATION_PROPERTIES
{
CLSID clsid;
WCHAR FriendlyName[XAPO_REGISTRATION_STRING_LENGTH];
WCHAR CopyrightInfo[XAPO_REGISTRATION_STRING_LENGTH];
UINT32 MajorVersion;
UINT32 MinorVersion;
UINT32 Flags;
UINT32 MinInputBufferCount;
UINT32 MaxInputBufferCount;
UINT32 MinOutputBufferCount;
UINT32 MaxOutputBufferCount;
UINT32 InterfaceCount;
IID InterfaceArray[1];
} XAPO20_REGISTRATION_PROPERTIES;
typedef struct XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS { typedef struct XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS {
const WAVEFORMATEX *pFormat; const WAVEFORMATEX *pFormat;
UINT32 MaxFrameCount; UINT32 MaxFrameCount;
......
...@@ -26,6 +26,13 @@ coclass AudioVolumeMeter { ...@@ -26,6 +26,13 @@ coclass AudioVolumeMeter {
} }
[ [
uuid(c0c56f46-29b1-44e9-9939-a32ce86867e2)
]
coclass AudioVolumeMeter20 {
interface IUnknown;
}
[
uuid(c1e3f122-a2ea-442c-854f-20d98f8357a1) uuid(c1e3f122-a2ea-442c-854f-20d98f8357a1)
] ]
coclass AudioVolumeMeter21 { coclass AudioVolumeMeter21 {
...@@ -75,6 +82,13 @@ coclass AudioReverb { ...@@ -75,6 +82,13 @@ coclass AudioReverb {
} }
[ [
uuid(6f6ea3a9-2cf5-41cf-91c1-2170b1540063)
]
coclass AudioReverb20 {
interface IUnknown;
}
[
uuid(f4769300-b949-4df9-b333-00d33932e9a6) uuid(f4769300-b949-4df9-b333-00d33932e9a6)
] ]
coclass AudioReverb21 { coclass AudioReverb21 {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment