From 544efdf5aaaf4b77f44f250b4dbfdd3ed0c87a4c Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 7 Sep 2008 22:01:47 -0700 Subject: alsa: move bitformat reading code out of the way --- src/audioOutputs/audioOutput_alsa.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/audioOutputs/audioOutput_alsa.c b/src/audioOutputs/audioOutput_alsa.c index 62f34e854..ef4ae54ff 100644 --- a/src/audioOutputs/audioOutput_alsa.c +++ b/src/audioOutputs/audioOutput_alsa.c @@ -134,6 +134,17 @@ static int alsa_testDefault(void) return 0; } +static snd_pcm_format_t get_bitformat(const AudioFormat * 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(AudioOutput * audioOutput) { AlsaData *ad = audioOutput->data; @@ -151,24 +162,9 @@ static int alsa_openDevice(AudioOutput * audioOutput) unsigned int period_time, period_time_ro; unsigned int buffer_time; - switch (audioFormat->bits) { - 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: + if ((bitformat = get_bitformat(audioFormat)) == SND_PCM_FORMAT_UNKNOWN) ERROR("ALSA device \"%s\" doesn't support %i bit audio\n", ad->device, audioFormat->bits); - return -1; - } err = E(snd_pcm_open, &ad->pcmHandle, ad->device, SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK); -- cgit v1.2.3