• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_DOZE,
117     DISPLAY_DOZE_SUSPEND,
118     DISPLAY_UNKNOWN,
119 };
120 
121 // UserActivityType list, must sync with A_PMS
122 enum class UserActivityType : uint32_t {
123     USER_ACTIVITY_TYPE_OTHER = 0,
124     USER_ACTIVITY_TYPE_BUTTON = 1,
125     USER_ACTIVITY_TYPE_TOUCH = 2,
126     USER_ACTIVITY_TYPE_ACCESSIBILITY = 3,
127     USER_ACTIVITY_TYPE_ATTENTION = 4,
128     USER_ACTIVITY_TYPE_SOFTWARE = 5,
129     USER_ACTIVITY_TYPE_SWITCH = 6,
130     USER_ACTIVITY_TYPE_CABLE = 7,
131     USER_ACTIVITY_TYPE_APPLICATION = 8,
132     USER_ACTIVITY_TYPE_MAX = USER_ACTIVITY_TYPE_APPLICATION,
133 };
134 
135 // WakeupReasonType list
136 enum class WakeupDeviceType : uint32_t {
137     WAKEUP_DEVICE_UNKNOWN = 0,
138     WAKEUP_DEVICE_POWER_BUTTON = 1,
139     WAKEUP_DEVICE_APPLICATION = 2,
140     WAKEUP_DEVICE_PLUGGED_IN = 3,
141     WAKEUP_DEVICE_GESTURE = 4,
142     WAKEUP_DEVICE_CAMERA_LAUNCH = 5,
143     WAKEUP_DEVICE_WAKE_KEY = 6,
144     WAKEUP_DEVICE_WAKE_MOTION = 7,
145     WAKEUP_DEVICE_HDMI = 8,
146     WAKEUP_DEVICE_LID = 9,
147     WAKEUP_DEVICE_DOUBLE_CLICK = 10,
148     WAKEUP_DEVICE_KEYBOARD = 11,
149     WAKEUP_DEVICE_MOUSE = 12,
150     WAKEUP_DEVICE_TOUCHPAD = 13,
151     WAKEUP_DEVICE_PEN = 14,
152     WAKEUP_DEVICE_TOUCH_SCREEN = 15,
153     WAKEUP_DEVICE_SWITCH = 16,
154     WAKEUP_DEVICE_SINGLE_CLICK = 17,
155     WAKEUP_DEVICE_PRE_BRIGHT = 18,
156     WAKEUP_DEVICE_PRE_BRIGHT_AUTH_SUCCESS = 19,
157     WAKEUP_DEVICE_PRE_BRIGHT_AUTH_FAIL_SCREEN_ON = 20,
158     WAKEUP_DEVICE_PRE_BRIGHT_AUTH_FAIL_SCREEN_OFF = 21,
159     WAKEUP_DEVICE_AOD_SLIDING = 22,
160     WAKEUP_DEVICE_INCOMING_CALL = 23,
161     WAKEUP_DEVICE_SHELL = 24,
162     WAKEUP_DEVICE_PICKUP = 25,
163     WAKEUP_DEVICE_EXIT_SYSTEM_STR = 26, // STR: suspend to ram
164     WAKEUP_DEVICE_SCREEN_CONNECT = 27,
165     WAKEUP_DEVICE_TP_TOUCH = 28,
166     WAKEUP_DEVICE_EX_SCREEN_INIT = 29,
167     WAKEUP_DEVICE_ABNORMAL_SCREEN_CONNECT = 30,
168     WAKEUP_DEVICE_PLUG_CHANGE = 31,
169     WAKEUP_DEVICE_TENT_MODE_CHANGE = 32,
170     WAKEUP_DEVICE_END_DREAM = 33,
171     WAKEUP_DEVICE_BLUETOOTH_INCOMING_CALL = 34,
172     WAKEUP_DEVICE_MAX
173 };
174 
175 // SuspendDeviceType list
176 enum class SuspendDeviceType : uint32_t {
177     SUSPEND_DEVICE_REASON_MIN = 0,
178     SUSPEND_DEVICE_REASON_APPLICATION = SUSPEND_DEVICE_REASON_MIN,
179     SUSPEND_DEVICE_REASON_DEVICE_ADMIN = 1,
180     SUSPEND_DEVICE_REASON_TIMEOUT = 2,
181     SUSPEND_DEVICE_REASON_LID = 3,
182     SUSPEND_DEVICE_REASON_POWER_KEY = 4,
183     SUSPEND_DEVICE_REASON_HDMI = 5,
184     SUSPEND_DEVICE_REASON_SLEEP_KEY = 6,
185     SUSPEND_DEVICE_REASON_ACCESSIBILITY = 7,
186     SUSPEND_DEVICE_REASON_FORCE_SUSPEND = 8,
187     SUSPEND_DEVICE_REASON_STR = 9,
188     SUSPEND_DEVICE_REASON_SWITCH = 10,
189     SUSPEND_DEVICE_LOW_CAPACITY = 11,
190     SUSPEND_DEVICE_REASON_TP_COVER = 12,
191     SUSPEND_DEVICE_REASON_EX_SCREEN_INIT = 13,
192     SUSPEND_DEVICE_SWITCH_SENSORHUB = 14,
193     SUSPEND_DEVICE_ROLLBACK_HIBERNATE = 15,
194     SUSPEND_DEVICE_START_DREAM = 16,
195     SUSPEND_DEVICE_REASON_MAX
196 };
197 
198 enum class InterfaceTimeoutType : uint32_t {
199     INTERFACE_TIMEOUT_TYPE_RUNNINGLOCK_LOCK = 0,
200     INTERFACE_TIMEOUT_TYPE_RUNNINGLOCK_UNLOCK = 1,
201     INTERFACE_TIMEOUT_TYPE_SETSTATE_ON = 2,
202     INTERFACE_TIMEOUT_TYPE_SETSTATE_OFF = 3,
203     INTERFACE_TIMEOUT_TYPE_MAX = 10,
204 };
205 
206 enum class StateChangeReason : uint32_t {
207     STATE_CHANGE_REASON_INIT = 0,
208     STATE_CHANGE_REASON_TIMEOUT = 1,
209     STATE_CHANGE_REASON_RUNNING_LOCK = 2,
210     STATE_CHANGE_REASON_BATTERY = 3,
211     STATE_CHANGE_REASON_THERMAL = 4,
212     STATE_CHANGE_REASON_WORK = 5,
213     STATE_CHANGE_REASON_SYSTEM = 6,
214     STATE_CHANGE_REASON_APPLICATION = 10,
215     STATE_CHANGE_REASON_SETTINGS = 11,
216     STATE_CHANGE_REASON_HARD_KEY = 12,
217     STATE_CHANGE_REASON_TOUCH = 13,
218     STATE_CHANGE_REASON_CABLE = 14,
219     STATE_CHANGE_REASON_SENSOR = 15,
220     STATE_CHANGE_REASON_LID = 16,
221     STATE_CHANGE_REASON_CAMERA = 17,
222     STATE_CHANGE_REASON_ACCESSIBILITY = 18,
223     STATE_CHANGE_REASON_RESET = 19,
224     STATE_CHANGE_REASON_POWER_KEY = 20,
225     STATE_CHANGE_REASON_KEYBOARD = 21,
226     STATE_CHANGE_REASON_MOUSE = 22,
227     STATE_CHANGE_REASON_DOUBLE_CLICK = 23,
228     STATE_CHANGE_REASON_SWITCH = 25,
229     STATE_CHANGE_REASON_PRE_BRIGHT = 26,
230     STATE_CHANGE_REASON_PRE_BRIGHT_AUTH_SUCCESS = 27,
231     STATE_CHANGE_REASON_PRE_BRIGHT_AUTH_FAIL_SCREEN_ON = 28,
232     STATE_CHANGE_REASON_PRE_BRIGHT_AUTH_FAIL_SCREEN_OFF = 29,
233     STATE_CHANGE_REASON_REFRESH = 30,
234     STATE_CHANGE_REASON_COORDINATION = 31,
235     STATE_CHANGE_REASON_PROXIMITY = 32,
236     STATE_CHANGE_REASON_INCOMING_CALL = 33,
237     STATE_CHANGE_REASON_SHELL = 34,
238     STATE_CHANGE_REASON_PICKUP = 35,
239 	STATE_CHANGE_REASON_AOD_SLIDING = 40,
240     STATE_CHANGE_REASON_PEN = 41,
241     STATE_CHANGE_REASON_SHUT_DOWN = 42,
242     STATE_CHANGE_REASON_SCREEN_CONNECT = 43,
243     STATE_CHANGE_REASON_SWITCHING_DOZE_MODE = 44,
244     STATE_CHANGE_REASON_HIBERNATE = 45,
245     STATE_CHANGE_REASON_EX_SCREEN_INIT = 46,
246     STATE_CHANGE_REASON_ABNORMAL_SCREEN_CONNECT = 47,
247     STATE_CHANGE_REASON_ROLLBACK_HIBERNATE = 48,
248     STATE_CHANGE_REASON_TENT_MODE = 49,
249     STATE_CHANGE_REASON_START_DREAM = 50,
250     STATE_CHANGE_REASON_END_DREAM = 51,
251     STATE_CHANGE_REASON_BLUETOOTH_INCOMING_CALL = 52,
252     STATE_CHANGE_REASON_REMOTE = 100,
253     STATE_CHANGE_REASON_TIMEOUT_NO_SCREEN_LOCK = 101,
254     STATE_CHANGE_REASON_EXIT_SYSTEM_STR = 102,
255     STATE_CHANGE_REASON_TP_TOUCH = 103,
256     STATE_CHANGE_REASON_TP_COVER = 104,
257     STATE_CHANGE_REASON_SWITCH_SENSORHUB = 105,
258     STATE_CHANGE_REASON_PLUG_CHANGE = 106,
259     STATE_CHANGE_REASON_UNKNOWN = 1000,
260 };
261 } // namespace PowerMgr
262 } // namespace OHOS
263 #endif // POWERMGR_POWER_STATE_MACHINE_INFO_H
264