Signed-off-by: Michael Benedict <michaelbt@live.com> Co-authored-by: Jesse Chan <jc@lineageos.org> Co-authored-by: dianlujitao <dianlujitao@lineageos.org> Co-authored-by: Tim Zimmermann <tim@linux4.de> Change-Id: I14fde0fee5a0294a8f546746a3eb29b2974a8fe7tirimbino
parent
3fe5163ee0
commit
c50258fca0
@ -0,0 +1,56 @@ |
||||
/*
|
||||
* Copyright (C) 2021 The LineageOS Project |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
#include "LineagePower.h" |
||||
|
||||
namespace aidl { |
||||
namespace vendor { |
||||
namespace lineage { |
||||
namespace power { |
||||
namespace impl { |
||||
|
||||
LineagePower::LineagePower(std::shared_ptr<Power> power, int32_t serviceNumPerfProfiles) |
||||
: mPower(power), mNumPerfProfiles(serviceNumPerfProfiles) {} |
||||
|
||||
|
||||
ndk::ScopedAStatus LineagePower::getFeature(Feature feature, int* _aidl_return) { |
||||
switch (feature) { |
||||
case Feature::SUPPORTED_PROFILES: |
||||
*_aidl_return = mNumPerfProfiles; |
||||
break; |
||||
default: |
||||
*_aidl_return = -1; |
||||
break; |
||||
} |
||||
return ndk::ScopedAStatus::ok(); |
||||
} |
||||
|
||||
ndk::ScopedAStatus LineagePower::setBoost(Boost type, int durationMs) { |
||||
switch (type) { |
||||
case Boost::SET_PROFILE: |
||||
mPower->setProfile(static_cast<PowerProfile>(durationMs)); |
||||
break; |
||||
default: |
||||
break; |
||||
} |
||||
return ndk::ScopedAStatus::ok(); |
||||
} |
||||
|
||||
} // namespace impl
|
||||
} // namespace power
|
||||
} // namespace lineage
|
||||
} // namespace vendor
|
||||
} // namespace aidl
|
@ -0,0 +1,46 @@ |
||||
/*
|
||||
* Copyright (C) 2021 The LineageOS Project |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
#pragma once |
||||
|
||||
#include <aidl/vendor/lineage/power/BnPower.h> |
||||
#include "Power.h" |
||||
|
||||
namespace aidl { |
||||
namespace vendor { |
||||
namespace lineage { |
||||
namespace power { |
||||
namespace impl { |
||||
|
||||
using aidl::google::hardware::power::impl::pixel::Power; |
||||
using aidl::google::hardware::power::impl::pixel::PowerProfile; |
||||
|
||||
class LineagePower : public BnPower { |
||||
public: |
||||
LineagePower(std::shared_ptr<Power> power, int32_t serviceNumPerfProfiles); |
||||
ndk::ScopedAStatus getFeature(Feature feature, int* _aidl_return) override; |
||||
ndk::ScopedAStatus setBoost(Boost type, int durationMs) override; |
||||
|
||||
private: |
||||
std::shared_ptr<Power> mPower; |
||||
int32_t mNumPerfProfiles; |
||||
}; |
||||
|
||||
} // namespace impl
|
||||
} // namespace power
|
||||
} // namespace lineage
|
||||
} // namespace vendor
|
||||
} // namespace aidl
|
Loading…
Reference in new issue