In favor of SW patch in AudioPolicyManager::connectAudioSource
In case the dynamic routing rule is present, creates the SW patch from
audio source device to Android mixer (specified by dynamic routing rule)
A typical use case is to route broadcast radio to the same media output
as other media applications.
Bug: 118763832
Test: connectAudioSource from FM Radio and dumpsys media.audio_flinger
Change-Id: Id07d3a6dd9fc5f322f4eb38efe02c302018253cd
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
index d0708b8..aa7ffc8 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
@@ -661,6 +661,21 @@
const String8& address /*in*/,
SortedVector<audio_io_handle_t>& outputs /*out*/);
uint32_t curAudioPortGeneration() const { return mAudioPortGeneration; }
+ // internal method, get audio_attributes_t from either a source audio_attributes_t
+ // or audio_stream_type_t, respectively.
+ status_t getAudioAttributes(audio_attributes_t *dstAttr,
+ const audio_attributes_t *srcAttr,
+ audio_stream_type_t srcStream);
+ // internal method, called by getOutputForAttr() and connectAudioSource.
+ status_t getOutputForAttrInt(audio_attributes_t *resultAttr,
+ audio_io_handle_t *output,
+ audio_session_t session,
+ const audio_attributes_t *attr,
+ audio_stream_type_t *stream,
+ uid_t uid,
+ const audio_config_t *config,
+ audio_output_flags_t *flags,
+ audio_port_handle_t *selectedDeviceId);
// internal method to return the output handle for the given device and format
audio_io_handle_t getOutputForDevice(
audio_devices_t device,