UsecaseValidator: ignore special use cases when usage is unknown

The game usecase validator must ignore special routing use cases
indicated by audio attributes flags (BT SCO, TTS...) when the usage
is unknown.

Also fix a problem in ToneGenerator where the attributes flags were
overwritten when the low latency flag was set.

Bug: 283014940
Test: repro steps in bug
Change-Id: I4d5a038436b0dd2453dd8320dafba478970bb06e
diff --git a/media/libaudiousecasevalidation/UsecaseValidator.cpp b/media/libaudiousecasevalidation/UsecaseValidator.cpp
index d62df3a..bf532de 100644
--- a/media/libaudiousecasevalidation/UsecaseValidator.cpp
+++ b/media/libaudiousecasevalidation/UsecaseValidator.cpp
@@ -142,6 +142,9 @@
 
     bool areFlagsValid(audio_flags_mask_t flags) {
         ALOGV("areFlagsValid flags: %#x", flags);
+        if ((flags & (AUDIO_FLAG_SCO|AUDIO_FLAG_AUDIBILITY_ENFORCED|AUDIO_FLAG_BEACON)) != 0) {
+            return false;
+        }
         if ((flags & AUDIO_FLAG_LOW_LATENCY) != 0) {
             return true;
         }