File alsa-period.diff of Package wine-test
diff --git a/dlls/mmdevapi/client.c b/dlls/mmdevapi/client.c
index d29969b..b720f93 100644
--- a/dlls/mmdevapi/client.c
+++ b/dlls/mmdevapi/client.c
@@ -110,7 +110,6 @@ static inline struct audio_client *impl_from_IAudioStreamVolume(IAudioStreamVolu
static HRESULT get_periods(struct audio_client *client,
REFERENCE_TIME *def_period, REFERENCE_TIME *min_period)
{
- static const REFERENCE_TIME min_def_period = 100000; /* 10 ms */
struct get_device_period_params params;
params.device = client->device_name;
@@ -120,8 +119,6 @@ static HRESULT get_periods(struct audio_client *client,
wine_unix_call(get_device_period, ¶ms);
- if (def_period) *def_period = max(*def_period, min_def_period);
-
return params.result;
}
diff --git a/dlls/winealsa.drv/alsa.c b/dlls/winealsa.drv/alsa.c
index 046b447..889fb54 100644
--- a/dlls/winealsa.drv/alsa.c
+++ b/dlls/winealsa.drv/alsa.c
@@ -23,6 +23,7 @@
#include "config.h"
+#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
#include <pthread.h>
@@ -84,8 +85,8 @@ struct alsa_stream
#define EXTRA_SAFE_RT 40000
-static const REFERENCE_TIME def_period = 100000;
-static const REFERENCE_TIME min_period = 50000;
+static REFERENCE_TIME def_period = 100000;
+static REFERENCE_TIME min_period = 50000;
static const WCHAR drv_keyW[] = {'S','o','f','t','w','a','r','e','\\',
'W','i','n','e','\\','D','r','i','v','e','r','s','\\',
@@ -2294,6 +2295,15 @@ static NTSTATUS alsa_set_event_handle(void *args)
return alsa_unlock_result(stream, ¶ms->result, S_OK);
}
+static NTSTATUS alsa_test_connect(void *args)
+{
+ char *period_env = getenv("STAGING_AUDIO_PERIOD");
+ if (period_env)
+ def_period = min_period = atoi(period_env);
+
+ return STATUS_SUCCESS;
+}
+
static NTSTATUS alsa_is_started(void *args)
{
struct is_started_params *params = args;
@@ -2503,7 +2513,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] =
alsa_set_volumes,
alsa_set_event_handle,
alsa_not_implemented,
- alsa_not_implemented,
+ alsa_test_connect,
alsa_is_started,
alsa_get_prop_value,
alsa_not_implemented,
@@ -2961,7 +2971,7 @@ const unixlib_entry_t __wine_unix_call_wow64_funcs[] =
alsa_wow64_set_volumes,
alsa_wow64_set_event_handle,
alsa_not_implemented,
- alsa_not_implemented,
+ alsa_test_connect,
alsa_is_started,
alsa_wow64_get_prop_value,
alsa_not_implemented,