6 #include "opthelpers.h"
18 #define DECL_FORMAT(x, y, z) __attribute__((format(x, (y), (z))))
20 #define DECL_FORMAT(x, y, z)
24 extern FILE *gLogFile
;
26 constexpr inline const char *CurrentPrefix() noexcept
{ return ""; }
27 #if defined(__GNUC__) && !defined(_WIN32)
28 #define AL_PRINT(T, MSG, ...) fprintf(gLogFile, "AL lib: %s %s%s: " MSG, T, CurrentPrefix(), __FUNCTION__ , ## __VA_ARGS__)
30 void al_print(const char *type
, const char *prefix
, const char *func
, const char *fmt
, ...) DECL_FORMAT(printf
, 4,5);
31 #define AL_PRINT(T, ...) al_print((T), CurrentPrefix(), __FUNCTION__, __VA_ARGS__)
35 #include <android/log.h>
36 #define LOG_ANDROID(T, MSG, ...) __android_log_print(T, "openal", "AL lib: %s%s: " MSG, CurrentPrefix(), __FUNCTION__ , ## __VA_ARGS__)
38 #define LOG_ANDROID(T, MSG, ...) ((void)0)
48 extern LogLevel gLogLevel
;
50 #define TRACEREF(...) do { \
51 if(UNLIKELY(gLogLevel >= LogRef)) \
52 AL_PRINT("(--)", __VA_ARGS__); \
55 #define TRACE(...) do { \
56 if(UNLIKELY(gLogLevel >= LogTrace)) \
57 AL_PRINT("(II)", __VA_ARGS__); \
58 LOG_ANDROID(ANDROID_LOG_DEBUG, __VA_ARGS__); \
61 #define WARN(...) do { \
62 if(UNLIKELY(gLogLevel >= LogWarning)) \
63 AL_PRINT("(WW)", __VA_ARGS__); \
64 LOG_ANDROID(ANDROID_LOG_WARN, __VA_ARGS__); \
67 #define ERR(...) do { \
68 if(UNLIKELY(gLogLevel >= LogError)) \
69 AL_PRINT("(EE)", __VA_ARGS__); \
70 LOG_ANDROID(ANDROID_LOG_ERROR, __VA_ARGS__); \
73 #endif /* LOGGING_H */