OSDN Git Service

PowerManager: add powerHint binder method
authorRuchi Kandoi <kandoiruchi@google.com>
Wed, 2 Apr 2014 19:54:45 +0000 (12:54 -0700)
committerRuchi Kandoi <kandoiruchi@google.com>
Wed, 2 Apr 2014 21:24:01 +0000 (21:24 +0000)
Change-Id: Ide1d50bb1580698b25296fbfc1cc63c3b21a00bc

include/powermanager/IPowerManager.h
services/powermanager/IPowerManager.cpp

index d85003f..511797a 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <utils/Errors.h>
 #include <binder/IInterface.h>
+#include <hardware/power.h>
 
 namespace android {
 
@@ -36,6 +37,7 @@ public:
             const String16& packageName, int uid) = 0;
     virtual status_t releaseWakeLock(const sp<IBinder>& lock, int flags) = 0;
     virtual status_t updateWakeLockUids(const sp<IBinder>& lock, int len, const int *uids) = 0;
+    virtual status_t powerHint(int hintId, int data) = 0;
 };
 
 // ----------------------------------------------------------------------------
index 5ecd299..0c43e90 100644 (file)
@@ -33,6 +33,7 @@ enum {
     ACQUIRE_WAKE_LOCK_UID = IBinder::FIRST_CALL_TRANSACTION + 1,
     RELEASE_WAKE_LOCK = IBinder::FIRST_CALL_TRANSACTION + 2,
     UPDATE_WAKE_LOCK_UIDS = IBinder::FIRST_CALL_TRANSACTION + 3,
+    POWER_HINT = IBinder::FIRST_CALL_TRANSACTION + 4,
 };
 
 class BpPowerManager : public BpInterface<IPowerManager>
@@ -89,6 +90,15 @@ public:
         // but it should return ASAP
         return remote()->transact(UPDATE_WAKE_LOCK_UIDS, data, &reply, IBinder::FLAG_ONEWAY);
     }
+
+    virtual status_t powerHint(int hintId, int param)
+    {
+        Parcel data, reply;
+        data.writeInterfaceToken(IPowerManager::getInterfaceDescriptor());
+        data.writeInt32(hintId);
+        data.writeInt32(param);
+        return remote()->transact(POWER_HINT, data, &reply, IBinder::FLAG_ONEWAY);
+    }
 };
 
 IMPLEMENT_META_INTERFACE(PowerManager, "android.os.IPowerManager");