1 /* 2 * Copyright (c) 2023-2025 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 21 #include "ideferred_photo_processing_session_callback.h" 22 #include "v1_4/types.h" 23 24 namespace OHOS { 25 namespace CameraStandard { 26 namespace DeferredProcessing { 27 constexpr int32_t DEFAULT_COUNT = 0; 28 constexpr int64_t DEFAULT_OFFSET = 0; 29 constexpr uint32_t INVALID_TIMERID = 0; 30 constexpr uint32_t DEFAULT_TRAILING_TIME = 0; 31 constexpr int32_t TOTAL_PROCESS_TIME = 10 * 60 * 1000; 32 constexpr int32_t ONCE_PROCESS_TIME = 5 * 60 * 1000; 33 constexpr uint32_t DELAY_TIME = 1000; 34 constexpr int32_t INVALID_TRACK_ID = -1; 35 const std::string PATH = "/data/service/el1/public/camera_service/"; 36 const std::string TEMP_TAG = "_vid_temp"; 37 const std::string OUT_TAG = "_vid"; 38 39 enum EventType : int32_t { 40 CAMERA_SESSION_STATUS_EVENT = 1, 41 PHOTO_HDI_STATUS_EVENT, 42 VIDEO_HDI_STATUS_EVENT, 43 MEDIA_LIBRARY_STATUS_EVENT, 44 SCREEN_STATUS_EVENT, 45 CHARGING_STATUS_EVENT, 46 BATTERY_STATUS_EVENT, 47 BATTERY_LEVEL_STATUS_EVENT, 48 THERMAL_LEVEL_STATUS_EVENT, 49 PHOTO_PROCESS_STATUS_EVENT, 50 TRAILING_STATUS_EVENT, 51 USER_INITIATED_EVENT, 52 AVAILABLE_CONCURRENT_EVENT, 53 }; 54 55 enum CameraSessionStatus : int32_t { 56 SYSTEM_CAMERA_OPEN = 0, 57 NORMAL_CAMERA_OPEN, 58 SYSTEM_CAMERA_CLOSED, 59 NORMAL_CAMERA_CLOSED 60 }; 61 62 enum HdiStatus : int32_t { 63 HDI_DISCONNECTED = 0, 64 HDI_READY, 65 HDI_READY_SPACE_LIMIT_REACHED, 66 HDI_NOT_READY_PREEMPTED, 67 HDI_NOT_READY_OVERHEAT, 68 HDI_NOT_READY_TEMPORARILY 69 }; 70 71 enum MediaLibraryStatus : int32_t { 72 MEDIA_LIBRARY_DISCONNECTED = 0, 73 MEDIA_LIBRARY_AVAILABLE, 74 }; 75 76 enum ScreenStatus : int32_t { 77 SCREEN_ON = 0, 78 SCREEN_OFF, 79 }; 80 81 enum ChargingStatus : int32_t { 82 DISCHARGING = 0, 83 CHARGING, 84 }; 85 86 enum BatteryStatus : int32_t { 87 BATTERY_LOW = 0, 88 BATTERY_OKAY, 89 }; 90 91 enum BatteryLevel : int32_t { 92 BATTERY_LEVEL_LOW = 0, // <= 50 93 BATTERY_LEVEL_OKAY, 94 }; 95 96 enum PhotoProcessStatus : int32_t { 97 BUSY = 0, // > 0 98 IDLE, 99 }; 100 101 enum ThermalLevel : int32_t { 102 LEVEL_0 = 0, 103 LEVEL_1, 104 LEVEL_2, 105 LEVEL_3, 106 LEVEL_4, 107 LEVEL_5, 108 LEVEL_6, 109 LEVEL_7 110 }; 111 112 enum VideoThermalLevel : int8_t { 113 HOT = 0, 114 COOL 115 }; 116 117 enum SystemPressureLevel : int32_t { 118 NOMINAL = 0, 119 FAIR, 120 SEVERE 121 }; 122 123 enum TrailingStatus : int32_t { 124 CAMERA_ON_STOP_TRAILING = 0, 125 SYSTEM_CAMERA_OFF_START_TRAILING, 126 NORMAL_CAMERA_OFF_START_TRAILING 127 }; 128 129 enum TrigerMode : int32_t { 130 TRIGER_ACTIVE = 0, 131 TRIGER_PASSIVE = 1, 132 }; 133 134 enum ExceptionCause : int32_t { 135 HDI_SERVICE_DIED = 0, 136 HDI_JPEG_ERROR, 137 HDI_NOT_HANDLE, 138 HDI_TIMEOUT, 139 HDI_TEMPORARILY_UNAVAILABLE, 140 MEDIA_RECODER_EXCEPTION, 141 MEDIA_NOT_ADDIMAGE, 142 DEFPROCESS_INSUFFICIENT_RESOURCES, 143 DEFPROCESS_IMAGE_TIMEOUT, 144 DEFPROCESS_NOT_INIT, 145 }; 146 147 enum ExceptionSource: int32_t { 148 HDI_EXCEPTION = 0, 149 APP_EXCEPTION, 150 DEFPROCESS_EXCEPTION, 151 }; 152 153 enum DpsError : int32_t { 154 DPS_ERROR_UNKNOW = -1, 155 DPS_NO_ERROR = 0, 156 // session specific error code 157 DPS_ERROR_SESSION_SYNC_NEEDED = 1, 158 DPS_ERROR_SESSION_NOT_READY_TEMPORARILY = 2, 159 160 // process error code 161 DPS_ERROR_IMAGE_PROC_INVALID_PHOTO_ID = 3, 162 DPS_ERROR_IMAGE_PROC_FAILED = 4, 163 DPS_ERROR_IMAGE_PROC_TIMEOUT = 5, 164 DPS_ERROR_IMAGE_PROC_HIGH_TEMPERATURE = 6, 165 DPS_ERROR_IMAGE_PROC_ABNORMAL = 7, 166 DPS_ERROR_IMAGE_PROC_INTERRUPTED = 8, 167 168 DPS_ERROR_VIDEO_PROC_INVALID_VIDEO_ID = 9, 169 DPS_ERROR_VIDEO_PROC_FAILED = 10, 170 DPS_ERROR_VIDEO_PROC_TIMEOUT = 11, 171 DPS_ERROR_VIDEO_PROC_INTERRUPTED = 12, 172 }; 173 174 enum DpsStatus : int32_t { 175 DPS_SESSION_STATE_IDLE = 0, 176 DPS_SESSION_STATE_RUNNABLE, 177 DPS_SESSION_STATE_RUNNING, 178 DPS_SESSION_STATE_SUSPENDED, 179 DPS_SESSION_STATE_PREEMPTED 180 }; 181 182 enum SessionType : int32_t { 183 PHOTO_SESSION = 0, 184 VIDEO_SESSION 185 }; 186 187 enum ExecutionMode { 188 HIGH_PERFORMANCE = 0, 189 LOAD_BALANCE, 190 LOW_POWER, 191 DUMMY 192 }; 193 194 enum SchedulerType : int32_t { 195 REMOVE = -1, 196 PHOTO_TRAILING_STATE = 0, 197 PHOTO_CAMERA_STATE, 198 PHOTO_HAL_STATE, 199 PHOTO_MEDIA_LIBRARY_STATE, 200 PHOTO_THERMAL_LEVEL_STATE, 201 VIDEO_CAMERA_STATE, 202 VIDEO_HAL_STATE, 203 VIDEO_MEDIA_LIBRARY_STATE, 204 VIDEO_THERMAL_LEVEL_STATE, 205 SCREEN_STATE, 206 CHARGING_STATE, 207 BATTERY_STATE, 208 BATTERY_LEVEL_STATE, 209 PHOTO_PROCESS_STATE, 210 NORMAL_TIME_STATE 211 }; 212 213 enum MediaManagerError : int32_t { 214 ERROR_DEBUG_INFO = -2, 215 ERROR_FAIL = -1, 216 OK = 0, 217 EOS = 1, 218 RECOVER_EOS = 2, 219 PAUSE_RECEIVED = 3, 220 PAUSE_ABNORMAL = 4 221 }; 222 223 enum MediaResult : int32_t { 224 FAIL = -1, 225 SUCCESS = 0, 226 PAUSE = 1 227 }; 228 229 enum class CallbackType { 230 NONE = -1, 231 IMAGE_PROCESS_DONE = 0, 232 IMAGE_PROCESS_YUV_DONE, 233 IMAGE_ERROR, 234 ON_STATE_CHANGED, 235 VIDEO_PROCESS_DONE, 236 VIDEO_ERROR 237 }; 238 239 enum class JobState { 240 PENDING = 0, 241 FAILED, 242 RUNNING, 243 COMPLETED, 244 ERROR, 245 NONE 246 }; 247 248 enum class JobPriority { 249 LOW = 0, 250 NORMAL, 251 HIGH, 252 NONE 253 }; 254 255 enum class PhotoJobType { 256 BACKGROUND = 0, 257 OFFLINE 258 }; 259 260 ErrorCode MapDpsErrorCode(DpsError errorCode); 261 StatusCode MapDpsStatus(DpsStatus statusCode); 262 DpsError MapHdiError(HDI::Camera::V1_2::ErrorCode errorCode); 263 HdiStatus MapHdiStatus(HDI::Camera::V1_2::SessionStatus statusCode); 264 HDI::Camera::V1_2::ExecutionMode MapToHdiExecutionMode(ExecutionMode executionMode); 265 SystemPressureLevel ConvertPhotoThermalLevel(int32_t level); 266 VideoThermalLevel ConvertVideoThermalLevel(int32_t level); 267 } // namespace DeferredProcessing 268 } // namespace CameraStandard 269 } // namespace OHOS 270 #endif // OHOS_CAMERA_DPS_BASIC_DEFINITIONS_H 271