Revert^2 "Add APIs to query MMAP support in AAudio."
aca8f4620d31b4788e579f3fcc048b90a23d6758
Change-Id: I8db2f75f1af5df667e0c00b195feb55551337f88
diff --git a/media/libaudioclient/AudioSystem.cpp b/media/libaudioclient/AudioSystem.cpp
index ee44074..a467d2c 100644
--- a/media/libaudioclient/AudioSystem.cpp
+++ b/media/libaudioclient/AudioSystem.cpp
@@ -2700,13 +2700,13 @@
return af->setVibratorInfos(vibratorInfos);
}
-status_t AudioSystem::getMmapPolicyInfo(
+status_t AudioSystem::getMmapPolicyInfos(
AudioMMapPolicyType policyType, std::vector<AudioMMapPolicyInfo> *policyInfos) {
- const sp<IAudioFlinger> af = get_audio_flinger();
- if (af == nullptr) {
+ const sp<IAudioPolicyService> aps = get_audio_policy_service();
+ if (aps == nullptr) {
return PERMISSION_DENIED;
}
- return af->getMmapPolicyInfos(policyType, policyInfos);
+ return statusTFromBinderStatus(aps->getMmapPolicyInfos(policyType, policyInfos));
}
int32_t AudioSystem::getAAudioMixerBurstCount() {
@@ -2803,6 +2803,18 @@
aps->clearPreferredMixerAttributes(attrAidl, portIdAidl, uidAidl));
}
+status_t AudioSystem::getMmapPolicyForDevice(AudioMMapPolicyType policyType,
+ audio_devices_t device,
+ AudioMMapPolicyInfo *policyInfo) {
+ const sp<IAudioPolicyService> aps = get_audio_policy_service();
+ if (aps == nullptr) {
+ return PERMISSION_DENIED;
+ }
+ policyInfo->device.type = VALUE_OR_RETURN_STATUS(
+ legacy2aidl_audio_devices_t_AudioDeviceDescription(device));
+ return statusTFromBinderStatus(aps->getMmapPolicyForDevice(policyType, policyInfo));
+}
+
// ---------------------------------------------------------------------------
int AudioSystem::AudioPolicyServiceClient::addAudioPortCallback(
diff --git a/media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl b/media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl
index b4f879a..f262c2e 100644
--- a/media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl
+++ b/media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl
@@ -46,6 +46,8 @@
import android.media.audio.common.AudioDevice;
import android.media.audio.common.AudioDeviceDescription;
import android.media.audio.common.AudioFormatDescription;
+import android.media.audio.common.AudioMMapPolicyInfo;
+import android.media.audio.common.AudioMMapPolicyType;
import android.media.audio.common.AudioMode;
import android.media.audio.common.AudioPolicyForcedConfig;
import android.media.audio.common.AudioPolicyForceUse;
@@ -482,6 +484,17 @@
* required to control audio access.
*/
INativePermissionController getPermissionController();
+
+ /**
+ * Query mmap policy information.
+ */
+ AudioMMapPolicyInfo[] getMmapPolicyInfos(AudioMMapPolicyType policyType);
+
+ /**
+ * Get all devices that support AAudio MMAP.
+ */
+ void getMmapPolicyForDevice(AudioMMapPolicyType policyType,
+ inout AudioMMapPolicyInfo policyInfo);
// When adding a new method, please review and update
// AudioPolicyService.cpp AudioPolicyService::onTransact()
// AudioPolicyService.cpp IAUDIOPOLICYSERVICE_BINDER_METHOD_MACRO_LIST
diff --git a/media/libaudioclient/include/media/AudioSystem.h b/media/libaudioclient/include/media/AudioSystem.h
index 40e5673..d0f3767 100644
--- a/media/libaudioclient/include/media/AudioSystem.h
+++ b/media/libaudioclient/include/media/AudioSystem.h
@@ -797,7 +797,7 @@
static status_t setVibratorInfos(const std::vector<media::AudioVibratorInfo>& vibratorInfos);
- static status_t getMmapPolicyInfo(
+ static status_t getMmapPolicyInfos(
media::audio::common::AudioMMapPolicyType policyType,
std::vector<media::audio::common::AudioMMapPolicyInfo> *policyInfos);
@@ -805,6 +805,10 @@
static int32_t getAAudioHardwareBurstMinUsec();
+ static status_t getMmapPolicyForDevice(
+ media::audio::common::AudioMMapPolicyType policyType, audio_devices_t device,
+ media::audio::common::AudioMMapPolicyInfo *policyInfo);
+
class AudioFlingerClient: public IBinder::DeathRecipient, public media::BnAudioFlingerClient
{
public: