1/*
2 * ES1370 Haiku Driver for ES1370 audio
3 *
4 * Copyright 2002-2007, Haiku, Inc.
5 * Distributed under the terms of the MIT License.
6 *
7 * Authors:
8 *		Marcus Overhagen, marcus@overhagen.de
9 *		Jerome Duval, jerome.duval@free.fr
10 */
11
12#ifndef _DEBUG_H_
13#define _DEBUG_H_
14
15/*
16 * PRINT() executes dprintf if DEBUG = 0 (disabled), or expands to LOG() when DEBUG > 0
17 * TRACE() executes dprintf if DEBUG > 0
18 * LOG()   executes dprintf and writes to the logfile if DEBUG > 0
19 */
20
21/* DEBUG == 0, no debugging, PRINT writes to syslog
22 * DEBUG == 1, TRACE & LOG, PRINT
23 * DEBUG == 2, TRACE & LOG, PRINT with snooze()
24 */
25#ifndef DEBUG
26	#define DEBUG 1
27#endif
28
29#undef PRINT
30#undef TRACE
31#undef ASSERT
32
33#if DEBUG > 0
34	#define PRINT(a)		log_printf a
35	#define TRACE(a) 		debug_printf a
36	#define LOG(a)			log_printf a
37	#define LOG_CREATE()	log_create()
38	#define ASSERT(a)		if (a) {} else LOG(("ASSERT failed! file = %s, line = %d\n",__FILE__,__LINE__))
39	void log_create();
40	void log_printf(const char *text,...);
41	void debug_printf(const char *text,...);
42#else
43	void debug_printf(const char *text,...);
44	#define PRINT(a)	debug_printf a
45	#define TRACE(a)	((void)(0))
46	#define ASSERT(a)	((void)(0))
47	#define LOG(a)		((void)(0))
48	#define LOG_CREATE()
49#endif
50
51#endif
52