Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8fe85a0f authored by Atneya Nair's avatar Atneya Nair Committed by Android (Google) Code Review
Browse files

Merge "Add query API for hotword streams"

parents a59bbab5 698f5efd
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -313,6 +313,15 @@ interface IAudioPolicyService {

    boolean isUltrasoundSupported();

    /**
     * Queries if there is hardware support for requesting audio capture content from
     * the DSP hotword pipeline.
     *
     * @param lookbackAudio true if additionally querying for the ability to capture audio
     *                      from the pipeline prior to capture stream open.
     */
    boolean isHotwordStreamSupported(boolean lookbackAudio);

    AudioProductStrategy[] listAudioProductStrategies();
    int /* product_strategy_t */ getProductStrategyFromAudioAttributes(
            in AudioAttributesInternal aa, boolean fallbackOnDefault);
+2 −0
Original line number Diff line number Diff line
@@ -300,6 +300,8 @@ public:

    virtual bool     isUltrasoundSupported() = 0;

    virtual bool     isHotwordStreamSupported(bool lookbackAudio) = 0;

    virtual status_t getHwOffloadFormatsSupportedForBluetoothMedia(
                audio_devices_t device, std::vector<audio_format_t> *formats) = 0;

+15 −0
Original line number Diff line number Diff line
@@ -5687,6 +5687,21 @@ bool AudioPolicyManager::isUltrasoundSupported()
    return false;
}

bool AudioPolicyManager::isHotwordStreamSupported(bool lookbackAudio)
{
    const auto mask = AUDIO_INPUT_FLAG_HOTWORD_TAP |
        (lookbackAudio ? AUDIO_INPUT_FLAG_HW_LOOKBACK : 0);
    for (const auto& hwModule : mHwModules) {
        const InputProfileCollection &inputProfiles = hwModule->getInputProfiles();
        for (const auto &inputProfile : inputProfiles) {
            if ((inputProfile->getFlags() & mask) == mask) {
                return true;
            }
        }
    }
    return false;
}

bool AudioPolicyManager::isCallScreenModeSupported()
{
    return getConfig().isCallScreenModeSupported();
+2 −0
Original line number Diff line number Diff line
@@ -355,6 +355,8 @@ public:

        virtual bool isUltrasoundSupported();

        bool isHotwordStreamSupported(bool lookbackAudio) override;

        virtual status_t listAudioProductStrategies(AudioProductStrategyVector &strategies)
        {
            return mEngine->listAudioProductStrategies(strategies);
+11 −0
Original line number Diff line number Diff line
@@ -2045,6 +2045,17 @@ Status AudioPolicyService::isUltrasoundSupported(bool* _aidl_return)
    return Status::ok();
}

Status AudioPolicyService::isHotwordStreamSupported(bool lookbackAudio, bool* _aidl_return)
{
    if (mAudioPolicyManager == nullptr) {
        return binderStatusFromStatusT(NO_INIT);
    }
    Mutex::Autolock _l(mLock);
    AutoCallerClear acc;
    *_aidl_return = mAudioPolicyManager->isHotwordStreamSupported(lookbackAudio);
    return Status::ok();
}

Status AudioPolicyService::listAudioProductStrategies(
        std::vector<media::AudioProductStrategy>* _aidl_return) {
    AudioProductStrategyVector strategies;
Loading