xref: /haiku/src/add-ons/media/media-add-ons/mixer/MixerDebug.h (revision d3d8b26997fac34a84981e6d2b649521de2cc45a)
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