Module: wine
Branch: master
Commit: a6126ea2844748b00bd5e931deb3819898b8df42
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a6126ea2844748b00bd5e931d…
Author: Andrew Eikum <aeikum(a)codeweavers.com>
Date: Tue Jan 12 13:31:26 2016 -0600
xaudio2_0: Use shared source.
Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
configure | 1 +
configure.ac | 1 +
dlls/xaudio2_0/Makefile.in | 7 ++++-
dlls/xaudio2_0/xaudio2_0.spec | 2 +-
dlls/xaudio2_0/xaudio_classes.idl | 42 ------------------------------
dlls/xaudio2_0/xaudio_dll.c | 54 ---------------------------------------
dlls/xaudio2_7/xaudio_classes.idl | 23 +++++++++++++++++
7 files changed, 32 insertions(+), 98 deletions(-)
diff --git a/configure b/configure
index 09869ac..339a734 100755
--- a/configure
+++ b/configure
@@ -13719,6 +13719,7 @@ fi
if test "x$ac_cv_have_openalsoft" != xyes
then
as_fn_append wine_notices "|openal-soft ${notice_platform}development files not found (or too old), XAudio2 won't be supported"
+ enable_xaudio2_0=${enable_xaudio2_0:-no}
enable_xaudio2_1=${enable_xaudio2_1:-no}
enable_xaudio2_2=${enable_xaudio2_2:-no}
enable_xaudio2_3=${enable_xaudio2_3:-no}
diff --git a/configure.ac b/configure.ac
index cb3de07..3712906 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1662,6 +1662,7 @@ fi
if test "x$ac_cv_have_openalsoft" != xyes
then
WINE_NOTICE([openal-soft ${notice_platform}development files not found (or too old), XAudio2 won't be supported])
+ enable_xaudio2_0=${enable_xaudio2_0:-no}
enable_xaudio2_1=${enable_xaudio2_1:-no}
enable_xaudio2_2=${enable_xaudio2_2:-no}
enable_xaudio2_3=${enable_xaudio2_3:-no}
diff --git a/dlls/xaudio2_0/Makefile.in b/dlls/xaudio2_0/Makefile.in
index cc9d161..c0e31e3 100644
--- a/dlls/xaudio2_0/Makefile.in
+++ b/dlls/xaudio2_0/Makefile.in
@@ -1,7 +1,12 @@
+EXTRADEFS = -DXAUDIO2_VER=0
MODULE = xaudio2_0.dll
-IMPORTS = ole32
+IMPORTS = advapi32 kernel32 ole32 user32 uuid
+EXTRALIBS = $(OPENAL_LIBS)
+PARENTSRC = ../xaudio2_7
C_SRCS = \
+ compat.c \
+ xapofx.c \
xaudio_dll.c
IDL_SRCS = xaudio_classes.idl
diff --git a/dlls/xaudio2_0/xaudio2_0.spec b/dlls/xaudio2_0/xaudio2_0.spec
index cb263d4..b16365d 100644
--- a/dlls/xaudio2_0/xaudio2_0.spec
+++ b/dlls/xaudio2_0/xaudio2_0.spec
@@ -1,4 +1,4 @@
@ stdcall -private DllCanUnloadNow()
-@ stdcall -private DllGetClassObject(ptr ptr ptr) xaudio2_7.DllGetClassObject
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
@ stdcall -private DllRegisterServer()
@ stdcall -private DllUnregisterServer()
diff --git a/dlls/xaudio2_0/xaudio_classes.idl b/dlls/xaudio2_0/xaudio_classes.idl
deleted file mode 100644
index 08693fc..0000000
--- a/dlls/xaudio2_0/xaudio_classes.idl
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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(fac23f48-31f5-45a8-b49b-5225d61401aa)
-]
-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; }
diff --git a/dlls/xaudio2_0/xaudio_dll.c b/dlls/xaudio2_0/xaudio_dll.c
deleted file mode 100644
index e55861c..0000000
--- a/dlls/xaudio2_0/xaudio_dll.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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_WINE_PREATTACH:
- return FALSE; /* prefer native version */
- 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);
-}
diff --git a/dlls/xaudio2_7/xaudio_classes.idl b/dlls/xaudio2_7/xaudio_classes.idl
index 6e460ac..28c8667 100644
--- a/dlls/xaudio2_7/xaudio_classes.idl
+++ b/dlls/xaudio2_7/xaudio_classes.idl
@@ -257,3 +257,26 @@ coclass AudioReverb21 { interface IXAPO; }
]
coclass AudioVolumeMeter21 { interface IXAPO; }
#endif /* XAUDIO2_VER == 1 */
+
+#if XAUDIO2_VER == 0
+[
+ helpstring("XAudio2.0 Class"),
+ threading(both),
+ uuid(fac23f48-31f5-45a8-b49b-5225d61401aa)
+]
+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; }
+#endif /* XAUDIO2_VER == 0 */