Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
aedd34dd
Commit
aedd34dd
authored
Jun 26, 2023
by
Davide Beatrici
Committed by
Alexandre Julliard
Jun 27, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winecoreaudio: Use mmdevapi's AudioClient's Release, AddRef.
parent
3c8e2c32
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
4 additions
and
34 deletions
+4
-34
mmdevdrv.c
dlls/winecoreaudio.drv/mmdevdrv.c
+4
-34
No files found.
dlls/winecoreaudio.drv/mmdevdrv.c
View file @
aedd34dd
...
...
@@ -73,8 +73,6 @@ static struct list g_sessions = LIST_INIT(g_sessions);
extern
struct
audio_session_wrapper
*
session_wrapper_create
(
struct
audio_client
*
client
)
DECLSPEC_HIDDEN
;
extern
HRESULT
stream_release
(
stream_handle
stream
,
HANDLE
timer_thread
);
void
DECLSPEC_HIDDEN
sessions_lock
(
void
)
{
EnterCriticalSection
(
&
g_sessions_lock
);
...
...
@@ -386,37 +384,9 @@ static HRESULT WINAPI AudioClient_QueryInterface(IAudioClient3 *iface,
return
E_NOINTERFACE
;
}
static
ULONG
WINAPI
AudioClient_AddRef
(
IAudioClient3
*
iface
)
{
ACImpl
*
This
=
impl_from_IAudioClient3
(
iface
);
ULONG
ref
;
ref
=
InterlockedIncrement
(
&
This
->
ref
);
TRACE
(
"(%p) Refcount now %lu
\n
"
,
This
,
ref
);
return
ref
;
}
extern
ULONG
WINAPI
client_AddRef
(
IAudioClient3
*
iface
);
static
ULONG
WINAPI
AudioClient_Release
(
IAudioClient3
*
iface
)
{
ACImpl
*
This
=
impl_from_IAudioClient3
(
iface
);
ULONG
ref
;
ref
=
InterlockedDecrement
(
&
This
->
ref
);
TRACE
(
"(%p) Refcount now %lu
\n
"
,
This
,
ref
);
if
(
!
ref
){
IAudioClient3_Stop
(
iface
);
IMMDevice_Release
(
This
->
parent
);
IUnknown_Release
(
This
->
marshal
);
if
(
This
->
session
){
sessions_lock
();
list_remove
(
&
This
->
entry
);
sessions_unlock
();
}
free
(
This
->
vols
);
if
(
This
->
stream
)
stream_release
(
This
->
stream
,
This
->
timer_thread
);
HeapFree
(
GetProcessHeap
(),
0
,
This
);
}
return
ref
;
}
extern
ULONG
WINAPI
client_Release
(
IAudioClient3
*
iface
);
static
void
session_init_vols
(
AudioSession
*
session
,
UINT
channels
)
{
...
...
@@ -557,8 +527,8 @@ extern HRESULT WINAPI client_InitializeSharedAudioStream(IAudioClient3 *iface,
static
const
IAudioClient3Vtbl
AudioClient3_Vtbl
=
{
AudioClient_QueryInterface
,
AudioC
lient_AddRef
,
AudioC
lient_Release
,
c
lient_AddRef
,
c
lient_Release
,
client_Initialize
,
client_GetBufferSize
,
client_GetStreamLatency
,
...
...
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