Support query direct playback support.
Support query direct playback support. Direct playback can be compressed
offload playback or compressed passthrough playback. This interface can
help developers to discover device's capabilities.
Bug: 197838445
Test: atest AudioManagerTest
Test: audiopolicy_fuzzer
Change-Id: I4066f53f5021b30e1fcf66de162c766326ee56cc
diff --git a/services/audiopolicy/AudioPolicyInterface.h b/services/audiopolicy/AudioPolicyInterface.h
index 33b455f..f6f3b9a 100644
--- a/services/audiopolicy/AudioPolicyInterface.h
+++ b/services/audiopolicy/AudioPolicyInterface.h
@@ -392,6 +392,18 @@
* @return NO_ERROR if an output was closed, INVALID_OPERATION or BAD_VALUE otherwise
*/
virtual status_t releaseSpatializerOutput(audio_io_handle_t output) = 0;
+
+ /**
+ * Query how the direct playback is currently supported on the device.
+ * @param attr audio attributes describing the playback use case
+ * @param config audio configuration for the playback
+ * @param directMode out: a set of flags describing how the direct playback is currently
+ * supported on the device
+ * @return NO_ERROR in case of success, DEAD_OBJECT, NO_INIT, BAD_VALUE, PERMISSION_DENIED
+ * in case of error.
+ */
+ virtual audio_direct_mode_t getDirectPlaybackSupport(const audio_attributes_t *attr,
+ const audio_config_t *config) = 0;
};