5 #include "../porting/ma_misc.h"
8 #define MA_TAG_FILE __FILE__ ":" MA_STRINGIZE(__LINE__)
9 #define MA_TAG (strrchr(MA_TAG_FILE, '/') ? strrchr(MA_TAG_FILE, '/') + 1 : MA_TAG_FILE)
14 #define MA_DEBUG_COLOR_RED "\033[31m"
15 #define MA_DEBUG_COLOR_GREEN "\033[32m"
16 #define MA_DEBUG_COLOR_YELLOW "\033[33m"
17 #define MA_DEBUG_COLOR_BLUE "\033[34m"
18 #define MA_DEBUG_COLOR_MAGENTA "\033[35m"
19 #define MA_DEBUG_COLOR_CYAN "\033[36m"
20 #define MA_DEBUG_COLOR_RESET "\033[0m"
22 #if MA_USE_DEBUG_MORE_INFO
23 #define MA_DEBUG_MORE_INFO(TAG) ma_printf("%s[%d] (%ld): ", TAG, __LINE__, ma_get_time_ms());
25 #define MA_DEBUG_MORE_INFO(TAG)
28 #if MA_DEBUG_LEVEL >= 1
30 #define MA_LOGE(TAG, ...) \
32 ma_printf(MA_DEBUG_COLOR_RED "E "); \
33 MA_DEBUG_MORE_INFO(TAG); \
34 ma_printf(__VA_ARGS__); \
35 ma_printf(MA_DEBUG_COLOR_RESET "\r\n"); \
42 #define MA_LOGE(TAG, ...)
45 #if MA_DEBUG_LEVEL >= 2
47 #define MA_LOGW(TAG, ...) \
49 ma_printf(MA_DEBUG_COLOR_YELLOW "W "); \
50 MA_DEBUG_MORE_INFO(TAG); \
51 ma_printf(__VA_ARGS__); \
52 ma_printf(MA_DEBUG_COLOR_RESET "\r\n"); \
59 #define MA_LOGW(TAG, ...)
61 #if MA_DEBUG_LEVEL >= 3
63 #define MA_LOGI(TAG, ...) \
65 ma_printf(MA_DEBUG_COLOR_GREEN "I "); \
66 MA_DEBUG_MORE_INFO(TAG); \
67 ma_printf(__VA_ARGS__); \
68 ma_printf(MA_DEBUG_COLOR_RESET "\r\n"); \
75 #define MA_LOGI(TAG, ...)
77 #if MA_DEBUG_LEVEL >= 4
79 #define MA_LOGD(TAG, ...) \
81 ma_printf(MA_DEBUG_COLOR_BLUE "D "); \
82 MA_DEBUG_MORE_INFO(TAG); \
83 ma_printf(__VA_ARGS__); \
84 ma_printf(MA_DEBUG_COLOR_RESET "\r\n"); \
91 #define MA_LOGD(TAG, ...)
93 #if MA_DEBUG_LEVEL >= 5
95 #define MA_LOGV(TAG, ...) \
97 ma_printf(MA_DEBUG_COLOR_MAGENTA "V "); \
98 MA_DEBUG_MORE_INFO(TAG); \
99 ma_printf(__VA_ARGS__); \
100 ma_printf(MA_DEBUG_COLOR_RESET "\r\n"); \
107 #define MA_LOGV(TAG, ...)
110 #define MA_ELOG(TAG, ...)
111 #define MA_LOGW(TAG, ...)
112 #define MA_LOGI(TAG, ...)
113 #define MA_LOGD(TAG, ...)
114 #define MA_LOGV(TAG, ...)
119 #define MA_ASSERT(expr) \
122 ma_printf(MA_DEBUG_COLOR_MAGENTA "E "); \
123 MA_DEBUG_MORE_INFO("ASSERT"); \
124 ma_printf("Failed assertion '%s'", #expr); \
125 ma_printf(MA_DEBUG_COLOR_RESET "\r\n"); \
136 #define MA_ASSERT(expr)
139 #ifndef MA_USE_STATIC_ASSERT
140 #ifdef MA_STATIC_ASSERT
141 #undef MA_STATIC_ASSERT
142 #define MA_STATIC_ASSERT(expr, msg)