Andrew Eikum : xaudio2: Remove run-time versioning of xapo objects.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jan 18 11:09:02 CST 2016


Module: wine
Branch: master
Commit: 0a8e8d190fcc979b25c6f1d675458cf51c60d0a0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0a8e8d190fcc979b25c6f1d675458cf51c60d0a0

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Fri Jan 15 13:48:37 2016 -0600

xaudio2: Remove run-time versioning of xapo objects.

Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/xaudio2_7/xapofx.c         | 29 +++++++-------------
 dlls/xaudio2_7/xaudio_dll.c     | 59 +++++++++++++----------------------------
 dlls/xaudio2_7/xaudio_private.h |  2 +-
 3 files changed, 30 insertions(+), 60 deletions(-)

diff --git a/dlls/xaudio2_7/xapofx.c b/dlls/xaudio2_7/xapofx.c
index 9b9a077..44dfb47 100644
--- a/dlls/xaudio2_7/xapofx.c
+++ b/dlls/xaudio2_7/xapofx.c
@@ -53,8 +53,6 @@ typedef struct _VUMeterImpl {
     IXAPOParameters IXAPOParameters_iface;
 
     LONG ref;
-
-    DWORD version;
 } VUMeterImpl;
 
 static VUMeterImpl *VUMeterImpl_from_IXAPO(IXAPO *iface)
@@ -258,8 +256,6 @@ typedef struct _ReverbImpl {
     IXAPOParameters IXAPOParameters_iface;
 
     LONG ref;
-
-    DWORD version;
 } ReverbImpl;
 
 static ReverbImpl *ReverbImpl_from_IXAPO(IXAPO *iface)
@@ -461,8 +457,6 @@ typedef struct _EQImpl {
     IXAPOParameters IXAPOParameters_iface;
 
     LONG ref;
-
-    DWORD version;
 } EQImpl;
 
 static EQImpl *EQImpl_from_IXAPO(IXAPO *iface)
