1 /*
2  * Copyright (C) 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef ANDROID_BATTERYSERVICE_H
18 #define ANDROID_BATTERYSERVICE_H
19 
20 #include <binder/Parcel.h>
21 #include <sys/types.h>
22 #include <utils/Errors.h>
23 #include <utils/String8.h>
24 
25 namespace android {
26 
27 // must be kept in sync with definitions in BatteryManager.java
28 enum {
29     BATTERY_STATUS_UNKNOWN = 1, // equals BatteryManager.BATTERY_STATUS_UNKNOWN constant
30     BATTERY_STATUS_CHARGING = 2, // equals BatteryManager.BATTERY_STATUS_CHARGING constant
31     BATTERY_STATUS_DISCHARGING = 3, // equals BatteryManager.BATTERY_STATUS_DISCHARGING constant
32     BATTERY_STATUS_NOT_CHARGING = 4, // equals BatteryManager.BATTERY_STATUS_NOT_CHARGING constant
33     BATTERY_STATUS_FULL = 5, // equals BatteryManager.BATTERY_STATUS_FULL constant
34 };
35 
36 // must be kept in sync with definitions in BatteryManager.java
37 enum {
38     BATTERY_HEALTH_UNKNOWN = 1, // equals BatteryManager.BATTERY_HEALTH_UNKNOWN constant
39     BATTERY_HEALTH_GOOD = 2, // equals BatteryManager.BATTERY_HEALTH_GOOD constant
40     BATTERY_HEALTH_OVERHEAT = 3, // equals BatteryManager.BATTERY_HEALTH_OVERHEAT constant
41     BATTERY_HEALTH_DEAD = 4, // equals BatteryManager.BATTERY_HEALTH_DEAD constant
42     BATTERY_HEALTH_OVER_VOLTAGE = 5, // equals BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE constant
43     BATTERY_HEALTH_UNSPECIFIED_FAILURE = 6, // equals BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE constant
44     BATTERY_HEALTH_COLD = 7, // equals BatteryManager.BATTERY_HEALTH_COLD constant
45 };
46 
47 // must be kept in sync with definitions in BatteryProperty.java
48 enum {
49     BATTERY_PROP_CHARGE_COUNTER = 1, // equals BatteryProperty.CHARGE_COUNTER constant
50     BATTERY_PROP_CURRENT_NOW = 2, // equals BatteryProperty.CURRENT_NOW constant
51     BATTERY_PROP_CURRENT_AVG = 3, // equals BatteryProperty.CURRENT_AVG constant
52     BATTERY_PROP_CAPACITY = 4, // equals BatteryProperty.CAPACITY constant
53     BATTERY_PROP_ENERGY_COUNTER = 5, // equals BatteryProperty.ENERGY_COUNTER constant
54 };
55 
56 struct BatteryProperties {
57     bool chargerAcOnline;
58     bool chargerUsbOnline;
59     bool chargerWirelessOnline;
60     int maxChargingCurrent;
61     int maxChargingVoltage;
62     int batteryStatus;
63     int batteryHealth;
64     bool batteryPresent;
65     int batteryLevel;
66     int batteryVoltage;
67     int batteryTemperature;
68     int batteryCurrent;
69     int batteryCycleCount;
70     int batteryFullCharge;
71     int batteryChargeCounter;
72     String8 batteryTechnology;
73 
74     status_t writeToParcel(Parcel* parcel) const;
75     status_t readFromParcel(Parcel* parcel);
76 };
77 
78 struct BatteryProperty {
79     int64_t valueInt64;
80 
81     status_t writeToParcel(Parcel* parcel) const;
82     status_t readFromParcel(Parcel* parcel);
83 };
84 
85 }; // namespace android
86 
87 #endif // ANDROID_BATTERYSERVICE_H
88