blob: 95bb7aa09408f7a278a9f4e3534df249fddcd1d9 [file] [log] [blame]
Rashed Abdel-Tawab00b21852017-11-03 12:44:16 -07001/*
2 * Copyright (C) 2017 The Android Open Source Project
dianlujitao5ec37732018-01-18 21:24:30 +08003 * Copyright (C) 2017-2018 The LineageOS Project
Rashed Abdel-Tawab00b21852017-11-03 12:44:16 -07004 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef ANDROID_HARDWARE_POWER_V1_1_POWER_H
19#define ANDROID_HARDWARE_POWER_V1_1_POWER_H
20
21#include <android/hardware/power/1.1/IPower.h>
dianlujitao5ec37732018-01-18 21:24:30 +080022#include <vendor/lineage/power/1.0/ILineagePower.h>
Rashed Abdel-Tawab00b21852017-11-03 12:44:16 -070023#include <hidl/MQDescriptor.h>
24#include <hidl/Status.h>
25#include <hardware/power.h>
26
27namespace android {
28namespace hardware {
29namespace power {
30namespace V1_1 {
31namespace implementation {
32
33using ::android::hardware::power::V1_0::Feature;
34using ::android::hardware::power::V1_0::PowerHint;
35using ::android::hardware::power::V1_1::IPower;
dianlujitao5ec37732018-01-18 21:24:30 +080036using ::vendor::lineage::power::V1_0::ILineagePower;
37using ::vendor::lineage::power::V1_0::LineageFeature;
Rashed Abdel-Tawab00b21852017-11-03 12:44:16 -070038using ::android::hardware::Return;
39using ::android::hardware::Void;
40
dianlujitao5ec37732018-01-18 21:24:30 +080041struct Power : public IPower, public ILineagePower {
Rashed Abdel-Tawab00b21852017-11-03 12:44:16 -070042 // Methods from ::android::hardware::power::V1_0::IPower follow.
43
44 Power();
dianlujitao5ec37732018-01-18 21:24:30 +080045 status_t registerAsSystemService();
Rashed Abdel-Tawab00b21852017-11-03 12:44:16 -070046
47 Return<void> setInteractive(bool interactive) override;
48 Return<void> powerHint(PowerHint hint, int32_t data) override;
49 Return<void> setFeature(Feature feature, bool activate) override;
50 Return<void> getPlatformLowPowerStats(getPlatformLowPowerStats_cb _hidl_cb) override;
51
52 // Methods from ::android::hardware::power::V1_1::IPower follow.
53 Return<void> getSubsystemLowPowerStats(getSubsystemLowPowerStats_cb _hidl_cb) override;
Philip Cuadrac1f872c2017-07-11 14:50:25 -070054 Return<void> powerHintAsync(PowerHint hint, int32_t data) override;
Rashed Abdel-Tawab00b21852017-11-03 12:44:16 -070055
dianlujitao5ec37732018-01-18 21:24:30 +080056 // Methods from ::vendor::lineage::power::V1_0::ILineagePower follow.
57 Return<int32_t> getFeature(LineageFeature feature) override;
58
Rashed Abdel-Tawab00b21852017-11-03 12:44:16 -070059 // Methods from ::android::hidl::base::V1_0::IBase follow.
60
61};
62
63} // namespace implementation
Rashed Abdel-Tawab067a9072017-12-30 00:41:49 +020064} // namespace V1_0/1
Rashed Abdel-Tawab00b21852017-11-03 12:44:16 -070065} // namespace power
66} // namespace hardware
67} // namespace android
68
69#endif // ANDROID_HARDWARE_POWER_V1_1_POWER_H