163ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood/*
263ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood * Copyright (C) 2013 The Android Open Source Project
363ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood *
463ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood * Licensed under the Apache License, Version 2.0 (the "License");
563ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood * you may not use this file except in compliance with the License.
663ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood * You may obtain a copy of the License at
763ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood *
863ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood *      http://www.apache.org/licenses/LICENSE-2.0
963ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood *
1063ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood * Unless required by applicable law or agreed to in writing, software
1163ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood * distributed under the License is distributed on an "AS IS" BASIS,
1263ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1363ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood * See the License for the specific language governing permissions and
1463ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood * limitations under the License.
1563ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood */
1663ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
1763ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood#include <binder/IBatteryStats.h>
1863ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
1963ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood#include <utils/Log.h>
2063ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood#include <binder/Parcel.h>
2163ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood#include <utils/String8.h>
2263ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
2363ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood#include <private/binder/Static.h>
2463ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
2563ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwoodnamespace android {
2663ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
2763ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood// ----------------------------------------------------------------------
2863ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
2963ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwoodclass BpBatteryStats : public BpInterface<IBatteryStats>
3063ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood{
3163ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwoodpublic:
32e2347b7953f70232541bdc1b392230d6231aaeb9Chih-Hung Hsieh    explicit BpBatteryStats(const sp<IBinder>& impl)
3363ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        : BpInterface<IBatteryStats>(impl)
3463ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood    {
3563ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood    }
3663ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
3763ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood    virtual void noteStartSensor(int uid, int sensor) {
3863ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        Parcel data, reply;
3963ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
4063ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        data.writeInt32(uid);
4163ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        data.writeInt32(sensor);
4263ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        remote()->transact(NOTE_START_SENSOR_TRANSACTION, data, &reply);
4363ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood    }
4463ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
4563ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood    virtual void noteStopSensor(int uid, int sensor) {
4663ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        Parcel data, reply;
4763ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
4863ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        data.writeInt32(uid);
4963ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        data.writeInt32(sensor);
5063ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        remote()->transact(NOTE_STOP_SENSOR_TRANSACTION, data, &reply);
5163ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood    }
52bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang
53bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang    virtual void noteStartVideo(int uid) {
54bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        Parcel data, reply;
55bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
56bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        data.writeInt32(uid);
57bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        remote()->transact(NOTE_START_VIDEO_TRANSACTION, data, &reply);
58bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang    }
59bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang
60bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang    virtual void noteStopVideo(int uid) {
61bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        Parcel data, reply;
62bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
63bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        data.writeInt32(uid);
64bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        remote()->transact(NOTE_STOP_VIDEO_TRANSACTION, data, &reply);
65bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang    }
66bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang
67bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang    virtual void noteStartAudio(int uid) {
68bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        Parcel data, reply;
69bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
70bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        data.writeInt32(uid);
71bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        remote()->transact(NOTE_START_AUDIO_TRANSACTION, data, &reply);
72bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang    }
73bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang
74bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang    virtual void noteStopAudio(int uid) {
75bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        Parcel data, reply;
76bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
77bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        data.writeInt32(uid);
78bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        remote()->transact(NOTE_STOP_AUDIO_TRANSACTION, data, &reply);
79bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang    }
802cbba477bea136698944ece498115dbddd7bb659Chong Zhang
812cbba477bea136698944ece498115dbddd7bb659Chong Zhang    virtual void noteResetVideo() {
822cbba477bea136698944ece498115dbddd7bb659Chong Zhang        Parcel data, reply;
832cbba477bea136698944ece498115dbddd7bb659Chong Zhang        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
842cbba477bea136698944ece498115dbddd7bb659Chong Zhang        remote()->transact(NOTE_RESET_VIDEO_TRANSACTION, data, &reply);
852cbba477bea136698944ece498115dbddd7bb659Chong Zhang    }
862cbba477bea136698944ece498115dbddd7bb659Chong Zhang
872cbba477bea136698944ece498115dbddd7bb659Chong Zhang    virtual void noteResetAudio() {
882cbba477bea136698944ece498115dbddd7bb659Chong Zhang        Parcel data, reply;
892cbba477bea136698944ece498115dbddd7bb659Chong Zhang        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
902cbba477bea136698944ece498115dbddd7bb659Chong Zhang        remote()->transact(NOTE_RESET_AUDIO_TRANSACTION, data, &reply);
912cbba477bea136698944ece498115dbddd7bb659Chong Zhang    }
92d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk
93d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    virtual void noteFlashlightOn(int uid) {
94d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        Parcel data, reply;
95d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
96d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        data.writeInt32(uid);
97d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        remote()->transact(NOTE_FLASHLIGHT_ON_TRANSACTION, data, &reply);
98d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    }
99d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk
100d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    virtual void noteFlashlightOff(int uid) {
101d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        Parcel data, reply;
102d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
103d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        data.writeInt32(uid);
104d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        remote()->transact(NOTE_FLASHLIGHT_OFF_TRANSACTION, data, &reply);
105d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    }
106d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk
107d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    virtual void noteStartCamera(int uid) {
108d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        Parcel data, reply;
109d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
110d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        data.writeInt32(uid);
111d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        remote()->transact(NOTE_START_CAMERA_TRANSACTION, data, &reply);
112d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    }
113d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk
114d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    virtual void noteStopCamera(int uid) {
115d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        Parcel data, reply;
116d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
117d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        data.writeInt32(uid);
118d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        remote()->transact(NOTE_STOP_CAMERA_TRANSACTION, data, &reply);
119d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    }
120d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk
121d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    virtual void noteResetCamera() {
122d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        Parcel data, reply;
123d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
124d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        remote()->transact(NOTE_RESET_CAMERA_TRANSACTION, data, &reply);
125d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    }
126d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk
127d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    virtual void noteResetFlashlight() {
128d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        Parcel data, reply;
129d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
130d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        remote()->transact(NOTE_RESET_FLASHLIGHT_TRANSACTION, data, &reply);
131d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk    }
132d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk
13363ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood};
13463ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
13563ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike LockwoodIMPLEMENT_META_INTERFACE(BatteryStats, "com.android.internal.app.IBatteryStats");
13663ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
13763ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood// ----------------------------------------------------------------------
13863ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
13963ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwoodstatus_t BnBatteryStats::onTransact(
14063ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood    uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags)
14163ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood{
14263ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood    switch(code) {
14363ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        case NOTE_START_SENSOR_TRANSACTION: {
14463ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            CHECK_INTERFACE(IBatteryStats, data, reply);
14563ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            int uid = data.readInt32();
14663ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            int sensor = data.readInt32();
14763ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            noteStartSensor(uid, sensor);
14863ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            reply->writeNoException();
14963ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            return NO_ERROR;
15063ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        } break;
15163ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        case NOTE_STOP_SENSOR_TRANSACTION: {
15263ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            CHECK_INTERFACE(IBatteryStats, data, reply);
15363ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            int uid = data.readInt32();
15463ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            int sensor = data.readInt32();
15563ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            noteStopSensor(uid, sensor);
15663ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            reply->writeNoException();
15763ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            return NO_ERROR;
15863ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        } break;
159bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        case NOTE_START_VIDEO_TRANSACTION: {
160bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            CHECK_INTERFACE(IBatteryStats, data, reply);
161bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            int uid = data.readInt32();
162bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            noteStartVideo(uid);
163bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            reply->writeNoException();
164bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            return NO_ERROR;
165bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        } break;
166bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        case NOTE_STOP_VIDEO_TRANSACTION: {
167bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            CHECK_INTERFACE(IBatteryStats, data, reply);
168bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            int uid = data.readInt32();
169bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            noteStopVideo(uid);
170bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            reply->writeNoException();
171bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            return NO_ERROR;
172bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        } break;
173bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        case NOTE_START_AUDIO_TRANSACTION: {
174bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            CHECK_INTERFACE(IBatteryStats, data, reply);
175bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            int uid = data.readInt32();
176bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            noteStartAudio(uid);
177bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            reply->writeNoException();
178bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            return NO_ERROR;
179bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        } break;
180bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        case NOTE_STOP_AUDIO_TRANSACTION: {
181bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            CHECK_INTERFACE(IBatteryStats, data, reply);
182bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            int uid = data.readInt32();
183bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            noteStopAudio(uid);
184bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            reply->writeNoException();
185bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang            return NO_ERROR;
186bd42d38b161beb8a4f23ca40b7551e941280e556Chong Zhang        } break;
1872cbba477bea136698944ece498115dbddd7bb659Chong Zhang        case NOTE_RESET_VIDEO_TRANSACTION: {
1882cbba477bea136698944ece498115dbddd7bb659Chong Zhang            CHECK_INTERFACE(IBatteryStats, data, reply);
1892cbba477bea136698944ece498115dbddd7bb659Chong Zhang            noteResetVideo();
1902cbba477bea136698944ece498115dbddd7bb659Chong Zhang            reply->writeNoException();
1912cbba477bea136698944ece498115dbddd7bb659Chong Zhang            return NO_ERROR;
1922cbba477bea136698944ece498115dbddd7bb659Chong Zhang        } break;
1932cbba477bea136698944ece498115dbddd7bb659Chong Zhang        case NOTE_RESET_AUDIO_TRANSACTION: {
1942cbba477bea136698944ece498115dbddd7bb659Chong Zhang            CHECK_INTERFACE(IBatteryStats, data, reply);
1952cbba477bea136698944ece498115dbddd7bb659Chong Zhang            noteResetAudio();
1962cbba477bea136698944ece498115dbddd7bb659Chong Zhang            reply->writeNoException();
1972cbba477bea136698944ece498115dbddd7bb659Chong Zhang            return NO_ERROR;
1982cbba477bea136698944ece498115dbddd7bb659Chong Zhang        } break;
199d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        case NOTE_FLASHLIGHT_ON_TRANSACTION: {
200d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            CHECK_INTERFACE(IBatteryStats, data, reply);
201d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            int uid = data.readInt32();
202d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            noteFlashlightOn(uid);
203d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            reply->writeNoException();
204d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            return NO_ERROR;
205d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        } break;
206d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        case NOTE_FLASHLIGHT_OFF_TRANSACTION: {
207d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            CHECK_INTERFACE(IBatteryStats, data, reply);
208d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            int uid = data.readInt32();
209d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            noteFlashlightOff(uid);
210d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            reply->writeNoException();
211d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            return NO_ERROR;
212d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        } break;
213d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        case NOTE_START_CAMERA_TRANSACTION: {
214d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            CHECK_INTERFACE(IBatteryStats, data, reply);
215d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            int uid = data.readInt32();
216d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            noteStartCamera(uid);
217d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            reply->writeNoException();
218d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            return NO_ERROR;
219d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        } break;
220d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        case NOTE_STOP_CAMERA_TRANSACTION: {
221d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            CHECK_INTERFACE(IBatteryStats, data, reply);
222d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            int uid = data.readInt32();
223d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            noteStopCamera(uid);
224d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            reply->writeNoException();
225d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            return NO_ERROR;
226d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        } break;
227d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        case NOTE_RESET_CAMERA_TRANSACTION: {
228d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            CHECK_INTERFACE(IBatteryStats, data, reply);
229d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            noteResetCamera();
230d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            reply->writeNoException();
231d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            return NO_ERROR;
232d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        } break;
233d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        case NOTE_RESET_FLASHLIGHT_TRANSACTION: {
234d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            CHECK_INTERFACE(IBatteryStats, data, reply);
235d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            noteResetFlashlight();
236d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            reply->writeNoException();
237d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk            return NO_ERROR;
238d47da608366cf1c2649b5dd2759d36e30377fa54Ruben Brunk        } break;
23963ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood        default:
24063ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood            return BBinder::onTransact(code, data, reply, flags);
24163ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood    }
24263ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood}
24363ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood
24463ff1c644f785c78adbf65b9abf6b998cee2c7a1Mike Lockwood}; // namespace android
245