Commit d8739d44 authored by Andrew Eikum's avatar Andrew Eikum Committed by Alexandre Julliard

xapofx1_5: Use shared source.

parent 1f37225a
......@@ -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_xapofx1_5=${enable_xapofx1_5:-no}
enable_xaudio2_0=${enable_xaudio2_0:-no}
enable_xaudio2_1=${enable_xaudio2_1:-no}
enable_xaudio2_2=${enable_xaudio2_2:-no}
......
......@@ -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_xapofx1_5=${enable_xapofx1_5:-no}
enable_xaudio2_0=${enable_xaudio2_0:-no}
enable_xaudio2_1=${enable_xaudio2_1:-no}
enable_xaudio2_2=${enable_xaudio2_2:-no}
......
EXTRADEFS = -DXAPOFX1_VER=5 -DXAUDIO2_VER=7
MODULE = xapofx1_5.dll
IMPORTS = ole32
PARENTSRC = ../xaudio2_7
C_SRCS = \
main.c
xapofx.c
/*
* 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);
}
......@@ -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 */
......@@ -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
......
......@@ -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;
......
......@@ -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
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