diff options
author | poljar (Damir Jelić) <poljarinho@gmail.com> | 2013-07-11 19:28:29 +0200 |
---|---|---|
committer | poljar (Damir Jelić) <poljarinho@gmail.com> | 2013-08-27 12:33:09 +0200 |
commit | 7665f60cc08c4b83e79acc96aa3bd7e9c4f1086d (patch) | |
tree | 7553455b535a4b87d26c884dee6a6cec8b6f2a5b /src/pulsecore/resampler.c | |
parent | 78c18e71e0ce329be84e40cd1a437c9c78db96b1 (diff) | |
download | pulseaudio-7665f60cc08c4b83e79acc96aa3bd7e9c4f1086d.tar.gz |
resampler: choose_work_format use switch instead of if/else
This way the function for choosing the work format should
be more readable and easier to expand in the future.
Diffstat (limited to 'src/pulsecore/resampler.c')
-rw-r--r-- | src/pulsecore/resampler.c | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/pulsecore/resampler.c b/src/pulsecore/resampler.c index c79a5df46..89ff5a131 100644 --- a/src/pulsecore/resampler.c +++ b/src/pulsecore/resampler.c @@ -256,13 +256,27 @@ static pa_sample_format_t pa_resampler_choose_work_format( pa_assert(method >= 0); pa_assert(method < PA_RESAMPLER_MAX); - if ((method >= PA_RESAMPLER_SPEEX_FIXED_BASE && method <= PA_RESAMPLER_SPEEX_FIXED_MAX) || - (method == PA_RESAMPLER_FFMPEG)) - work_format = PA_SAMPLE_S16NE; - else if (method == PA_RESAMPLER_TRIVIAL || method == PA_RESAMPLER_COPY || method == PA_RESAMPLER_PEAKS) { + if (method >= PA_RESAMPLER_SPEEX_FIXED_BASE && method <= PA_RESAMPLER_SPEEX_FIXED_MAX) + method = PA_RESAMPLER_SPEEX_FIXED_BASE; - if (map_required || a != b || method == PA_RESAMPLER_PEAKS) { + switch (method) { + /* This block is for resampling functions that only + * support the S16 sample format. */ + case PA_RESAMPLER_SPEEX_FIXED_BASE: /* fall through */ + case PA_RESAMPLER_FFMPEG: + work_format = PA_SAMPLE_S16NE; + break; + /* This block is for resampling functions that support + * any sample format. */ + case PA_RESAMPLER_COPY: /* fall through */ + case PA_RESAMPLER_TRIVIAL: + if (!map_required && a == b) { + work_format = a; + break; + } + /* Else fall trough */ + case PA_RESAMPLER_PEAKS: if (a == PA_SAMPLE_S16NE || b == PA_SAMPLE_S16NE) work_format = PA_SAMPLE_S16NE; else if (a == PA_SAMPLE_S32NE || a == PA_SAMPLE_S32RE || @@ -276,12 +290,11 @@ static pa_sample_format_t pa_resampler_choose_work_format( work_format = PA_SAMPLE_FLOAT32NE; else work_format = PA_SAMPLE_S16NE; + break; - } else - work_format = a; - - } else - work_format = PA_SAMPLE_FLOAT32NE; + default: + work_format = PA_SAMPLE_FLOAT32NE; + } return work_format; } |