1 #ifndef _MIXER_DEBUG_H_ 2 #define _MIXER_DEBUG_H_ 3 4 #ifndef DEBUG 5 #define DEBUG 0 6 #endif 7 8 #include <Debug.h> 9 #include <stdio.h> 10 11 #undef TRACE 12 #undef PRINT 13 14 #if DEBUG > 0 15 16 inline void ERROR(const char *fmt, ...) { va_list ap; va_start(ap, fmt); printf("### ERROR: "); vprintf(fmt, ap); va_end(ap); } 17 inline void PRINT(int level, const char *fmt, ...) { va_list ap; if (level > DEBUG) return; va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); } 18 19 #define PRINT_FORMAT(_text, _fmt) do { char _buf[300]; string_for_format((_fmt), _buf, sizeof(_buf)); printf("%s %s\n", (_text), (_buf)); } while (0) 20 #define PRINT_INPUT(_text, _in) do { char _buf[300]; string_for_format((_in).format, _buf, sizeof(_buf)); printf("%s node(node %ld, port %ld); source(port %ld, id %ld); dest(port %ld, id %ld); fmt(%s); name(%s)\n", (_text), (_in).node.node, (_in).node.port, (_in).source.port, (_in).source.id, (_in).destination.port, (_in).destination.id, _buf, (_in).name); } while (0) 21 #define PRINT_OUTPUT(_text, _out) do { char _buf[300]; string_for_format((_out).format, _buf, sizeof(_buf)); printf("%s node(node %ld, port %ld); source(port %ld, id %ld); dest(port %ld, id %ld); fmt(%s); name(%s)\n", (_text), (_out).node.node, (_out).node.port, (_out).source.port, (_out).source.id, (_out).destination.port, (_out).destination.id, _buf, (_out).name); } while (0) 22 #define PRINT_CHANNEL_MASK(fmt) do { char s[200]; StringForChannelMask(s, (fmt).u.raw_audio.channel_mask); printf(" channel_mask 0x%08lX %s\n", (fmt).u.raw_audio.channel_mask, s); } while (0) 23 24 #if DEBUG >= 2 25 #define TRACE printf 26 #else 27 #define TRACE(a...) ((void)0) 28 #endif 29 30 #else 31 32 #define PRINT_FORMAT(_text, _fmt) ((void)0) 33 #define PRINT_INPUT(_text, _in) ((void)0) 34 #define PRINT_OUTPUT(_text, _out) ((void)0) 35 #define PRINT_CHANNEL_MASK(fmt) ((void)0) 36 #define PRINT(l, a...) ((void)0) 37 #define ERROR(a...) ((void)0) 38 #define TRACE(a...) ((void)0) 39 40 #endif 41 42 #endif /* _MIXER_DEBUG_H_ */ 43