1 /*
2  * Copyright (c) 2023-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 OHOS_CAMERA_DPS_BASIC_DEFINITIONS_H
17 #define OHOS_CAMERA_DPS_BASIC_DEFINITIONS_H
18 
19 #include <cstdint>
20 #include <string>
21 
22 namespace OHOS {
23 namespace CameraStandard {
24 namespace DeferredProcessing {
25 constexpr int32_t DEFAULT_OFFSET = 0;
26 constexpr int32_t TOTAL_PROCESS_TIME = 10 * 60 * 1000;
27 constexpr int32_t ONCE_PROCESS_TIME = 5 * 60 * 1000;
28 constexpr uint32_t DELAY_TIME = 1000;
29 const std::string PATH = "/data/service/el1/public/camera_service/";
30 const std::string TEMP_TAG = "_vid_temp";
31 const std::string OUT_TAG = "_vid";
32 
33 enum EventType : int32_t {
34     CAMERA_SESSION_STATUS_EVENT = 1,
35     HDI_STATUS_EVENT,
36     MEDIA_LIBRARY_STATUS_EVENT,
37     SCREEN_STATUS_EVENT,
38     CHARGING_STATUS_EVENT,
39     BATTERY_STATUS_EVENT,
40     BATTERY_LEVEL_STATUS_EVENT,
41     THERMAL_LEVEL_STATUS_EVENT,
42     PHOTO_PROCESS_STATUS_EVENT,
43     SYSTEM_PRESSURE_LEVEL_EVENT,
44     USER_INITIATED_EVENT,
45     AVAILABLE_CONCURRENT_EVENT,
46 };
47 
48 enum CameraSessionStatus : int32_t {
49     SYSTEM_CAMERA_OPEN = 0,
50     NORMAL_CAMERA_OPEN,
51     SYSTEM_CAMERA_CLOSED,
52     NORMAL_CAMERA_CLOSED
53 };
54 
55 enum HdiStatus : int32_t {
56     HDI_DISCONNECTED = 0,
57     HDI_READY,
58     HDI_READY_SPACE_LIMIT_REACHED,
59     HDI_NOT_READY_PREEMPTED,
60     HDI_NOT_READY_OVERHEAT,
61     HDI_NOT_READY_TEMPORARILY
62 };
63 
64 enum MediaLibraryStatus : int32_t {
65     MEDIA_LIBRARY_DISCONNECTED = 0,
66     MEDIA_LIBRARY_AVAILABLE,
67 };
68 
69 enum ScreenStatus : int32_t {
70     SCREEN_ON = 0,
71     SCREEN_OFF,
72 };
73 
74 enum ChargingStatus : int32_t {
75     DISCHARGING = 0,
76     CHARGING,
77 };
78 
79 enum BatteryStatus : int32_t {
80     BATTERY_LOW = 0,
81     BATTERY_OKAY,
82 };
83 
84 enum BatteryLevel : int32_t {
85     BATTERY_LEVEL_LOW = 0, // <= 50
86     BATTERY_LEVEL_OKAY,
87 };
88 
89 enum PhotoProcessStatus : int32_t {
90     BUSY = 0, // > 0
91     IDLE,
92 };
93 
94 enum ThermalLevel : int32_t {
95     LEVEL_0 = 0,
96     LEVEL_1,
97     LEVEL_2,
98     LEVEL_3,
99     LEVEL_4,
100     LEVEL_5,
101     LEVEL_6,
102     LEVEL_7
103 };
104 
105 enum VideoThermalLevel : int8_t {
106     HOT = 0,
107     COOL
108 };
109 
110 enum SystemPressureLevel : int32_t {
111     NOMINAL = 0,
112     FAIR,
113     SEVERE
114 };
115 
116 enum TrigerMode : int32_t {
117     TRIGER_ACTIVE = 0,
118     TRIGER_PASSIVE = 1,
119 };
120 
121 enum ExceptionCause : int32_t {
122     HDI_SERVICE_DIED = 0,
123     HDI_JPEG_ERROR,
124     HDI_NOT_HANDLE,
125     HDI_TIMEOUT,
126     HDI_TEMPORARILY_UNAVAILABLE,
127     MEDIA_RECODER_EXCEPTION,
128     MEDIA_NOT_ADDIMAGE,
129     DEFPROCESS_INSUFFICIENT_RESOURCES,
130     DEFPROCESS_IMAGE_TIMEOUT,
131     DEFPROCESS_NOT_INIT,
132 };
133 
134 enum ExceptionSource: int32_t {
135     HDI_EXCEPTION = 0,
136     APP_EXCEPTION,
137     DEFPROCESS_EXCEPTION,
138 };
139 
140 enum DpsError : int32_t {
141     DPS_ERROR_UNKNOW = -1,
142     // session specific error code
143     DPS_ERROR_SESSION_SYNC_NEEDED = 0,
144     DPS_ERROR_SESSION_NOT_READY_TEMPORARILY = 1,
145 
146     // process error code
147     DPS_ERROR_IMAGE_PROC_INVALID_PHOTO_ID = 2,
148     DPS_ERROR_IMAGE_PROC_FAILED = 3,
149     DPS_ERROR_IMAGE_PROC_TIMEOUT = 4,
150     DPS_ERROR_IMAGE_PROC_HIGH_TEMPERATURE = 5,
151     DPS_ERROR_IMAGE_PROC_ABNORMAL = 6,
152     DPS_ERROR_IMAGE_PROC_INTERRUPTED = 7,
153 
154     DPS_ERROR_VIDEO_PROC_INVALID_VIDEO_ID = 8,
155     DPS_ERROR_VIDEO_PROC_FAILED = 9,
156     DPS_ERROR_VIDEO_PROC_TIMEOUT = 10,
157     DPS_ERROR_VIDEO_PROC_INTERRUPTED = 11,
158 };
159 
160 enum DpsStatus : int32_t {
161     DPS_SESSION_STATE_IDLE = 0,
162     DPS_SESSION_STATE_RUNNALBE,
163     DPS_SESSION_STATE_RUNNING,
164     DPS_SESSION_STATE_SUSPENDED
165 };
166 
167 enum SessionType : int32_t {
168     PHOTO_SESSION = 0,
169     VDIIDEO_SESSION
170 };
171 
172 enum ExecutionMode {
173     HIGH_PERFORMANCE = 0,
174     LOAD_BALANCE,
175     LOW_POWER,
176     DUMMY
177 };
178 
179 enum ScheduleType : int32_t {
180     REMOVE = -1,
181     TRAILING_STATE = 0,
182     CAMERA_STATE,
183     HDI_STATE,
184     MEDIA_LIBRARY_STATE,
185     SCREEN_STATE,
186     CHARGING_STATE,
187     BATTERY_STATE,
188     BATTERY_LEVEL_STATE,
189     THERMAL_LEVEL_STATE,
190     PHOTO_PROCESS_STATE,
191     NORMAL_TIME_STATE
192 };
193 
194 enum MediaManagerError : int32_t {
195     ERROR_NO_INITED = -2,
196     ERROR_FAIL = -1,
197     OK = 0,
198     EOS = 1,
199     RECOVER_EOS = 2,
200     PAUSE_RECEIVED = 3,
201     PAUSE_ABNORMAL = 4
202 };
203 
204 enum MediaResult : int32_t {
205     FAIL = -1,
206     SUCCESS = 0,
207     PAUSE = 1
208 };
209 
210 SystemPressureLevel MapEventThermalLevel(int32_t level);
211 
212 } // namespace DeferredProcessing
213 } // namespace CameraStandard
214 } // namespace OHOS
215 #endif // OHOS_CAMERA_DPS_BASIC_DEFINITIONS_H
216