diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-05-25 14:29:29 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-05-25 14:48:55 +0200 |
commit | 5a7f98ecb3374f6335566d17a4798f7afb91172c (patch) | |
tree | f397ba833257d7a594de439c0dba8902d97d8104 | |
parent | b6a76269e72eb41eaae09e931b33bdd4c958d305 (diff) | |
download | salsa-lib-5a7f98ecb3374f6335566d17a4798f7afb91172c.tar.gz |
Minor clean up in pcm_params.c
-rw-r--r-- | src/asound.h | 4 | ||||
-rw-r--r-- | src/pcm_macros.h | 2 | ||||
-rw-r--r-- | src/pcm_params.c | 74 |
3 files changed, 38 insertions, 42 deletions
diff --git a/src/asound.h b/src/asound.h index 7c19844..8a1bc6f 100644 --- a/src/asound.h +++ b/src/asound.h @@ -296,10 +296,10 @@ typedef struct snd_interval { empty:1; } snd_interval_t; -#define SNDRV_MASK_MAX 256 +#define SND_MASK_MAX 256 typedef struct snd_mask { - u_int32_t bits[(SNDRV_MASK_MAX+31)/32]; + u_int32_t bits[SND_MASK_MAX / 32]; } snd_mask_t; typedef struct snd_pcm_hw_params { diff --git a/src/pcm_macros.h b/src/pcm_macros.h index cef010c..91daab6 100644 --- a/src/pcm_macros.h +++ b/src/pcm_macros.h @@ -555,8 +555,6 @@ int _snd_mask_test(const snd_mask_t *mask, unsigned int val) return mask->bits[MASK_OFS(val)] & MASK_BIT(val); } -#define SND_MASK_MAX SNDRV_MASK_MAX - __SALSA_EXPORT_FUNC int _snd_mask_empty(const snd_mask_t *mask) { diff --git a/src/pcm_params.c b/src/pcm_params.c index 8d43886..8d2dd96 100644 --- a/src/pcm_params.c +++ b/src/pcm_params.c @@ -70,7 +70,7 @@ static void snd_mask_reset_range(snd_mask_t *mask, unsigned int from, mask->bits[MASK_OFS(i)] &= ~MASK_BIT(i); } -static inline unsigned int ld2(u_int32_t v) +static unsigned int ld2(u_int32_t v) { unsigned r = 0; @@ -137,7 +137,7 @@ static inline int snd_mask_refine(snd_mask_t *mask, const snd_mask_t *v) mask->bits[i] &= v->bits[i]; if (_snd_mask_empty(mask)) return -EINVAL; - return !! memcmp(mask, &old, MASK_SIZE * 4); + return !! memcmp(mask, &old, sizeof(old)); } static inline int snd_mask_refine_first(snd_mask_t *mask) @@ -1071,6 +1071,37 @@ int snd_pcm_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params) * DUMP HW PARAMS */ +static void snd_mask_print(const snd_mask_t *mask, int var, snd_output_t *out) +{ + unsigned int i; + if (_snd_mask_empty(mask)) { + snd_output_puts(out, " NONE"); + return; + } else if (snd_mask_full(mask)) { + snd_output_puts(out, " ALL"); + return; + } + for (i = 0; i < SND_MASK_MAX; i++) { + const char *s; + if (!_snd_mask_test(mask, i)) + continue; + switch (var) { + case SNDRV_PCM_HW_PARAM_ACCESS: + s = snd_pcm_access_name(i); + break; + case SNDRV_PCM_HW_PARAM_FORMAT: + s = snd_pcm_format_name(i); + break; + case SNDRV_PCM_HW_PARAM_SUBFORMAT: + s = snd_pcm_subformat_name(i); + break; + default: + continue; + } + snd_output_printf(out, " %s", s); + } +} + static void snd_interval_print(const snd_interval_t *i, snd_output_t *out) { if (snd_interval_empty(i)) @@ -1090,43 +1121,10 @@ static void snd_interval_print(const snd_interval_t *i, snd_output_t *out) void snd_pcm_hw_param_dump(const snd_pcm_hw_params_t *params, int var, snd_output_t *out) { - if (hw_is_mask(var)) { - const snd_mask_t *mask = hw_param_mask_c(params, var); - if (_snd_mask_empty(mask)) - snd_output_puts(out, " NONE"); - else if (snd_mask_full(mask)) - snd_output_puts(out, " ALL"); - else { - unsigned int k; - for (k = 0; k <= SND_MASK_MAX; ++k) { - if (_snd_mask_test(mask, k)) { - const char *s; - switch (var) { - case SNDRV_PCM_HW_PARAM_ACCESS: - s = snd_pcm_access_name(k); - break; - case SNDRV_PCM_HW_PARAM_FORMAT: - s = snd_pcm_format_name(k); - break; - case SNDRV_PCM_HW_PARAM_SUBFORMAT: - s = snd_pcm_subformat_name(k); - break; - default: - s = NULL; - } - if (s) { - snd_output_putc(out, ' '); - snd_output_puts(out, s); - } - } - } - } - return; - } - if (hw_is_interval(var)) { + if (hw_is_mask(var)) + snd_mask_print(hw_param_mask_c(params, var), var, out); + else if (hw_is_interval(var)) snd_interval_print(hw_param_interval_c(params, var), out); - return; - } } #define HW_PARAM(v) [SNDRV_PCM_HW_PARAM_##v] = #v |