getInputForAttr perm check cleanup pt2
Update param types for AudioPolicyManager::getInputForAttr to avoid
ptrs/inout for clarity.
No behavior changes for now.
Test: CtsMediaAudioTestCases
Bug: 374870131
Bug: 343523722
Flag: EXEMPT mechanical refactoring
Change-Id: Ic179b09159b47b5af5a56811af9ef759e47eea0c
diff --git a/services/audiopolicy/AudioPolicyInterface.h b/services/audiopolicy/AudioPolicyInterface.h
index 8dd247a..33194b7 100644
--- a/services/audiopolicy/AudioPolicyInterface.h
+++ b/services/audiopolicy/AudioPolicyInterface.h
@@ -19,15 +19,17 @@
#include <android/media/DeviceConnectedState.h>
#include <android/media/TrackInternalMuteInfo.h>
+#include <android/media/audio/common/AudioConfigBase.h>
#include <android/media/audio/common/AudioMMapPolicyInfo.h>
#include <android/media/audio/common/AudioMMapPolicyType.h>
+#include <android/media/GetInputForAttrResponse.h>
+#include <android/content/AttributionSourceState.h>
#include <media/AudioCommonTypes.h>
#include <media/AudioContainers.h>
#include <media/AudioDeviceTypeAddr.h>
-#include <media/AudioSystem.h>
#include <media/AudioPolicy.h>
+#include <media/AudioSystem.h>
#include <media/DeviceDescriptorBase.h>
-#include <android/content/AttributionSourceState.h>
#include <utils/String8.h>
namespace android {
@@ -161,18 +163,27 @@
// releases the output, return true if the output descriptor is reopened.
virtual bool releaseOutput(audio_port_handle_t portId) = 0;
- // request an input appropriate for record from the supplied device with supplied parameters.
- virtual status_t getInputForAttr(const audio_attributes_t *attr,
- audio_io_handle_t *input,
+ // Request an input appropriate for record from the supplied device with supplied parameters.
+ // attr -- attributes for the requested record
+ // requestedInput -- input only for MMAP mode where an input is re-used, otherwise output param
+ // requestedDeviceId, config, flags -- additional params for matching
+ // riid, session, attributionSource -- params which encapsulate client info to associate with
+ // this input
+ //
+ // On most errors, return a Status describing the error in the error object.
+ // However, in cases where an appropriate device cannot be found for a config, the error side of
+ // the unexpected will contain a suggested config.
+ virtual base::expected<media::GetInputForAttrResponse,
+ std::variant<binder::Status, media::audio::common::AudioConfigBase>>
+ getInputForAttr(audio_attributes_t attributes,
+ audio_io_handle_t requestedInput,
+ audio_port_handle_t requestedDeviceId,
+ audio_config_base_t config,
+ audio_input_flags_t flags,
audio_unique_id_t riid,
audio_session_t session,
const AttributionSourceState& attributionSource,
- audio_config_base_t *config,
- audio_input_flags_t flags,
- audio_port_handle_t *selectedDeviceId,
- input_type_t *inputType,
- audio_port_handle_t *portId,
- uint32_t *virtualDeviceId) = 0;
+ input_type_t *inputType /* out param */) = 0;
// indicates to the audio policy manager that the input starts being used.
virtual status_t startInput(audio_port_handle_t portId) = 0;
// indicates to the audio policy manager that the input stops being used.