Initial version of libomxil-e3250-v4l2
[platform/adaptation/ap_samsung/libomxil-e3250-v4l2.git] / openmax / osal / Exynos_OSAL_Log.c
1 /*
2  *
3  * Copyright 2012 Samsung Electronics S.LSI Co. LTD
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 /*
19  * @file        Exynos_OSAL_Log.c
20  * @brief
21  * @author      Yunji Kim (yunji.kim@samsung.com)
22  * @version     2.0.0
23  * @history
24  *   2012.02.20 : Create
25  */
26 #ifndef SLP_PLATFORM /* build env */
27 #include <utils/Log.h>
28 #else
29 #ifdef USE_DLOG
30 #include <dlog.h>
31 #define DLOG_TAG "OMX_LOG"
32 #endif
33 #include <stdlib.h>
34 #include <stdarg.h>
35 #endif
36
37 #include "Exynos_OSAL_Log.h"
38
39 #ifdef SLP_PLATFORM /* build env */
40 static int component_debug_level = -1;
41 #endif
42
43 void _Exynos_OSAL_Log(EXYNOS_LOG_LEVEL logLevel, const char *tag, const char *msg, ...)
44 {
45 #ifndef SLP_PLATFORM
46     va_list argptr;
47
48     va_start(argptr, msg);
49
50     switch (logLevel) {
51     case EXYNOS_LOG_TRACE:
52         __android_log_vprint(ANDROID_LOG_DEBUG, tag, msg, argptr);
53         break;
54     case EXYNOS_LOG_INFO:
55         __android_log_vprint(ANDROID_LOG_INFO, tag, msg, argptr);
56         break;
57     case EXYNOS_LOG_WARNING:
58         __android_log_vprint(ANDROID_LOG_WARN, tag, msg, argptr);
59         break;
60     case EXYNOS_LOG_ERROR:
61         __android_log_vprint(ANDROID_LOG_ERROR, tag, msg, argptr);
62         break;
63     default:
64         __android_log_vprint(ANDROID_LOG_VERBOSE, tag, msg, argptr);
65     }
66
67     va_end(argptr);
68 #else
69 #ifdef USE_DLOG
70     va_list argptr;
71
72     if (component_debug_level < 0) {
73         component_debug_level = getenv("OMX_DEBUG") ? atoi(getenv("OMX_DEBUG")) : OMX_DEBUG_LEVEL;
74     } else {
75         if ((int)logLevel < component_debug_level) return;
76     }
77
78     va_start(argptr, msg);
79
80     switch (logLevel) {
81     case EXYNOS_LOG_VERVOSE:
82     case EXYNOS_LOG_TRACE:
83         SLOG_VA (LOG_DEBUG, DLOG_TAG, msg, argptr);
84         break;
85     case EXYNOS_LOG_INFO:
86         SLOG_VA (LOG_INFO, DLOG_TAG, msg, argptr);
87         break;
88     case EXYNOS_LOG_WARNING:
89         SLOG_VA (LOG_WARN, DLOG_TAG, msg, argptr);
90         break;
91     case EXYNOS_LOG_ERROR:
92         SLOG_VA (LOG_ERROR, DLOG_TAG, msg, argptr);
93         break;
94     default:
95         SLOG_VA (LOG_DEBUG, DLOG_TAG, msg, argptr);
96         break;
97     }
98
99     va_end(argptr);
100 #else
101     va_list argptr;
102
103     if (component_debug_level < 0) {
104         component_debug_level = getenv("OMX_DEBUG") ? atoi(getenv("OMX_DEBUG")) : OMX_DEBUG_LEVEL;
105     } else {
106         if ((int)logLevel < component_debug_level) return;
107     }
108
109     va_start(argptr, msg);
110     vprintf(msg, argptr);
111     va_end(argptr);
112     printf("\n");
113 #endif
114 #endif
115 }