Loading media/libaudioclient/AudioSystem.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -1972,6 +1972,19 @@ bool AudioSystem::isHapticPlaybackSupported() { return result.value_or(false); } bool AudioSystem::isUltrasoundSupported() { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return false; auto result = [&]() -> ConversionResult<bool> { bool retVal; RETURN_IF_ERROR( statusTFromBinderStatus(aps->isUltrasoundSupported(&retVal))); return retVal; }(); return result.value_or(false); } status_t AudioSystem::getHwOffloadFormatsSupportedForBluetoothMedia( audio_devices_t device, std::vector<audio_format_t>* formats) { if (formats == nullptr) { Loading media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -312,6 +312,8 @@ interface IAudioPolicyService { boolean isHapticPlaybackSupported(); boolean isUltrasoundSupported(); AudioProductStrategy[] listAudioProductStrategies(); int /* product_strategy_t */ getProductStrategyFromAudioAttributes(in AudioAttributesEx aa, boolean fallbackOnDefault); Loading media/libaudioclient/include/media/AudioSystem.h +2 −0 Original line number Diff line number Diff line Loading @@ -444,6 +444,8 @@ public: static bool isHapticPlaybackSupported(); static bool isUltrasoundSupported(); static status_t listAudioProductStrategies(AudioProductStrategyVector &strategies); static status_t getProductStrategyFromAudioAttributes( const AudioAttributes &aa, product_strategy_t &productStrategy, Loading services/audiopolicy/AudioPolicyInterface.h +2 −0 Original line number Diff line number Diff line Loading @@ -300,6 +300,8 @@ public: virtual bool isHapticPlaybackSupported() = 0; virtual bool isUltrasoundSupported() = 0; virtual status_t getHwOffloadFormatsSupportedForBluetoothMedia( audio_devices_t device, std::vector<audio_format_t> *formats) = 0; Loading services/audiopolicy/managerdefault/AudioPolicyManager.cpp +31 −0 Original line number Diff line number Diff line Loading @@ -4933,6 +4933,37 @@ bool AudioPolicyManager::isHapticPlaybackSupported() return false; } bool AudioPolicyManager::isUltrasoundSupported() { bool hasUltrasoundOutput = false; bool hasUltrasoundInput = false; for (const auto& hwModule : mHwModules) { const OutputProfileCollection &outputProfiles = hwModule->getOutputProfiles(); if (!hasUltrasoundOutput) { for (const auto &outProfile : outputProfiles) { if (outProfile->getFlags() & AUDIO_OUTPUT_FLAG_ULTRASOUND) { hasUltrasoundOutput = true; break; } } } const InputProfileCollection &inputProfiles = hwModule->getInputProfiles(); if (!hasUltrasoundInput) { for (const auto &inputProfile : inputProfiles) { if (inputProfile->getFlags() & AUDIO_INPUT_FLAG_ULTRASOUND) { hasUltrasoundInput = true; break; } } } if (hasUltrasoundOutput && hasUltrasoundInput) return true; } return false; } bool AudioPolicyManager::isCallScreenModeSupported() { return getConfig().isCallScreenModeSupported(); Loading Loading
media/libaudioclient/AudioSystem.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -1972,6 +1972,19 @@ bool AudioSystem::isHapticPlaybackSupported() { return result.value_or(false); } bool AudioSystem::isUltrasoundSupported() { const sp<IAudioPolicyService>& aps = AudioSystem::get_audio_policy_service(); if (aps == 0) return false; auto result = [&]() -> ConversionResult<bool> { bool retVal; RETURN_IF_ERROR( statusTFromBinderStatus(aps->isUltrasoundSupported(&retVal))); return retVal; }(); return result.value_or(false); } status_t AudioSystem::getHwOffloadFormatsSupportedForBluetoothMedia( audio_devices_t device, std::vector<audio_format_t>* formats) { if (formats == nullptr) { Loading
media/libaudioclient/aidl/android/media/IAudioPolicyService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -312,6 +312,8 @@ interface IAudioPolicyService { boolean isHapticPlaybackSupported(); boolean isUltrasoundSupported(); AudioProductStrategy[] listAudioProductStrategies(); int /* product_strategy_t */ getProductStrategyFromAudioAttributes(in AudioAttributesEx aa, boolean fallbackOnDefault); Loading
media/libaudioclient/include/media/AudioSystem.h +2 −0 Original line number Diff line number Diff line Loading @@ -444,6 +444,8 @@ public: static bool isHapticPlaybackSupported(); static bool isUltrasoundSupported(); static status_t listAudioProductStrategies(AudioProductStrategyVector &strategies); static status_t getProductStrategyFromAudioAttributes( const AudioAttributes &aa, product_strategy_t &productStrategy, Loading
services/audiopolicy/AudioPolicyInterface.h +2 −0 Original line number Diff line number Diff line Loading @@ -300,6 +300,8 @@ public: virtual bool isHapticPlaybackSupported() = 0; virtual bool isUltrasoundSupported() = 0; virtual status_t getHwOffloadFormatsSupportedForBluetoothMedia( audio_devices_t device, std::vector<audio_format_t> *formats) = 0; Loading
services/audiopolicy/managerdefault/AudioPolicyManager.cpp +31 −0 Original line number Diff line number Diff line Loading @@ -4933,6 +4933,37 @@ bool AudioPolicyManager::isHapticPlaybackSupported() return false; } bool AudioPolicyManager::isUltrasoundSupported() { bool hasUltrasoundOutput = false; bool hasUltrasoundInput = false; for (const auto& hwModule : mHwModules) { const OutputProfileCollection &outputProfiles = hwModule->getOutputProfiles(); if (!hasUltrasoundOutput) { for (const auto &outProfile : outputProfiles) { if (outProfile->getFlags() & AUDIO_OUTPUT_FLAG_ULTRASOUND) { hasUltrasoundOutput = true; break; } } } const InputProfileCollection &inputProfiles = hwModule->getInputProfiles(); if (!hasUltrasoundInput) { for (const auto &inputProfile : inputProfiles) { if (inputProfile->getFlags() & AUDIO_INPUT_FLAG_ULTRASOUND) { hasUltrasoundInput = true; break; } } } if (hasUltrasoundOutput && hasUltrasoundInput) return true; } return false; } bool AudioPolicyManager::isCallScreenModeSupported() { return getConfig().isCallScreenModeSupported(); Loading