aboutsummaryrefslogtreecommitdiff
path: root/pcm.c
diff options
context:
space:
mode:
authorTaylor Holberton <taylorcholberton@gmail.com>2016-10-01 12:22:43 -0400
committerTaylor Holberton <taylorcholberton@gmail.com>2016-10-01 12:22:43 -0400
commitc01d4a386cfc5997f877ae44712ea6304e8756bd (patch)
treea0acd93421bf4b2c4e9585b2847b969330e261a8 /pcm.c
parent4f556060a663ba83c9db41df019d29e257f7b473 (diff)
added support for more signed types
Diffstat (limited to 'pcm.c')
-rw-r--r--pcm.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/pcm.c b/pcm.c
index a97947f..0202d46 100644
--- a/pcm.c
+++ b/pcm.c
@@ -214,15 +214,30 @@ static int oops(struct pcm *pcm, int e, const char *fmt, ...)
static unsigned int pcm_format_to_alsa(enum pcm_format format)
{
switch (format) {
- case PCM_FORMAT_S32_LE:
- return SNDRV_PCM_FORMAT_S32_LE;
+
case PCM_FORMAT_S8:
return SNDRV_PCM_FORMAT_S8;
- case PCM_FORMAT_S24_LE:
- return SNDRV_PCM_FORMAT_S24_LE;
+
default:
case PCM_FORMAT_S16_LE:
return SNDRV_PCM_FORMAT_S16_LE;
+ case PCM_FORMAT_S16_BE:
+ return SNDRV_PCM_FORMAT_S16_BE;
+
+ case PCM_FORMAT_S24_LE:
+ return SNDRV_PCM_FORMAT_S24_LE;
+ case PCM_FORMAT_S24_BE:
+ return SNDRV_PCM_FORMAT_S24_BE;
+
+ case PCM_FORMAT_S24_3LE:
+ return SNDRV_PCM_FORMAT_S24_3LE;
+ case PCM_FORMAT_S24_3BE:
+ return SNDRV_PCM_FORMAT_S24_3BE;
+
+ case PCM_FORMAT_S32_LE:
+ return SNDRV_PCM_FORMAT_S32_LE;
+ case PCM_FORMAT_S32_BE:
+ return SNDRV_PCM_FORMAT_S32_BE;
};
}
@@ -230,11 +245,19 @@ unsigned int pcm_format_to_bits(enum pcm_format format)
{
switch (format) {
case PCM_FORMAT_S32_LE:
+ case PCM_FORMAT_S32_BE:
case PCM_FORMAT_S24_LE:
+ case PCM_FORMAT_S24_BE:
return 32;
+ case PCM_FORMAT_S24_3LE:
+ case PCM_FORMAT_S24_3BE:
+ return 24;
default:
case PCM_FORMAT_S16_LE:
+ case PCM_FORMAT_S16_BE:
return 16;
+ case PCM_FORMAT_S8:
+ return 8;
};
}