summaryrefslogtreecommitdiffstats
path: root/mp_msg.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-08-16 22:13:20 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-08-16 22:13:20 +0000
commitd3d2c67a041430d92cb0eb8aafad553f6f2c7cc5 (patch)
tree30807667c401c025ebe83e5aa0f3ab68a5547ef4 /mp_msg.c
parent03f2e23bc72f3b9a8c047efc4f27c9c6cf548b09 (diff)
downloadmpv-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.c49
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