1 /*
2  * Copyright (c) 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_DAUDIO_LOG_H
17 #define OHOS_DAUDIO_LOG_H
18 
19 #include <cstring>
20 #include <cinttypes>
21 
22 #include "hilog/log.h"
23 
24 namespace OHOS {
25 namespace DistributedHardware {
26 #undef LOG_TAG
27 #define LOG_TAG "DAUDIO"
28 
29 typedef enum {
30     DH_LOG_DEBUG,
31     DH_LOG_INFO,
32     DH_LOG_WARN,
33     DH_LOG_ERROR,
34 } DHLogLevel;
35 
36 void DHLog(DHLogLevel logLevel, const char *fmt, ...);
37 
38 #define DHLOGD(fmt, ...) HILOG_DEBUG(LOG_CORE, \
39     "[%{public}s][%{public}s]:" fmt, DH_LOG_TAG, __FUNCTION__, ##__VA_ARGS__)
40 
41 #define DHLOGI(fmt, ...) HILOG_INFO(LOG_CORE, \
42     "[%{public}s][%{public}s]:" fmt, DH_LOG_TAG, __FUNCTION__, ##__VA_ARGS__)
43 
44 #define DHLOGW(fmt, ...) HILOG_WARN(LOG_CORE, \
45     "[%{public}s][%{public}s]:" fmt, DH_LOG_TAG, __FUNCTION__, ##__VA_ARGS__)
46 
47 #define DHLOGE(fmt, ...) HILOG_ERROR(LOG_CORE, \
48     "[%{public}s][%{public}s]:" fmt, DH_LOG_TAG, __FUNCTION__, ##__VA_ARGS__)
49 
50 #define CHECK_NULL_RETURN(ptr, ret)             \
51     do {                                        \
52         if ((ptr) == nullptr) {                 \
53             DHLOGE("Address pointer is null");  \
54             return (ret);                       \
55         }                                       \
56     } while (0)
57 } // Distributedaudio
58 } // OHOS
59 #endif
60