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

Commit 1a1a6731 authored by Mikhail Naganov's avatar Mikhail Naganov Committed by Automerger Merge Worker
Browse files

audio: Update ChildInterface to set scheduler policy lazily am: 780fefb3 am: e35c2c83

parents 3917ddec e35c2c83
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1129,7 +1129,7 @@ ndk::ScopedAStatus Module::getSoundDose(std::shared_ptr<ISoundDose>* _aidl_retur
    if (!mSoundDose) {
    if (!mSoundDose) {
        mSoundDose = ndk::SharedRefBase::make<sounddose::SoundDose>();
        mSoundDose = ndk::SharedRefBase::make<sounddose::SoundDose>();
    }
    }
    *_aidl_return = mSoundDose.getPtr();
    *_aidl_return = mSoundDose.getInstance();
    LOG(DEBUG) << __func__ << ": returning instance of ISoundDose: " << _aidl_return->get();
    LOG(DEBUG) << __func__ << ": returning instance of ISoundDose: " << _aidl_return->get();
    return ndk::ScopedAStatus::ok();
    return ndk::ScopedAStatus::ok();
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -37,7 +37,7 @@ ndk::ScopedAStatus ModulePrimary::getTelephony(std::shared_ptr<ITelephony>* _aid
    if (!mTelephony) {
    if (!mTelephony) {
        mTelephony = ndk::SharedRefBase::make<Telephony>();
        mTelephony = ndk::SharedRefBase::make<Telephony>();
    }
    }
    *_aidl_return = mTelephony.getPtr();
    *_aidl_return = mTelephony.getInstance();
    LOG(DEBUG) << __func__
    LOG(DEBUG) << __func__
               << ": returning instance of ITelephony: " << _aidl_return->get()->asBinder().get();
               << ": returning instance of ITelephony: " << _aidl_return->get()->asBinder().get();
    return ndk::ScopedAStatus::ok();
    return ndk::ScopedAStatus::ok();
+1 −1
Original line number Original line Diff line number Diff line
@@ -612,7 +612,7 @@ ndk::ScopedAStatus StreamCommonImpl::getStreamCommonCommon(
    if (!mCommon) {
    if (!mCommon) {
        LOG(FATAL) << __func__ << ": the common interface was not created";
        LOG(FATAL) << __func__ << ": the common interface was not created";
    }
    }
    *_aidl_return = mCommon.getPtr();
    *_aidl_return = mCommon.getInstance();
    LOG(DEBUG) << __func__ << ": returning " << _aidl_return->get()->asBinder().get();
    LOG(DEBUG) << __func__ << ": returning " << _aidl_return->get()->asBinder().get();
    return ndk::ScopedAStatus::ok();
    return ndk::ScopedAStatus::ok();
}
}
+9 −3
Original line number Original line Diff line number Diff line
@@ -35,14 +35,20 @@ struct ChildInterface : private std::pair<std::shared_ptr<C>, ndk::SpAIBinder> {
    }
    }
    ChildInterface& operator=(std::shared_ptr<C>&& c) {
    ChildInterface& operator=(std::shared_ptr<C>&& c) {
        this->first = std::move(c);
        this->first = std::move(c);
        this->second = this->first->asBinder();
        AIBinder_setMinSchedulerPolicy(this->second.get(), SCHED_NORMAL, ANDROID_PRIORITY_AUDIO);
        return *this;
        return *this;
    }
    }
    explicit operator bool() const { return !!this->first; }
    explicit operator bool() const { return !!this->first; }
    C& operator*() const { return *(this->first); }
    C& operator*() const { return *(this->first); }
    C* operator->() const { return this->first; }
    C* operator->() const { return this->first; }
    std::shared_ptr<C> getPtr() const { return this->first; }
    // Use 'getInstance' when returning the interface instance.
    std::shared_ptr<C> getInstance() {
        if (this->second.get() == nullptr) {
            this->second = this->first->asBinder();
            AIBinder_setMinSchedulerPolicy(this->second.get(), SCHED_NORMAL,
                                           ANDROID_PRIORITY_AUDIO);
        }
        return this->first;
    }
};
};


}  // namespace aidl::android::hardware::audio::core
}  // namespace aidl::android::hardware::audio::core
+3 −3
Original line number Original line Diff line number Diff line
@@ -37,7 +37,7 @@ ndk::ScopedAStatus ModuleStub::getBluetooth(std::shared_ptr<IBluetooth>* _aidl_r
    if (!mBluetooth) {
    if (!mBluetooth) {
        mBluetooth = ndk::SharedRefBase::make<Bluetooth>();
        mBluetooth = ndk::SharedRefBase::make<Bluetooth>();
    }
    }
    *_aidl_return = mBluetooth.getPtr();
    *_aidl_return = mBluetooth.getInstance();
    LOG(DEBUG) << __func__
    LOG(DEBUG) << __func__
               << ": returning instance of IBluetooth: " << _aidl_return->get()->asBinder().get();
               << ": returning instance of IBluetooth: " << _aidl_return->get()->asBinder().get();
    return ndk::ScopedAStatus::ok();
    return ndk::ScopedAStatus::ok();
@@ -47,7 +47,7 @@ ndk::ScopedAStatus ModuleStub::getBluetoothA2dp(std::shared_ptr<IBluetoothA2dp>*
    if (!mBluetoothA2dp) {
    if (!mBluetoothA2dp) {
        mBluetoothA2dp = ndk::SharedRefBase::make<BluetoothA2dp>();
        mBluetoothA2dp = ndk::SharedRefBase::make<BluetoothA2dp>();
    }
    }
    *_aidl_return = mBluetoothA2dp.getPtr();
    *_aidl_return = mBluetoothA2dp.getInstance();
    LOG(DEBUG) << __func__ << ": returning instance of IBluetoothA2dp: "
    LOG(DEBUG) << __func__ << ": returning instance of IBluetoothA2dp: "
               << _aidl_return->get()->asBinder().get();
               << _aidl_return->get()->asBinder().get();
    return ndk::ScopedAStatus::ok();
    return ndk::ScopedAStatus::ok();
@@ -57,7 +57,7 @@ ndk::ScopedAStatus ModuleStub::getBluetoothLe(std::shared_ptr<IBluetoothLe>* _ai
    if (!mBluetoothLe) {
    if (!mBluetoothLe) {
        mBluetoothLe = ndk::SharedRefBase::make<BluetoothLe>();
        mBluetoothLe = ndk::SharedRefBase::make<BluetoothLe>();
    }
    }
    *_aidl_return = mBluetoothLe.getPtr();
    *_aidl_return = mBluetoothLe.getInstance();
    LOG(DEBUG) << __func__
    LOG(DEBUG) << __func__
               << ": returning instance of IBluetoothLe: " << _aidl_return->get()->asBinder().get();
               << ": returning instance of IBluetoothLe: " << _aidl_return->get()->asBinder().get();
    return ndk::ScopedAStatus::ok();
    return ndk::ScopedAStatus::ok();