diff options
author | Chris Robinson <[email protected]> | 2018-01-11 20:17:02 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2018-01-11 20:17:02 -0800 |
commit | 370817ba604954418b1d0e03daa11b1d55614e2e (patch) | |
tree | cb51d95bfa0bc5429ef354885750a159a0ecd829 /Alc/logging.h | |
parent | 2873abcbc056ca2123382b2b1e08b8bd94d608a4 (diff) |
Move logging declarations to a separate header
Diffstat (limited to 'Alc/logging.h')
-rw-r--r-- | Alc/logging.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Alc/logging.h b/Alc/logging.h new file mode 100644 index 00000000..18093b75 --- /dev/null +++ b/Alc/logging.h @@ -0,0 +1,61 @@ +#ifndef LOGGING_H +#define LOGGING_H + +#include <stdio.h> + + +#ifdef __GNUC__ +#define DECL_FORMAT(x, y, z) __attribute__((format(x, (y), (z)))) +#else +#define DECL_FORMAT(x, y, z) +#endif + +extern FILE *LogFile; + +#if defined(__GNUC__) && !defined(_WIN32) +#define AL_PRINT(T, MSG, ...) fprintf(LogFile, "AL lib: %s %s: "MSG, T, __FUNCTION__ , ## __VA_ARGS__) +#else +void al_print(const char *type, const char *func, const char *fmt, ...) DECL_FORMAT(printf, 3,4); +#define AL_PRINT(T, ...) al_print((T), __FUNCTION__, __VA_ARGS__) +#endif + +#ifdef __ANDROID__ +#include <android/log.h> +#define LOG_ANDROID(T, MSG, ...) __android_log_print(T, "openal", "AL lib: %s: "MSG, __FUNCTION__ , ## __VA_ARGS__) +#else +#define LOG_ANDROID(T, MSG, ...) ((void)0) +#endif + +enum LogLevel { + NoLog, + LogError, + LogWarning, + LogTrace, + LogRef +}; +extern enum LogLevel LogLevel; + +#define TRACEREF(...) do { \ + if(LogLevel >= LogRef) \ + AL_PRINT("(--)", __VA_ARGS__); \ +} while(0) + +#define TRACE(...) do { \ + if(LogLevel >= LogTrace) \ + AL_PRINT("(II)", __VA_ARGS__); \ + LOG_ANDROID(ANDROID_LOG_DEBUG, __VA_ARGS__); \ +} while(0) + +#define WARN(...) do { \ + if(LogLevel >= LogWarning) \ + AL_PRINT("(WW)", __VA_ARGS__); \ + LOG_ANDROID(ANDROID_LOG_WARN, __VA_ARGS__); \ +} while(0) + +#define ERR(...) do { \ + if(LogLevel >= LogError) \ + AL_PRINT("(EE)", __VA_ARGS__); \ + LOG_ANDROID(ANDROID_LOG_ERROR, __VA_ARGS__); \ +} while(0) + +#endif /* LOGGING_H */ |