1818
1919#include < aidl/android/hardware/power/Boost.h>
2020#include < aidl/android/hardware/power/ChannelConfig.h>
21+ #include < aidl/android/hardware/power/CompositionData.h>
22+ #include < aidl/android/hardware/power/CompositionUpdate.h>
2123#include < aidl/android/hardware/power/IPower.h>
2224#include < aidl/android/hardware/power/IPowerHintSession.h>
2325#include < aidl/android/hardware/power/Mode.h>
@@ -37,6 +39,8 @@ namespace android {
3739
3840namespace power {
3941
42+ namespace hal = aidl::android::hardware::power;
43+
4044// State of Power HAL support for individual apis.
4145enum class HalSupport {
4246 UNKNOWN = 0 ,
@@ -49,21 +53,20 @@ class HalWrapper {
4953public:
5054 virtual ~HalWrapper () = default ;
5155
52- virtual HalResult<void > setBoost (aidl::android::hardware::power::Boost boost,
53- int32_t durationMs) = 0;
54- virtual HalResult<void > setMode (aidl::android::hardware::power::Mode mode, bool enabled) = 0;
56+ virtual HalResult<void > setBoost (hal::Boost boost, int32_t durationMs) = 0;
57+ virtual HalResult<void > setMode (hal::Mode mode, bool enabled) = 0;
5558 virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession (
5659 int32_t tgid, int32_t uid, const std::vector<int32_t >& threadIds,
5760 int64_t durationNanos) = 0;
5861 virtual HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig (
5962 int32_t tgid, int32_t uid, const std::vector<int32_t >& threadIds, int64_t durationNanos,
60- aidl::android::hardware::power::SessionTag tag,
61- aidl::android::hardware::power::SessionConfig* config) = 0;
63+ hal::SessionTag tag, hal::SessionConfig* config) = 0;
6264 virtual HalResult<int64_t > getHintSessionPreferredRate () = 0;
63- virtual HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel (int tgid,
64- int uid) = 0;
65+ virtual HalResult<hal::ChannelConfig> getSessionChannel (int tgid, int uid) = 0;
6566 virtual HalResult<void > closeSessionChannel (int tgid, int uid) = 0;
6667 virtual HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo () = 0;
68+ virtual HalResult<void > sendCompositionData (const std::vector<hal::CompositionData>& data) = 0;
69+ virtual HalResult<void > sendCompositionUpdate (const hal::CompositionUpdate& update) = 0;
6770};
6871
6972// Empty Power HAL wrapper that ignores all api calls.
@@ -72,21 +75,20 @@ class EmptyHalWrapper : public HalWrapper {
7275 EmptyHalWrapper () = default ;
7376 ~EmptyHalWrapper () override = default ;
7477
75- HalResult<void > setBoost (aidl::android::hardware::power::Boost boost,
76- int32_t durationMs) override ;
77- HalResult<void > setMode (aidl::android::hardware::power::Mode mode, bool enabled) override ;
78+ HalResult<void > setBoost (hal::Boost boost, int32_t durationMs) override ;
79+ HalResult<void > setMode (hal::Mode mode, bool enabled) override ;
7880 HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession (
7981 int32_t tgid, int32_t uid, const std::vector<int32_t >& threadIds,
8082 int64_t durationNanos) override ;
8183 HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig (
8284 int32_t tgid, int32_t uid, const std::vector<int32_t >& threadIds, int64_t durationNanos,
83- aidl::android::hardware::power::SessionTag tag,
84- aidl::android::hardware::power::SessionConfig* config) override ;
85+ hal::SessionTag tag, hal::SessionConfig* config) override ;
8586 HalResult<int64_t > getHintSessionPreferredRate () override ;
86- HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel (int tgid,
87- int uid) override ;
87+ HalResult<hal::ChannelConfig> getSessionChannel (int tgid, int uid) override ;
8888 HalResult<void > closeSessionChannel (int tgid, int uid) override ;
8989 HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo () override ;
90+ HalResult<void > sendCompositionData (const std::vector<hal::CompositionData>& data) override ;
91+ HalResult<void > sendCompositionUpdate (const hal::CompositionUpdate& update) override ;
9092
9193protected:
9294 virtual const char * getUnsupportedMessage ();
@@ -99,9 +101,8 @@ class HidlHalWrapperV1_0 : public EmptyHalWrapper {
99101 : mHandleV1_0(std::move(handleV1_0)) {}
100102 ~HidlHalWrapperV1_0 () override = default ;
101103
102- HalResult<void > setBoost (aidl::android::hardware::power::Boost boost,
103- int32_t durationMs) override ;
104- HalResult<void > setMode (aidl::android::hardware::power::Mode mode, bool enabled) override ;
104+ HalResult<void > setBoost (hal::Boost boost, int32_t durationMs) override ;
105+ HalResult<void > setMode (hal::Mode mode, bool enabled) override ;
105106
106107protected:
107108 const sp<hardware::power::V1_0::IPower> mHandleV1_0 ;
@@ -127,9 +128,8 @@ class HidlHalWrapperV1_1 : public HidlHalWrapperV1_0 {
127128// Wrapper for the HIDL Power HAL v1.2.
128129class HidlHalWrapperV1_2 : public HidlHalWrapperV1_1 {
129130public:
130- HalResult<void > setBoost (aidl::android::hardware::power::Boost boost,
131- int32_t durationMs) override ;
132- HalResult<void > setMode (aidl::android::hardware::power::Mode mode, bool enabled) override ;
131+ HalResult<void > setBoost (hal::Boost boost, int32_t durationMs) override ;
132+ HalResult<void > setMode (hal::Mode mode, bool enabled) override ;
133133 explicit HidlHalWrapperV1_2 (sp<hardware::power::V1_2::IPower> handleV1_2)
134134 : HidlHalWrapperV1_1(std::move(handleV1_2)) {}
135135 ~HidlHalWrapperV1_2 () override = default ;
@@ -141,7 +141,7 @@ class HidlHalWrapperV1_2 : public HidlHalWrapperV1_1 {
141141// Wrapper for the HIDL Power HAL v1.3.
142142class HidlHalWrapperV1_3 : public HidlHalWrapperV1_2 {
143143public:
144- HalResult<void > setMode (aidl::android::hardware::power ::Mode mode, bool enabled) override ;
144+ HalResult<void > setMode (hal ::Mode mode, bool enabled) override ;
145145 explicit HidlHalWrapperV1_3 (sp<hardware::power::V1_3::IPower> handleV1_3)
146146 : HidlHalWrapperV1_2(std::move(handleV1_3)) {}
147147 ~HidlHalWrapperV1_3 () override = default ;
@@ -153,26 +153,24 @@ class HidlHalWrapperV1_3 : public HidlHalWrapperV1_2 {
153153// Wrapper for the AIDL Power HAL.
154154class AidlHalWrapper : public EmptyHalWrapper {
155155public:
156- explicit AidlHalWrapper (std::shared_ptr<aidl::android::hardware::power::IPower> handle)
157- : mHandle(std::move(handle)) {}
156+ explicit AidlHalWrapper (std::shared_ptr<hal::IPower> handle) : mHandle(std::move(handle)) {}
158157 ~AidlHalWrapper () override = default ;
159158
160- HalResult<void > setBoost (aidl::android::hardware::power::Boost boost,
161- int32_t durationMs) override ;
162- HalResult<void > setMode (aidl::android::hardware::power::Mode mode, bool enabled) override ;
159+ HalResult<void > setBoost (hal::Boost boost, int32_t durationMs) override ;
160+ HalResult<void > setMode (hal::Mode mode, bool enabled) override ;
163161 HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSession (
164162 int32_t tgid, int32_t uid, const std::vector<int32_t >& threadIds,
165163 int64_t durationNanos) override ;
166164 HalResult<std::shared_ptr<PowerHintSessionWrapper>> createHintSessionWithConfig (
167165 int32_t tgid, int32_t uid, const std::vector<int32_t >& threadIds, int64_t durationNanos,
168- aidl::android::hardware::power::SessionTag tag,
169- aidl::android::hardware::power::SessionConfig* config) override ;
166+ hal::SessionTag tag, hal::SessionConfig* config) override ;
170167
171168 HalResult<int64_t > getHintSessionPreferredRate () override ;
172- HalResult<aidl::android::hardware::power::ChannelConfig> getSessionChannel (int tgid,
173- int uid) override ;
169+ HalResult<hal::ChannelConfig> getSessionChannel (int tgid, int uid) override ;
174170 HalResult<void > closeSessionChannel (int tgid, int uid) override ;
175171 HalResult<aidl::android::hardware::power::SupportInfo> getSupportInfo () override ;
172+ HalResult<void > sendCompositionData (const std::vector<hal::CompositionData>& data) override ;
173+ HalResult<void > sendCompositionUpdate (const hal::CompositionUpdate& update) override ;
176174
177175protected:
178176 const char * getUnsupportedMessage () override ;
@@ -181,16 +179,10 @@ class AidlHalWrapper : public EmptyHalWrapper {
181179 // Control access to the boost and mode supported arrays.
182180 std::mutex mBoostMutex ;
183181 std::mutex mModeMutex ;
184- std::shared_ptr<aidl::android::hardware::power::IPower> mHandle ;
185- std::array<HalSupport,
186- static_cast <int32_t >(
187- *(ndk::enum_range<aidl::android::hardware::power::Boost>().end() - 1 )) +
188- 1 >
182+ std::shared_ptr<hal::IPower> mHandle ;
183+ std::array<HalSupport, static_cast <int32_t >(*(ndk::enum_range<hal::Boost>().end() - 1 )) + 1 >
189184 mBoostSupportedArray GUARDED_BY (mBoostMutex ) = {HalSupport::UNKNOWN};
190- std::array<HalSupport,
191- static_cast <int32_t >(
192- *(ndk::enum_range<aidl::android::hardware::power::Mode>().end() - 1 )) +
193- 1 >
185+ std::array<HalSupport, static_cast <int32_t >(*(ndk::enum_range<hal::Mode>().end() - 1 )) + 1 >
194186 mModeSupportedArray GUARDED_BY (mModeMutex ) = {HalSupport::UNKNOWN};
195187};
196188
0 commit comments