BatteryService.h revision a186e65368719a2f47b357be50d4ccf61501fe9b
187bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor/*
287bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor * Copyright (C) 2013 The Android Open Source Project
387bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor *
487bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor * Licensed under the Apache License, Version 2.0 (the "License");
587bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor * you may not use this file except in compliance with the License.
687bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor * You may obtain a copy of the License at
787bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor *
887bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor *      http://www.apache.org/licenses/LICENSE-2.0
987bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor *
1087bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor * Unless required by applicable law or agreed to in writing, software
1187bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor * distributed under the License is distributed on an "AS IS" BASIS,
1287bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1387bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor * See the License for the specific language governing permissions and
1487bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor * limitations under the License.
1587bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor */
1687bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor
1787bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor#ifndef ANDROID_BATTERYSERVICE_H
1887bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor#define ANDROID_BATTERYSERVICE_H
1987bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor
2087bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor#include <binder/Parcel.h>
21a186e65368719a2f47b357be50d4ccf61501fe9bTodd Poynor#include <sys/types.h>
2287bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor#include <utils/Errors.h>
2387bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor#include <utils/String8.h>
2487bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor
2587bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynornamespace android {
2687bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor
2787bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor// must be kept in sync with definitions in BatteryManager.java
2887bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynorenum {
2987bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_STATUS_UNKNOWN = 1, // equals BatteryManager.BATTERY_STATUS_UNKNOWN constant
3087bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_STATUS_CHARGING = 2, // equals BatteryManager.BATTERY_STATUS_CHARGING constant
3187bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_STATUS_DISCHARGING = 3, // equals BatteryManager.BATTERY_STATUS_DISCHARGING constant
3287bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_STATUS_NOT_CHARGING = 4, // equals BatteryManager.BATTERY_STATUS_NOT_CHARGING constant
3387bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_STATUS_FULL = 5, // equals BatteryManager.BATTERY_STATUS_FULL constant
3487bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor};
3587bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor
3687bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor// must be kept in sync with definitions in BatteryManager.java
3787bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynorenum {
3887bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_HEALTH_UNKNOWN = 1, // equals BatteryManager.BATTERY_HEALTH_UNKNOWN constant
3987bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_HEALTH_GOOD = 2, // equals BatteryManager.BATTERY_HEALTH_GOOD constant
4087bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_HEALTH_OVERHEAT = 3, // equals BatteryManager.BATTERY_HEALTH_OVERHEAT constant
4187bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_HEALTH_DEAD = 4, // equals BatteryManager.BATTERY_HEALTH_DEAD constant
4287bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_HEALTH_OVER_VOLTAGE = 5, // equals BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE constant
4387bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_HEALTH_UNSPECIFIED_FAILURE = 6, // equals BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE constant
4487bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    BATTERY_HEALTH_COLD = 7, // equals BatteryManager.BATTERY_HEALTH_COLD constant
4587bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor};
4687bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor
47cf8087358658d393150c383b01feef9064a4cdfcTodd Poynor// must be kept in sync with definitions in BatteryProperty.java
48cf8087358658d393150c383b01feef9064a4cdfcTodd Poynorenum {
49a186e65368719a2f47b357be50d4ccf61501fe9bTodd Poynor    BATTERY_PROP_CHARGE_COUNTER = 1, // equals BatteryProperty.CHARGE_COUNTER constant
50a186e65368719a2f47b357be50d4ccf61501fe9bTodd Poynor    BATTERY_PROP_CURRENT_NOW = 2, // equals BatteryProperty.CURRENT_NOW constant
51a186e65368719a2f47b357be50d4ccf61501fe9bTodd Poynor    BATTERY_PROP_CURRENT_AVG = 3, // equals BatteryProperty.CURRENT_AVG constant
52a186e65368719a2f47b357be50d4ccf61501fe9bTodd Poynor    BATTERY_PROP_CAPACITY = 4, // equals BatteryProperty.CAPACITY constant
53a186e65368719a2f47b357be50d4ccf61501fe9bTodd Poynor    BATTERY_PROP_ENERGY_COUNTER = 5, // equals BatteryProperty.ENERGY_COUNTER constant
54cf8087358658d393150c383b01feef9064a4cdfcTodd Poynor};
55cf8087358658d393150c383b01feef9064a4cdfcTodd Poynor
5687bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynorstruct BatteryProperties {
5787bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    bool chargerAcOnline;
5887bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    bool chargerUsbOnline;
5987bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    bool chargerWirelessOnline;
6087bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    int batteryStatus;
6187bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    int batteryHealth;
6287bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    bool batteryPresent;
6387bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    int batteryLevel;
6487bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    int batteryVoltage;
6587bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    int batteryTemperature;
6687bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    String8 batteryTechnology;
6787bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor
6887bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    status_t writeToParcel(Parcel* parcel) const;
6987bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor    status_t readFromParcel(Parcel* parcel);
7087bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor};
7187bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor
72cf8087358658d393150c383b01feef9064a4cdfcTodd Poynorstruct BatteryProperty {
73a186e65368719a2f47b357be50d4ccf61501fe9bTodd Poynor    int64_t valueInt64;
74cf8087358658d393150c383b01feef9064a4cdfcTodd Poynor
75cf8087358658d393150c383b01feef9064a4cdfcTodd Poynor    status_t writeToParcel(Parcel* parcel) const;
76cf8087358658d393150c383b01feef9064a4cdfcTodd Poynor    status_t readFromParcel(Parcel* parcel);
77cf8087358658d393150c383b01feef9064a4cdfcTodd Poynor};
78cf8087358658d393150c383b01feef9064a4cdfcTodd Poynor
7987bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor}; // namespace android
8087bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor
8187bf0d97be5ef2689546b246dfb6c21c4eec3ce0Todd Poynor#endif // ANDROID_BATTERYSERVICE_H
82