wineoss: Implement main_loop in unixlib.

This commit is contained in:
Davide Beatrici 2023-06-12 19:42:38 +02:00 committed by Alexandre Julliard
parent 9ad0694aed
commit e55c432a91
2 changed files with 29 additions and 2 deletions

View file

@ -82,6 +82,8 @@ extern const IAudioClock2Vtbl AudioClock2_Vtbl;
extern const IAudioStreamVolumeVtbl AudioStreamVolume_Vtbl;
extern const IChannelAudioVolumeVtbl ChannelAudioVolume_Vtbl;
extern HRESULT main_loop_start(void) DECLSPEC_HIDDEN;
extern struct audio_session_wrapper *session_wrapper_create(
struct audio_client *client) DECLSPEC_HIDDEN;
@ -575,6 +577,11 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient3 *iface,
return AUDCLNT_E_ALREADY_INITIALIZED;
}
if(FAILED(params.result = main_loop_start())){
sessions_unlock();
return params.result;
}
params.name = NULL;
params.device = This->device_name;
params.flow = This->dataflow;

View file

@ -221,6 +221,13 @@ static void get_default_device(EDataFlow flow, char device[OSS_DEVNODE_SIZE])
return;
}
static NTSTATUS oss_main_loop(void *args)
{
struct main_loop_params *params = args;
NtSetEvent(params->event, NULL);
return STATUS_SUCCESS;
}
static NTSTATUS oss_get_endpoint_ids(void *args)
{
struct get_endpoint_ids_params *params = args;
@ -1684,7 +1691,7 @@ unixlib_entry_t __wine_unix_call_funcs[] =
{
oss_not_implemented,
oss_not_implemented,
oss_not_implemented,
oss_main_loop,
oss_get_endpoint_ids,
oss_create_stream,
oss_release_stream,
@ -1738,6 +1745,19 @@ static NTSTATUS oss_wow64_test_connect(void *args)
return STATUS_SUCCESS;
}
static NTSTATUS oss_wow64_main_loop(void *args)
{
struct
{
PTR32 event;
} *params32 = args;
struct main_loop_params params =
{
.event = ULongToHandle(params32->event)
};
return oss_main_loop(&params);
}
static NTSTATUS oss_wow64_get_endpoint_ids(void *args)
{
struct
@ -2108,7 +2128,7 @@ unixlib_entry_t __wine_unix_call_wow64_funcs[] =
{
oss_not_implemented,
oss_not_implemented,
oss_not_implemented,
oss_wow64_main_loop,
oss_wow64_get_endpoint_ids,
oss_wow64_create_stream,
oss_wow64_release_stream,