2 * Copyright 2022 Huw Davies
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 "mmdeviceapi.h"
21 typedef UINT64 stream_handle
;
23 /* From <dlls/mmdevapi/mmdevapi.h> */
26 Priority_Unavailable
= 0,
32 struct test_connect_params
34 enum DriverPriority priority
;
43 struct get_endpoint_ids_params
46 struct endpoint
*endpoints
;
50 unsigned int default_idx
;
53 struct create_stream_params
57 AUDCLNT_SHAREMODE share
;
59 REFERENCE_TIME duration
;
60 REFERENCE_TIME period
;
61 const WAVEFORMATEX
*fmt
;
63 stream_handle
*stream
;
66 struct release_stream_params
91 struct timer_loop_params
96 struct get_render_buffer_params
104 struct release_render_buffer_params
106 stream_handle stream
;
107 UINT32 written_frames
;
112 struct get_capture_buffer_params
114 stream_handle stream
;
123 struct release_capture_buffer_params
125 stream_handle stream
;
130 struct is_format_supported_params
134 AUDCLNT_SHAREMODE share
;
135 const WAVEFORMATEX
*fmt_in
;
136 WAVEFORMATEXTENSIBLE
*fmt_out
;
140 struct get_mix_format_params
144 WAVEFORMATEXTENSIBLE
*fmt
;
148 struct get_buffer_size_params
150 stream_handle stream
;
155 struct get_latency_params
157 stream_handle stream
;
159 REFERENCE_TIME
*latency
;
162 struct get_current_padding_params
164 stream_handle stream
;
169 struct get_next_packet_size_params
171 stream_handle stream
;
176 struct get_frequency_params
178 stream_handle stream
;
183 struct get_position_params
185 stream_handle stream
;
191 struct set_volumes_params
193 stream_handle stream
;
195 const float *volumes
;
196 const float *session_volumes
;
199 struct set_event_handle_params
201 stream_handle stream
;
206 struct is_started_params
208 stream_handle stream
;
212 struct notify_context
225 struct midi_out_message_params
233 struct notify_context
*notify
;
236 struct midi_in_message_params
244 struct notify_context
*notify
;
247 struct midi_notify_wait_params
250 struct notify_context
*notify
;
253 struct aux_message_params
266 oss_get_endpoint_ids
,
273 oss_get_render_buffer
,
274 oss_release_render_buffer
,
275 oss_get_capture_buffer
,
276 oss_release_capture_buffer
,
277 oss_is_format_supported
,
281 oss_get_current_padding
,
282 oss_get_next_packet_size
,
286 oss_set_event_handle
,
289 oss_midi_out_message
,
291 oss_midi_notify_wait
,
295 NTSTATUS
midi_release(void *args
) DECLSPEC_HIDDEN
;
296 NTSTATUS
midi_out_message(void *args
) DECLSPEC_HIDDEN
;
297 NTSTATUS
midi_in_message(void *args
) DECLSPEC_HIDDEN
;
298 NTSTATUS
midi_notify_wait(void *args
) DECLSPEC_HIDDEN
;
301 NTSTATUS
wow64_midi_out_message(void *args
) DECLSPEC_HIDDEN
;
302 NTSTATUS
wow64_midi_in_message(void *args
) DECLSPEC_HIDDEN
;
303 NTSTATUS
wow64_midi_notify_wait(void *args
) DECLSPEC_HIDDEN
;
306 extern unixlib_handle_t oss_handle
;
308 #define OSS_CALL(func, params) __wine_unix_call(oss_handle, oss_ ## func, params)