netapi32: Convert the Unix library to the __wine_unix_call interface.
[wine.git] / dlls / winepulse.drv / unixlib.h
blobd28a73ca6497473bc38f6a9c7d9c7f6bfb3f12d8
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"
20 #include "wine/unixlib.h"
22 struct pulse_stream;
24 struct pulse_config
26 struct
28 WAVEFORMATEXTENSIBLE format;
29 REFERENCE_TIME def_period;
30 REFERENCE_TIME min_period;
31 } modes[2];
32 unsigned int speakers_mask;
35 struct main_loop_params
37 HANDLE event;
40 struct create_stream_params
42 const char *name;
43 EDataFlow dataflow;
44 AUDCLNT_SHAREMODE mode;
45 DWORD flags;
46 REFERENCE_TIME duration;
47 const WAVEFORMATEX *fmt;
48 HRESULT result;
49 UINT32 *channel_count;
50 struct pulse_stream **stream;
53 struct release_stream_params
55 struct pulse_stream *stream;
56 HANDLE timer;
57 HRESULT result;
60 struct start_params
62 struct pulse_stream *stream;
63 HRESULT result;
66 struct stop_params
68 struct pulse_stream *stream;
69 HRESULT result;
72 struct reset_params
74 struct pulse_stream *stream;
75 HRESULT result;
78 struct timer_loop_params
80 struct pulse_stream *stream;
83 struct get_render_buffer_params
85 struct pulse_stream *stream;
86 UINT32 frames;
87 HRESULT result;
88 BYTE **data;
91 struct release_render_buffer_params
93 struct pulse_stream *stream;
94 UINT32 written_frames;
95 DWORD flags;
96 HRESULT result;
99 struct get_capture_buffer_params
101 struct pulse_stream *stream;
102 HRESULT result;
103 BYTE **data;
104 UINT32 *frames;
105 DWORD *flags;
106 UINT64 *devpos;
107 UINT64 *qpcpos;
110 struct release_capture_buffer_params
112 struct pulse_stream *stream;
113 BOOL done;
114 HRESULT result;
117 struct get_buffer_size_params
119 struct pulse_stream *stream;
120 HRESULT result;
121 UINT32 *size;
124 struct get_latency_params
126 struct pulse_stream *stream;
127 HRESULT result;
128 REFERENCE_TIME *latency;
131 struct get_current_padding_params
133 struct pulse_stream *stream;
134 HRESULT result;
135 UINT32 *padding;
138 struct get_next_packet_size_params
140 struct pulse_stream *stream;
141 HRESULT result;
142 UINT32 *frames;
145 struct get_frequency_params
147 struct pulse_stream *stream;
148 HRESULT result;
149 UINT64 *freq;
152 struct get_position_params
154 struct pulse_stream *stream;
155 BOOL device;
156 HRESULT result;
157 UINT64 *pos;
158 UINT64 *qpctime;
161 struct set_volumes_params
163 struct pulse_stream *stream;
164 float master_volume;
165 const float *volumes;
166 const float *session_volumes;
169 struct set_event_handle_params
171 struct pulse_stream *stream;
172 HANDLE event;
173 HRESULT result;
176 struct test_connect_params
178 const char *name;
179 HRESULT result;
180 struct pulse_config *config;
183 struct is_started_params
185 struct pulse_stream *stream;
186 BOOL started;
189 enum unix_funcs
191 process_attach,
192 process_detach,
193 main_loop,
194 create_stream,
195 release_stream,
196 start,
197 stop,
198 reset,
199 timer_loop,
200 get_render_buffer,
201 release_render_buffer,
202 get_capture_buffer,
203 release_capture_buffer,
204 get_buffer_size,
205 get_latency,
206 get_current_padding,
207 get_next_packet_size,
208 get_frequency,
209 get_position,
210 set_volumes,
211 set_event_handle,
212 test_connect,
213 is_started,