diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-04-29 17:36:59 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-04-29 17:36:59 +0200 |
commit | 24009c8ebf99dcf9f852f64dfa6dcfd65e910c97 (patch) | |
tree | 443b1b6c151e07fddfef524d84e8be0125e8ccb2 | |
parent | 90b85dfec985cb93a7282af28642c952657ccdec (diff) | |
download | salsa-lib-24009c8ebf99dcf9f852f64dfa6dcfd65e910c97.tar.gz |
Add missing snd_pcm_hw_params_{set|get}_period_wakeup()
Also moved snd_pcm_hw_refind() as static inline to pcm_macros.h.
-rw-r--r-- | src/pcm_macros.h | 24 | ||||
-rw-r--r-- | src/pcm_params.c | 7 |
2 files changed, 24 insertions, 7 deletions
diff --git a/src/pcm_macros.h b/src/pcm_macros.h index e72c550..0ae3a98 100644 --- a/src/pcm_macros.h +++ b/src/pcm_macros.h @@ -386,6 +386,13 @@ ssize_t snd_pcm_samples_to_bytes(snd_pcm_t *pcm, long samples) return samples * pcm->sample_bits / 8; } +static inline int snd_pcm_hw_refine(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) +{ + if (ioctl(pcm->fd, SNDRV_PCM_IOCTL_HW_REFINE, params) < 0) + return -errno; + return 0; +} + __SALSA_EXPORT_FUNC int snd_pcm_hw_params_can_mmap_sample_resolution(const snd_pcm_hw_params_t *params) { @@ -1163,6 +1170,23 @@ int snd_pcm_hw_params_get_export_buffer(snd_pcm_t *pcm, snd_pcm_hw_params_t *par } __SALSA_EXPORT_FUNC +int snd_pcm_hw_params_set_period_wakeup(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val) +{ + if (!val) + params->flags |= SNDRV_PCM_HW_PARAMS_NO_PERIOD_WAKEUP; + else + params->flags &= ~SNDRV_PCM_HW_PARAMS_NO_PERIOD_WAKEUP; + return snd_pcm_hw_refine(pcm, params); +} + +__SALSA_EXPORT_FUNC +int snd_pcm_hw_params_get_period_wakeup(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val) +{ + *val = params->flags & SNDRV_PCM_HW_PARAMS_NO_PERIOD_WAKEUP ? 0 : 1; + return 0; +} + +__SALSA_EXPORT_FUNC int snd_pcm_hw_params_get_period_time(const snd_pcm_hw_params_t *params, unsigned int *val, int *dir) { diff --git a/src/pcm_params.c b/src/pcm_params.c index e466c52..f8e8e4f 100644 --- a/src/pcm_params.c +++ b/src/pcm_params.c @@ -413,13 +413,6 @@ static int snd_pcm_sw_params_default(snd_pcm_t *pcm, return 0; } -static int snd_pcm_hw_refine(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) -{ - if (ioctl(pcm->fd, SNDRV_PCM_IOCTL_HW_REFINE, params) < 0) - return -errno; - return 0; -} - static inline int hw_is_mask(int var) { return var >= SNDRV_PCM_HW_PARAM_FIRST_MASK && |