diff options
author | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-08-16 22:13:20 +0000 |
---|---|---|
committer | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-08-16 22:13:20 +0000 |
commit | d3d2c67a041430d92cb0eb8aafad553f6f2c7cc5 (patch) | |
tree | 30807667c401c025ebe83e5aa0f3ab68a5547ef4 /mp_msg.c | |
parent | 03f2e23bc72f3b9a8c047efc4f27c9c6cf548b09 (diff) | |
download | mpv-d3d2c67a041430d92cb0eb8aafad553f6f2c7cc5.tar.bz2 mpv-d3d2c67a041430d92cb0eb8aafad553f6f2c7cc5.tar.xz |
new message printing system
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1563 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mp_msg.c')
-rw-r--r-- | mp_msg.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/mp_msg.c b/mp_msg.c new file mode 100644 index 0000000000..081bb7f5d2 --- /dev/null +++ b/mp_msg.c @@ -0,0 +1,49 @@ + +#include <stdio.h> +#include <stdlib.h> +#include <stdarg.h> + +#include "mp_msg.h" + +static int mp_msg_levels[MSGT_MAX]; // verbose level of this module + +#if 1 + +void mp_msg_init(int verbose){ + int i; + for(i=0;i<MSGT_MAX;i++){ + mp_msg_levels[i]=verbose; + } +} + +void mp_msg_c( int x, const char *format, ... ){ + va_list va; + if((x&255)>mp_msg_levels[x>>8]) return; // do not display + va_start(va, format); + if((x&255)<=MSGL_ERROR){ + vfprintf(stderr,format, va); + } else { + vprintf(format, va); + } + va_end(va); +} + +#else + +FILE *mp_msg_file[MSGT_MAX]; // print message to this file (can be stdout/err) +static FILE* mp_msg_last_file=NULL; + +// how to handle errors->stderr messages->stdout ? +void mp_msg( int x, const char *format, ... ){ + if((x&255)>mp_msg_levels[x>>8] || !mp_msg_file[x>>8]) return; // do not display + va_list va; + va_start(va, format); + vfprintf(mp_msg_file[x>>8],format, va); + if(mp_msg_last_file!=mp_msg_file[x>>8]){ + fflush(mp_msg_file[x>>8]); + mp_msg_last_file=mp_msg_file[x>>8]; + } + va_end(va); +} + +#endif |