audio policy: fix capture concurrency mode checks

Capture concurrency mode indicated by policy manager
after startInput() is a bit field and should be handled as
such by startInput() in AudioPolicyInterfaceImpl.

Bug: 26994864
Change-Id: Iff093a82b8b68262abab50bc84060cf023450783
diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
index e08c952..ae5cf3d 100644
--- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
+++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
@@ -353,19 +353,15 @@
     status_t status = mAudioPolicyManager->startInput(input, session, &concurrency);
 
     if (status == NO_ERROR) {
+        LOG_ALWAYS_FATAL_IF(concurrency & ~AudioPolicyInterface::API_INPUT_CONCURRENCY_ALL,
+                            "startInput(): invalid concurrency type %d", (int)concurrency);
+
         // enforce permission (if any) required for each type of concurrency
-        switch (concurrency) {
-        case AudioPolicyInterface::API_INPUT_CONCURRENCY_NONE:
-            break;
-        case AudioPolicyInterface::API_INPUT_CONCURRENCY_CALL:
+        if (concurrency & AudioPolicyInterface::API_INPUT_CONCURRENCY_CALL) {
             //TODO: check incall capture permission
-            break;
-        case AudioPolicyInterface::API_INPUT_CONCURRENCY_CAPTURE:
+        }
+        if (concurrency & AudioPolicyInterface::API_INPUT_CONCURRENCY_CAPTURE) {
             //TODO: check concurrent capture permission
-            break;
-       default:
-            LOG_ALWAYS_FATAL("startInput() encountered an invalid input type %d",
-                    (int)concurrency);
         }
     }