From bdb6e8ec52f2cdf899a925292fda5a5de982b5dd Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 26 Jun 2015 11:23:03 +0200 Subject: [PATCH] including S24_LE/BE formats to linux alsa driver --- drivers/alsa/alsa_driver.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/alsa/alsa_driver.c b/drivers/alsa/alsa_driver.c index 93b1633..49cdef6 100644 --- a/drivers/alsa/alsa_driver.c +++ b/drivers/alsa/alsa_driver.c @@ -346,20 +346,21 @@ alsa_driver_configure_stream (alsa_driver_t *driver, char *device_name, unsigned int frame_rate; snd_pcm_uframes_t stop_th; static struct { - char Name[32]; + char Name[40]; snd_pcm_format_t format; int swapped; } formats[] = { - {"32bit float little-endian", SND_PCM_FORMAT_FLOAT_LE}, + {"32bit float little-endian", SND_PCM_FORMAT_FLOAT_LE, IS_LE}, {"32bit integer little-endian", SND_PCM_FORMAT_S32_LE, IS_LE}, {"32bit integer big-endian", SND_PCM_FORMAT_S32_BE, IS_BE}, - {"24bit little-endian", SND_PCM_FORMAT_S24_3LE, IS_LE}, - {"24bit big-endian", SND_PCM_FORMAT_S24_3BE, IS_BE}, + {"24bit little-endian in 3bytes format", SND_PCM_FORMAT_S24_3LE, IS_LE}, + {"24bit big-endian in 3bytes format", SND_PCM_FORMAT_S24_3BE, IS_BE}, + {"24bit little-endian", SND_PCM_FORMAT_S24_LE, IS_LE}, + {"24bit big-endian", SND_PCM_FORMAT_S24_BE, IS_BE}, {"16bit little-endian", SND_PCM_FORMAT_S16_LE, IS_LE}, {"16bit big-endian", SND_PCM_FORMAT_S16_BE, IS_BE}, }; #define NUMFORMATS (sizeof(formats)/sizeof(formats[0])) -#define FIRST_16BIT_FORMAT 5 if ((err = snd_pcm_hw_params_any (handle, hw_params)) < 0) { jack_error ("ALSA: no playback configurations available (%s)", @@ -741,6 +742,8 @@ alsa_driver_set_parameters (alsa_driver_t *driver, case SND_PCM_FORMAT_S32_LE: case SND_PCM_FORMAT_S24_3LE: case SND_PCM_FORMAT_S24_3BE: + case SND_PCM_FORMAT_S24_LE: + case SND_PCM_FORMAT_S24_BE: case SND_PCM_FORMAT_S16_LE: case SND_PCM_FORMAT_S32_BE: case SND_PCM_FORMAT_S16_BE: @@ -759,6 +762,8 @@ alsa_driver_set_parameters (alsa_driver_t *driver, case SND_PCM_FORMAT_S32_LE: case SND_PCM_FORMAT_S24_3LE: case SND_PCM_FORMAT_S24_3BE: + case SND_PCM_FORMAT_S24_LE: + case SND_PCM_FORMAT_S24_BE: case SND_PCM_FORMAT_S16_LE: case SND_PCM_FORMAT_S32_BE: case SND_PCM_FORMAT_S16_BE: