2 * Copyright 2021 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #include "wine/list.h"
27 WAVEFORMATEXTENSIBLE format
;
28 REFERENCE_TIME def_period
;
29 REFERENCE_TIME min_period
;
31 unsigned int speakers_mask
;
34 struct main_loop_params
39 struct create_stream_params
43 AUDCLNT_SHAREMODE mode
;
45 REFERENCE_TIME duration
;
46 const WAVEFORMATEX
*fmt
;
48 UINT32
*channel_count
;
49 struct pulse_stream
**stream
;
52 struct release_stream_params
54 struct pulse_stream
*stream
;
61 struct pulse_stream
*stream
;
67 struct pulse_stream
*stream
;
73 struct pulse_stream
*stream
;
77 struct timer_loop_params
79 struct pulse_stream
*stream
;
82 struct get_render_buffer_params
84 struct pulse_stream
*stream
;
90 struct release_render_buffer_params
92 struct pulse_stream
*stream
;
93 UINT32 written_frames
;
98 struct get_capture_buffer_params
100 struct pulse_stream
*stream
;
109 struct release_capture_buffer_params
111 struct pulse_stream
*stream
;
116 struct get_buffer_size_params
118 struct pulse_stream
*stream
;
123 struct get_latency_params
125 struct pulse_stream
*stream
;
127 REFERENCE_TIME
*latency
;
130 struct get_current_padding_params
132 struct pulse_stream
*stream
;
137 struct get_next_packet_size_params
139 struct pulse_stream
*stream
;
144 struct get_frequency_params
146 struct pulse_stream
*stream
;
151 struct get_position_params
153 struct pulse_stream
*stream
;
160 struct set_volumes_params
162 struct pulse_stream
*stream
;
164 const float *volumes
;
165 const float *session_volumes
;
168 struct set_event_handle_params
170 struct pulse_stream
*stream
;
175 struct test_connect_params
179 struct pulse_config
*config
;
182 struct is_started_params
184 struct pulse_stream
*stream
;
190 void (WINAPI
*main_loop
)(struct main_loop_params
*params
);
191 void (WINAPI
*create_stream
)(struct create_stream_params
*params
);
192 void (WINAPI
*release_stream
)(struct release_stream_params
*params
);
193 void (WINAPI
*start
)(struct start_params
*params
);
194 void (WINAPI
*stop
)(struct stop_params
*params
);
195 void (WINAPI
*reset
)(struct reset_params
*params
);
196 void (WINAPI
*timer_loop
)(struct timer_loop_params
*params
);
197 void (WINAPI
*get_render_buffer
)(struct get_render_buffer_params
*params
);
198 void (WINAPI
*release_render_buffer
)(struct release_render_buffer_params
*params
);
199 void (WINAPI
*get_capture_buffer
)(struct get_capture_buffer_params
*params
);
200 void (WINAPI
*release_capture_buffer
)(struct release_capture_buffer_params
*params
);
201 void (WINAPI
*get_buffer_size
)(struct get_buffer_size_params
*params
);
202 void (WINAPI
*get_latency
)(struct get_latency_params
*params
);
203 void (WINAPI
*get_current_padding
)(struct get_current_padding_params
*params
);
204 void (WINAPI
*get_next_packet_size
)(struct get_next_packet_size_params
*params
);
205 void (WINAPI
*get_frequency
)(struct get_frequency_params
*params
);
206 void (WINAPI
*get_position
)(struct get_position_params
*params
);
207 void (WINAPI
*set_volumes
)(struct set_volumes_params
*params
);
208 void (WINAPI
*set_event_handle
)(struct set_event_handle_params
*params
);
209 void (WINAPI
*test_connect
)(struct test_connect_params
*params
);
210 void (WINAPI
*is_started
)(struct is_started_params
*params
);