Loading services/audiopolicy/common/managerdefinitions/include/AudioPolicyMix.h +1 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ public: sp<DeviceDescriptor> getDeviceAndMixForInputSource(audio_source_t inputSource, const DeviceVector &availableDeviceTypes, uid_t uid, sp<AudioPolicyMix> *policyMix) const; /** Loading services/audiopolicy/common/managerdefinitions/src/AudioPolicyMix.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -391,6 +391,7 @@ sp<DeviceDescriptor> AudioPolicyMixCollection::getDeviceAndMixForOutput( sp<DeviceDescriptor> AudioPolicyMixCollection::getDeviceAndMixForInputSource( audio_source_t inputSource, const DeviceVector &availDevices, uid_t uid, sp<AudioPolicyMix> *policyMix) const { for (size_t i = 0; i < size(); i++) { Loading @@ -402,7 +403,11 @@ sp<DeviceDescriptor> AudioPolicyMixCollection::getDeviceAndMixForInputSource( if ((RULE_MATCH_ATTRIBUTE_CAPTURE_PRESET == mix->mCriteria[j].mRule && mix->mCriteria[j].mValue.mSource == inputSource) || (RULE_EXCLUDE_ATTRIBUTE_CAPTURE_PRESET == mix->mCriteria[j].mRule && mix->mCriteria[j].mValue.mSource != inputSource)) { mix->mCriteria[j].mValue.mSource != inputSource) || (RULE_MATCH_UID == mix->mCriteria[j].mRule && mix->mCriteria[j].mValue.mUid == uid) || (RULE_EXCLUDE_UID == mix->mCriteria[j].mRule && mix->mCriteria[j].mValue.mUid != uid)) { // assuming PolicyMix only for remote submix for input // so mix->mDeviceType can only be AUDIO_DEVICE_OUT_REMOTE_SUBMIX audio_devices_t device = AUDIO_DEVICE_IN_REMOTE_SUBMIX; Loading services/audiopolicy/engine/interface/EngineInterface.h +4 −2 Original line number Diff line number Diff line Loading @@ -173,8 +173,10 @@ public: * @param[out] mix to be used if a mix has been installed for the given audio attributes. * @return selected input device for the audio attributes, may be null if error. */ virtual sp<DeviceDescriptor> getInputDeviceForAttributes( const audio_attributes_t &attr, sp<AudioPolicyMix> *mix = nullptr) const = 0; virtual sp<DeviceDescriptor> getInputDeviceForAttributes(const audio_attributes_t &attr, uid_t uid = 0, sp<AudioPolicyMix> *mix = nullptr) const = 0; /** * Get the legacy stream type for a given audio attributes. Loading services/audiopolicy/engineconfigurable/src/Engine.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -310,6 +310,7 @@ DeviceVector Engine::getOutputDevicesForStream(audio_stream_type_t stream, bool } sp<DeviceDescriptor> Engine::getInputDeviceForAttributes(const audio_attributes_t &attr, uid_t uid, sp<AudioPolicyMix> *mix) const { const auto &policyMixes = getApmObserver()->getAudioPolicyMixCollection(); Loading @@ -328,7 +329,10 @@ sp<DeviceDescriptor> Engine::getInputDeviceForAttributes(const audio_attributes_ return device; } device = policyMixes.getDeviceAndMixForInputSource(attr.source, availableInputDevices, mix); device = policyMixes.getDeviceAndMixForInputSource(attr.source, availableInputDevices, uid, mix); if (device != nullptr) { return device; } Loading services/audiopolicy/engineconfigurable/src/Engine.h +4 −2 Original line number Diff line number Diff line Loading @@ -61,8 +61,10 @@ public: DeviceVector getOutputDevicesForStream(audio_stream_type_t stream, bool fromCache = false) const override; sp<DeviceDescriptor> getInputDeviceForAttributes( const audio_attributes_t &attr, sp<AudioPolicyMix> *mix = nullptr) const override; sp<DeviceDescriptor> getInputDeviceForAttributes(const audio_attributes_t &attr, uid_t uid = 0, sp<AudioPolicyMix> *mix = nullptr) const override; void updateDeviceSelectionCache() override; Loading Loading
services/audiopolicy/common/managerdefinitions/include/AudioPolicyMix.h +1 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ public: sp<DeviceDescriptor> getDeviceAndMixForInputSource(audio_source_t inputSource, const DeviceVector &availableDeviceTypes, uid_t uid, sp<AudioPolicyMix> *policyMix) const; /** Loading
services/audiopolicy/common/managerdefinitions/src/AudioPolicyMix.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -391,6 +391,7 @@ sp<DeviceDescriptor> AudioPolicyMixCollection::getDeviceAndMixForOutput( sp<DeviceDescriptor> AudioPolicyMixCollection::getDeviceAndMixForInputSource( audio_source_t inputSource, const DeviceVector &availDevices, uid_t uid, sp<AudioPolicyMix> *policyMix) const { for (size_t i = 0; i < size(); i++) { Loading @@ -402,7 +403,11 @@ sp<DeviceDescriptor> AudioPolicyMixCollection::getDeviceAndMixForInputSource( if ((RULE_MATCH_ATTRIBUTE_CAPTURE_PRESET == mix->mCriteria[j].mRule && mix->mCriteria[j].mValue.mSource == inputSource) || (RULE_EXCLUDE_ATTRIBUTE_CAPTURE_PRESET == mix->mCriteria[j].mRule && mix->mCriteria[j].mValue.mSource != inputSource)) { mix->mCriteria[j].mValue.mSource != inputSource) || (RULE_MATCH_UID == mix->mCriteria[j].mRule && mix->mCriteria[j].mValue.mUid == uid) || (RULE_EXCLUDE_UID == mix->mCriteria[j].mRule && mix->mCriteria[j].mValue.mUid != uid)) { // assuming PolicyMix only for remote submix for input // so mix->mDeviceType can only be AUDIO_DEVICE_OUT_REMOTE_SUBMIX audio_devices_t device = AUDIO_DEVICE_IN_REMOTE_SUBMIX; Loading
services/audiopolicy/engine/interface/EngineInterface.h +4 −2 Original line number Diff line number Diff line Loading @@ -173,8 +173,10 @@ public: * @param[out] mix to be used if a mix has been installed for the given audio attributes. * @return selected input device for the audio attributes, may be null if error. */ virtual sp<DeviceDescriptor> getInputDeviceForAttributes( const audio_attributes_t &attr, sp<AudioPolicyMix> *mix = nullptr) const = 0; virtual sp<DeviceDescriptor> getInputDeviceForAttributes(const audio_attributes_t &attr, uid_t uid = 0, sp<AudioPolicyMix> *mix = nullptr) const = 0; /** * Get the legacy stream type for a given audio attributes. Loading
services/audiopolicy/engineconfigurable/src/Engine.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -310,6 +310,7 @@ DeviceVector Engine::getOutputDevicesForStream(audio_stream_type_t stream, bool } sp<DeviceDescriptor> Engine::getInputDeviceForAttributes(const audio_attributes_t &attr, uid_t uid, sp<AudioPolicyMix> *mix) const { const auto &policyMixes = getApmObserver()->getAudioPolicyMixCollection(); Loading @@ -328,7 +329,10 @@ sp<DeviceDescriptor> Engine::getInputDeviceForAttributes(const audio_attributes_ return device; } device = policyMixes.getDeviceAndMixForInputSource(attr.source, availableInputDevices, mix); device = policyMixes.getDeviceAndMixForInputSource(attr.source, availableInputDevices, uid, mix); if (device != nullptr) { return device; } Loading
services/audiopolicy/engineconfigurable/src/Engine.h +4 −2 Original line number Diff line number Diff line Loading @@ -61,8 +61,10 @@ public: DeviceVector getOutputDevicesForStream(audio_stream_type_t stream, bool fromCache = false) const override; sp<DeviceDescriptor> getInputDeviceForAttributes( const audio_attributes_t &attr, sp<AudioPolicyMix> *mix = nullptr) const override; sp<DeviceDescriptor> getInputDeviceForAttributes(const audio_attributes_t &attr, uid_t uid = 0, sp<AudioPolicyMix> *mix = nullptr) const override; void updateDeviceSelectionCache() override; Loading