forked from luck/tmp_suning_uos_patched
ALSA: pcm: Add snd_pcm_rate_range_to_bits()
This helper function can convert a given sample rate range to SNDRV_PCM_RATE_xxx bits. Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
92e963f50f
commit
3bdff244a2
|
@ -1093,6 +1093,8 @@ unsigned int snd_pcm_rate_to_rate_bit(unsigned int rate);
|
|||
unsigned int snd_pcm_rate_bit_to_rate(unsigned int rate_bit);
|
||||
unsigned int snd_pcm_rate_mask_intersect(unsigned int rates_a,
|
||||
unsigned int rates_b);
|
||||
unsigned int snd_pcm_rate_range_to_bits(unsigned int rate_min,
|
||||
unsigned int rate_max);
|
||||
|
||||
/**
|
||||
* snd_pcm_set_runtime_buffer - Set the PCM runtime buffer
|
||||
|
|
|
@ -565,3 +565,33 @@ unsigned int snd_pcm_rate_mask_intersect(unsigned int rates_a,
|
|||
return rates_a & rates_b;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(snd_pcm_rate_mask_intersect);
|
||||
|
||||
/**
|
||||
* snd_pcm_rate_range_to_bits - converts rate range to SNDRV_PCM_RATE_xxx bit
|
||||
* @rate_min: the minimum sample rate
|
||||
* @rate_max: the maximum sample rate
|
||||
*
|
||||
* This function has an implicit assumption: the rates in the given range have
|
||||
* only the pre-defined rates like 44100 or 16000.
|
||||
*
|
||||
* Return: The SNDRV_PCM_RATE_xxx flag that corresponds to the given rate range,
|
||||
* or SNDRV_PCM_RATE_KNOT for an unknown range.
|
||||
*/
|
||||
unsigned int snd_pcm_rate_range_to_bits(unsigned int rate_min,
|
||||
unsigned int rate_max)
|
||||
{
|
||||
unsigned int rates = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < snd_pcm_known_rates.count; i++) {
|
||||
if (snd_pcm_known_rates.list[i] >= rate_min
|
||||
&& snd_pcm_known_rates.list[i] <= rate_max)
|
||||
rates |= 1 << i;
|
||||
}
|
||||
|
||||
if (!rates)
|
||||
rates = SNDRV_PCM_RATE_KNOT;
|
||||
|
||||
return rates;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(snd_pcm_rate_range_to_bits);
|
||||
|
|
Loading…
Reference in New Issue
Block a user