Home | History | Annotate | Download | only in powermanager
      1 /*
      2  * Copyright (C) 2011 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_IPOWERMANAGER_H
     18 #define ANDROID_IPOWERMANAGER_H
     19 
     20 #include <utils/Errors.h>
     21 #include <binder/IInterface.h>
     22 #include <hardware/power.h>
     23 
     24 namespace android {
     25 
     26 // ----------------------------------------------------------------------------
     27 
     28 class IPowerManager : public IInterface
     29 {
     30 public:
     31     // These transaction IDs must be kept in sync with the method order from
     32     // IPowerManager.aidl.
     33     enum {
     34         ACQUIRE_WAKE_LOCK            = IBinder::FIRST_CALL_TRANSACTION,
     35         ACQUIRE_WAKE_LOCK_UID        = IBinder::FIRST_CALL_TRANSACTION + 1,
     36         RELEASE_WAKE_LOCK            = IBinder::FIRST_CALL_TRANSACTION + 2,
     37         UPDATE_WAKE_LOCK_UIDS        = IBinder::FIRST_CALL_TRANSACTION + 3,
     38         POWER_HINT                   = IBinder::FIRST_CALL_TRANSACTION + 4,
     39         UPDATE_WAKE_LOCK_SOURCE      = IBinder::FIRST_CALL_TRANSACTION + 5,
     40         IS_WAKE_LOCK_LEVEL_SUPPORTED = IBinder::FIRST_CALL_TRANSACTION + 6,
     41         USER_ACTIVITY                = IBinder::FIRST_CALL_TRANSACTION + 7,
     42         WAKE_UP                      = IBinder::FIRST_CALL_TRANSACTION + 8,
     43         GO_TO_SLEEP                  = IBinder::FIRST_CALL_TRANSACTION + 9,
     44         NAP                          = IBinder::FIRST_CALL_TRANSACTION + 10,
     45         IS_INTERACTIVE               = IBinder::FIRST_CALL_TRANSACTION + 11,
     46         IS_POWER_SAVE_MODE           = IBinder::FIRST_CALL_TRANSACTION + 12,
     47         SET_POWER_SAVE_MODE          = IBinder::FIRST_CALL_TRANSACTION + 13,
     48         REBOOT                       = IBinder::FIRST_CALL_TRANSACTION + 14,
     49         SHUTDOWN                     = IBinder::FIRST_CALL_TRANSACTION + 15,
     50         CRASH                        = IBinder::FIRST_CALL_TRANSACTION + 16,
     51     };
     52 
     53     DECLARE_META_INTERFACE(PowerManager);
     54 
     55     // The parcels created by these methods must be kept in sync with the
     56     // corresponding methods from IPowerManager.aidl.
     57     // FIXME remove the bool isOneWay parameters as they are not oneway in the .aidl
     58     virtual status_t acquireWakeLock(int flags, const sp<IBinder>& lock, const String16& tag,
     59             const String16& packageName, bool isOneWay = false) = 0;
     60     virtual status_t acquireWakeLockWithUid(int flags, const sp<IBinder>& lock, const String16& tag,
     61             const String16& packageName, int uid, bool isOneWay = false) = 0;
     62     virtual status_t releaseWakeLock(const sp<IBinder>& lock, int flags, bool isOneWay = false) = 0;
     63     virtual status_t updateWakeLockUids(const sp<IBinder>& lock, int len, const int *uids,
     64             bool isOneWay = false) = 0;
     65     virtual status_t powerHint(int hintId, int data) = 0;
     66     virtual status_t goToSleep(int64_t event_time_ms, int reason, int flags) = 0;
     67     virtual status_t reboot(bool confirm, const String16& reason, bool wait) = 0;
     68     virtual status_t shutdown(bool confirm, const String16& reason, bool wait) = 0;
     69     virtual status_t crash(const String16& message) = 0;
     70 };
     71 
     72 // ----------------------------------------------------------------------------
     73 
     74 }; // namespace android
     75 
     76 #endif // ANDROID_IPOWERMANAGER_H
     77