2 * This library is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU Lesser General Public
4 * License as published by the Free Software Foundation; either
5 * version 2.1 of the License, or (at your option) any later version.
7 * This library is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 #include <audiopolicy.h>
18 #include <mmdeviceapi.h>
20 #include <wine/list.h>
22 typedef struct audio_client ACImpl
;
24 typedef struct audio_session
{
38 typedef struct audio_session_wrapper
{
39 IAudioSessionControl2 IAudioSessionControl2_iface
;
40 IChannelAudioVolume IChannelAudioVolume_iface
;
41 ISimpleAudioVolume ISimpleAudioVolume_iface
;
45 struct audio_client
*client
;
46 struct audio_session
*session
;
47 } AudioSessionWrapper
;
49 typedef struct session_mgr
{
50 IAudioSessionManager2 IAudioSessionManager2_iface
;
58 IAudioClient3 IAudioClient3_iface
;
59 IAudioRenderClient IAudioRenderClient_iface
;
60 IAudioCaptureClient IAudioCaptureClient_iface
;
61 IAudioClock IAudioClock_iface
;
62 IAudioClock2 IAudioClock2_iface
;
63 IAudioStreamVolume IAudioStreamVolume_iface
;
77 struct audio_session
*session
;
78 struct audio_session_wrapper
*session_wrapper
;