8 #define DECL_FORMAT(x, y, z) __attribute__((format(x, (y), (z))))
10 #define DECL_FORMAT(x, y, z)
19 #if defined(__GNUC__) && !defined(_WIN32)
20 #define AL_PRINT(T, MSG, ...) fprintf(LogFile, "AL lib: %s %s: "MSG, T, __FUNCTION__ , ## __VA_ARGS__)
22 void al_print(const char *type
, const char *func
, const char *fmt
, ...) DECL_FORMAT(printf
, 3,4);
23 #define AL_PRINT(T, ...) al_print((T), __FUNCTION__, __VA_ARGS__)
27 #include <android/log.h>
28 #define LOG_ANDROID(T, MSG, ...) __android_log_print(T, "openal", "AL lib: %s: "MSG, __FUNCTION__ , ## __VA_ARGS__)
30 #define LOG_ANDROID(T, MSG, ...) ((void)0)
40 extern enum LogLevel LogLevel
;
42 #define TRACEREF(...) do { \
43 if(LogLevel >= LogRef) \
44 AL_PRINT("(--)", __VA_ARGS__); \
47 #define TRACE(...) do { \
48 if(LogLevel >= LogTrace) \
49 AL_PRINT("(II)", __VA_ARGS__); \
50 LOG_ANDROID(ANDROID_LOG_DEBUG, __VA_ARGS__); \
53 #define WARN(...) do { \
54 if(LogLevel >= LogWarning) \
55 AL_PRINT("(WW)", __VA_ARGS__); \
56 LOG_ANDROID(ANDROID_LOG_WARN, __VA_ARGS__); \
59 #define ERR(...) do { \
60 if(LogLevel >= LogError) \
61 AL_PRINT("(EE)", __VA_ARGS__); \
62 LOG_ANDROID(ANDROID_LOG_ERROR, __VA_ARGS__); \
69 #endif /* LOGGING_H */