mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
audio: Update ChildInterface to set scheduler policy lazily am: 780fefb331
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2674338 Change-Id: Ia6ae775532cfad6d1e5d9bf0a614545be5cc1ef7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -1129,7 +1129,7 @@ ndk::ScopedAStatus Module::getSoundDose(std::shared_ptr<ISoundDose>* _aidl_retur
|
||||
if (!mSoundDose) {
|
||||
mSoundDose = ndk::SharedRefBase::make<sounddose::SoundDose>();
|
||||
}
|
||||
*_aidl_return = mSoundDose.getPtr();
|
||||
*_aidl_return = mSoundDose.getInstance();
|
||||
LOG(DEBUG) << __func__ << ": returning instance of ISoundDose: " << _aidl_return->get();
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ ndk::ScopedAStatus ModulePrimary::getTelephony(std::shared_ptr<ITelephony>* _aid
|
||||
if (!mTelephony) {
|
||||
mTelephony = ndk::SharedRefBase::make<Telephony>();
|
||||
}
|
||||
*_aidl_return = mTelephony.getPtr();
|
||||
*_aidl_return = mTelephony.getInstance();
|
||||
LOG(DEBUG) << __func__
|
||||
<< ": returning instance of ITelephony: " << _aidl_return->get()->asBinder().get();
|
||||
return ndk::ScopedAStatus::ok();
|
||||
|
||||
@@ -612,7 +612,7 @@ ndk::ScopedAStatus StreamCommonImpl::getStreamCommonCommon(
|
||||
if (!mCommon) {
|
||||
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();
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
@@ -35,14 +35,20 @@ struct ChildInterface : private std::pair<std::shared_ptr<C>, ndk::SpAIBinder> {
|
||||
}
|
||||
ChildInterface& operator=(std::shared_ptr<C>&& c) {
|
||||
this->first = std::move(c);
|
||||
this->second = this->first->asBinder();
|
||||
AIBinder_setMinSchedulerPolicy(this->second.get(), SCHED_NORMAL, ANDROID_PRIORITY_AUDIO);
|
||||
return *this;
|
||||
}
|
||||
explicit operator bool() 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
|
||||
|
||||
@@ -37,7 +37,7 @@ ndk::ScopedAStatus ModuleStub::getBluetooth(std::shared_ptr<IBluetooth>* _aidl_r
|
||||
if (!mBluetooth) {
|
||||
mBluetooth = ndk::SharedRefBase::make<Bluetooth>();
|
||||
}
|
||||
*_aidl_return = mBluetooth.getPtr();
|
||||
*_aidl_return = mBluetooth.getInstance();
|
||||
LOG(DEBUG) << __func__
|
||||
<< ": returning instance of IBluetooth: " << _aidl_return->get()->asBinder().get();
|
||||
return ndk::ScopedAStatus::ok();
|
||||
@@ -47,7 +47,7 @@ ndk::ScopedAStatus ModuleStub::getBluetoothA2dp(std::shared_ptr<IBluetoothA2dp>*
|
||||
if (!mBluetoothA2dp) {
|
||||
mBluetoothA2dp = ndk::SharedRefBase::make<BluetoothA2dp>();
|
||||
}
|
||||
*_aidl_return = mBluetoothA2dp.getPtr();
|
||||
*_aidl_return = mBluetoothA2dp.getInstance();
|
||||
LOG(DEBUG) << __func__ << ": returning instance of IBluetoothA2dp: "
|
||||
<< _aidl_return->get()->asBinder().get();
|
||||
return ndk::ScopedAStatus::ok();
|
||||
@@ -57,7 +57,7 @@ ndk::ScopedAStatus ModuleStub::getBluetoothLe(std::shared_ptr<IBluetoothLe>* _ai
|
||||
if (!mBluetoothLe) {
|
||||
mBluetoothLe = ndk::SharedRefBase::make<BluetoothLe>();
|
||||
}
|
||||
*_aidl_return = mBluetoothLe.getPtr();
|
||||
*_aidl_return = mBluetoothLe.getInstance();
|
||||
LOG(DEBUG) << __func__
|
||||
<< ": returning instance of IBluetoothLe: " << _aidl_return->get()->asBinder().get();
|
||||
return ndk::ScopedAStatus::ok();
|
||||
|
||||
Reference in New Issue
Block a user