fix detection of iconv implementations which require libdl
[mplayer.git] / mp_msg.h
blob6709947b5f0752e5b6f8f689e0ca2ad044596fd5
2 #ifndef _MP_MSG_H
3 #define _MP_MSG_H
5 // defined in mplayer.c and mencoder.c
6 extern int verbose;
7 extern int identify;
9 // verbosity elevel:
11 // stuff from level MSGL_FATAL-MSGL_STATUS should be translated.
13 #define MSGL_FATAL 0 // will exit/abort
14 #define MSGL_ERR 1 // continues
15 #define MSGL_WARN 2 // only warning
16 #define MSGL_HINT 3 // short help message
17 #define MSGL_INFO 4 // -quiet
18 #define MSGL_STATUS 5 // v=0
19 #define MSGL_V 6 // v=1
20 #define MSGL_DBG2 7 // v=2
21 #define MSGL_DBG3 8 // v=3
22 #define MSGL_DBG4 9 // v=4
24 #define MSGL_FIXME 1 // for conversions from printf where the appropriate MSGL is not known; set equal to ERR for obtrusiveness
25 #define MSGT_FIXME 0 // for conversions from printf where the appropriate MSGT is not known; set equal to GLOBAL for obtrusiveness
27 // code/module:
29 #define MSGT_GLOBAL 0 // common player stuff errors
30 #define MSGT_CPLAYER 1 // console player (mplayer.c)
31 #define MSGT_GPLAYER 2 // gui player
33 #define MSGT_VO 3 // libvo
34 #define MSGT_AO 4 // libao
36 #define MSGT_DEMUXER 5 // demuxer.c (general stuff)
37 #define MSGT_DS 6 // demux stream (add/read packet etc)
38 #define MSGT_DEMUX 7 // fileformat-specific stuff (demux_*.c)
39 #define MSGT_HEADER 8 // fileformat-specific header (*header.c)
41 #define MSGT_AVSYNC 9 // mplayer.c timer stuff
42 #define MSGT_AUTOQ 10 // mplayer.c auto-quality stuff
44 #define MSGT_CFGPARSER 11 // cfgparser.c
46 #define MSGT_DECAUDIO 12 // av decoder
47 #define MSGT_DECVIDEO 13
49 #define MSGT_SEEK 14 // seeking code
50 #define MSGT_WIN32 15 // win32 dll stuff
51 #define MSGT_OPEN 16 // open.c (stream opening)
52 #define MSGT_DVD 17 // open.c (DVD init/read/seek)
54 #define MSGT_PARSEES 18 // parse_es.c (mpeg stream parser)
55 #define MSGT_LIRC 19 // lirc_mp.c and input lirc driver
57 #define MSGT_STREAM 20 // stream.c
58 #define MSGT_CACHE 21 // cache2.c
60 #define MSGT_MENCODER 22
62 #define MSGT_XACODEC 23 // XAnim codecs
64 #define MSGT_TV 24 // TV input subsystem
66 #define MSGT_OSDEP 25 // OS Dependant parts (linux/ for now)
68 #define MSGT_SPUDEC 26 // spudec.c
70 #define MSGT_PLAYTREE 27 // Playtree handeling (playtree.c, playtreeparser.c)
72 #define MSGT_INPUT 28
74 #define MSGT_VFILTER 29
76 #define MSGT_OSD 30
78 #define MSGT_NETWORK 31
80 #define MSGT_CPUDETECT 32
82 #define MSGT_CODECCFG 33
84 #define MSGT_SWS 34
86 #define MSGT_VOBSUB 35
87 #define MSGT_SUBREADER 36
89 #define MSGT_AFILTER 37 // Audio filter messages
91 #define MSGT_NETST 38 // Netstream
93 #define MSGT_MUXER 39 // muxer layer
95 #define MSGT_MAX 64
97 void mp_msg_init();
98 void mp_msg_set_level(int verbose);
99 int mp_msg_test(int mod, int lev);
101 #include "config.h"
103 #ifdef TARGET_OS2
104 // va_start/vsnprintf seems to be broken under OS2 :(
105 #define mp_msg(mod,lev, fmt, args... ) do{if((lev)<=mp_msg_levels[mod]) printf( fmt, ## args );}while(0)
106 #define mp_dbg(mod,lev, args... )
107 #else
109 #ifdef USE_I18N
110 #include <libintl.h>
111 #define mp_gettext(String) gettext(String)
112 #else
113 #define mp_gettext(String) String
114 #endif
116 #ifdef __GNUC__
117 void mp_msg_c( int x, const char *format, ... ) __attribute__ ((format (printf, 2, 3)));
118 #define mp_msg(mod,lev, args... ) mp_msg_c(((mod)<<8)|(lev), ## args )
120 #ifdef MP_DEBUG
121 #define mp_dbg(mod,lev, args... ) mp_msg_c(((mod)<<8)|(lev), ## args )
122 #else
123 // these messages are only usefull for developers, disable them
124 #define mp_dbg(mod,lev, args... )
125 #endif
126 #else // not GNU C
127 void mp_msg_c( int x, const char *format, ... );
128 #define mp_msg(mod,lev, ... ) mp_msg_c(((mod)<<8)|(lev), __VA_ARGS__)
130 #ifdef MP_DEBUG
131 #define mp_dbg(mod,lev, ... ) mp_msg_c(((mod)<<8)|(lev), __VA_ARGS__)
132 #else
133 // these messages are only usefull for developers, disable them
134 #define mp_dbg(mod,lev, ... )
135 #endif
136 #endif
138 #endif
139 #endif