[PATCH 1/5] xapofx1_5: Use shared source
Andrew Eikum
aeikum at codeweavers.com
Thu Jan 14 08:09:55 CST 2016
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
---
dlls/xapofx1_5/Makefile.in | 4 ++-
dlls/xapofx1_5/main.c | 59 ---------------------------------------
dlls/xaudio2_7/xapofx.c | 58 ++++++++++++++++++++++++++++++++++++++
dlls/xaudio2_7/xaudio_classes.idl | 14 ----------
dlls/xaudio2_7/xaudio_dll.c | 7 +----
include/xapofx.h | 4 ---
6 files changed, 62 insertions(+), 84 deletions(-)
delete mode 100644 dlls/xapofx1_5/main.c
diff --git a/dlls/xapofx1_5/Makefile.in b/dlls/xapofx1_5/Makefile.in
index d243802..5055a16 100644
--- a/dlls/xapofx1_5/Makefile.in
+++ b/dlls/xapofx1_5/Makefile.in
@@ -1,5 +1,7 @@
+EXTRADEFS = -DXAPOFX1_VER=5 -DXAUDIO2_VER=7
MODULE = xapofx1_5.dll
IMPORTS = ole32
+PARENTSRC = ../xaudio2_7
C_SRCS = \
- main.c
+ xapofx.c
diff --git a/dlls/xapofx1_5/main.c b/dlls/xapofx1_5/main.c
deleted file mode 100644
index 64d9475..0000000
--- a/dlls/xapofx1_5/main.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2015 Austin English
- *
- * 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 "config.h"
-#include <stdarg.h>
-
-#include "initguid.h"
-#include "windef.h"
-#include "winbase.h"
-#include "compobj.h"
-#include "xapofx.h"
-#include "wine/debug.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(xaudio2);
-
-BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
-{
- switch (reason)
- {
- case DLL_WINE_PREATTACH:
- return FALSE; /* prefer native version */
- case DLL_PROCESS_ATTACH:
- DisableThreadLibraryCalls(instance);
- break;
- }
-
- return TRUE;
-}
-
-HRESULT CDECL CreateFX(REFCLSID clsid, IUnknown **out)
-{
- const GUID *class = clsid;
-
- TRACE("%s %p\n", debugstr_guid(clsid), out);
-
- if(IsEqualGUID(clsid, &CLSID_FXReverb27) ||
- IsEqualGUID(clsid, &CLSID_FXReverb))
- class = &CLSID_WINE_FXReverb15;
- else if(IsEqualGUID(clsid, &CLSID_FXEQ27) ||
- IsEqualGUID(clsid, &CLSID_FXEQ))
- class = &CLSID_WINE_FXEQ15;
-
- return CoCreateInstance(class, NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)out);
-}
diff --git a/dlls/xaudio2_7/xapofx.c b/dlls/xaudio2_7/xapofx.c
index e3c9fc9..9b9a077 100644
--- a/dlls/xaudio2_7/xapofx.c
+++ b/dlls/xaudio2_7/xapofx.c
@@ -23,6 +23,7 @@
#define NONAMELESSUNION
#define COBJMACROS
+#include "initguid.h"
#include "xaudio_private.h"
#include "xapofx.h"
@@ -30,6 +31,23 @@
WINE_DEFAULT_DEBUG_CHANNEL(xaudio2);
+#ifdef XAPOFX1_VER
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD reason, void *pReserved)
+{
+ TRACE("(%p, %d, %p)\n", hinstDLL, reason, pReserved);
+
+ switch (reason)
+ {
+ case DLL_WINE_PREATTACH:
+ return FALSE; /* prefer native version */
+ case DLL_PROCESS_ATTACH:
+ DisableThreadLibraryCalls( hinstDLL );
+ break;
+ }
+ return TRUE;
+}
+#endif /* XAPOFX1_VER */
+
typedef struct _VUMeterImpl {
IXAPO IXAPO_iface;
IXAPOParameters IXAPOParameters_iface;
@@ -860,3 +878,43 @@ HRESULT CDECL CreateFX(REFCLSID clsid, IUnknown **out, void *initdata, UINT32 in
return S_OK;
}
#endif /* XAUDIO2_VER >= 8 */
+
+#ifdef XAPOFX1_VER
+HRESULT CDECL CreateFX(REFCLSID clsid, IUnknown **out)
+{
+ HRESULT hr;
+ IUnknown *obj;
+ const GUID *class = NULL;
+ IClassFactory *cf;
+
+ TRACE("%s %p\n", debugstr_guid(clsid), out);
+
+ *out = NULL;
+
+ if(IsEqualGUID(clsid, &CLSID_FXReverb27) ||
+ IsEqualGUID(clsid, &CLSID_FXReverb))
+ class = &CLSID_AudioReverb27;
+ else if(IsEqualGUID(clsid, &CLSID_FXEQ27) ||
+ IsEqualGUID(clsid, &CLSID_FXEQ))
+ class = &CLSID_FXEQ;
+
+ if(class){
+ cf = make_xapo_factory(class, 20 + XAUDIO2_VER);
+
+ hr = IClassFactory_CreateInstance(cf, NULL, &IID_IUnknown, (void**)&obj);
+ IClassFactory_Release(cf);
+ if(FAILED(hr))
+ return hr;
+ }else{
+ hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)&obj);
+ if(FAILED(hr)){
+ WARN("CoCreateInstance failed: %08x\n", hr);
+ return hr;
+ }
+ }
+
+ *out = obj;
+
+ return S_OK;
+}
+#endif /* XAPOFX1_VER */
diff --git a/dlls/xaudio2_7/xaudio_classes.idl b/dlls/xaudio2_7/xaudio_classes.idl
index 28c8667..a4ad4ab 100644
--- a/dlls/xaudio2_7/xaudio_classes.idl
+++ b/dlls/xaudio2_7/xaudio_classes.idl
@@ -78,13 +78,6 @@ coclass FXReverb13 { interface IXAPO; }
coclass FXReverb14 { interface IXAPO; }
[
- helpstring("XAPOFX1.5 FXReverb Class (Wine)"),
- threading(both),
- uuid(a90bc001-e897-e897-7439-43FF02000105)
-]
-coclass FXReverb15 { interface IXAPO; }
-
-[
helpstring("XAPOFX1.1 FXEQ Class (Wine)"),
threading(both),
uuid(a90bc001-e897-e897-7439-43FF00000101)
@@ -111,13 +104,6 @@ coclass FXEQ13 { interface IXAPO; }
uuid(a90bc001-e897-e897-7439-43FF00000104)
]
coclass FXEQ14 { interface IXAPO; }
-
-[
- helpstring("XAPOFX1.5 FXEQ Class (Wine)"),
- threading(both),
- uuid(a90bc001-e897-e897-7439-43FF00000105)
-]
-coclass FXEQ15 { interface IXAPO; }
#endif /* XAUDIO2_VER == 7 */
#if XAUDIO2_VER == 6
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c
index 2737b44..0c492f7 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -22,8 +22,6 @@
#define NONAMELESSUNION
#define COBJMACROS
-#include "initguid.h"
-
#include "xaudio_private.h"
#include "ole2.h"
@@ -2070,8 +2068,7 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
IsEqualGUID(rclsid, &CLSID_WINE_FXReverb14)){
factory = make_xapo_factory(&CLSID_AudioReverb27, 26);
- }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb27) ||
- IsEqualGUID(rclsid, &CLSID_WINE_FXReverb15)){
+ }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb27)){
factory = make_xapo_factory(&CLSID_AudioReverb27, 27);
}else if(IsEqualGUID(rclsid, &CLSID_WINE_FXEQ10)){
@@ -2084,8 +2081,6 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
factory = make_xapo_factory(&CLSID_FXEQ, 24);
}else if(IsEqualGUID(rclsid, &CLSID_WINE_FXEQ14)){
factory = make_xapo_factory(&CLSID_FXEQ, 26);
- }else if(IsEqualGUID(rclsid, &CLSID_WINE_FXEQ15)){
- factory = make_xapo_factory(&CLSID_FXEQ, 27);
}
if(!factory) return CLASS_E_CLASSNOTAVAILABLE;
diff --git a/include/xapofx.h b/include/xapofx.h
index 5010375..d7e1841 100644
--- a/include/xapofx.h
+++ b/include/xapofx.h
@@ -31,7 +31,6 @@ DEFINE_GUID(CLSID_WINE_FXEQ11, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xF
DEFINE_GUID(CLSID_WINE_FXEQ12, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x00, 0x00, 0x01, 0x02);
DEFINE_GUID(CLSID_WINE_FXEQ13, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x00, 0x00, 0x01, 0x03);
DEFINE_GUID(CLSID_WINE_FXEQ14, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x00, 0x00, 0x01, 0x04);
-DEFINE_GUID(CLSID_WINE_FXEQ15, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x00, 0x00, 0x01, 0x05);
/* xapofx 1.0 through 1.5 */
DEFINE_GUID(CLSID_FXMasteringLimiter27, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0x55, 0x00, 0x00, 0x00, 0x01);
@@ -43,7 +42,6 @@ DEFINE_GUID(CLSID_WINE_FXMasteringLimiter11, 0xa90bc001, 0xe897, 0xe897, 0x74, 0
DEFINE_GUID(CLSID_WINE_FXMasteringLimiter12, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x01, 0x00, 0x01, 0x02);
DEFINE_GUID(CLSID_WINE_FXMasteringLimiter13, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x01, 0x00, 0x01, 0x03);
DEFINE_GUID(CLSID_WINE_FXMasteringLimiter14, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x01, 0x00, 0x01, 0x04);
-DEFINE_GUID(CLSID_WINE_FXMasteringLimiter15, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x01, 0x00, 0x01, 0x05);
/* xapofx 1.0 through 1.5 */
DEFINE_GUID(CLSID_FXReverb27, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0x55, 0x00, 0x00, 0x00, 0x02);
@@ -55,7 +53,6 @@ DEFINE_GUID(CLSID_WINE_FXReverb11, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43,
DEFINE_GUID(CLSID_WINE_FXReverb12, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x02, 0x00, 0x01, 0x02);
DEFINE_GUID(CLSID_WINE_FXReverb13, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x02, 0x00, 0x01, 0x03);
DEFINE_GUID(CLSID_WINE_FXReverb14, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x02, 0x00, 0x01, 0x04);
-DEFINE_GUID(CLSID_WINE_FXReverb15, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x02, 0x00, 0x01, 0x05);
/* xapofx 1.0 through 1.5 */
DEFINE_GUID(CLSID_FXEcho27, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0x55, 0x00, 0x00, 0x00, 0x03);
@@ -67,6 +64,5 @@ DEFINE_GUID(CLSID_WINE_FXEcho11, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0
DEFINE_GUID(CLSID_WINE_FXEcho12, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x03, 0x00, 0x01, 0x02);
DEFINE_GUID(CLSID_WINE_FXEcho13, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x03, 0x00, 0x01, 0x03);
DEFINE_GUID(CLSID_WINE_FXEcho14, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x03, 0x00, 0x01, 0x04);
-DEFINE_GUID(CLSID_WINE_FXEcho15, 0xa90bc001, 0xe897, 0xe897, 0x74, 0x39, 0x43, 0xFF, 0x03, 0x00, 0x01, 0x05);
#endif
--
2.7.0
More information about the wine-patches
mailing list