8 #define DECL_FORMAT(x, y, z) __attribute__((format(x, (y), (z))))
10 #define DECL_FORMAT(x, y, z)
15 #if defined(__GNUC__) && !defined(_WIN32)
16 #define AL_PRINT(T, MSG, ...) fprintf(LogFile, "AL lib: %s %s: "MSG, T, __FUNCTION__ , ## __VA_ARGS__)
18 void al_print(const char *type
, const char *func
, const char *fmt
, ...) DECL_FORMAT(printf
, 3,4);
19 #define AL_PRINT(T, ...) al_print((T), __FUNCTION__, __VA_ARGS__)
23 #include <android/log.h>
24 #define LOG_ANDROID(T, MSG, ...) __android_log_print(T, "openal", "AL lib: %s: "MSG, __FUNCTION__ , ## __VA_ARGS__)
26 #define LOG_ANDROID(T, MSG, ...) ((void)0)
36 extern enum LogLevel LogLevel
;
38 #define TRACEREF(...) do { \
39 if(LogLevel >= LogRef) \
40 AL_PRINT("(--)", __VA_ARGS__); \
43 #define TRACE(...) do { \
44 if(LogLevel >= LogTrace) \
45 AL_PRINT("(II)", __VA_ARGS__); \
46 LOG_ANDROID(ANDROID_LOG_DEBUG, __VA_ARGS__); \
49 #define WARN(...) do { \
50 if(LogLevel >= LogWarning) \
51 AL_PRINT("(WW)", __VA_ARGS__); \
52 LOG_ANDROID(ANDROID_LOG_WARN, __VA_ARGS__); \
55 #define ERR(...) do { \
56 if(LogLevel >= LogError) \
57 AL_PRINT("(EE)", __VA_ARGS__); \
58 LOG_ANDROID(ANDROID_LOG_ERROR, __VA_ARGS__); \
61 #endif /* LOGGING_H */