From: Davide Beatrici git@davidebeatrici.dev
--- dlls/wineoss.drv/mmdevdrv.c | 2 ++ dlls/wineoss.drv/oss.c | 18 +++++++++++++++++- dlls/wineoss.drv/unixlib.h | 13 +++++++------ 3 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c index dbd9c5a0490..24c2358c184 100644 --- a/dlls/wineoss.drv/mmdevdrv.c +++ b/dlls/wineoss.drv/mmdevdrv.c @@ -234,6 +234,8 @@ int WINAPI AUDDRV_GetPriority(void) { struct test_connect_params params;
+ params.name = NULL; + OSS_CALL(test_connect, ¶ms);
return params.priority; diff --git a/dlls/wineoss.drv/oss.c b/dlls/wineoss.drv/oss.c index 4368523684d..079384131a7 100644 --- a/dlls/wineoss.drv/oss.c +++ b/dlls/wineoss.drv/oss.c @@ -1646,6 +1646,22 @@ unixlib_entry_t __wine_unix_call_funcs[] =
typedef UINT PTR32;
+static NTSTATUS oss_wow64_test_connect(void *args) +{ + struct + { + PTR32 name; + enum driver_priority priority; + } *params32 = args; + struct test_connect_params params = + { + .name = ULongToPtr(params32->name), + }; + oss_test_connect(¶ms); + params32->priority = params.priority; + return STATUS_SUCCESS; +} + static NTSTATUS oss_wow64_get_endpoint_ids(void *args) { struct @@ -1986,7 +2002,7 @@ static NTSTATUS oss_wow64_aux_message(void *args)
unixlib_entry_t __wine_unix_call_wow64_funcs[] = { - oss_test_connect, + oss_wow64_test_connect, oss_wow64_get_endpoint_ids, oss_wow64_create_stream, oss_wow64_release_stream, diff --git a/dlls/wineoss.drv/unixlib.h b/dlls/wineoss.drv/unixlib.h index b418bb70d2d..3ed78468d27 100644 --- a/dlls/wineoss.drv/unixlib.h +++ b/dlls/wineoss.drv/unixlib.h @@ -21,17 +21,18 @@ typedef UINT64 stream_handle;
/* From <dlls/mmdevapi/mmdevapi.h> */ -enum DriverPriority +enum driver_priority { - Priority_Unavailable = 0, - Priority_Low, - Priority_Neutral, - Priority_Preferred + Priority_Unavailable = 0, /* driver won't work */ + Priority_Low, /* driver may work, but unlikely */ + Priority_Neutral, /* driver makes no judgment */ + Priority_Preferred /* driver thinks it's correct */ };
struct test_connect_params { - enum DriverPriority priority; + const char *name; + enum driver_priority priority; };
struct endpoint