Add new AudioInputFlags to AIDL conversion
- Add HOTWORD_TAP to AIDL conversion utilities
- Add HW_LOOKBACK to AIDL conversion utilities
- Add flags as must match when picking profiles in APM
Bug: 237449755
Test: Compiles
Change-Id: I79349813b966f025b697db11235eb8a500ddfb31
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index 1d4eb1e..23be0c4 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -34,6 +34,7 @@
#include <map>
#include <math.h>
#include <set>
+#include <type_traits>
#include <unordered_set>
#include <vector>
@@ -7397,8 +7398,11 @@
// TODO: perhaps isCompatibleProfile should return a "matching" score so we can return
// the best matching profile, not the first one.
- const audio_input_flags_t mustMatchFlag = AUDIO_INPUT_FLAG_MMAP_NOIRQ;
- const audio_input_flags_t oriFlags = flags;
+ using underlying_input_flag_t = std::underlying_type_t<audio_input_flags_t>;
+ const underlying_input_flag_t mustMatchFlag = AUDIO_INPUT_FLAG_MMAP_NOIRQ |
+ AUDIO_INPUT_FLAG_HOTWORD_TAP | AUDIO_INPUT_FLAG_HW_LOOKBACK;
+
+ const underlying_input_flag_t oriFlags = flags;
for (;;) {
sp<IOProfile> firstInexact = nullptr;
diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
index 5c32209..82a13d6 100644
--- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
+++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
@@ -667,7 +667,9 @@
return binderStatusFromStatusT(PERMISSION_DENIED);
}
- if (((flags & AUDIO_INPUT_FLAG_HW_HOTWORD) != 0)
+ if (((flags & (AUDIO_INPUT_FLAG_HW_HOTWORD |
+ AUDIO_INPUT_FLAG_HOTWORD_TAP |
+ AUDIO_INPUT_FLAG_HW_LOOKBACK)) != 0)
&& !canCaptureHotword) {
ALOGE("%s: permission denied: hotword mode not allowed"
" for uid %d pid %d", __func__, attributionSource.uid, attributionSource.pid);