[PATCH 3/3] xaudio2: Register legacy AudioVolumeMeter CLSIDs

Andrew Eikum aeikum at codeweavers.com
Tue Oct 6 13:01:30 CDT 2015


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
---
 dlls/xaudio2_1/xaudio_classes.idl |  7 +++++++
 dlls/xaudio2_2/xaudio_classes.idl |  7 +++++++
 dlls/xaudio2_3/xaudio_classes.idl |  7 +++++++
 dlls/xaudio2_4/xaudio_classes.idl |  7 +++++++
 dlls/xaudio2_5/xaudio_classes.idl |  7 +++++++
 dlls/xaudio2_6/xaudio_classes.idl |  7 +++++++
 dlls/xaudio2_7/xaudio_dll.c       |  8 +++++++-
 include/xaudio2fx.idl             | 42 +++++++++++++++++++++++++++++++++++++++
 8 files changed, 91 insertions(+), 1 deletion(-)

diff --git a/dlls/xaudio2_1/xaudio_classes.idl b/dlls/xaudio2_1/xaudio_classes.idl
index 7f2f93b..80fe781 100644
--- a/dlls/xaudio2_1/xaudio_classes.idl
+++ b/dlls/xaudio2_1/xaudio_classes.idl
@@ -33,3 +33,10 @@ coclass XAudio21 { interface IXAudio22; }
     uuid(f4769300-b949-4df9-b333-00d33932e9a6)
 ]
 coclass AudioReverb21 { interface IXAPO; }
+
+[
+    helpstring("XAudio2.1 AudioVolumeMeter Class"),
+    threading(both),
+    uuid(c1e3f122-a2ea-442c-854f-20d98f8357a1)
+]
+coclass AudioVolumeMeter21 { interface IXAPO; }
diff --git a/dlls/xaudio2_2/xaudio_classes.idl b/dlls/xaudio2_2/xaudio_classes.idl
index 42ae148..1d49ffb 100644
--- a/dlls/xaudio2_2/xaudio_classes.idl
+++ b/dlls/xaudio2_2/xaudio_classes.idl
@@ -33,3 +33,10 @@ coclass XAudio22 { interface IXAudio22; }
     uuid(629cf0de-3ecc-41e7-9926-f7e43eebec51)
 ]
 coclass AudioReverb22 { interface IXAPO; }
+
+[
+    helpstring("XAudio2.2 AudioVolumeMeter Class"),
+    threading(both),
+    uuid(f5ca7b34-8055-42c0-b836-216129eb7e30)
+]
+coclass AudioVolumeMeter22 { interface IXAPO; }
diff --git a/dlls/xaudio2_3/xaudio_classes.idl b/dlls/xaudio2_3/xaudio_classes.idl
index 7c1fabc..ebd8548 100644
--- a/dlls/xaudio2_3/xaudio_classes.idl
+++ b/dlls/xaudio2_3/xaudio_classes.idl
@@ -33,3 +33,10 @@ coclass XAudio23 { interface IXAudio27; }
     uuid(9cab402c-1d37-44b4-886d-fa4f36170a4c)
 ]
 coclass AudioReverb23 { interface IXAPO; }
+
+[
+    helpstring("XAudio2.3 AudioVolumeMeter Class"),
+    threading(both),
+    uuid(e180344b-ac83-4483-959e-18a5c56a5e19)
+]
+coclass AudioVolumeMeter23 { interface IXAPO; }
diff --git a/dlls/xaudio2_4/xaudio_classes.idl b/dlls/xaudio2_4/xaudio_classes.idl
index 6723bce..3486de3 100644
--- a/dlls/xaudio2_4/xaudio_classes.idl
+++ b/dlls/xaudio2_4/xaudio_classes.idl
@@ -33,3 +33,10 @@ coclass XAudio24 { interface IXAudio27; }
     uuid(8bb7778b-645b-4475-9a73-1de3170bd3af)
 ]
 coclass AudioReverb24 { interface IXAPO; }
