From: Davide Beatrici git@davidebeatrici.dev
The data type for "done" was accidentally changed in e29dc33aebf4e1d4e30fd158b69338331edd3f65.
BOOL is basically the same as UINT32, but it should only be used for flags. BOOLEAN would be better for that though, as it's single-byte. --- dlls/mmdevapi/unixlib.h | 13 ++++++++++--- dlls/winealsa.drv/alsa.c | 12 ++++++++---- dlls/winealsa.drv/mmdevdrv.c | 3 ++- dlls/wineoss.drv/mmdevdrv.c | 3 ++- dlls/wineoss.drv/oss.c | 12 ++++++++---- dlls/winepulse.drv/mmdevdrv.c | 3 ++- dlls/winepulse.drv/pulse.c | 12 ++++++++---- 7 files changed, 40 insertions(+), 18 deletions(-)
diff --git a/dlls/mmdevapi/unixlib.h b/dlls/mmdevapi/unixlib.h index 97a35ffbc4d..ea0d2f9c4b9 100644 --- a/dlls/mmdevapi/unixlib.h +++ b/dlls/mmdevapi/unixlib.h @@ -1,6 +1,6 @@ /* * Copyright 2021 Jacek Caban for CodeWeavers - * Copyright 2022 Huw Davies + * Copyright 2021-2022 Huw Davies * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -126,7 +126,7 @@ struct get_capture_buffer_params struct release_capture_buffer_params { stream_handle stream; - BOOL done; + UINT32 done; HRESULT result; };
@@ -161,7 +161,7 @@ struct get_buffer_size_params { stream_handle stream; HRESULT result; - UINT32 *size; + UINT32 *frames; };
struct get_latency_params @@ -207,6 +207,7 @@ struct set_volumes_params float master_volume; const float *volumes; const float *session_volumes; + int channel; };
struct set_event_handle_params @@ -240,6 +241,11 @@ struct get_prop_value_params unsigned int *buffer_size; };
+struct midi_init_params +{ + UINT *err; +}; + struct notify_context { BOOL send_notify; @@ -321,6 +327,7 @@ enum unix_funcs test_connect, is_started, get_prop_value, + midi_init, midi_release, midi_out_message, midi_in_message, diff --git a/dlls/winealsa.drv/alsa.c b/dlls/winealsa.drv/alsa.c index c3daf25c85e..ffa39f5e484 100644 --- a/dlls/winealsa.drv/alsa.c +++ b/dlls/winealsa.drv/alsa.c @@ -2098,7 +2098,7 @@ static NTSTATUS alsa_get_buffer_size(void *args)
alsa_lock(stream);
- *params->size = stream->bufsize_frames; + *params->frames = stream->bufsize_frames;
return alsa_unlock_result(stream, ¶ms->result, S_OK); } @@ -2459,6 +2459,7 @@ unixlib_entry_t __wine_unix_call_funcs[] = NULL, alsa_is_started, alsa_get_prop_value, + NULL, alsa_midi_release, alsa_midi_out_message, alsa_midi_in_message, @@ -2647,12 +2648,12 @@ static NTSTATUS alsa_wow64_get_buffer_size(void *args) { stream_handle stream; HRESULT result; - PTR32 size; + PTR32 frames; } *params32 = args; struct get_buffer_size_params params = { .stream = params32->stream, - .size = ULongToPtr(params32->size) + .frames = ULongToPtr(params32->frames) }; alsa_get_buffer_size(¶ms); params32->result = params.result; @@ -2761,13 +2762,15 @@ static NTSTATUS alsa_wow64_set_volumes(void *args) float master_volume; PTR32 volumes; PTR32 session_volumes; + int channel; } *params32 = args; struct set_volumes_params params = { .stream = params32->stream, .master_volume = params32->master_volume, .volumes = ULongToPtr(params32->volumes), - .session_volumes = ULongToPtr(params32->session_volumes) + .session_volumes = ULongToPtr(params32->session_volumes), + .channel = params32->channel }; return alsa_set_volumes(¶ms); } @@ -2877,6 +2880,7 @@ unixlib_entry_t __wine_unix_call_wow64_funcs[] = NULL, alsa_is_started, alsa_wow64_get_prop_value, + NULL, alsa_midi_release, alsa_wow64_midi_out_message, alsa_wow64_midi_in_message, diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c index ad322ccfa96..03499a3e40e 100644 --- a/dlls/winealsa.drv/mmdevdrv.c +++ b/dlls/winealsa.drv/mmdevdrv.c @@ -325,6 +325,7 @@ static void set_stream_volumes(ACImpl *This) params.master_volume = (This->session->mute ? 0.0f : This->session->master_vol); params.volumes = This->vols; params.session_volumes = This->session->channel_vols; + params.channel = 0;
ALSA_CALL(set_volumes, ¶ms); } @@ -801,7 +802,7 @@ static HRESULT WINAPI AudioClient_GetBufferSize(IAudioClient3 *iface, return AUDCLNT_E_NOT_INITIALIZED;
params.stream = This->stream; - params.size = out; + params.frames = out;
ALSA_CALL(get_buffer_size, ¶ms);
diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c index 1b081e171b3..3bcb0f5f288 100644 --- a/dlls/wineoss.drv/mmdevdrv.c +++ b/dlls/wineoss.drv/mmdevdrv.c @@ -343,6 +343,7 @@ static void set_stream_volumes(ACImpl *This) params.master_volume = (This->session->mute ? 0.0f : This->session->master_vol); params.volumes = This->vols; params.session_volumes = This->session->channel_vols; + params.channel = 0; OSS_CALL(set_volumes, ¶ms); }
@@ -772,7 +773,7 @@ static HRESULT WINAPI AudioClient_GetBufferSize(IAudioClient3 *iface, return AUDCLNT_E_NOT_INITIALIZED;
params.stream = This->stream; - params.size = frames; + params.frames = frames;
OSS_CALL(get_buffer_size, ¶ms); TRACE("buffer size: %u\n", *frames); diff --git a/dlls/wineoss.drv/oss.c b/dlls/wineoss.drv/oss.c index 221e4e2ff71..4bc8bc20666 100644 --- a/dlls/wineoss.drv/oss.c +++ b/dlls/wineoss.drv/oss.c @@ -1247,7 +1247,7 @@ static NTSTATUS oss_get_buffer_size(void *args)
oss_lock(stream);
- *params->size = stream->bufsize_frames; + *params->frames = stream->bufsize_frames;
return oss_unlock_result(stream, ¶ms->result, S_OK); } @@ -1640,6 +1640,7 @@ unixlib_entry_t __wine_unix_call_funcs[] = oss_test_connect, oss_is_started, NULL, + NULL, oss_midi_release, oss_midi_out_message, oss_midi_in_message, @@ -1844,12 +1845,12 @@ static NTSTATUS oss_wow64_get_buffer_size(void *args) { stream_handle stream; HRESULT result; - PTR32 size; + PTR32 frames; } *params32 = args; struct get_buffer_size_params params = { .stream = params32->stream, - .size = ULongToPtr(params32->size) + .frames = ULongToPtr(params32->frames) }; oss_get_buffer_size(¶ms); params32->result = params.result; @@ -1958,13 +1959,15 @@ static NTSTATUS oss_wow64_set_volumes(void *args) float master_volume; PTR32 volumes; PTR32 session_volumes; + int channel; } *params32 = args; struct set_volumes_params params = { .stream = params32->stream, .master_volume = params32->master_volume, .volumes = ULongToPtr(params32->volumes), - .session_volumes = ULongToPtr(params32->session_volumes) + .session_volumes = ULongToPtr(params32->session_volumes), + .channel = params32->channel }; return oss_set_volumes(¶ms); } @@ -2041,6 +2044,7 @@ unixlib_entry_t __wine_unix_call_wow64_funcs[] = oss_wow64_test_connect, oss_is_started, NULL, + NULL, oss_midi_release, oss_wow64_midi_out_message, oss_wow64_midi_in_message, diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c index d6765d4e26c..d1d9eee068b 100644 --- a/dlls/winepulse.drv/mmdevdrv.c +++ b/dlls/winepulse.drv/mmdevdrv.c @@ -370,6 +370,7 @@ static void set_stream_volumes(ACImpl *This) params.master_volume = This->session->mute ? 0.0f : This->session->master_vol; params.volumes = This->vol; params.session_volumes = This->session->channel_vols; + params.channel = 0; pulse_call(set_volumes, ¶ms); }
@@ -930,7 +931,7 @@ static HRESULT WINAPI AudioClient_GetBufferSize(IAudioClient3 *iface, return AUDCLNT_E_NOT_INITIALIZED;
params.stream = This->pulse_stream; - params.size = out; + params.frames = out; pulse_call(get_buffer_size, ¶ms); return params.result; } diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c index cbd9b3b97ae..41d988e692b 100644 --- a/dlls/winepulse.drv/pulse.c +++ b/dlls/winepulse.drv/pulse.c @@ -2095,7 +2095,7 @@ static NTSTATUS pulse_get_buffer_size(void *args) if (!pulse_stream_valid(stream)) params->result = AUDCLNT_E_DEVICE_INVALIDATED; else - *params->size = stream->bufsize_frames; + *params->frames = stream->bufsize_frames; pulse_unlock();
return STATUS_SUCCESS; @@ -2393,6 +2393,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = NULL, NULL, NULL, + NULL, };
#ifdef _WIN64 @@ -2587,12 +2588,12 @@ static NTSTATUS pulse_wow64_get_buffer_size(void *args) { stream_handle stream; HRESULT result; - PTR32 size; + PTR32 frames; } *params32 = args; struct get_buffer_size_params params = { .stream = params32->stream, - .size = ULongToPtr(params32->size) + .frames = ULongToPtr(params32->frames) }; pulse_get_buffer_size(¶ms); params32->result = params.result; @@ -2701,13 +2702,15 @@ static NTSTATUS pulse_wow64_set_volumes(void *args) float master_volume; PTR32 volumes; PTR32 session_volumes; + int channel; } *params32 = args; struct set_volumes_params params = { .stream = params32->stream, .master_volume = params32->master_volume, .volumes = ULongToPtr(params32->volumes), - .session_volumes = ULongToPtr(params32->session_volumes) + .session_volumes = ULongToPtr(params32->session_volumes), + .channel = params32->channel }; return pulse_set_volumes(¶ms); } @@ -2837,6 +2840,7 @@ const unixlib_entry_t __wine_unix_call_wow64_funcs[] = NULL, NULL, NULL, + NULL, };
#endif /* _WIN64 */
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=122958
Your paranoid android.
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The win32 Wine build failed
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The wow64 Wine build failed
From: Davide Beatrici git@davidebeatrici.dev
--- dlls/winecoreaudio.drv/coreaudio.c | 194 ++++++++++++++--------------- dlls/winecoreaudio.drv/coremidi.c | 26 ++-- dlls/winecoreaudio.drv/unixlib.h | 70 +++++------ 3 files changed, 145 insertions(+), 145 deletions(-)
diff --git a/dlls/winecoreaudio.drv/coreaudio.c b/dlls/winecoreaudio.drv/coreaudio.c index 2a9dcde0675..e69707e8c50 100644 --- a/dlls/winecoreaudio.drv/coreaudio.c +++ b/dlls/winecoreaudio.drv/coreaudio.c @@ -182,7 +182,7 @@ static BOOL device_has_channels(AudioDeviceID device, EDataFlow flow) return ret; }
-static NTSTATUS get_endpoint_ids(void *args) +static NTSTATUS unix_get_endpoint_ids(void *args) { struct get_endpoint_ids_params *params = args; unsigned int num_devices, i, needed, offset; @@ -624,7 +624,7 @@ static ULONG_PTR zero_bits(void) #endif }
-static NTSTATUS create_stream(void *args) +static NTSTATUS unix_create_stream(void *args) { struct create_stream_params *params = args; struct coreaudio_stream *stream = calloc(1, sizeof(*stream)); @@ -719,7 +719,7 @@ end: return STATUS_SUCCESS; }
-static NTSTATUS release_stream( void *args ) +static NTSTATUS unix_release_stream( void *args ) { struct release_stream_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -893,7 +893,7 @@ static DWORD get_channel_mask(unsigned int channels) return 0; }
-static NTSTATUS get_mix_format(void *args) +static NTSTATUS unix_get_mix_format(void *args) { struct get_mix_format_params *params = args; AudioObjectPropertyAddress addr; @@ -995,7 +995,7 @@ static NTSTATUS get_mix_format(void *args) return STATUS_SUCCESS; }
-static NTSTATUS is_format_supported(void *args) +static NTSTATUS unix_is_format_supported(void *args) { struct is_format_supported_params *params = args; const WAVEFORMATEXTENSIBLE *fmtex = (const WAVEFORMATEXTENSIBLE *)params->fmt_in; @@ -1051,7 +1051,7 @@ unsupported: .fmt = params->fmt_out, };
- get_mix_format(&get_mix_params); + unix_get_mix_format(&get_mix_params); params->result = get_mix_params.result; if(SUCCEEDED(params->result)) params->result = S_FALSE; } @@ -1159,7 +1159,7 @@ static void capture_resample(struct coreaudio_stream *stream) } }
-static NTSTATUS get_buffer_size(void *args) +static NTSTATUS unix_get_buffer_size(void *args) { struct get_buffer_size_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1223,7 +1223,7 @@ static HRESULT ca_get_max_stream_latency(struct coreaudio_stream *stream, UInt32 return S_OK; }
-static NTSTATUS get_latency(void *args) +static NTSTATUS unix_get_latency(void *args) { struct get_latency_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1269,7 +1269,7 @@ static UINT32 get_current_padding_nolock(struct coreaudio_stream *stream) return stream->held_frames; }
-static NTSTATUS get_current_padding(void *args) +static NTSTATUS unix_get_current_padding(void *args) { struct get_current_padding_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1281,7 +1281,7 @@ static NTSTATUS get_current_padding(void *args) return STATUS_SUCCESS; }
-static NTSTATUS start(void *args) +static NTSTATUS unix_start(void *args) { struct start_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1300,7 +1300,7 @@ static NTSTATUS start(void *args) return STATUS_SUCCESS; }
-static NTSTATUS stop(void *args) +static NTSTATUS unix_stop(void *args) { struct stop_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1319,7 +1319,7 @@ static NTSTATUS stop(void *args) return STATUS_SUCCESS; }
-static NTSTATUS reset(void *args) +static NTSTATUS unix_reset(void *args) { struct reset_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1347,7 +1347,7 @@ static NTSTATUS reset(void *args) return STATUS_SUCCESS; }
-static NTSTATUS get_render_buffer(void *args) +static NTSTATUS unix_get_render_buffer(void *args) { struct get_render_buffer_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1404,7 +1404,7 @@ end: return STATUS_SUCCESS; }
-static NTSTATUS release_render_buffer(void *args) +static NTSTATUS unix_release_render_buffer(void *args) { struct release_render_buffer_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1448,7 +1448,7 @@ static NTSTATUS release_render_buffer(void *args) return STATUS_SUCCESS; }
-static NTSTATUS get_capture_buffer(void *args) +static NTSTATUS unix_get_capture_buffer(void *args) { struct get_capture_buffer_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1504,7 +1504,7 @@ end: return STATUS_SUCCESS; }
-static NTSTATUS release_capture_buffer(void *args) +static NTSTATUS unix_release_capture_buffer(void *args) { struct release_capture_buffer_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1532,7 +1532,7 @@ static NTSTATUS release_capture_buffer(void *args) return STATUS_SUCCESS; }
-static NTSTATUS get_next_packet_size(void *args) +static NTSTATUS unix_get_next_packet_size(void *args) { struct get_next_packet_size_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1552,7 +1552,7 @@ static NTSTATUS get_next_packet_size(void *args) return STATUS_SUCCESS; }
-static NTSTATUS get_position(void *args) +static NTSTATUS unix_get_position(void *args) { struct get_position_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1576,7 +1576,7 @@ static NTSTATUS get_position(void *args) return STATUS_SUCCESS; }
-static NTSTATUS get_frequency(void *args) +static NTSTATUS unix_get_frequency(void *args) { struct get_frequency_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1590,7 +1590,7 @@ static NTSTATUS get_frequency(void *args) return STATUS_SUCCESS; }
-static NTSTATUS is_started(void *args) +static NTSTATUS unix_is_started(void *args) { struct is_started_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1603,7 +1603,7 @@ static NTSTATUS is_started(void *args) return STATUS_SUCCESS; }
-static NTSTATUS set_volumes(void *args) +static NTSTATUS unix_set_volumes(void *args) { struct set_volumes_params *params = args; struct coreaudio_stream *stream = handle_get_stream(params->stream); @@ -1635,38 +1635,38 @@ static NTSTATUS set_volumes(void *args)
unixlib_entry_t __wine_unix_call_funcs[] = { - get_endpoint_ids, - create_stream, - release_stream, - start, - stop, - reset, - get_render_buffer, - release_render_buffer, - get_capture_buffer, - release_capture_buffer, - get_mix_format, - is_format_supported, - get_buffer_size, - get_latency, - get_current_padding, - get_next_packet_size, - get_position, - get_frequency, - is_started, - set_volumes, - midi_init, - midi_release, - midi_out_message, - midi_in_message, - midi_notify_wait, + unix_get_endpoint_ids, + unix_create_stream, + unix_release_stream, + unix_start, + unix_stop, + unix_reset, + unix_get_render_buffer, + unix_release_render_buffer, + unix_get_capture_buffer, + unix_release_capture_buffer, + unix_get_mix_format, + unix_is_format_supported, + unix_get_buffer_size, + unix_get_latency, + unix_get_current_padding, + unix_get_next_packet_size, + unix_get_position, + unix_get_frequency, + unix_is_started, + unix_set_volumes, + unix_midi_init, + unix_midi_release, + unix_midi_out_message, + unix_midi_in_message, + unix_midi_notify_wait, };
#ifdef _WIN64
typedef UINT PTR32;
-static NTSTATUS wow64_get_endpoint_ids(void *args) +static NTSTATUS unix_wow64_get_endpoint_ids(void *args) { struct { @@ -1683,7 +1683,7 @@ static NTSTATUS wow64_get_endpoint_ids(void *args) .endpoints = ULongToPtr(params32->endpoints), .size = params32->size }; - get_endpoint_ids(¶ms); + unix_get_endpoint_ids(¶ms); params32->size = params.size; params32->result = params.result; params32->num = params.num; @@ -1691,7 +1691,7 @@ static NTSTATUS wow64_get_endpoint_ids(void *args) return STATUS_SUCCESS; }
-static NTSTATUS wow64_create_stream(void *args) +static NTSTATUS unix_wow64_create_stream(void *args) { struct { @@ -1714,12 +1714,12 @@ static NTSTATUS wow64_create_stream(void *args) .fmt = ULongToPtr(params32->fmt), .stream = ULongToPtr(params32->stream) }; - create_stream(¶ms); + unix_create_stream(¶ms); params32->result = params.result; return STATUS_SUCCESS; }
-static NTSTATUS wow64_get_render_buffer(void *args) +static NTSTATUS unix_wow64_get_render_buffer(void *args) { struct { @@ -1735,13 +1735,13 @@ static NTSTATUS wow64_get_render_buffer(void *args) .frames = params32->frames, .data = &data }; - get_render_buffer(¶ms); + unix_get_render_buffer(¶ms); params32->result = params.result; *(unsigned int *)ULongToPtr(params32->data) = PtrToUlong(data); return STATUS_SUCCESS; }
-static NTSTATUS wow64_get_capture_buffer(void *args) +static NTSTATUS unix_wow64_get_capture_buffer(void *args) { struct { @@ -1763,13 +1763,13 @@ static NTSTATUS wow64_get_capture_buffer(void *args) .devpos = ULongToPtr(params32->devpos), .qpcpos = ULongToPtr(params32->qpcpos) }; - get_capture_buffer(¶ms); + unix_get_capture_buffer(¶ms); params32->result = params.result; *(unsigned int *)ULongToPtr(params32->data) = PtrToUlong(data); return STATUS_SUCCESS; };
-static NTSTATUS wow64_is_format_supported(void *args) +static NTSTATUS unix_wow64_is_format_supported(void *args) { struct { @@ -1788,12 +1788,12 @@ static NTSTATUS wow64_is_format_supported(void *args) .fmt_in = ULongToPtr(params32->fmt_in), .fmt_out = ULongToPtr(params32->fmt_out) }; - is_format_supported(¶ms); + unix_is_format_supported(¶ms); params32->result = params.result; return STATUS_SUCCESS; }
-static NTSTATUS wow64_get_mix_format(void *args) +static NTSTATUS unix_wow64_get_mix_format(void *args) { struct { @@ -1808,12 +1808,12 @@ static NTSTATUS wow64_get_mix_format(void *args) .dev_id = params32->dev_id, .fmt = ULongToPtr(params32->fmt) }; - get_mix_format(¶ms); + unix_get_mix_format(¶ms); params32->result = params.result; return STATUS_SUCCESS; }
-static NTSTATUS wow64_get_buffer_size(void *args) +static NTSTATUS unix_wow64_get_buffer_size(void *args) { struct { @@ -1826,12 +1826,12 @@ static NTSTATUS wow64_get_buffer_size(void *args) .stream = params32->stream, .frames = ULongToPtr(params32->frames) }; - get_buffer_size(¶ms); + unix_get_buffer_size(¶ms); params32->result = params.result; return STATUS_SUCCESS; }
-static NTSTATUS wow64_get_latency(void *args) +static NTSTATUS unix_wow64_get_latency(void *args) { struct { @@ -1844,12 +1844,12 @@ static NTSTATUS wow64_get_latency(void *args) .stream = params32->stream, .latency = ULongToPtr(params32->latency) }; - get_latency(¶ms); + unix_get_latency(¶ms); params32->result = params.result; return STATUS_SUCCESS; }
-static NTSTATUS wow64_get_current_padding(void *args) +static NTSTATUS unix_wow64_get_current_padding(void *args) { struct { @@ -1862,12 +1862,12 @@ static NTSTATUS wow64_get_current_padding(void *args) .stream = params32->stream, .padding = ULongToPtr(params32->padding) }; - get_current_padding(¶ms); + unix_get_current_padding(¶ms); params32->result = params.result; return STATUS_SUCCESS; }
-static NTSTATUS wow64_get_next_packet_size(void *args) +static NTSTATUS unix_wow64_get_next_packet_size(void *args) { struct { @@ -1880,12 +1880,12 @@ static NTSTATUS wow64_get_next_packet_size(void *args) .stream = params32->stream, .frames = ULongToPtr(params32->frames) }; - get_next_packet_size(¶ms); + unix_get_next_packet_size(¶ms); params32->result = params.result; return STATUS_SUCCESS; }
-static NTSTATUS wow64_get_position(void *args) +static NTSTATUS unix_wow64_get_position(void *args) { struct { @@ -1900,12 +1900,12 @@ static NTSTATUS wow64_get_position(void *args) .pos = ULongToPtr(params32->pos), .qpctime = ULongToPtr(params32->qpctime) }; - get_position(¶ms); + unix_get_position(¶ms); params32->result = params.result; return STATUS_SUCCESS; }
-static NTSTATUS wow64_get_frequency(void *args) +static NTSTATUS unix_wow64_get_frequency(void *args) { struct { @@ -1918,12 +1918,12 @@ static NTSTATUS wow64_get_frequency(void *args) .stream = params32->stream, .freq = ULongToPtr(params32->freq) }; - get_frequency(¶ms); + unix_get_frequency(¶ms); params32->result = params.result; return STATUS_SUCCESS; }
-static NTSTATUS wow64_set_volumes(void *args) +static NTSTATUS unix_wow64_set_volumes(void *args) { struct { @@ -1941,36 +1941,36 @@ static NTSTATUS wow64_set_volumes(void *args) .session_volumes = ULongToPtr(params32->session_volumes), .channel = params32->channel }; - return set_volumes(¶ms); + return unix_set_volumes(¶ms); }
unixlib_entry_t __wine_unix_call_wow64_funcs[] = { - wow64_get_endpoint_ids, - wow64_create_stream, - release_stream, - start, - stop, - reset, - wow64_get_render_buffer, - release_render_buffer, - wow64_get_capture_buffer, - release_capture_buffer, - wow64_get_mix_format, - wow64_is_format_supported, - wow64_get_buffer_size, - wow64_get_latency, - wow64_get_current_padding, - wow64_get_next_packet_size, - wow64_get_position, - wow64_get_frequency, - is_started, - wow64_set_volumes, - wow64_midi_init, - midi_release, - wow64_midi_out_message, - wow64_midi_in_message, - wow64_midi_notify_wait, + unix_wow64_get_endpoint_ids, + unix_wow64_create_stream, + unix_release_stream, + unix_start, + unix_stop, + unix_reset, + unix_wow64_get_render_buffer, + unix_release_render_buffer, + unix_wow64_get_capture_buffer, + unix_release_capture_buffer, + unix_wow64_get_mix_format, + unix_wow64_is_format_supported, + unix_wow64_get_buffer_size, + unix_wow64_get_latency, + unix_wow64_get_current_padding, + unix_wow64_get_next_packet_size, + unix_wow64_get_position, + unix_wow64_get_frequency, + unix_is_started, + unix_wow64_set_volumes, + unix_wow64_midi_init, + unix_midi_release, + unix_wow64_midi_out_message, + unix_wow64_midi_in_message, + unix_wow64_midi_notify_wait, };
#endif /* _WIN64 */ diff --git a/dlls/winecoreaudio.drv/coremidi.c b/dlls/winecoreaudio.drv/coremidi.c index 445b760be76..c9b377f68b0 100644 --- a/dlls/winecoreaudio.drv/coremidi.c +++ b/dlls/winecoreaudio.drv/coremidi.c @@ -308,7 +308,7 @@ static void midi_in_read_proc(const MIDIPacketList *pktlist, void *refCon, void } }
-NTSTATUS midi_init(void *args) +NTSTATUS unix_midi_init(void *args) { CFStringRef name = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, CFSTR("wineMIDIClient.%d"), getpid()); struct midi_init_params *params = args; @@ -422,7 +422,7 @@ NTSTATUS midi_init(void *args) return STATUS_SUCCESS; }
-NTSTATUS midi_release(void *args) +NTSTATUS unix_midi_release(void *args) { /* stop the notify_wait thread */ notify_post(NULL); @@ -1122,7 +1122,7 @@ static UINT midi_in_reset(WORD dev_id, struct notify_context *notify) return err; }
-NTSTATUS midi_out_message(void *args) +NTSTATUS unix_midi_out_message(void *args) { struct midi_out_message_params *params = args;
@@ -1177,7 +1177,7 @@ NTSTATUS midi_out_message(void *args) return STATUS_SUCCESS; }
-NTSTATUS midi_in_message(void *args) +NTSTATUS unix_midi_in_message(void *args) { struct midi_in_message_params *params = args;
@@ -1229,7 +1229,7 @@ NTSTATUS midi_in_message(void *args) return STATUS_SUCCESS; }
-NTSTATUS midi_notify_wait(void *args) +NTSTATUS unix_midi_notify_wait(void *args) { struct midi_notify_wait_params *params = args;
@@ -1250,7 +1250,7 @@ NTSTATUS midi_notify_wait(void *args)
typedef UINT PTR32;
-NTSTATUS wow64_midi_init(void *args) +NTSTATUS unix_wow64_midi_init(void *args) { struct { @@ -1260,7 +1260,7 @@ NTSTATUS wow64_midi_init(void *args) { .err = ULongToPtr(params32->err) }; - return midi_init(¶ms); + return unix_midi_init(¶ms); }
struct notify_context32 @@ -1343,7 +1343,7 @@ static UINT wow64_midi_out_unprepare(WORD dev_id, struct midi_hdr32 *hdr, UINT h return MMSYSERR_NOERROR; }
-NTSTATUS wow64_midi_out_message(void *args) +NTSTATUS unix_wow64_midi_out_message(void *args) { struct { @@ -1414,7 +1414,7 @@ NTSTATUS wow64_midi_out_message(void *args) return STATUS_SUCCESS; }
- midi_out_message(¶ms); + unix_midi_out_message(¶ms);
switch (params32->msg) { @@ -1467,7 +1467,7 @@ static UINT wow64_midi_in_unprepare(WORD dev_id, struct midi_hdr32 *hdr, UINT hd return MMSYSERR_NOERROR; }
-NTSTATUS wow64_midi_in_message(void *args) +NTSTATUS unix_wow64_midi_in_message(void *args) { struct { @@ -1539,7 +1539,7 @@ NTSTATUS wow64_midi_in_message(void *args) return STATUS_SUCCESS; }
- midi_in_message(¶ms); + unix_midi_in_message(¶ms);
switch (params32->msg) { @@ -1574,7 +1574,7 @@ NTSTATUS wow64_midi_in_message(void *args) return STATUS_SUCCESS; }
-NTSTATUS wow64_midi_notify_wait(void *args) +NTSTATUS unix_wow64_midi_notify_wait(void *args) { struct { @@ -1592,7 +1592,7 @@ NTSTATUS wow64_midi_notify_wait(void *args) }; notify32->send_notify = FALSE;
- midi_notify_wait(¶ms); + unix_midi_notify_wait(¶ms);
if (!*params.quit && notify.send_notify) { diff --git a/dlls/winecoreaudio.drv/unixlib.h b/dlls/winecoreaudio.drv/unixlib.h index 1c7dcebb52d..243430d02ea 100644 --- a/dlls/winecoreaudio.drv/unixlib.h +++ b/dlls/winecoreaudio.drv/unixlib.h @@ -231,46 +231,46 @@ struct midi_notify_wait_params
enum unix_funcs { - unix_get_endpoint_ids, - unix_create_stream, - unix_release_stream, - unix_start, - unix_stop, - unix_reset, - unix_get_render_buffer, - unix_release_render_buffer, - unix_get_capture_buffer, - unix_release_capture_buffer, - unix_get_mix_format, - unix_is_format_supported, - unix_get_buffer_size, - unix_get_latency, - unix_get_current_padding, - unix_get_next_packet_size, - unix_get_position, - unix_get_frequency, - unix_is_started, - unix_set_volumes, - unix_midi_init, - unix_midi_release, - unix_midi_out_message, - unix_midi_in_message, - unix_midi_notify_wait, + get_endpoint_ids, + create_stream, + release_stream, + start, + stop, + reset, + get_render_buffer, + release_render_buffer, + get_capture_buffer, + release_capture_buffer, + get_mix_format, + is_format_supported, + get_buffer_size, + get_latency, + get_current_padding, + get_next_packet_size, + get_position, + get_frequency, + is_started, + set_volumes, + midi_init, + midi_release, + midi_out_message, + midi_in_message, + midi_notify_wait, };
-NTSTATUS midi_init( void * ) DECLSPEC_HIDDEN; -NTSTATUS midi_release( void * ) DECLSPEC_HIDDEN; -NTSTATUS midi_out_message( void * ) DECLSPEC_HIDDEN; -NTSTATUS midi_in_message( void * ) DECLSPEC_HIDDEN; -NTSTATUS midi_notify_wait( void * ) DECLSPEC_HIDDEN; +NTSTATUS unix_midi_init( void * ) DECLSPEC_HIDDEN; +NTSTATUS unix_midi_release( void * ) DECLSPEC_HIDDEN; +NTSTATUS unix_midi_out_message( void * ) DECLSPEC_HIDDEN; +NTSTATUS unix_midi_in_message( void * ) DECLSPEC_HIDDEN; +NTSTATUS unix_midi_notify_wait( void * ) DECLSPEC_HIDDEN;
#ifdef _WIN64 -NTSTATUS wow64_midi_init(void *args) DECLSPEC_HIDDEN; -NTSTATUS wow64_midi_out_message(void *args) DECLSPEC_HIDDEN; -NTSTATUS wow64_midi_in_message(void *args) DECLSPEC_HIDDEN; -NTSTATUS wow64_midi_notify_wait(void *args) DECLSPEC_HIDDEN; +NTSTATUS unix_wow64_midi_init(void *args) DECLSPEC_HIDDEN; +NTSTATUS unix_wow64_midi_out_message(void *args) DECLSPEC_HIDDEN; +NTSTATUS unix_wow64_midi_in_message(void *args) DECLSPEC_HIDDEN; +NTSTATUS unix_wow64_midi_notify_wait(void *args) DECLSPEC_HIDDEN; #endif
extern unixlib_handle_t coreaudio_handle;
-#define UNIX_CALL( func, params ) __wine_unix_call( coreaudio_handle, unix_ ## func, params ) +#define UNIX_CALL( func, params ) __wine_unix_call( coreaudio_handle, func, params )
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=122959
Your paranoid android.
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The win32 Wine build failed
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The wow64 Wine build failed
From: Davide Beatrici git@davidebeatrici.dev
--- dlls/winecoreaudio.drv/coreaudio.c | 2 +- dlls/winecoreaudio.drv/mmdevdrv.c | 2 +- dlls/winecoreaudio.drv/unixlib.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/winecoreaudio.drv/coreaudio.c b/dlls/winecoreaudio.drv/coreaudio.c index e69707e8c50..86b973b98eb 100644 --- a/dlls/winecoreaudio.drv/coreaudio.c +++ b/dlls/winecoreaudio.drv/coreaudio.c @@ -274,7 +274,7 @@ static NTSTATUS unix_get_endpoint_ids(void *args) ptr = (UniChar *)((char *)params->endpoints + offset); CFStringGetCharacters(info[i].name, CFRangeMake(0, len), ptr); ptr[len] = 0; - endpoint->id = info[i].id; + endpoint->device = info[i].id; endpoint++; offset += (len + 1) * sizeof(WCHAR); } diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c index da6c05bdc1f..e865296757b 100644 --- a/dlls/winecoreaudio.drv/mmdevdrv.c +++ b/dlls/winecoreaudio.drv/mmdevdrv.c @@ -350,7 +350,7 @@ HRESULT WINAPI AUDDRV_GetEndpointIDs(EDataFlow flow, WCHAR ***ids_out, goto end; } memcpy(ids[i], name, size); - get_device_guid(flow, params.endpoints[i].id, guids + i); + get_device_guid(flow, params.endpoints[i].device, guids + i); } *def_index = params.default_idx;
diff --git a/dlls/winecoreaudio.drv/unixlib.h b/dlls/winecoreaudio.drv/unixlib.h index 243430d02ea..66ded401cf2 100644 --- a/dlls/winecoreaudio.drv/unixlib.h +++ b/dlls/winecoreaudio.drv/unixlib.h @@ -24,7 +24,7 @@ typedef UINT64 stream_handle; struct endpoint { unsigned int name; - DWORD id; + unsigned int device; };
struct get_endpoint_ids_params
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=122960
Your paranoid android.
=== debian11 (build log) ===
../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol Task: The win32 Wine build failed
=== debian11 (build log) ===
../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol Task: The wow64 Wine build failed
From: Davide Beatrici git@davidebeatrici.dev
--- dlls/winecoreaudio.drv/coreaudio.c | 12 +++++++++--- dlls/winecoreaudio.drv/mmdevdrv.c | 9 ++++++++- dlls/winecoreaudio.drv/unixlib.h | 5 ++++- 3 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/dlls/winecoreaudio.drv/coreaudio.c b/dlls/winecoreaudio.drv/coreaudio.c index 86b973b98eb..cd05b1d5ab1 100644 --- a/dlls/winecoreaudio.drv/coreaudio.c +++ b/dlls/winecoreaudio.drv/coreaudio.c @@ -645,7 +645,7 @@ static NTSTATUS unix_create_stream(void *args)
stream->period_ms = params->period / 10000; stream->period_frames = muldiv(params->period, stream->fmt->nSamplesPerSec, 10000000); - stream->dev_id = params->dev_id; + stream->dev_id = strtoul(params->device, NULL, 10); stream->flow = params->flow; stream->share = params->share;
@@ -1695,23 +1695,29 @@ static NTSTATUS unix_wow64_create_stream(void *args) { struct { - DWORD dev_id; + PTR32 name; + PTR32 device; EDataFlow flow; AUDCLNT_SHAREMODE share; + DWORD flags; REFERENCE_TIME duration; REFERENCE_TIME period; PTR32 fmt; HRESULT result; + PTR32 channel_count; PTR32 stream; } *params32 = args; struct create_stream_params params = { - .dev_id = params32->dev_id, + .name = ULongToPtr(params32->name), + .device = ULongToPtr(params32->device), .flow = params32->flow, .share = params32->share, + .flags = params32->flags, .duration = params32->duration, .period = params32->period, .fmt = ULongToPtr(params32->fmt), + .channel_count = ULongToPtr(params32->channel_count), .stream = ULongToPtr(params32->stream) }; unix_create_stream(¶ms); diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c index e865296757b..c1e955712ca 100644 --- a/dlls/winecoreaudio.drv/mmdevdrv.c +++ b/dlls/winecoreaudio.drv/mmdevdrv.c @@ -47,6 +47,8 @@ unixlib_handle_t coreaudio_handle = 0;
#define NULL_PTR_ERR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, RPC_X_NULL_REF_POINTER)
+#define MAX_DEV_NAME_LEN 10 /* Max 32 bit digits */ + static const REFERENCE_TIME DefaultPeriod = 100000; static const REFERENCE_TIME MinimumPeriod = 50000;
@@ -98,6 +100,7 @@ struct ACImpl { float *vols;
DWORD dev_id; + char dev_name[MAX_DEV_NAME_LEN + 1]; HANDLE timer;
AudioSession *session; @@ -470,6 +473,7 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient IMMDevice_AddRef(This->parent);
This->dev_id = dev_id; + snprintf(This->dev_name, sizeof(This->dev_name), "%lu", dev_id);
*out = (IAudioClient *)&This->IAudioClient3_iface; IAudioClient3_AddRef(&This->IAudioClient3_iface); @@ -731,12 +735,15 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface, return AUDCLNT_E_ALREADY_INITIALIZED; }
- params.dev_id = This->dev_id; + params.name = NULL; + params.device = This->dev_name; params.flow = This->dataflow; params.share = mode; + params.flags = flags; params.duration = duration; params.period = period; params.fmt = fmt; + params.channel_count = NULL; params.stream = &stream;
UNIX_CALL(create_stream, ¶ms); diff --git a/dlls/winecoreaudio.drv/unixlib.h b/dlls/winecoreaudio.drv/unixlib.h index 66ded401cf2..de2617d8dd4 100644 --- a/dlls/winecoreaudio.drv/unixlib.h +++ b/dlls/winecoreaudio.drv/unixlib.h @@ -39,13 +39,16 @@ struct get_endpoint_ids_params
struct create_stream_params { - DWORD dev_id; + const char *name; + const char *device; EDataFlow flow; AUDCLNT_SHAREMODE share; + DWORD flags; REFERENCE_TIME duration; REFERENCE_TIME period; const WAVEFORMATEX *fmt; HRESULT result; + UINT32 *channel_count; stream_handle *stream; };
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=122961
Your paranoid android.
=== debian11 (build log) ===
../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol Task: The win32 Wine build failed
=== debian11 (build log) ===
../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol Task: The wow64 Wine build failed
From: Davide Beatrici git@davidebeatrici.dev
--- dlls/winecoreaudio.drv/coreaudio.c | 20 +++++++++++++++++++- dlls/winecoreaudio.drv/mmdevdrv.c | 1 + dlls/winecoreaudio.drv/unixlib.h | 1 + 3 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/dlls/winecoreaudio.drv/coreaudio.c b/dlls/winecoreaudio.drv/coreaudio.c index cd05b1d5ab1..abc8713b9ec 100644 --- a/dlls/winecoreaudio.drv/coreaudio.c +++ b/dlls/winecoreaudio.drv/coreaudio.c @@ -1725,6 +1725,24 @@ static NTSTATUS unix_wow64_create_stream(void *args) return STATUS_SUCCESS; }
+static NTSTATUS unix_wow64_release_stream(void *args) +{ + struct + { + stream_handle stream; + PTR32 timer_thread; + HRESULT result; + } *params32 = args; + struct release_stream_params params = + { + .stream = params32->stream, + .timer_thread = ULongToHandle(params32->timer_thread) + }; + unix_release_stream(¶ms); + params32->result = params.result; + return STATUS_SUCCESS; +} + static NTSTATUS unix_wow64_get_render_buffer(void *args) { struct @@ -1954,7 +1972,7 @@ unixlib_entry_t __wine_unix_call_wow64_funcs[] = { unix_wow64_get_endpoint_ids, unix_wow64_create_stream, - unix_release_stream, + unix_wow64_release_stream, unix_start, unix_stop, unix_reset, diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c index c1e955712ca..8bbeb3b8fe4 100644 --- a/dlls/winecoreaudio.drv/mmdevdrv.c +++ b/dlls/winecoreaudio.drv/mmdevdrv.c @@ -536,6 +536,7 @@ static ULONG WINAPI AudioClient_Release(IAudioClient3 *iface) } if(This->stream){ params.stream = This->stream; + params.timer_thread = NULL; UNIX_CALL(release_stream, ¶ms); } if(This->session){ diff --git a/dlls/winecoreaudio.drv/unixlib.h b/dlls/winecoreaudio.drv/unixlib.h index de2617d8dd4..55ff88b37ae 100644 --- a/dlls/winecoreaudio.drv/unixlib.h +++ b/dlls/winecoreaudio.drv/unixlib.h @@ -55,6 +55,7 @@ struct create_stream_params struct release_stream_params { stream_handle stream; + HANDLE timer_thread; HRESULT result; };
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=122962
Your paranoid android.
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The win32 Wine build failed
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The wow64 Wine build failed
From: Davide Beatrici git@davidebeatrici.dev
--- dlls/winecoreaudio.drv/coreaudio.c | 14 +++++++------- dlls/winecoreaudio.drv/mmdevdrv.c | 2 +- dlls/winecoreaudio.drv/unixlib.h | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/dlls/winecoreaudio.drv/coreaudio.c b/dlls/winecoreaudio.drv/coreaudio.c index abc8713b9ec..bba3a805f33 100644 --- a/dlls/winecoreaudio.drv/coreaudio.c +++ b/dlls/winecoreaudio.drv/coreaudio.c @@ -1412,12 +1412,12 @@ static NTSTATUS unix_release_render_buffer(void *args)
OSSpinLockLock(&stream->lock);
- if(!params->frames){ + if(!params->written_frames){ stream->getbuf_last = 0; params->result = S_OK; }else if(!stream->getbuf_last) params->result = AUDCLNT_E_OUT_OF_ORDER; - else if(params->frames > (stream->getbuf_last >= 0 ? stream->getbuf_last : -stream->getbuf_last)) + else if(params->written_frames > (stream->getbuf_last >= 0 ? stream->getbuf_last : -stream->getbuf_last)) params->result = AUDCLNT_E_INVALID_SIZE; else{ if(stream->getbuf_last >= 0) @@ -1426,18 +1426,18 @@ static NTSTATUS unix_release_render_buffer(void *args) buffer = stream->tmp_buffer;
if(params->flags & AUDCLNT_BUFFERFLAGS_SILENT) - silence_buffer(stream, buffer, params->frames); + silence_buffer(stream, buffer, params->written_frames);
if(stream->getbuf_last < 0) ca_wrap_buffer(stream->local_buffer, stream->wri_offs_frames * stream->fmt->nBlockAlign, stream->bufsize_frames * stream->fmt->nBlockAlign, - buffer, params->frames * stream->fmt->nBlockAlign); + buffer, params->written_frames * stream->fmt->nBlockAlign);
- stream->wri_offs_frames += params->frames; + stream->wri_offs_frames += params->written_frames; stream->wri_offs_frames %= stream->bufsize_frames; - stream->held_frames += params->frames; - stream->written_frames += params->frames; + stream->held_frames += params->written_frames; + stream->written_frames += params->written_frames; stream->getbuf_last = 0;
params->result = S_OK; diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c index 8bbeb3b8fe4..dfad4d7527c 100644 --- a/dlls/winecoreaudio.drv/mmdevdrv.c +++ b/dlls/winecoreaudio.drv/mmdevdrv.c @@ -1286,7 +1286,7 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer( TRACE("(%p)->(%u, %lx)\n", This, frames, flags);
params.stream = This->stream; - params.frames = frames; + params.written_frames = frames; params.flags = flags; UNIX_CALL(release_render_buffer, ¶ms); return params.result; diff --git a/dlls/winecoreaudio.drv/unixlib.h b/dlls/winecoreaudio.drv/unixlib.h index 55ff88b37ae..3386217fddc 100644 --- a/dlls/winecoreaudio.drv/unixlib.h +++ b/dlls/winecoreaudio.drv/unixlib.h @@ -88,8 +88,8 @@ struct get_render_buffer_params struct release_render_buffer_params { stream_handle stream; - UINT32 frames; - DWORD flags; + UINT32 written_frames; + UINT flags; HRESULT result; };
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=122963
Your paranoid android.
=== debian11 (build log) ===
../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol Task: The win32 Wine build failed
=== debian11 (build log) ===
../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol Task: The wow64 Wine build failed
From: Davide Beatrici git@davidebeatrici.dev
--- dlls/winecoreaudio.drv/mmdevdrv.c | 2 +- dlls/winecoreaudio.drv/unixlib.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c index dfad4d7527c..76502e2f177 100644 --- a/dlls/winecoreaudio.drv/mmdevdrv.c +++ b/dlls/winecoreaudio.drv/mmdevdrv.c @@ -1358,7 +1358,7 @@ static HRESULT WINAPI AudioCaptureClient_GetBuffer(IAudioCaptureClient *iface, params.stream = This->stream; params.data = data; params.frames = frames; - params.flags = flags; + params.flags = (UINT *)flags; params.devpos = devpos; params.qpcpos = qpcpos; UNIX_CALL(get_capture_buffer, ¶ms); diff --git a/dlls/winecoreaudio.drv/unixlib.h b/dlls/winecoreaudio.drv/unixlib.h index 3386217fddc..4e4a334c39d 100644 --- a/dlls/winecoreaudio.drv/unixlib.h +++ b/dlls/winecoreaudio.drv/unixlib.h @@ -99,7 +99,7 @@ struct get_capture_buffer_params HRESULT result; BYTE **data; UINT32 *frames; - DWORD *flags; + UINT *flags; UINT64 *devpos; UINT64 *qpcpos; };
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=122964
Your paranoid android.
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The win32 Wine build failed
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The wow64 Wine build failed
From: Davide Beatrici git@davidebeatrici.dev
--- dlls/winecoreaudio.drv/coreaudio.c | 9 +++++---- dlls/winecoreaudio.drv/mmdevdrv.c | 2 +- dlls/winecoreaudio.drv/unixlib.h | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/dlls/winecoreaudio.drv/coreaudio.c b/dlls/winecoreaudio.drv/coreaudio.c index bba3a805f33..b582e0eabcf 100644 --- a/dlls/winecoreaudio.drv/coreaudio.c +++ b/dlls/winecoreaudio.drv/coreaudio.c @@ -1002,6 +1002,7 @@ static NTSTATUS unix_is_format_supported(void *args) AudioStreamBasicDescription dev_desc; AudioConverterRef converter; AudioComponentInstance unit; + const AudioDeviceID dev_id = strtoul(params->device, NULL, 10);
params->result = S_OK;
@@ -1031,7 +1032,7 @@ static NTSTATUS unix_is_format_supported(void *args) params->result = AUDCLNT_E_UNSUPPORTED_FORMAT; return STATUS_SUCCESS; } - unit = get_audiounit(params->flow, params->dev_id); + unit = get_audiounit(params->flow, dev_id);
converter = NULL; params->result = ca_setup_audiounit(params->flow, unit, params->fmt_in, &dev_desc, &converter); @@ -1047,7 +1048,7 @@ unsupported: struct get_mix_format_params get_mix_params = { .flow = params->flow, - .dev_id = params->dev_id, + .dev_id = dev_id, .fmt = params->fmt_out, };
@@ -1797,8 +1798,8 @@ static NTSTATUS unix_wow64_is_format_supported(void *args) { struct { + PTR32 device; EDataFlow flow; - DWORD dev_id; AUDCLNT_SHAREMODE share; PTR32 fmt_in; PTR32 fmt_out; @@ -1806,8 +1807,8 @@ static NTSTATUS unix_wow64_is_format_supported(void *args) } *params32 = args; struct is_format_supported_params params = { + .device = ULongToPtr(params32->device), .flow = params32->flow, - .dev_id = params32->dev_id, .share = params32->share, .fmt_in = ULongToPtr(params32->fmt_in), .fmt_out = ULongToPtr(params32->fmt_out) diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c index 76502e2f177..790665842b1 100644 --- a/dlls/winecoreaudio.drv/mmdevdrv.c +++ b/dlls/winecoreaudio.drv/mmdevdrv.c @@ -857,7 +857,7 @@ static HRESULT WINAPI AudioClient_IsFormatSupported(IAudioClient3 *iface, TRACE("(%p)->(%x, %p, %p)\n", This, mode, pwfx, outpwfx); if(pwfx) dump_fmt(pwfx);
- params.dev_id = This->dev_id; + params.device = This->dev_name; params.flow = This->dataflow; params.share = mode; params.fmt_in = pwfx; diff --git a/dlls/winecoreaudio.drv/unixlib.h b/dlls/winecoreaudio.drv/unixlib.h index 4e4a334c39d..d11ac670e5f 100644 --- a/dlls/winecoreaudio.drv/unixlib.h +++ b/dlls/winecoreaudio.drv/unixlib.h @@ -121,8 +121,8 @@ struct get_mix_format_params
struct is_format_supported_params { + const char *device; EDataFlow flow; - DWORD dev_id; AUDCLNT_SHAREMODE share; const WAVEFORMATEX *fmt_in; WAVEFORMATEXTENSIBLE *fmt_out;
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=122965
Your paranoid android.
=== debian11 (build log) ===
../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol Task: The win32 Wine build failed
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The wow64 Wine build failed
From: Davide Beatrici git@davidebeatrici.dev
--- dlls/winecoreaudio.drv/coreaudio.c | 17 +++++++++-------- dlls/winecoreaudio.drv/mmdevdrv.c | 4 +--- dlls/winecoreaudio.drv/unixlib.h | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/dlls/winecoreaudio.drv/coreaudio.c b/dlls/winecoreaudio.drv/coreaudio.c index b582e0eabcf..697b2411376 100644 --- a/dlls/winecoreaudio.drv/coreaudio.c +++ b/dlls/winecoreaudio.drv/coreaudio.c @@ -903,6 +903,7 @@ static NTSTATUS unix_get_mix_format(void *args) UInt32 size; OSStatus sc; int i; + const AudioDeviceID dev_id = strtoul(params->device, NULL, 10);
params->fmt->Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE;
@@ -910,10 +911,10 @@ static NTSTATUS unix_get_mix_format(void *args) addr.mElement = 0; addr.mSelector = kAudioDevicePropertyPreferredChannelLayout;
- sc = AudioObjectGetPropertyDataSize(params->dev_id, &addr, 0, NULL, &size); + sc = AudioObjectGetPropertyDataSize(dev_id, &addr, 0, NULL, &size); if(sc == noErr){ layout = malloc(size); - sc = AudioObjectGetPropertyData(params->dev_id, &addr, 0, NULL, &size, layout); + sc = AudioObjectGetPropertyData(dev_id, &addr, 0, NULL, &size, layout); if(sc == noErr){ TRACE("Got channel layout: {tag: 0x%x, bitmap: 0x%x, num_descs: %u}\n", (unsigned int)layout->mChannelLayoutTag, (unsigned int)layout->mChannelBitmap, @@ -942,7 +943,7 @@ static NTSTATUS unix_get_mix_format(void *args) addr.mElement = 0; addr.mSelector = kAudioDevicePropertyStreamConfiguration;
- sc = AudioObjectGetPropertyDataSize(params->dev_id, &addr, 0, NULL, &size); + sc = AudioObjectGetPropertyDataSize(dev_id, &addr, 0, NULL, &size); if(sc != noErr){ WARN("Unable to get size for _StreamConfiguration property: %x\n", (int)sc); params->result = osstatus_to_hresult(sc); @@ -955,7 +956,7 @@ static NTSTATUS unix_get_mix_format(void *args) return STATUS_SUCCESS; }
- sc = AudioObjectGetPropertyData(params->dev_id, &addr, 0, NULL, &size, buffers); + sc = AudioObjectGetPropertyData(dev_id, &addr, 0, NULL, &size, buffers); if(sc != noErr){ free(buffers); WARN("Unable to get _StreamConfiguration property: %x\n", (int)sc); @@ -973,7 +974,7 @@ static NTSTATUS unix_get_mix_format(void *args)
addr.mSelector = kAudioDevicePropertyNominalSampleRate; size = sizeof(Float64); - sc = AudioObjectGetPropertyData(params->dev_id, &addr, 0, NULL, &size, &rate); + sc = AudioObjectGetPropertyData(dev_id, &addr, 0, NULL, &size, &rate); if(sc != noErr){ WARN("Unable to get _NominalSampleRate property: %x\n", (int)sc); params->result = osstatus_to_hresult(sc); @@ -1047,8 +1048,8 @@ unsupported: if(params->fmt_out){ struct get_mix_format_params get_mix_params = { + .device = params->device, .flow = params->flow, - .dev_id = dev_id, .fmt = params->fmt_out, };
@@ -1822,15 +1823,15 @@ static NTSTATUS unix_wow64_get_mix_format(void *args) { struct { + PTR32 device; EDataFlow flow; - DWORD dev_id; PTR32 fmt; HRESULT result; } *params32 = args; struct get_mix_format_params params = { + .device = ULongToPtr(params32->device), .flow = params32->flow, - .dev_id = params32->dev_id, .fmt = ULongToPtr(params32->fmt) }; unix_get_mix_format(¶ms); diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c index 790665842b1..2a23b95ff7e 100644 --- a/dlls/winecoreaudio.drv/mmdevdrv.c +++ b/dlls/winecoreaudio.drv/mmdevdrv.c @@ -99,7 +99,6 @@ struct ACImpl { HANDLE event; float *vols;
- DWORD dev_id; char dev_name[MAX_DEV_NAME_LEN + 1]; HANDLE timer;
@@ -472,7 +471,6 @@ HRESULT WINAPI AUDDRV_GetAudioEndpoint(GUID *guid, IMMDevice *dev, IAudioClient This->parent = dev; IMMDevice_AddRef(This->parent);
- This->dev_id = dev_id; snprintf(This->dev_name, sizeof(This->dev_name), "%lu", dev_id);
*out = (IAudioClient *)&This->IAudioClient3_iface; @@ -890,7 +888,7 @@ static HRESULT WINAPI AudioClient_GetMixFormat(IAudioClient3 *iface, return E_POINTER; *pwfx = NULL;
- params.dev_id = This->dev_id; + params.device = This->dev_name; params.flow = This->dataflow; params.fmt = CoTaskMemAlloc(sizeof(WAVEFORMATEXTENSIBLE)); if(!params.fmt) diff --git a/dlls/winecoreaudio.drv/unixlib.h b/dlls/winecoreaudio.drv/unixlib.h index d11ac670e5f..b91f90496d5 100644 --- a/dlls/winecoreaudio.drv/unixlib.h +++ b/dlls/winecoreaudio.drv/unixlib.h @@ -113,8 +113,8 @@ struct release_capture_buffer_params
struct get_mix_format_params { + const char *device; EDataFlow flow; - DWORD dev_id; WAVEFORMATEXTENSIBLE *fmt; HRESULT result; };
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=122966
Your paranoid android.
=== debian11 (build log) ===
../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol Task: The win32 Wine build failed
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The wow64 Wine build failed
From: Davide Beatrici git@davidebeatrici.dev
--- dlls/winecoreaudio.drv/coreaudio.c | 30 +++- dlls/winecoreaudio.drv/mmdevdrv.c | 8 - dlls/winecoreaudio.drv/unixlib.h | 244 +---------------------------- 3 files changed, 25 insertions(+), 257 deletions(-)
diff --git a/dlls/winecoreaudio.drv/coreaudio.c b/dlls/winecoreaudio.drv/coreaudio.c index 697b2411376..d8f3373455b 100644 --- a/dlls/winecoreaudio.drv/coreaudio.c +++ b/dlls/winecoreaudio.drv/coreaudio.c @@ -1637,31 +1637,40 @@ static NTSTATUS unix_set_volumes(void *args)
unixlib_entry_t __wine_unix_call_funcs[] = { + NULL, + NULL, + NULL, unix_get_endpoint_ids, unix_create_stream, unix_release_stream, unix_start, unix_stop, unix_reset, + NULL, unix_get_render_buffer, unix_release_render_buffer, unix_get_capture_buffer, unix_release_capture_buffer, - unix_get_mix_format, unix_is_format_supported, + unix_get_mix_format, + NULL, unix_get_buffer_size, unix_get_latency, unix_get_current_padding, unix_get_next_packet_size, - unix_get_position, unix_get_frequency, - unix_is_started, + unix_get_position, unix_set_volumes, + NULL, + NULL, + unix_is_started, + NULL, unix_midi_init, unix_midi_release, unix_midi_out_message, unix_midi_in_message, unix_midi_notify_wait, + NULL, };
#ifdef _WIN64 @@ -1972,31 +1981,40 @@ static NTSTATUS unix_wow64_set_volumes(void *args)
unixlib_entry_t __wine_unix_call_wow64_funcs[] = { + NULL, + NULL, + NULL, unix_wow64_get_endpoint_ids, unix_wow64_create_stream, unix_wow64_release_stream, unix_start, unix_stop, unix_reset, + NULL, unix_wow64_get_render_buffer, unix_release_render_buffer, unix_wow64_get_capture_buffer, unix_release_capture_buffer, - unix_wow64_get_mix_format, unix_wow64_is_format_supported, + unix_wow64_get_mix_format, + NULL, unix_wow64_get_buffer_size, unix_wow64_get_latency, unix_wow64_get_current_padding, unix_wow64_get_next_packet_size, - unix_wow64_get_position, unix_wow64_get_frequency, - unix_is_started, + unix_wow64_get_position, unix_wow64_set_volumes, + NULL, + NULL, + unix_is_started, + NULL, unix_wow64_midi_init, unix_midi_release, unix_wow64_midi_out_message, unix_wow64_midi_in_message, unix_wow64_midi_notify_wait, + NULL, };
#endif /* _WIN64 */ diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c index 2a23b95ff7e..9468ef714e1 100644 --- a/dlls/winecoreaudio.drv/mmdevdrv.c +++ b/dlls/winecoreaudio.drv/mmdevdrv.c @@ -215,14 +215,6 @@ BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) return TRUE; }
-/* From <dlls/mmdevapi/mmdevapi.h> */ -enum DriverPriority { - Priority_Unavailable = 0, - Priority_Low, - Priority_Neutral, - Priority_Preferred -}; - int WINAPI AUDDRV_GetPriority(void) { return Priority_Neutral; diff --git a/dlls/winecoreaudio.drv/unixlib.h b/dlls/winecoreaudio.drv/unixlib.h index b91f90496d5..caa352d2dfa 100644 --- a/dlls/winecoreaudio.drv/unixlib.h +++ b/dlls/winecoreaudio.drv/unixlib.h @@ -17,250 +17,8 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "mmddk.h"
-typedef UINT64 stream_handle; - -struct endpoint -{ - unsigned int name; - unsigned int device; -}; - -struct get_endpoint_ids_params -{ - EDataFlow flow; - struct endpoint *endpoints; - unsigned int size; - HRESULT result; - unsigned int num; - unsigned int default_idx; -}; - -struct create_stream_params -{ - const char *name; - const char *device; - EDataFlow flow; - AUDCLNT_SHAREMODE share; - DWORD flags; - REFERENCE_TIME duration; - REFERENCE_TIME period; - const WAVEFORMATEX *fmt; - HRESULT result; - UINT32 *channel_count; - stream_handle *stream; -}; - -struct release_stream_params -{ - stream_handle stream; - HANDLE timer_thread; - HRESULT result; -}; - -struct start_params -{ - stream_handle stream; - HRESULT result; -}; - -struct stop_params -{ - stream_handle stream; - HRESULT result; -}; - -struct reset_params -{ - stream_handle stream; - HRESULT result; -}; - -struct get_render_buffer_params -{ - stream_handle stream; - UINT32 frames; - HRESULT result; - BYTE **data; -}; - -struct release_render_buffer_params -{ - stream_handle stream; - UINT32 written_frames; - UINT flags; - HRESULT result; -}; - -struct get_capture_buffer_params -{ - stream_handle stream; - HRESULT result; - BYTE **data; - UINT32 *frames; - UINT *flags; - UINT64 *devpos; - UINT64 *qpcpos; -}; - -struct release_capture_buffer_params -{ - stream_handle stream; - UINT32 done; - HRESULT result; -}; - -struct get_mix_format_params -{ - const char *device; - EDataFlow flow; - WAVEFORMATEXTENSIBLE *fmt; - HRESULT result; -}; - -struct is_format_supported_params -{ - const char *device; - EDataFlow flow; - AUDCLNT_SHAREMODE share; - const WAVEFORMATEX *fmt_in; - WAVEFORMATEXTENSIBLE *fmt_out; - HRESULT result; -}; - -struct get_buffer_size_params -{ - stream_handle stream; - HRESULT result; - UINT32 *frames; -}; - -struct get_latency_params -{ - stream_handle stream; - HRESULT result; - REFERENCE_TIME *latency; -}; - -struct get_current_padding_params -{ - stream_handle stream; - HRESULT result; - UINT32 *padding; -}; - -struct get_next_packet_size_params -{ - stream_handle stream; - HRESULT result; - UINT32 *frames; -}; - -struct get_position_params -{ - stream_handle stream; - HRESULT result; - UINT64 *pos; - UINT64 *qpctime; -}; - -struct get_frequency_params -{ - stream_handle stream; - HRESULT result; - UINT64 *freq; -}; - -struct is_started_params -{ - stream_handle stream; - HRESULT result; -}; - -struct set_volumes_params -{ - stream_handle stream; - float master_volume; - const float *volumes; - const float *session_volumes; - int channel; -}; - -struct midi_init_params -{ - UINT *err; -}; - -struct notify_context -{ - BOOL send_notify; - WORD dev_id; - WORD msg; - UINT_PTR param_1; - UINT_PTR param_2; - UINT_PTR callback; - UINT flags; - HANDLE device; - UINT_PTR instance; -}; - -struct midi_out_message_params -{ - UINT dev_id; - UINT msg; - UINT_PTR user; - UINT_PTR param_1; - UINT_PTR param_2; - UINT *err; - struct notify_context *notify; -}; - -struct midi_in_message_params -{ - UINT dev_id; - UINT msg; - UINT_PTR user; - UINT_PTR param_1; - UINT_PTR param_2; - UINT *err; - struct notify_context *notify; -}; - -struct midi_notify_wait_params -{ - struct notify_context *notify; - BOOL *quit; -}; - -enum unix_funcs -{ - get_endpoint_ids, - create_stream, - release_stream, - start, - stop, - reset, - get_render_buffer, - release_render_buffer, - get_capture_buffer, - release_capture_buffer, - get_mix_format, - is_format_supported, - get_buffer_size, - get_latency, - get_current_padding, - get_next_packet_size, - get_position, - get_frequency, - is_started, - set_volumes, - midi_init, - midi_release, - midi_out_message, - midi_in_message, - midi_notify_wait, -}; +#include "../mmdevapi/unixlib.h"
NTSTATUS unix_midi_init( void * ) DECLSPEC_HIDDEN; NTSTATUS unix_midi_release( void * ) DECLSPEC_HIDDEN;
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=122967
Your paranoid android.
=== debian11 (build log) ===
../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol Task: The win32 Wine build failed
=== debian11 (build log) ===
../wine/dlls/winealsa.drv/alsamidi.c:417:13: error: ���midi_init��� redeclared as different kind of symbol ../wine/dlls/wineoss.drv/ossmidi.c:306:13: error: ���midi_init��� redeclared as different kind of symbol Task: The wow64 Wine build failed
Please note that I only built and tested in 64 bit mode as the only macOS machine I have is running 11.6.8 (Big Sur), which does not provide support for 32 bit applications anymore.
In theory WoW64 tests should run just fine, the problem is that I probably cannot achieve a 32 bit build of Wine without the dependencies for it.