Commit 7d0c32b4 authored by Eric Wong's avatar Eric Wong Committed by Max Kellermann

alsa: move bitformat reading code out of the way

parent 67c642c9
...@@ -119,6 +119,17 @@ static int alsa_testDefault(void) ...@@ -119,6 +119,17 @@ static int alsa_testDefault(void)
return 0; return 0;
} }
static snd_pcm_format_t get_bitformat(const struct audio_format *af)
{
switch (af->bits) {
case 8: return SND_PCM_FORMAT_S8;
case 16: return SND_PCM_FORMAT_S16;
case 24: return SND_PCM_FORMAT_S24;
case 32: return SND_PCM_FORMAT_S32;
}
return SND_PCM_FORMAT_UNKNOWN;
}
static int alsa_openDevice(struct audio_output *audioOutput) static int alsa_openDevice(struct audio_output *audioOutput)
{ {
AlsaData *ad = audioOutput->data; AlsaData *ad = audioOutput->data;
...@@ -136,24 +147,9 @@ static int alsa_openDevice(struct audio_output *audioOutput) ...@@ -136,24 +147,9 @@ static int alsa_openDevice(struct audio_output *audioOutput)
unsigned int period_time, period_time_ro; unsigned int period_time, period_time_ro;
unsigned int buffer_time; unsigned int buffer_time;
switch (audioFormat->bits) { if ((bitformat = get_bitformat(audioFormat)) == SND_PCM_FORMAT_UNKNOWN)
case 8:
bitformat = SND_PCM_FORMAT_S8;
break;
case 16:
bitformat = SND_PCM_FORMAT_S16;
break;
case 24:
bitformat = SND_PCM_FORMAT_S24;
break;
case 32:
bitformat = SND_PCM_FORMAT_S32;
break;
default:
ERROR("ALSA device \"%s\" doesn't support %i bit audio\n", ERROR("ALSA device \"%s\" doesn't support %i bit audio\n",
ad->device, audioFormat->bits); ad->device, audioFormat->bits);
return -1;
}
err = snd_pcm_open(&ad->pcmHandle, ad->device, err = snd_pcm_open(&ad->pcmHandle, ad->device,
SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK); SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment