diff options
Diffstat (limited to 'services/powermanager/PowerHalWrapper.cpp')
-rw-r--r-- | services/powermanager/PowerHalWrapper.cpp | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/services/powermanager/PowerHalWrapper.cpp b/services/powermanager/PowerHalWrapper.cpp index 1009100cc2..bd6685cbad 100644 --- a/services/powermanager/PowerHalWrapper.cpp +++ b/services/powermanager/PowerHalWrapper.cpp @@ -18,11 +18,10 @@ #include <aidl/android/hardware/power/Boost.h> #include <aidl/android/hardware/power/IPowerHintSession.h> #include <aidl/android/hardware/power/Mode.h> +#include <powermanager/HalResult.h> #include <powermanager/PowerHalWrapper.h> #include <utils/Log.h> -#include <cinttypes> - using namespace android::hardware::power; namespace Aidl = aidl::android::hardware::power; @@ -31,15 +30,6 @@ namespace android { namespace power { // ------------------------------------------------------------------------------------------------- -inline HalResult<void> toHalResult(const ndk::ScopedAStatus& result) { - if (result.isOk()) { - return HalResult<void>::ok(); - } - ALOGE("Power HAL request failed: %s", result.getDescription().c_str()); - return HalResult<void>::failed(result.getDescription()); -} - -// ------------------------------------------------------------------------------------------------- HalResult<void> EmptyHalWrapper::setBoost(Aidl::Boost boost, int32_t durationMs) { ALOGV("Skipped setBoost %s with duration %dms because %s", toString(boost).c_str(), durationMs, @@ -53,19 +43,19 @@ HalResult<void> EmptyHalWrapper::setMode(Aidl::Mode mode, bool enabled) { return HalResult<void>::unsupported(); } -HalResult<std::shared_ptr<Aidl::IPowerHintSession>> EmptyHalWrapper::createHintSession( +HalResult<std::shared_ptr<PowerHintSessionWrapper>> EmptyHalWrapper::createHintSession( int32_t, int32_t, const std::vector<int32_t>& threadIds, int64_t) { ALOGV("Skipped createHintSession(task num=%zu) because %s", threadIds.size(), getUnsupportedMessage()); - return HalResult<std::shared_ptr<Aidl::IPowerHintSession>>::unsupported(); + return HalResult<std::shared_ptr<PowerHintSessionWrapper>>::unsupported(); } -HalResult<std::shared_ptr<Aidl::IPowerHintSession>> EmptyHalWrapper::createHintSessionWithConfig( +HalResult<std::shared_ptr<PowerHintSessionWrapper>> EmptyHalWrapper::createHintSessionWithConfig( int32_t, int32_t, const std::vector<int32_t>& threadIds, int64_t, Aidl::SessionTag, Aidl::SessionConfig*) { ALOGV("Skipped createHintSessionWithConfig(task num=%zu) because %s", threadIds.size(), getUnsupportedMessage()); - return HalResult<std::shared_ptr<Aidl::IPowerHintSession>>::unsupported(); + return HalResult<std::shared_ptr<PowerHintSessionWrapper>>::unsupported(); } HalResult<int64_t> EmptyHalWrapper::getHintSessionPreferredRate() { @@ -225,7 +215,7 @@ HalResult<void> AidlHalWrapper::setBoost(Aidl::Boost boost, int32_t durationMs) } lock.unlock(); - return toHalResult(mHandle->setBoost(boost, durationMs)); + return HalResult<void>::fromStatus(mHandle->setBoost(boost, durationMs)); } HalResult<void> AidlHalWrapper::setMode(Aidl::Mode mode, bool enabled) { @@ -253,25 +243,25 @@ HalResult<void> AidlHalWrapper::setMode(Aidl::Mode mode, bool enabled) { } lock.unlock(); - return toHalResult(mHandle->setMode(mode, enabled)); + return HalResult<void>::fromStatus(mHandle->setMode(mode, enabled)); } -HalResult<std::shared_ptr<Aidl::IPowerHintSession>> AidlHalWrapper::createHintSession( +HalResult<std::shared_ptr<PowerHintSessionWrapper>> AidlHalWrapper::createHintSession( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos) { std::shared_ptr<Aidl::IPowerHintSession> appSession; - return HalResult<std::shared_ptr<Aidl::IPowerHintSession>>:: + return HalResult<std::shared_ptr<PowerHintSessionWrapper>>:: fromStatus(mHandle->createHintSession(tgid, uid, threadIds, durationNanos, &appSession), - std::move(appSession)); + std::make_shared<PowerHintSessionWrapper>(std::move(appSession))); } -HalResult<std::shared_ptr<Aidl::IPowerHintSession>> AidlHalWrapper::createHintSessionWithConfig( +HalResult<std::shared_ptr<PowerHintSessionWrapper>> AidlHalWrapper::createHintSessionWithConfig( int32_t tgid, int32_t uid, const std::vector<int32_t>& threadIds, int64_t durationNanos, Aidl::SessionTag tag, Aidl::SessionConfig* config) { std::shared_ptr<Aidl::IPowerHintSession> appSession; - return HalResult<std::shared_ptr<Aidl::IPowerHintSession>>:: + return HalResult<std::shared_ptr<PowerHintSessionWrapper>>:: fromStatus(mHandle->createHintSessionWithConfig(tgid, uid, threadIds, durationNanos, tag, config, &appSession), - std::move(appSession)); + std::make_shared<PowerHintSessionWrapper>(std::move(appSession))); } HalResult<int64_t> AidlHalWrapper::getHintSessionPreferredRate() { @@ -287,7 +277,7 @@ HalResult<Aidl::ChannelConfig> AidlHalWrapper::getSessionChannel(int tgid, int u } HalResult<void> AidlHalWrapper::closeSessionChannel(int tgid, int uid) { - return toHalResult(mHandle->closeSessionChannel(tgid, uid)); + return HalResult<void>::fromStatus(mHandle->closeSessionChannel(tgid, uid)); } const char* AidlHalWrapper::getUnsupportedMessage() { |