diff options
| author | Lennart Poettering <lennart@poettering.net> | 2009-10-06 00:17:24 +0200 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2009-10-06 00:17:54 +0200 | 
| commit | c96d2d1117a7e59b351358c8cdd79ef465ddbd49 (patch) | |
| tree | 1c362cd83a428f926fb7644a1093340bf386196e | |
| parent | 7b682c969025845f75cbc74a9f830ad2dec8a415 (diff) | |
alsa: disable period event only with tsched=1
| -rw-r--r-- | src/modules/alsa/alsa-sink.c | 2 | ||||
| -rw-r--r-- | src/modules/alsa/alsa-source.c | 2 | ||||
| -rw-r--r-- | src/modules/alsa/alsa-util.c | 4 | ||||
| -rw-r--r-- | src/modules/alsa/alsa-util.h | 3 | 
4 files changed, 6 insertions, 5 deletions
| diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c index 22e88b4a..37419d98 100644 --- a/src/modules/alsa/alsa-sink.c +++ b/src/modules/alsa/alsa-sink.c @@ -927,7 +927,7 @@ static int update_sw_params(struct userdata *u) {      pa_log_debug("setting avail_min=%lu", (unsigned long) avail_min); -    if ((err = pa_alsa_set_sw_params(u->pcm_handle, avail_min)) < 0) { +    if ((err = pa_alsa_set_sw_params(u->pcm_handle, avail_min, !u->use_tsched)) < 0) {          pa_log("Failed to set software parameters: %s", pa_alsa_strerror(err));          return err;      } diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c index fa3ac0aa..37dd6476 100644 --- a/src/modules/alsa/alsa-source.c +++ b/src/modules/alsa/alsa-source.c @@ -877,7 +877,7 @@ static int update_sw_params(struct userdata *u) {      pa_log_debug("setting avail_min=%lu", (unsigned long) avail_min); -    if ((err = pa_alsa_set_sw_params(u->pcm_handle, avail_min)) < 0) { +    if ((err = pa_alsa_set_sw_params(u->pcm_handle, avail_min, !u->use_tsched)) < 0) {          pa_log("Failed to set software parameters: %s", pa_alsa_strerror(err));          return err;      } diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c index 43a8e829..0e22d17e 100644 --- a/src/modules/alsa/alsa-util.c +++ b/src/modules/alsa/alsa-util.c @@ -403,7 +403,7 @@ finish:      return ret;  } -int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min) { +int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min, pa_bool_t period_event) {      snd_pcm_sw_params_t *swparams;      snd_pcm_uframes_t boundary;      int err; @@ -417,7 +417,7 @@ int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min) {          return err;      } -    if ((err = snd_pcm_sw_params_set_period_event(pcm, swparams, 0)) < 0) { +    if ((err = snd_pcm_sw_params_set_period_event(pcm, swparams, period_event)) < 0) {          pa_log_warn("Unable to disable period event: %s\n", pa_alsa_strerror(err));          return err;      } diff --git a/src/modules/alsa/alsa-util.h b/src/modules/alsa/alsa-util.h index 265cd28c..f6206fe2 100644 --- a/src/modules/alsa/alsa-util.h +++ b/src/modules/alsa/alsa-util.h @@ -51,7 +51,8 @@ int pa_alsa_set_hw_params(  int pa_alsa_set_sw_params(          snd_pcm_t *pcm, -        snd_pcm_uframes_t avail_min); +        snd_pcm_uframes_t avail_min, +        pa_bool_t period_event);  /* Picks a working mapping from the profile set based on the specified ss/map */  snd_pcm_t *pa_alsa_open_by_device_id_auto( | 