@@ -662,7 +656,6 @@ static const IXAPOParametersVtbl EQXAPOParameters_Vtbl = {
 struct xapo_cf {
     IClassFactory IClassFactory_iface;
     LONG ref;
-    DWORD version;
     const CLSID *class;
 };
 
@@ -726,14 +719,13 @@ static HRESULT WINAPI xapocf_CreateInstance(IClassFactory *iface, IUnknown *pOut
 
         object->IXAPO_iface.lpVtbl = &VUMXAPO_Vtbl;
         object->IXAPOParameters_iface.lpVtbl = &VUMXAPOParameters_Vtbl;
-        object->version = This->version;
 
         hr = IXAPO_QueryInterface(&object->IXAPO_iface, riid, ppobj);
         if(FAILED(hr)){
             HeapFree(GetProcessHeap(), 0, object);
             return hr;
         }
-    }else if(IsEqualGUID(This->class, &CLSID_AudioReverb27)){
+    }else if(IsEqualGUID(This->class, &CLSID_FXReverb)){
         ReverbImpl *object;
 
         object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
@@ -742,7 +734,6 @@ static HRESULT WINAPI xapocf_CreateInstance(IClassFactory *iface, IUnknown *pOut
 
         object->IXAPO_iface.lpVtbl = &RVBXAPO_Vtbl;
         object->IXAPOParameters_iface.lpVtbl = &RVBXAPOParameters_Vtbl;
-        object->version = This->version;
 
         hr = IXAPO_QueryInterface(&object->IXAPO_iface, riid, ppobj);
         if(FAILED(hr)){
@@ -758,7 +749,6 @@ static HRESULT WINAPI xapocf_CreateInstance(IClassFactory *iface, IUnknown *pOut
 
         object->IXAPO_iface.lpVtbl = &EQXAPO_Vtbl;
         object->IXAPOParameters_iface.lpVtbl = &EQXAPOParameters_Vtbl;
-        object->version = This->version;
 
         hr = IXAPO_QueryInterface(&object->IXAPO_iface, riid, ppobj);
         if(FAILED(hr)){
@@ -766,6 +756,7 @@ static HRESULT WINAPI xapocf_CreateInstance(IClassFactory *iface, IUnknown *pOut
             return hr;
         }
     }else
+        /* TODO FXECHO, FXMasteringLimiter, */
         return E_INVALIDARG;
 
     return S_OK;
@@ -786,11 +777,10 @@ static const IClassFactoryVtbl xapo_Vtbl =
     xapocf_LockServer
 };
 
-IClassFactory *make_xapo_factory(REFCLSID clsid, DWORD version)
+IClassFactory *make_xapo_factory(REFCLSID clsid)
 {
     struct xapo_cf *ret = HeapAlloc(GetProcessHeap(), 0, sizeof(struct xapo_cf));
     ret->IClassFactory_iface.lpVtbl = &xapo_Vtbl;
-    ret->version = version;
     ret->class = clsid;
     ret->ref = 0;
     return &ret->IClassFactory_iface;
@@ -802,7 +792,7 @@ HRESULT WINAPI CreateAudioVolumeMeter(IUnknown **out)
     IClassFactory *cf;
     HRESULT hr;
 
-    cf = make_xapo_factory(&CLSID_AudioVolumeMeter27, 28);
+    cf = make_xapo_factory(&CLSID_AudioVolumeMeter27);
 
     hr = IClassFactory_CreateInstance(cf, NULL, &IID_IUnknown, (void**)out);
 
@@ -816,7 +806,7 @@ HRESULT WINAPI CreateAudioReverb(IUnknown **out)
     IClassFactory *cf;
     HRESULT hr;
 
-    cf = make_xapo_factory(&CLSID_AudioReverb27, 28);
+    cf = make_xapo_factory(&CLSID_FXReverb);
 
     hr = IClassFactory_CreateInstance(cf, NULL, &IID_IUnknown, (void**)out);
 
@@ -836,13 +826,13 @@ HRESULT CDECL CreateFX(REFCLSID clsid, IUnknown **out, void *initdata, UINT32 in
 
     if(IsEqualGUID(clsid, &CLSID_FXReverb27) ||
             IsEqualGUID(clsid, &CLSID_FXReverb))
-        class = &CLSID_AudioReverb27;
+        class = &CLSID_FXReverb;
     else if(IsEqualGUID(clsid, &CLSID_FXEQ27) ||
             IsEqualGUID(clsid, &CLSID_FXEQ))
         class = &CLSID_FXEQ;
 
     if(class){
-        cf = make_xapo_factory(class, 20 + XAUDIO2_VER);
+        cf = make_xapo_factory(class);
 
         hr = IClassFactory_CreateInstance(cf, NULL, &IID_IUnknown, (void**)&obj);
         IClassFactory_Release(cf);
@@ -893,13 +883,14 @@ HRESULT CDECL CreateFX(REFCLSID clsid, IUnknown **out)
 
     if(IsEqualGUID(clsid, &CLSID_FXReverb27) ||
             IsEqualGUID(clsid, &CLSID_FXReverb))
-        class = &CLSID_AudioReverb27;
+        class = &CLSID_FXReverb;
     else if(IsEqualGUID(clsid, &CLSID_FXEQ27) ||
             IsEqualGUID(clsid, &CLSID_FXEQ))
         class = &CLSID_FXEQ;
+    /* TODO FXECHO, FXMasteringLimiter, */
 
     if(class){
-        cf = make_xapo_factory(class, 20 + XAUDIO2_VER);
+        cf = make_xapo_factory(class);
 
         hr = IClassFactory_CreateInstance(cf, NULL, &IID_IUnknown, (void**)&obj);
         IClassFactory_Release(cf);
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c
index 6517b40..efa6279 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -2020,46 +2020,25 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
             IsEqualGUID(rclsid, &CLSID_XAudio27)){
         factory = make_xaudio2_factory();
 
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter20)){
-        factory = make_xapo_factory(&CLSID_AudioVolumeMeter27, 20);
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter21)){
-        factory = make_xapo_factory(&CLSID_AudioVolumeMeter27, 21);
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter22)){
-        factory = make_xapo_factory(&CLSID_AudioVolumeMeter27, 22);
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter23)){
-        factory = make_xapo_factory(&CLSID_AudioVolumeMeter27, 23);
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter24)){
-        factory = make_xapo_factory(&CLSID_AudioVolumeMeter27, 24);
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter25)){
-        factory = make_xapo_factory(&CLSID_AudioVolumeMeter27, 25);
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter26)){
-        factory = make_xapo_factory(&CLSID_AudioVolumeMeter27, 26);
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter27)){
-        factory = make_xapo_factory(&CLSID_AudioVolumeMeter27, 27);
-
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb20)){
-        factory = make_xapo_factory(&CLSID_AudioReverb27, 20);
-
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb21)){
-        factory = make_xapo_factory(&CLSID_AudioReverb27, 21);
-
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb22)){
-        factory = make_xapo_factory(&CLSID_AudioReverb27, 22);
-
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb23)){
-        factory = make_xapo_factory(&CLSID_AudioReverb27, 23);
-
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb24)){
-        factory = make_xapo_factory(&CLSID_AudioReverb27, 24);
-
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb25)){
-        factory = make_xapo_factory(&CLSID_AudioReverb27, 25);
-
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb26)){
-        factory = make_xapo_factory(&CLSID_AudioReverb27, 26);
-
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb27)){
-        factory = make_xapo_factory(&CLSID_AudioReverb27, 27);
+    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter20) ||
+                IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter21) ||
+                IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter22) ||
+                IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter23) ||
+                IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter24) ||
+                IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter25) ||
+                IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter26) ||
+                IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter27)){
+        factory = make_xapo_factory(&CLSID_AudioVolumeMeter27);
+
+    }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb20) ||
+                IsEqualGUID(rclsid, &CLSID_AudioReverb21) ||
+                IsEqualGUID(rclsid, &CLSID_AudioReverb22) ||
+                IsEqualGUID(rclsid, &CLSID_AudioReverb23) ||
+                IsEqualGUID(rclsid, &CLSID_AudioReverb24) ||
+                IsEqualGUID(rclsid, &CLSID_AudioReverb25) ||
+                IsEqualGUID(rclsid, &CLSID_AudioReverb26) ||
+                IsEqualGUID(rclsid, &CLSID_AudioReverb27)){
+        factory = make_xapo_factory(&CLSID_FXReverb);
     }
 
     if(!factory) return CLASS_E_CLASSNOTAVAILABLE;
diff --git a/dlls/xaudio2_7/xaudio_private.h b/dlls/xaudio2_7/xaudio_private.h
index 81db339..a75f721 100644
--- a/dlls/xaudio2_7/xaudio_private.h
+++ b/dlls/xaudio2_7/xaudio_private.h
@@ -149,4 +149,4 @@ extern const IXAudio20SourceVoiceVtbl XAudio20SourceVoice_Vtbl DECLSPEC_HIDDEN;
 extern const IXAudio20SubmixVoiceVtbl XAudio20SubmixVoice_Vtbl DECLSPEC_HIDDEN;
 extern const IXAudio20MasteringVoiceVtbl XAudio20MasteringVoice_Vtbl DECLSPEC_HIDDEN;
 
-extern IClassFactory *make_xapo_factory(REFCLSID clsid, DWORD version);
+extern IClassFactory *make_xapo_factory(REFCLSID clsid) DECLSPEC_HIDDEN;




More information about the wine-cvs mailing list