1 /* 2 * Copyright (c) 2021-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef POWERMGR_POWER_STATE_MACHINE_INFO_H 17 #define POWERMGR_POWER_STATE_MACHINE_INFO_H 18 19 #include <string> 20 21 #include <parcel.h> 22 23 namespace OHOS { 24 namespace PowerMgr { 25 /* 26 * If already dimmed, extend the dim timeout but do not brighten. This flag is useful for keeping 27 * the screen on little longer without causing a visible change such as when the power key is pressed. 28 */ 29 constexpr uint32_t REFRESH_ACTIVITY_NO_CHANGE_LIGHTS = 1 << 0; 30 constexpr uint32_t REFRESH_ACTIVITY_NEED_CHANGE_LIGHTS = 0; 31 32 /* 33 * Indicate whether device enter suspend immediately 34 */ 35 constexpr uint32_t SUSPEND_DEVICE_NEED_DOZE = 0; 36 constexpr uint32_t SUSPEND_DEVICE_IMMEDIATELY = 1 << 0; 37 38 // This is use for judge whether the time is valid. 39 constexpr int DEFAULT_SYSTEM_START_TIME = 0; 40 41 // Max datails string length 42 constexpr int MAX_STRING_LENGTH = 128; 43 44 // Throttling interval for user activity calls. 45 constexpr int64_t MIN_TIME_MS_BETWEEN_USERACTIVITIES = 100; // 100ms 46 47 // Throttling interval for multimode activity calls. 48 constexpr int64_t MIN_TIME_MS_BETWEEN_MULTIMODEACTIVITIES = 100; // 100ms 49 50 // the reason for shut down device fast 51 constexpr const char* const SHUTDOWN_FAST_REASON = "STR"; 52 53 /** 54 * PowerState of Device. 55 */ 56 enum class PowerState : uint32_t { 57 /** 58 * Power State: screen on and cpu on. 59 */ 60 AWAKE = 0, 61 62 /** 63 * Power State: screen on or active and some background user processes are frozen. 64 */ 65 FREEZE, 66 67 /** 68 * Power State: screen off and cpu on. 69 */ 70 INACTIVE, 71 72 /** 73 * Power State: screen off and cpu on and some user processes are frozen. 74 */ 75 STAND_BY, 76 77 /** 78 * Power State: screen off and cpu on and most user processes are frozen. 79 */ 80 DOZE, 81 82 /** 83 * Power State: screen off and cpu off and suspend to the ram. 84 */ 85 SLEEP, 86 87 /** 88 * Power State: screen off and cpu off and suspend to the disk. 89 */ 90 HIBERNATE, 91 92 /** 93 * Power State: shutdown. 94 */ 95 SHUTDOWN, 96 97 /** 98 * Power State: screen on and display dim 99 */ 100 DIM, 101 102 /** 103 * Power State: unknown. 104 */ 105 UNKNOWN, 106 }; 107 108 /** 109 * Display State of Device. 110 */ 111 enum class DisplayState : uint32_t { 112 DISPLAY_OFF = 0, 113 DISPLAY_DIM = 1, 114 DISPLAY_ON = 2, 115 DISPLAY_SUSPEND = 3, 116 DISPLAY_UNKNOWN = 4, 117 }; 118 119 // UserActivityType list, must sync with A_PMS 120 enum class UserActivityType : uint32_t { 121 USER_ACTIVITY_TYPE_OTHER = 0, 122 USER_ACTIVITY_TYPE_BUTTON = 1, 123 USER_ACTIVITY_TYPE_TOUCH = 2, 124 USER_ACTIVITY_TYPE_ACCESSIBILITY = 3, 125 USER_ACTIVITY_TYPE_ATTENTION = 4, 126 USER_ACTIVITY_TYPE_SOFTWARE = 5, 127 USER_ACTIVITY_TYPE_MAX = USER_ACTIVITY_TYPE_SOFTWARE, 128 }; 129 130 // WakeupReasonType list 131 enum class WakeupDeviceType : uint32_t { 132 WAKEUP_DEVICE_UNKNOWN = 0, 133 WAKEUP_DEVICE_POWER_BUTTON = 1, 134 WAKEUP_DEVICE_APPLICATION = 2, 135 WAKEUP_DEVICE_PLUGGED_IN = 3, 136 WAKEUP_DEVICE_GESTURE = 4, 137 WAKEUP_DEVICE_CAMERA_LAUNCH = 5, 138 WAKEUP_DEVICE_WAKE_KEY = 6, 139 WAKEUP_DEVICE_WAKE_MOTION = 7, 140 WAKEUP_DEVICE_HDMI = 8, 141 WAKEUP_DEVICE_LID = 9, 142 WAKEUP_DEVICE_DOUBLE_CLICK = 10, 143 WAKEUP_DEVICE_KEYBOARD = 11, 144 WAKEUP_DEVICE_MOUSE = 12, 145 WAKEUP_DEVICE_TOUCHPAD = 13, 146 WAKEUP_DEVICE_PEN = 14, 147 WAKEUP_DEVICE_TOUCH_SCREEN = 15, 148 WAKEUP_DEVICE_SWITCH = 16, 149 WAKEUP_DEVICE_SINGLE_CLICK = 17, 150 WAKEUP_DEVICE_PRE_BRIGHT = 18, 151 WAKEUP_DEVICE_PRE_BRIGHT_AUTH_SUCCESS = 19, 152 WAKEUP_DEVICE_PRE_BRIGHT_AUTH_FAIL_SCREEN_ON = 20, 153 WAKEUP_DEVICE_PRE_BRIGHT_AUTH_FAIL_SCREEN_OFF = 21, 154 WAKEUP_DEVICE_AOD_SLIDING = 22, 155 WAKEUP_DEVICE_INCOMING_CALL = 23, 156 WAKEUP_DEVICE_SHELL = 24, 157 WAKEUP_DEVICE_PICKUP = 25, 158 WAKEUP_DEVICE_MAX = 26, 159 }; 160 161 // SuspendDeviceType list 162 enum class SuspendDeviceType : uint32_t { 163 SUSPEND_DEVICE_REASON_MIN = 0, 164 SUSPEND_DEVICE_REASON_APPLICATION = SUSPEND_DEVICE_REASON_MIN, 165 SUSPEND_DEVICE_REASON_DEVICE_ADMIN = 1, 166 SUSPEND_DEVICE_REASON_TIMEOUT = 2, 167 SUSPEND_DEVICE_REASON_LID = 3, 168 SUSPEND_DEVICE_REASON_POWER_KEY = 4, 169 SUSPEND_DEVICE_REASON_HDMI = 5, 170 SUSPEND_DEVICE_REASON_SLEEP_KEY = 6, 171 SUSPEND_DEVICE_REASON_ACCESSIBILITY = 7, 172 SUSPEND_DEVICE_REASON_FORCE_SUSPEND = 8, 173 SUSPEND_DEVICE_REASON_STR = 9, 174 SUSPEND_DEVICE_REASON_SWITCH = 10, 175 #ifdef POWER_MANAGER_WAKEUP_ACTION 176 SUSPEND_DEVICE_LOW_CAPACITY = 11, 177 SUSPEND_DEVICE_REASON_MAX = SUSPEND_DEVICE_LOW_CAPACITY, 178 #else 179 SUSPEND_DEVICE_REASON_MAX = SUSPEND_DEVICE_REASON_SWITCH, 180 #endif 181 }; 182 183 enum class StateChangeReason : uint32_t { 184 STATE_CHANGE_REASON_INIT = 0, 185 STATE_CHANGE_REASON_TIMEOUT = 1, 186 STATE_CHANGE_REASON_RUNNING_LOCK = 2, 187 STATE_CHANGE_REASON_BATTERY = 3, 188 STATE_CHANGE_REASON_THERMAL = 4, 189 STATE_CHANGE_REASON_WORK = 5, 190 STATE_CHANGE_REASON_SYSTEM = 6, 191 STATE_CHANGE_REASON_APPLICATION = 10, 192 STATE_CHANGE_REASON_SETTINGS = 11, 193 STATE_CHANGE_REASON_HARD_KEY = 12, 194 STATE_CHANGE_REASON_TOUCH = 13, 195 STATE_CHANGE_REASON_CABLE = 14, 196 STATE_CHANGE_REASON_SENSOR = 15, 197 STATE_CHANGE_REASON_LID = 16, 198 STATE_CHANGE_REASON_CAMERA = 17, 199 STATE_CHANGE_REASON_ACCESSIBILITY = 18, 200 STATE_CHANGE_REASON_RESET = 19, 201 STATE_CHANGE_REASON_POWER_KEY = 20, 202 STATE_CHANGE_REASON_KEYBOARD = 21, 203 STATE_CHANGE_REASON_MOUSE = 22, 204 STATE_CHANGE_REASON_DOUBLE_CLICK = 23, 205 STATE_CHANGE_REASON_SWITCH = 25, 206 STATE_CHANGE_REASON_PRE_BRIGHT = 26, 207 STATE_CHANGE_REASON_PRE_BRIGHT_AUTH_SUCCESS = 27, 208 STATE_CHANGE_REASON_PRE_BRIGHT_AUTH_FAIL_SCREEN_ON = 28, 209 STATE_CHANGE_REASON_PRE_BRIGHT_AUTH_FAIL_SCREEN_OFF = 29, 210 STATE_CHANGE_REASON_REFRESH = 30, 211 STATE_CHANGE_REASON_COORDINATION = 31, 212 STATE_CHANGE_REASON_PROXIMITY = 32, 213 STATE_CHANGE_REASON_INCOMING_CALL = 33, 214 STATE_CHANGE_REASON_SHELL = 34, 215 STATE_CHANGE_REASON_PICKUP = 35, 216 STATE_CHANGE_REASON_AOD_SLIDING = 40, 217 STATE_CHANGE_REASON_PEN = 41, 218 STATE_CHANGE_REASON_SHUT_DOWN = 42, 219 STATE_CHANGE_REASON_REMOTE = 100, 220 STATE_CHANGE_REASON_TIMEOUT_NO_SCREEN_LOCK = 101, 221 STATE_CHANGE_REASON_UNKNOWN = 1000, 222 }; 223 } // namespace PowerMgr 224 } // namespace OHOS 225 #endif // POWERMGR_POWER_STATE_MACHINE_INFO_H 226