]> code.delx.au - pulseaudio/commitdiff
resampler: choose_work_format use switch instead of if/else
authorpoljar (Damir Jelić) <poljarinho@gmail.com>
Thu, 11 Jul 2013 17:28:29 +0000 (19:28 +0200)
committerpoljar (Damir Jelić) <poljarinho@gmail.com>
Tue, 27 Aug 2013 10:33:09 +0000 (12:33 +0200)
This way the function for choosing the work format should
be more readable and easier to expand in the future.

src/pulsecore/resampler.c

index c79a5df46ed9f6211990c1364f52892b7014c43e..89ff5a1315961eff6134af7b73d49da5155c791e 100644 (file)
@@ -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;
 }