wow64: Add thunks for the I/O completion syscalls.
[wine.git] / dlls / winepulse.drv / unixlib.h
blob9e7af57b716e8d3edc4793ead64b35d4993a4a94
1 /*
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"
21 struct pulse_stream;
23 struct pulse_config
25 struct
27 WAVEFORMATEXTENSIBLE format;
28 REFERENCE_TIME def_period;
29 REFERENCE_TIME min_period;
30 } modes[2];
31 unsigned int speakers_mask;
34 struct main_loop_params
36 HANDLE event;
39 struct create_stream_params
41 const char *name;
42 EDataFlow dataflow;
43 AUDCLNT_SHAREMODE mode;
44 DWORD flags;
45 REFERENCE_TIME duration;
46 const WAVEFORMATEX *fmt;
47 HRESULT result;
48 UINT32 *channel_count;
49 struct pulse_stream **stream;
52 struct release_stream_params
54 struct pulse_stream *stream;
55 HANDLE timer;
56 HRESULT result;
59 struct start_params
61 struct pulse_stream *stream;
62 HRESULT result;
65 struct stop_params
67 struct pulse_stream *stream;
68 HRESULT result;
71 struct reset_params
73 struct pulse_stream *stream;
74 HRESULT result;
77 struct timer_loop_params
79 struct pulse_stream *stream;
82 struct get_render_buffer_params
84 struct pulse_stream *stream;
85 UINT32 frames;
86 HRESULT result;
87 BYTE **data;
90 struct release_render_buffer_params
92 struct pulse_stream *stream;
93 UINT32 written_frames;
94 DWORD flags;
95 HRESULT result;
98 struct get_capture_buffer_params
100 struct pulse_stream *stream;
101 HRESULT result;
102 BYTE **data;
103 UINT32 *frames;
104 DWORD *flags;
105 UINT64 *devpos;
106 UINT64 *qpcpos;
109 struct release_capture_buffer_params
111 struct pulse_stream *stream;
112 BOOL done;
113 HRESULT result;
116 struct get_buffer_size_params
118 struct pulse_stream *stream;
119 HRESULT result;
120 UINT32 *size;
123 struct get_latency_params
125 struct pulse_stream *stream;
126 HRESULT result;
127 REFERENCE_TIME *latency;
130 struct get_current_padding_params
132 struct pulse_stream *stream;
133 HRESULT result;
134 UINT32 *padding;
137 struct get_next_packet_size_params
139 struct pulse_stream *stream;
140 HRESULT result;
141 UINT32 *frames;
144 struct get_frequency_params
146 struct pulse_stream *stream;
147 HRESULT result;
148 UINT64 *freq;
151 struct get_position_params
153 struct pulse_stream *stream;
154 BOOL device;
155 HRESULT result;
156 UINT64 *pos;
157 UINT64 *qpctime;
160 struct set_volumes_params
162 struct pulse_stream *stream;
163 float master_volume;
164 const float *volumes;
165 const float *session_volumes;
168 struct set_event_handle_params
170 struct pulse_stream *stream;
171 HANDLE event;
172 HRESULT result;
175 struct test_connect_params
177 const char *name;
178 HRESULT result;
179 struct pulse_config *config;
182 struct is_started_params
184 struct pulse_stream *stream;
185 BOOL started;
188 enum unix_funcs
190 main_loop,
191 create_stream,
192 release_stream,
193 start,
194 stop,
195 reset,
196 timer_loop,
197 get_render_buffer,
198 release_render_buffer,
199 get_capture_buffer,
200 release_capture_buffer,
201 get_buffer_size,
202 get_latency,
203 get_current_padding,
204 get_next_packet_size,
205 get_frequency,
206 get_position,
207 set_volumes,
208 set_event_handle,
209 test_connect,
210 is_started,