From ef422fa4ae626e9638ca70d1c56f27e701dd69c2 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 29 Jun 2004 16:48:37 +0000 Subject: esound protocol git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@40 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/sample.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'src/sample.c') diff --git a/src/sample.c b/src/sample.c index 2454630c..b0d0cdbd 100644 --- a/src/sample.c +++ b/src/sample.c @@ -7,18 +7,20 @@ size_t pa_sample_size(struct pa_sample_spec *spec) { size_t b = 1; switch (spec->format) { - case SAMPLE_U8: - case SAMPLE_ULAW: - case SAMPLE_ALAW: + case PA_SAMPLE_U8: + case PA_SAMPLE_ULAW: + case PA_SAMPLE_ALAW: b = 1; break; - case SAMPLE_S16LE: - case SAMPLE_S16BE: + case PA_SAMPLE_S16LE: + case PA_SAMPLE_S16BE: b = 2; break; - case SAMPLE_FLOAT32: + case PA_SAMPLE_FLOAT32: b = 4; break; + default: + assert(0); } return b * spec->channels; @@ -35,3 +37,15 @@ uint32_t pa_samples_usec(size_t length, struct pa_sample_spec *spec) { return (uint32_t) (((double) length /pa_sample_size(spec))/spec->rate*1000000); } + +int pa_sample_spec_valid(struct pa_sample_spec *spec) { + assert(spec); + + if (!spec->rate || !spec->channels) + return 0; + + if (spec->format <= 0 || spec->format >= PA_SAMPLE_MAX) + return 0; + + return 1; +} -- cgit