1 /* 2 * Copyright (c) 2021-2022 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_LOG_H 17 #define OHOS_CAMERA_LOG_H 18 19 #include <stdio.h> 20 21 #include "hilog/log.h" 22 #include "hisysevent.h" 23 #include "hitrace_meter.h" 24 25 #undef LOG_DOMAIN 26 #undef LOG_TAG 27 #define LOG_DOMAIN 0xD002B00 28 #define LOG_TAG "CAMERA" 29 #define MAX_STRING_SIZE 256 30 31 #define __FILENAME__ (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__) 32 33 #define DECORATOR_HILOG(op, fmt, args...) \ 34 do { \ 35 op(LOG_CORE, "{%{public}s()-%{public}s:%{public}d} " fmt, __FUNCTION__, __FILENAME__, __LINE__, ##args); \ 36 } while (0) 37 38 #define MEDIA_DEBUG_LOG(fmt, ...) DECORATOR_HILOG(HILOG_DEBUG, fmt, ##__VA_ARGS__) 39 #define MEDIA_ERR_LOG(fmt, ...) DECORATOR_HILOG(HILOG_ERROR, fmt, ##__VA_ARGS__) 40 #define MEDIA_WARNING_LOG(fmt, ...) DECORATOR_HILOG(HILOG_WARN, fmt, ##__VA_ARGS__) 41 #define MEDIA_INFO_LOG(fmt, ...) DECORATOR_HILOG(HILOG_INFO, fmt, ##__VA_ARGS__) 42 #define MEDIA_FATAL_LOG(fmt, ...) DECORATOR_HILOG(HILOG_FATAL, fmt, ##__VA_ARGS__) 43 44 #define MEDIA_OK 0 45 #define MEDIA_INVALID_PARAM (-1) 46 #define MEDIA_INIT_FAIL (-2) 47 #define MEDIA_ERR (-3) 48 #define MEDIA_PERMISSION_DENIED (-4) 49 50 #define CHECK_AND_RETURN_RET_LOG(cond, ret, fmt, ...) \ 51 do { \ 52 if (!(cond)) { \ 53 MEDIA_ERR_LOG(fmt, ##__VA_ARGS__); \ 54 return ret; \ 55 } \ 56 } while (0) 57 58 #define CHECK_AND_RETURN_LOG(cond, fmt, ...) \ 59 do { \ 60 if (!(cond)) { \ 61 MEDIA_ERR_LOG(fmt, ##__VA_ARGS__); \ 62 return; \ 63 } \ 64 } while (0) 65 66 #define CHECK_AND_PRINT_LOG(cond, fmt, ...) \ 67 do { \ 68 if (!(cond)) { \ 69 MEDIA_ERR_LOG(fmt, ##__VA_ARGS__); \ 70 } \ 71 } while (0) 72 73 #define CHECK_AND_RETURN_RET(cond, ret) \ 74 do { \ 75 if (!(cond)) { \ 76 return ret; \ 77 } \ 78 } while (0) 79 80 #define POINTER_MASK 0x00FFFFFF 81 82 #define CAMERA_SYNC_TRACE HITRACE_METER_NAME(HITRACE_TAG_ZCAMERA, __PRETTY_FUNCTION__) 83 84 #define CAMERA_SYSEVENT_STATISTIC(str) \ 85 do { \ 86 HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::CAMERA, "CAMERA_STATISTIC", \ 87 HiviewDFX::HiSysEvent::EventType::STATISTIC, \ 88 "MSG", str); \ 89 } while (0) 90 91 #define CAMERA_SYSEVENT_SECURITY(str) \ 92 do { \ 93 HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::CAMERA, "CAMERA_SECURITY", \ 94 HiviewDFX::HiSysEvent::EventType::SECURITY, \ 95 "MSG", str); \ 96 } while (0) 97 98 #define CAMERA_SYSEVENT_BEHAVIOR(str) \ 99 do { \ 100 HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::CAMERA, "CAMERA_STATE", \ 101 HiviewDFX::HiSysEvent::EventType::BEHAVIOR, \ 102 "MSG", str); \ 103 } while (0) 104 105 #define CAMERA_SYSEVENT_FAULT(str) \ 106 do { \ 107 HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::CAMERA, "CAMERA_ERR", \ 108 HiviewDFX::HiSysEvent::EventType::FAULT, \ 109 "MSG", str); \ 110 } while (0) 111 112 #define POWERMGR_SYSEVENT_CAMERA_CONNECT(pid, uid, camid, name) \ 113 do { \ 114 HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::CAMERA, "CAMERA_CONNECT", \ 115 HiviewDFX::HiSysEvent::EventType::STATISTIC, \ 116 "PID", pid, "UID", uid, "ID", camid, \ 117 "NAME", name); \ 118 } while (0) 119 120 #define POWERMGR_SYSEVENT_CAMERA_DISCONNECT(camid) \ 121 do { \ 122 HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::CAMERA, \ 123 "CAMERA_DISCONNECT", \ 124 HiviewDFX::HiSysEvent::EventType::STATISTIC, \ 125 "ID", camid); \ 126 } while (0) 127 128 #define POWERMGR_SYSEVENT_TORCH_STATE(pid, uid, status) \ 129 do { \ 130 HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::CAMERA, "TORCH_STATE", \ 131 HiviewDFX::HiSysEvent::EventType::STATISTIC, \ 132 "PID", pid, "UID", uid, "STATE", status); \ 133 } while (0) 134 135 #define POWERMGR_SYSEVENT_CAMERA_CONFIG(type, width, height) \ 136 do { \ 137 HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::CAMERA, "CAMERA_CONFIG", \ 138 HiviewDFX::HiSysEvent::EventType::STATISTIC, \ 139 "TYPE", #type, "WIDTH", width, "HEIGHT", height); \ 140 } while (0) 141 142 #define POWERMGR_SYSEVENT_FLASH_ON() \ 143 do { \ 144 HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::CAMERA, "FLASHLIGHT_ON", \ 145 HiviewDFX::HiSysEvent::EventType::STATISTIC); \ 146 } while (0) 147 148 #define POWERMGR_SYSEVENT_FLASH_OFF() \ 149 do { \ 150 HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::CAMERA, "FLASHLIGHT_OFF", \ 151 HiviewDFX::HiSysEvent::EventType::STATISTIC); \ 152 } while (0) 153 154 #define CAMERA_START_ASYNC_TRACE(str, taskId) \ 155 do { \ 156 StartAsyncTrace(HITRACE_TAG_ZCAMERA, str, taskId, -1); \ 157 } while (0) 158 159 #define CAMERA_FINISH_ASYNC_TRACE(str, taskId) \ 160 do { \ 161 FinishAsyncTrace(HITRACE_TAG_ZCAMERA, str, taskId); \ 162 } while (0) 163 164 #endif // OHOS_CAMERA_LOG_H 165