2 * Unixlib header file for winecoreaudio driver.
4 * Copyright 2021 Huw Davies
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 struct coreaudio_stream
;
30 struct get_endpoint_ids_params
33 struct endpoint
*endpoints
;
37 unsigned int default_idx
;
40 struct create_stream_params
44 AUDCLNT_SHAREMODE share
;
45 REFERENCE_TIME duration
;
46 REFERENCE_TIME period
;
47 const WAVEFORMATEX
*fmt
;
49 struct coreaudio_stream
*stream
;
52 struct release_stream_params
54 struct coreaudio_stream
*stream
;
60 struct coreaudio_stream
*stream
;
66 struct coreaudio_stream
*stream
;
72 struct coreaudio_stream
*stream
;
76 struct get_render_buffer_params
78 struct coreaudio_stream
*stream
;
84 struct release_render_buffer_params
86 struct coreaudio_stream
*stream
;
92 struct get_capture_buffer_params
94 struct coreaudio_stream
*stream
;
103 struct release_capture_buffer_params
105 struct coreaudio_stream
*stream
;
110 struct get_mix_format_params
114 WAVEFORMATEXTENSIBLE
*fmt
;
118 struct is_format_supported_params
122 AUDCLNT_SHAREMODE share
;
123 const WAVEFORMATEX
*fmt_in
;
124 WAVEFORMATEXTENSIBLE
*fmt_out
;
128 struct get_buffer_size_params
130 struct coreaudio_stream
*stream
;
135 struct get_latency_params
137 struct coreaudio_stream
*stream
;
139 REFERENCE_TIME
*latency
;
142 struct get_current_padding_params
144 struct coreaudio_stream
*stream
;
149 struct get_next_packet_size_params
151 struct coreaudio_stream
*stream
;
156 struct get_position_params
158 struct coreaudio_stream
*stream
;
164 struct get_frequency_params
166 struct coreaudio_stream
*stream
;
171 struct is_started_params
173 struct coreaudio_stream
*stream
;
177 struct set_volumes_params
179 struct coreaudio_stream
*stream
;
181 const float *volumes
;
182 const float *session_volumes
;
186 struct midi_init_params
194 struct notify_context
207 struct midi_out_message_params
215 struct notify_context
*notify
;
220 unix_get_endpoint_ids
,
226 unix_get_render_buffer
,
227 unix_release_render_buffer
,
228 unix_get_capture_buffer
,
229 unix_release_capture_buffer
,
231 unix_is_format_supported
,
232 unix_get_buffer_size
,
234 unix_get_current_padding
,
235 unix_get_next_packet_size
,
242 unix_midi_out_message
,
245 NTSTATUS
midi_init( void * ) DECLSPEC_HIDDEN
;
246 NTSTATUS
midi_release( void * ) DECLSPEC_HIDDEN
;
247 NTSTATUS
midi_out_message( void * ) DECLSPEC_HIDDEN
;
249 extern unixlib_handle_t coreaudio_handle
;
251 #define UNIX_CALL( func, params ) __wine_unix_call( coreaudio_handle, unix_ ## func, params )