Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
b3cb1e4d
Commit
b3cb1e4d
authored
Sep 08, 2015
by
Andrew Eikum
Committed by
Alexandre Julliard
Sep 09, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
xaudio2: Add stub for AudioReverb class.
parent
395dc0f2
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
261 additions
and
0 deletions
+261
-0
xaudio_classes.idl
dlls/xaudio2_7/xaudio_classes.idl
+7
-0
xaudio_dll.c
dlls/xaudio2_7/xaudio_dll.c
+241
-0
xaudio_dll.c
dlls/xaudio2_8/xaudio_dll.c
+6
-0
xaudio2fx.idl
include/xaudio2fx.idl
+7
-0
No files found.
dlls/xaudio2_7/xaudio_classes.idl
View file @
b3cb1e4d
...
@@ -33,3 +33,10 @@ coclass XAudio2 { interface IXAudio2; }
...
@@ -33,3 +33,10 @@ coclass XAudio2 { interface IXAudio2; }
uuid
(
cac1105f
-
619b
-
4
d04
-
831
a
-
44
e1cbf12d57
)
uuid
(
cac1105f
-
619b
-
4
d04
-
831
a
-
44
e1cbf12d57
)
]
]
coclass
AudioVolumeMeter
{
interface
IUnknown
; }
coclass
AudioVolumeMeter
{
interface
IUnknown
; }
[
helpstring
(
"XAudio2 Reverb Class"
),
threading
(
both
),
uuid
(
6
a93130e
-
1
d53
-
41
d1
-
a9cf
-
e758800bb179
)
]
coclass
AudioReverb
{
interface
IUnknown
; }
dlls/xaudio2_7/xaudio_dll.c
View file @
b3cb1e4d
...
@@ -2435,6 +2435,206 @@ static const IXAPOParametersVtbl VUMXAPOParameters_Vtbl = {
...
@@ -2435,6 +2435,206 @@ static const IXAPOParametersVtbl VUMXAPOParameters_Vtbl = {
VUMXAPOParams_GetParameters
VUMXAPOParams_GetParameters
};
};
typedef
struct
_ReverbImpl
{
IXAPO
IXAPO_iface
;
IXAPOParameters
IXAPOParameters_iface
;
LONG
ref
;
}
ReverbImpl
;
static
ReverbImpl
*
ReverbImpl_from_IXAPO
(
IXAPO
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
ReverbImpl
,
IXAPO_iface
);
}
static
ReverbImpl
*
ReverbImpl_from_IXAPOParameters
(
IXAPOParameters
*
iface
)
{
return
CONTAINING_RECORD
(
iface
,
ReverbImpl
,
IXAPOParameters_iface
);
}
static
HRESULT
WINAPI
RVBXAPO_QueryInterface
(
IXAPO
*
iface
,
REFIID
riid
,
void
**
ppvObject
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p, %s, %p
\n
"
,
This
,
wine_dbgstr_guid
(
riid
),
ppvObject
);
if
(
IsEqualGUID
(
riid
,
&
IID_IUnknown
)
||
IsEqualGUID
(
riid
,
&
IID_IXAPO
)
||
IsEqualGUID
(
riid
,
&
IID_IXAPO27
))
*
ppvObject
=
&
This
->
IXAPO_iface
;
else
if
(
IsEqualGUID
(
riid
,
&
IID_IXAPOParameters
))
*
ppvObject
=
&
This
->
IXAPOParameters_iface
;
else
*
ppvObject
=
NULL
;
if
(
*
ppvObject
){
IUnknown_AddRef
((
IUnknown
*
)
*
ppvObject
);
return
S_OK
;
}
return
E_NOINTERFACE
;
}
static
ULONG
WINAPI
RVBXAPO_AddRef
(
IXAPO
*
iface
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
ULONG
ref
=
InterlockedIncrement
(
&
This
->
ref
);
TRACE
(
"(%p)->(): Refcount now %u
\n
"
,
This
,
ref
);
return
ref
;
}
static
ULONG
WINAPI
RVBXAPO_Release
(
IXAPO
*
iface
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
ULONG
ref
=
InterlockedDecrement
(
&
This
->
ref
);
TRACE
(
"(%p)->(): Refcount now %u
\n
"
,
This
,
ref
);
if
(
!
ref
)
HeapFree
(
GetProcessHeap
(),
0
,
This
);
return
ref
;
}
static
HRESULT
WINAPI
RVBXAPO_GetRegistrationProperties
(
IXAPO
*
iface
,
XAPO_REGISTRATION_PROPERTIES
**
props
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p, %p
\n
"
,
This
,
props
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
RVBXAPO_IsInputFormatSupported
(
IXAPO
*
iface
,
const
WAVEFORMATEX
*
output_fmt
,
const
WAVEFORMATEX
*
input_fmt
,
WAVEFORMATEX
**
supported_fmt
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p, %p, %p, %p
\n
"
,
This
,
output_fmt
,
input_fmt
,
supported_fmt
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
RVBXAPO_IsOutputFormatSupported
(
IXAPO
*
iface
,
const
WAVEFORMATEX
*
input_fmt
,
const
WAVEFORMATEX
*
output_fmt
,
WAVEFORMATEX
**
supported_fmt
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p, %p, %p, %p
\n
"
,
This
,
input_fmt
,
output_fmt
,
supported_fmt
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
RVBXAPO_Initialize
(
IXAPO
*
iface
,
const
void
*
data
,
UINT32
data_len
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p, %p, %u
\n
"
,
This
,
data
,
data_len
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
RVBXAPO_Reset
(
IXAPO
*
iface
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p
\n
"
,
This
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
RVBXAPO_LockForProcess
(
IXAPO
*
iface
,
UINT32
in_params_count
,
const
XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS
*
in_params
,
UINT32
out_params_count
,
const
XAPO_LOCKFORPROCESS_BUFFER_PARAMETERS
*
out_params
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p, %u, %p, %u, %p
\n
"
,
This
,
in_params_count
,
in_params
,
out_params_count
,
out_params
);
return
E_NOTIMPL
;
}
static
void
WINAPI
RVBXAPO_UnlockForProcess
(
IXAPO
*
iface
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p
\n
"
,
This
);
}
static
void
WINAPI
RVBXAPO_Process
(
IXAPO
*
iface
,
UINT32
in_params_count
,
const
XAPO_PROCESS_BUFFER_PARAMETERS
*
in_params
,
UINT32
out_params_count
,
const
XAPO_PROCESS_BUFFER_PARAMETERS
*
out_params
,
BOOL
enabled
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p, %u, %p, %u, %p, %u
\n
"
,
This
,
in_params_count
,
in_params
,
out_params_count
,
out_params
,
enabled
);
}
static
UINT32
WINAPI
RVBXAPO_CalcInputFrames
(
IXAPO
*
iface
,
UINT32
output_frames
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p, %u
\n
"
,
This
,
output_frames
);
return
0
;
}
static
UINT32
WINAPI
RVBXAPO_CalcOutputFrames
(
IXAPO
*
iface
,
UINT32
input_frames
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPO
(
iface
);
TRACE
(
"%p, %u
\n
"
,
This
,
input_frames
);
return
0
;
}
static
const
IXAPOVtbl
RVBXAPO_Vtbl
=
{
RVBXAPO_QueryInterface
,
RVBXAPO_AddRef
,
RVBXAPO_Release
,
RVBXAPO_GetRegistrationProperties
,
RVBXAPO_IsInputFormatSupported
,
RVBXAPO_IsOutputFormatSupported
,
RVBXAPO_Initialize
,
RVBXAPO_Reset
,
RVBXAPO_LockForProcess
,
RVBXAPO_UnlockForProcess
,
RVBXAPO_Process
,
RVBXAPO_CalcInputFrames
,
RVBXAPO_CalcOutputFrames
};
static
HRESULT
WINAPI
RVBXAPOParams_QueryInterface
(
IXAPOParameters
*
iface
,
REFIID
riid
,
void
**
ppvObject
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPOParameters
(
iface
);
return
RVBXAPO_QueryInterface
(
&
This
->
IXAPO_iface
,
riid
,
ppvObject
);
}
static
ULONG
WINAPI
RVBXAPOParams_AddRef
(
IXAPOParameters
*
iface
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPOParameters
(
iface
);
return
RVBXAPO_AddRef
(
&
This
->
IXAPO_iface
);
}
static
ULONG
WINAPI
RVBXAPOParams_Release
(
IXAPOParameters
*
iface
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPOParameters
(
iface
);
return
RVBXAPO_Release
(
&
This
->
IXAPO_iface
);
}
static
void
WINAPI
RVBXAPOParams_SetParameters
(
IXAPOParameters
*
iface
,
const
void
*
params
,
UINT32
params_len
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPOParameters
(
iface
);
TRACE
(
"%p, %p, %u
\n
"
,
This
,
params
,
params_len
);
}
static
void
WINAPI
RVBXAPOParams_GetParameters
(
IXAPOParameters
*
iface
,
void
*
params
,
UINT32
params_len
)
{
ReverbImpl
*
This
=
ReverbImpl_from_IXAPOParameters
(
iface
);
TRACE
(
"%p, %p, %u
\n
"
,
This
,
params
,
params_len
);
}
static
const
IXAPOParametersVtbl
RVBXAPOParameters_Vtbl
=
{
RVBXAPOParams_QueryInterface
,
RVBXAPOParams_AddRef
,
RVBXAPOParams_Release
,
RVBXAPOParams_SetParameters
,
RVBXAPOParams_GetParameters
};
static
HRESULT
WINAPI
XAudio2CF_QueryInterface
(
IClassFactory
*
iface
,
REFIID
riid
,
void
**
ppobj
)
static
HRESULT
WINAPI
XAudio2CF_QueryInterface
(
IClassFactory
*
iface
,
REFIID
riid
,
void
**
ppobj
)
{
{
if
(
IsEqualGUID
(
riid
,
&
IID_IUnknown
)
if
(
IsEqualGUID
(
riid
,
&
IID_IUnknown
)
...
@@ -2615,6 +2815,35 @@ static HRESULT WINAPI VUMeterCF_CreateInstance(IClassFactory *iface, IUnknown *p
...
@@ -2615,6 +2815,35 @@ static HRESULT WINAPI VUMeterCF_CreateInstance(IClassFactory *iface, IUnknown *p
return
S_OK
;
return
S_OK
;
}
}
static
HRESULT
WINAPI
ReverbCF_CreateInstance
(
IClassFactory
*
iface
,
IUnknown
*
pOuter
,
REFIID
riid
,
void
**
ppobj
)
{
HRESULT
hr
;
ReverbImpl
*
object
;
TRACE
(
"(static)->(%p,%s,%p)
\n
"
,
pOuter
,
debugstr_guid
(
riid
),
ppobj
);
*
ppobj
=
NULL
;
if
(
pOuter
)
return
CLASS_E_NOAGGREGATION
;
object
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
*
object
));
if
(
!
object
)
return
E_OUTOFMEMORY
;
object
->
IXAPO_iface
.
lpVtbl
=
&
RVBXAPO_Vtbl
;
object
->
IXAPOParameters_iface
.
lpVtbl
=
&
RVBXAPOParameters_Vtbl
;
hr
=
IXAPO_QueryInterface
(
&
object
->
IXAPO_iface
,
riid
,
ppobj
);
if
(
FAILED
(
hr
)){
HeapFree
(
GetProcessHeap
(),
0
,
object
);
return
hr
;
}
return
S_OK
;
}
static
HRESULT
WINAPI
XAudio2CF_LockServer
(
IClassFactory
*
iface
,
BOOL
dolock
)
static
HRESULT
WINAPI
XAudio2CF_LockServer
(
IClassFactory
*
iface
,
BOOL
dolock
)
{
{
FIXME
(
"(static)->(%d): stub!
\n
"
,
dolock
);
FIXME
(
"(static)->(%d): stub!
\n
"
,
dolock
);
...
@@ -2639,8 +2868,18 @@ static const IClassFactoryVtbl VUMeterCF_Vtbl =
...
@@ -2639,8 +2868,18 @@ static const IClassFactoryVtbl VUMeterCF_Vtbl =
XAudio2CF_LockServer
XAudio2CF_LockServer
};
};
static
const
IClassFactoryVtbl
ReverbCF_Vtbl
=
{
XAudio2CF_QueryInterface
,
XAudio2CF_AddRef
,
XAudio2CF_Release
,
ReverbCF_CreateInstance
,
XAudio2CF_LockServer
};
static
IClassFactory
xaudio2_cf
=
{
&
XAudio2CF_Vtbl
};
static
IClassFactory
xaudio2_cf
=
{
&
XAudio2CF_Vtbl
};
static
IClassFactory
vumeter_cf
=
{
&
VUMeterCF_Vtbl
};
static
IClassFactory
vumeter_cf
=
{
&
VUMeterCF_Vtbl
};
static
IClassFactory
reverb_cf
=
{
&
ReverbCF_Vtbl
};
HRESULT
WINAPI
DllGetClassObject
(
REFCLSID
rclsid
,
REFIID
riid
,
void
**
ppv
)
HRESULT
WINAPI
DllGetClassObject
(
REFCLSID
rclsid
,
REFIID
riid
,
void
**
ppv
)
{
{
...
@@ -2652,6 +2891,8 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
...
@@ -2652,6 +2891,8 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
factory
=
&
xaudio2_cf
;
factory
=
&
xaudio2_cf
;
}
else
if
(
IsEqualGUID
(
rclsid
,
&
CLSID_AudioVolumeMeter
))
{
}
else
if
(
IsEqualGUID
(
rclsid
,
&
CLSID_AudioVolumeMeter
))
{
factory
=
&
vumeter_cf
;
factory
=
&
vumeter_cf
;
}
else
if
(
IsEqualGUID
(
rclsid
,
&
CLSID_AudioReverb
))
{
factory
=
&
reverb_cf
;
}
}
if
(
!
factory
)
return
CLASS_E_CLASSNOTAVAILABLE
;
if
(
!
factory
)
return
CLASS_E_CLASSNOTAVAILABLE
;
...
...
dlls/xaudio2_8/xaudio_dll.c
View file @
b3cb1e4d
...
@@ -79,3 +79,9 @@ HRESULT WINAPI CreateAudioVolumeMeter(IUnknown **out)
...
@@ -79,3 +79,9 @@ HRESULT WINAPI CreateAudioVolumeMeter(IUnknown **out)
return
CoCreateInstance
(
&
CLSID_AudioVolumeMeter
,
NULL
,
CLSCTX_INPROC_SERVER
,
return
CoCreateInstance
(
&
CLSID_AudioVolumeMeter
,
NULL
,
CLSCTX_INPROC_SERVER
,
&
IID_IUnknown
,
(
void
**
)
out
);
&
IID_IUnknown
,
(
void
**
)
out
);
}
}
HRESULT
WINAPI
CreateAudioReverb
(
IUnknown
**
out
)
{
return
CoCreateInstance
(
&
CLSID_AudioReverb
,
NULL
,
CLSCTX_INPROC_SERVER
,
&
IID_IUnknown
,
(
void
**
)
out
);
}
include/xaudio2fx.idl
View file @
b3cb1e4d
...
@@ -24,3 +24,10 @@ import "unknwn.idl";
...
@@ -24,3 +24,10 @@ import "unknwn.idl";
coclass
AudioVolumeMeter
{
coclass
AudioVolumeMeter
{
interface
IUnknown
;
interface
IUnknown
;
}
}
[
uuid
(
6
a93130e
-
1
d53
-
41
d1
-
a9cf
-
e758800bb179
)
]
coclass
AudioReverb
{
interface
IUnknown
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment