Loading include/batteryservice/BatteryService.h +13 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,12 @@ enum { BATTERY_HEALTH_COLD = 7, // equals BatteryManager.BATTERY_HEALTH_COLD constant }; // must be kept in sync with definitions in BatteryProperty.java enum { BATTERY_PROP_CHARGE_COUNTER = 1, // equals BatteryProperty.BATTERY_PROP_CHARGE_COUNTER constant BATTERY_PROP_CURRENT_NOW = 2, // equals BatteryProperty.BATTERY_PROP_CURRENT_NOW constant }; struct BatteryProperties { bool chargerAcOnline; bool chargerUsbOnline; Loading @@ -61,6 +67,13 @@ struct BatteryProperties { status_t readFromParcel(Parcel* parcel); }; struct BatteryProperty { int valueInt; status_t writeToParcel(Parcel* parcel) const; status_t readFromParcel(Parcel* parcel); }; }; // namespace android #endif // ANDROID_BATTERYSERVICE_H include/batteryservice/IBatteryPropertiesRegistrar.h +2 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ namespace android { enum { REGISTER_LISTENER = IBinder::FIRST_CALL_TRANSACTION, UNREGISTER_LISTENER, GET_PROPERTY, }; class IBatteryPropertiesRegistrar : public IInterface { Loading @@ -34,6 +35,7 @@ public: virtual void registerListener(const sp<IBatteryPropertiesListener>& listener) = 0; virtual void unregisterListener(const sp<IBatteryPropertiesListener>& listener) = 0; virtual status_t getProperty(int id, struct BatteryProperty *val) = 0; }; class BnBatteryPropertiesRegistrar : public BnInterface<IBatteryPropertiesRegistrar> { Loading services/batteryservice/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ include $(CLEAR_VARS) LOCAL_SRC_FILES:= \ BatteryProperties.cpp \ BatteryProperty.cpp \ IBatteryPropertiesListener.cpp \ IBatteryPropertiesRegistrar.cpp Loading services/batteryservice/BatteryProperty.cpp 0 → 100644 +40 −0 Original line number Diff line number Diff line /* * Copyright (C) 2013 The Android Open Source 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 <stdint.h> #include <sys/types.h> #include <batteryservice/BatteryService.h> #include <binder/Parcel.h> #include <utils/Errors.h> namespace android { /* * Parcel read/write code must be kept in sync with * frameworks/base/core/java/android/os/BatteryProperty.java */ status_t BatteryProperty::readFromParcel(Parcel* p) { valueInt = p->readInt32(); return OK; } status_t BatteryProperty::writeToParcel(Parcel* p) const { p->writeInt32(valueInt); return OK; } }; // namespace android services/batteryservice/IBatteryPropertiesRegistrar.cpp +24 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,18 @@ public: data.writeStrongBinder(listener->asBinder()); remote()->transact(UNREGISTER_LISTENER, data, NULL); } status_t getProperty(int id, struct BatteryProperty *val) { Parcel data, reply; data.writeInterfaceToken(IBatteryPropertiesRegistrar::getInterfaceDescriptor()); data.writeInt32(id); remote()->transact(GET_PROPERTY, data, &reply); status_t ret = reply.readInt32(); int parcelpresent = reply.readInt32(); if (parcelpresent) val->readFromParcel(&reply); return ret; } }; IMPLEMENT_META_INTERFACE(BatteryPropertiesRegistrar, "android.os.IBatteryPropertiesRegistrar"); Loading @@ -69,6 +81,18 @@ status_t BnBatteryPropertiesRegistrar::onTransact(uint32_t code, unregisterListener(listener); return OK; } case GET_PROPERTY: { CHECK_INTERFACE(IBatteryPropertiesRegistrar, data, reply); int id = data.readInt32(); struct BatteryProperty val; status_t result = getProperty(id, &val); reply->writeNoException(); reply->writeInt32(result); reply->writeInt32(1); val.writeToParcel(reply); return OK; } } return BBinder::onTransact(code, data, reply, flags); }; Loading Loading
include/batteryservice/BatteryService.h +13 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,12 @@ enum { BATTERY_HEALTH_COLD = 7, // equals BatteryManager.BATTERY_HEALTH_COLD constant }; // must be kept in sync with definitions in BatteryProperty.java enum { BATTERY_PROP_CHARGE_COUNTER = 1, // equals BatteryProperty.BATTERY_PROP_CHARGE_COUNTER constant BATTERY_PROP_CURRENT_NOW = 2, // equals BatteryProperty.BATTERY_PROP_CURRENT_NOW constant }; struct BatteryProperties { bool chargerAcOnline; bool chargerUsbOnline; Loading @@ -61,6 +67,13 @@ struct BatteryProperties { status_t readFromParcel(Parcel* parcel); }; struct BatteryProperty { int valueInt; status_t writeToParcel(Parcel* parcel) const; status_t readFromParcel(Parcel* parcel); }; }; // namespace android #endif // ANDROID_BATTERYSERVICE_H
include/batteryservice/IBatteryPropertiesRegistrar.h +2 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ namespace android { enum { REGISTER_LISTENER = IBinder::FIRST_CALL_TRANSACTION, UNREGISTER_LISTENER, GET_PROPERTY, }; class IBatteryPropertiesRegistrar : public IInterface { Loading @@ -34,6 +35,7 @@ public: virtual void registerListener(const sp<IBatteryPropertiesListener>& listener) = 0; virtual void unregisterListener(const sp<IBatteryPropertiesListener>& listener) = 0; virtual status_t getProperty(int id, struct BatteryProperty *val) = 0; }; class BnBatteryPropertiesRegistrar : public BnInterface<IBatteryPropertiesRegistrar> { Loading
services/batteryservice/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ include $(CLEAR_VARS) LOCAL_SRC_FILES:= \ BatteryProperties.cpp \ BatteryProperty.cpp \ IBatteryPropertiesListener.cpp \ IBatteryPropertiesRegistrar.cpp Loading
services/batteryservice/BatteryProperty.cpp 0 → 100644 +40 −0 Original line number Diff line number Diff line /* * Copyright (C) 2013 The Android Open Source 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 <stdint.h> #include <sys/types.h> #include <batteryservice/BatteryService.h> #include <binder/Parcel.h> #include <utils/Errors.h> namespace android { /* * Parcel read/write code must be kept in sync with * frameworks/base/core/java/android/os/BatteryProperty.java */ status_t BatteryProperty::readFromParcel(Parcel* p) { valueInt = p->readInt32(); return OK; } status_t BatteryProperty::writeToParcel(Parcel* p) const { p->writeInt32(valueInt); return OK; } }; // namespace android
services/batteryservice/IBatteryPropertiesRegistrar.cpp +24 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,18 @@ public: data.writeStrongBinder(listener->asBinder()); remote()->transact(UNREGISTER_LISTENER, data, NULL); } status_t getProperty(int id, struct BatteryProperty *val) { Parcel data, reply; data.writeInterfaceToken(IBatteryPropertiesRegistrar::getInterfaceDescriptor()); data.writeInt32(id); remote()->transact(GET_PROPERTY, data, &reply); status_t ret = reply.readInt32(); int parcelpresent = reply.readInt32(); if (parcelpresent) val->readFromParcel(&reply); return ret; } }; IMPLEMENT_META_INTERFACE(BatteryPropertiesRegistrar, "android.os.IBatteryPropertiesRegistrar"); Loading @@ -69,6 +81,18 @@ status_t BnBatteryPropertiesRegistrar::onTransact(uint32_t code, unregisterListener(listener); return OK; } case GET_PROPERTY: { CHECK_INTERFACE(IBatteryPropertiesRegistrar, data, reply); int id = data.readInt32(); struct BatteryProperty val; status_t result = getProperty(id, &val); reply->writeNoException(); reply->writeInt32(result); reply->writeInt32(1); val.writeToParcel(reply); return OK; } } return BBinder::onTransact(code, data, reply, flags); }; Loading