summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-07-02 21:08:02 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2015-07-02 21:08:02 -0400
commitb7099ac25d1b8de34994c69365d2cda032cf5d96 (patch)
tree053506f7249779243963b437121580483552492a
parent3340034dfbf223182101ed08bea5524a1b222a4f (diff)
parentbdb6e8ec52f2cdf899a925292fda5a5de982b5dd (diff)
downloadjack1-b7099ac25d1b8de34994c69365d2cda032cf5d96.tar.gz
Merge pull request #23 from falkTX/master
including S24_LE/BE formats to linux alsa driver
-rw-r--r--drivers/alsa/alsa_driver.c15
1 files 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: