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"
20 #include "wine/unixlib.h"
22 #define MAX_PULSE_NAME_LEN 256
26 enum phys_device_bus_type
{
27 phys_device_bus_invalid
= -1,
36 WAVEFORMATEXTENSIBLE format
;
37 REFERENCE_TIME def_period
;
38 REFERENCE_TIME min_period
;
48 struct main_loop_params
53 struct get_endpoint_ids_params
56 struct endpoint
*endpoints
;
60 unsigned int default_idx
;
63 struct create_stream_params
66 const char *pulse_name
;
68 AUDCLNT_SHAREMODE mode
;
70 REFERENCE_TIME duration
;
71 const WAVEFORMATEX
*fmt
;
73 UINT32
*channel_count
;
74 struct pulse_stream
**stream
;
77 struct release_stream_params
79 struct pulse_stream
*stream
;
86 struct pulse_stream
*stream
;
92 struct pulse_stream
*stream
;
98 struct pulse_stream
*stream
;
102 struct timer_loop_params
104 struct pulse_stream
*stream
;
107 struct get_render_buffer_params
109 struct pulse_stream
*stream
;
115 struct release_render_buffer_params
117 struct pulse_stream
*stream
;
118 UINT32 written_frames
;
123 struct get_capture_buffer_params
125 struct pulse_stream
*stream
;
134 struct release_capture_buffer_params
136 struct pulse_stream
*stream
;
141 struct get_buffer_size_params
143 struct pulse_stream
*stream
;
148 struct get_latency_params
150 struct pulse_stream
*stream
;
152 REFERENCE_TIME
*latency
;
155 struct get_current_padding_params
157 struct pulse_stream
*stream
;
162 struct get_next_packet_size_params
164 struct pulse_stream
*stream
;
169 struct get_frequency_params
171 struct pulse_stream
*stream
;
176 struct get_position_params
178 struct pulse_stream
*stream
;
185 struct set_volumes_params
187 struct pulse_stream
*stream
;
189 const float *volumes
;
190 const float *session_volumes
;
193 struct set_event_handle_params
195 struct pulse_stream
*stream
;
200 struct test_connect_params
204 struct pulse_config
*config
;
207 struct is_started_params
209 struct pulse_stream
*stream
;
213 struct get_prop_value_params
215 const char *pulse_name
;
217 const PROPERTYKEY
*prop
;
241 release_render_buffer
,
243 release_capture_buffer
,
247 get_next_packet_size
,