+
+[
+    helpstring("XAudio2.4 AudioVolumeMeter Class"),
+    threading(both),
+    uuid(c7338b95-52b8-4542-aa79-42eb016c8c1c)
+]
+coclass AudioVolumeMeter24 { interface IXAPO; }
diff --git a/dlls/xaudio2_5/xaudio_classes.idl b/dlls/xaudio2_5/xaudio_classes.idl
index 13fceab..f3c0b0a 100644
--- a/dlls/xaudio2_5/xaudio_classes.idl
+++ b/dlls/xaudio2_5/xaudio_classes.idl
@@ -33,3 +33,10 @@ coclass XAudio25 { interface IXAudio27; }
     uuid(d06df0d0-8518-441e-822f-5451d5c595b8)
 ]
 coclass AudioReverb25 { interface IXAPO; }
+
+[
+    helpstring("XAudio2.5 AudioVolumeMeter Class"),
+    threading(both),
+    uuid(2139e6da-c341-4774-9ac3-b4e026347f64)
+]
+coclass AudioVolumeMeter25 { interface IXAPO; }
diff --git a/dlls/xaudio2_6/xaudio_classes.idl b/dlls/xaudio2_6/xaudio_classes.idl
index addbca0..1b76a6a 100644
--- a/dlls/xaudio2_6/xaudio_classes.idl
+++ b/dlls/xaudio2_6/xaudio_classes.idl
@@ -33,3 +33,10 @@ coclass XAudio26 { interface IXAudio27; }
     uuid(cecec95a-d894-491a-bee3-5e106fb59f2d)
 ]
 coclass AudioReverb26 { interface IXAPO; }
+
+[
+    helpstring("XAudio2.6 AudioVolumeMeter Class"),
+    threading(both),
+    uuid(e48c5a3f-93ef-43bb-a092-2c7ceb946f27)
+]
+coclass AudioVolumeMeter26 { interface IXAPO; }
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c
index a0e2c60..868cca3 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -2479,7 +2479,13 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
         factory = make_xaudio2_factory(26);
     }else if(IsEqualGUID(rclsid, &CLSID_XAudio2)){
         factory = make_xaudio2_factory(27);
-    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter)) {
+    }else if(IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter) ||
+            IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter21) ||
+            IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter22) ||
+            IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter23) ||
+            IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter24) ||
+            IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter25) ||
+            IsEqualGUID(rclsid, &CLSID_AudioVolumeMeter26)){
         factory = &vumeter_cf;
     }else if(IsEqualGUID(rclsid, &CLSID_AudioReverb) ||
             IsEqualGUID(rclsid, &CLSID_AudioReverb21) ||
diff --git a/include/xaudio2fx.idl b/include/xaudio2fx.idl
index 3014eb1..c152b98 100644
--- a/include/xaudio2fx.idl
+++ b/include/xaudio2fx.idl
@@ -26,6 +26,48 @@ coclass AudioVolumeMeter {
 }
 
 [
+    uuid(c1e3f122-a2ea-442c-854f-20d98f8357a1)
+]
+coclass AudioVolumeMeter21 {
+    interface IUnknown;
+}
+
+[
+    uuid(f5ca7b34-8055-42c0-b836-216129eb7e30)
+]
+coclass AudioVolumeMeter22 {
+    interface IUnknown;
+}
+
+[
+    uuid(e180344b-ac83-4483-959e-18a5c56a5e19)
+]
+coclass AudioVolumeMeter23 {
+    interface IUnknown;
+}
+
+[
+    uuid(c7338b95-52b8-4542-aa79-42eb016c8c1c)
+]
+coclass AudioVolumeMeter24 {
+    interface IUnknown;
+}
+
+[
+    uuid(2139e6da-c341-4774-9ac3-b4e026347f64)
+]
+coclass AudioVolumeMeter25 {
+    interface IUnknown;
+}
+
+[
+    uuid(e48c5a3f-93ef-43bb-a092-2c7ceb946f27)
+]
+coclass AudioVolumeMeter26 {
+    interface IUnknown;
+}
+
+[
     uuid(6a93130e-1d53-41d1-a9cf-e758800bb179)
 ]
 coclass AudioReverb {
-- 
2.6.0




More information about the wine-patches mailing list