diff options
author | zuxy <zuxy@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-04-12 12:51:07 +0000 |
---|---|---|
committer | zuxy <zuxy@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-04-12 12:51:07 +0000 |
commit | b74750a948e70fc153944f0ae76749b9b118baad (patch) | |
tree | 32e6b2f1c0aef7746417f399a49de1249082ef60 /mp_msg.c | |
parent | c3f944e14a4f94ebcfdb0318a74122dc77da85e0 (diff) | |
download | mpv-b74750a948e70fc153944f0ae76749b9b118baad.tar.bz2 mpv-b74750a948e70fc153944f0ae76749b9b118baad.tar.xz |
Enable runtime control for colorful and/or module name output
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26402 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mp_msg.c')
-rw-r--r-- | mp_msg.c | 173 |
1 files changed, 92 insertions, 81 deletions
@@ -1,6 +1,3 @@ - -//#define MSG_USE_COLORS - #include <stdio.h> #include <stdlib.h> #include <stdarg.h> @@ -30,6 +27,8 @@ int use_gui; int mp_msg_levels[MSGT_MAX]; // verbose level of this module. initialized to -2 int mp_msg_level_all = MSGL_STATUS; int verbose = 0; +int mp_msg_color = 0; +int mp_msg_module = 0; #ifdef USE_ICONV char *mp_msg_charset = NULL; static char *old_charset = NULL; @@ -86,9 +85,92 @@ int mp_msg_test(int mod, int lev) return lev <= (mp_msg_levels[mod] == -2 ? mp_msg_level_all + verbose : mp_msg_levels[mod]); } +static void set_msg_color(FILE* stream, int lev) +{ + static const unsigned char v_colors[10] = {9, 1, 3, 15, 7, 2, 2, 8, 8, 8}; + int c = v_colors[lev]; +#ifdef MP_ANNOY_ME + /* that's only a silly color test */ + { + int c; + static int flag = 1; + if (flag) + for(c = 0; c < 24; c++) + printf("\033[%d;3%dm*** COLOR TEST %d ***\n", c>7, c&7, c); + flag = 0; + } +#endif + if (mp_msg_color) + fprintf(stream, "\033[%d;3%dm", c >> 3, c & 7); +} + +static void print_msg_module(FILE* stream, int mod) +{ + static const char *module_text[MSGT_MAX] = { + "GLOBAL", + "CPLAYER", + "GPLAYER", + "VIDEOOUT", + "AUDIOOUT", + "DEMUXER", + "DS", + "DEMUX", + "HEADER", + "AVSYNC", + "AUTOQ", + "CFGPARSER", + "DECAUDIO", + "DECVIDEO", + "SEEK", + "WIN32", + "OPEN", + "DVD", + "PARSEES", + "LIRC", + "STREAM", + "CACHE", + "MENCODER", + "XACODEC", + "TV", + "OSDEP", + "SPUDEC", + "PLAYTREE", + "INPUT", + "VFILTER", + "OSD", + "NETWORK", + "CPUDETECT", + "CODECCFG", + "SWS", + "VOBSUB", + "SUBREADER", + "AFILTER", + "NETST", + "MUXER", + "OSDMENU", + "IDENTIFY", + "RADIO", + "ASS", + "LOADER", + "STATUSLINE", + }; + int c2 = (mod + 1) % 15 + 1; + + if (!mp_msg_module) + return; + if (mp_msg_color) + fprintf(stream, "\033[%d;3%dm", c2 >> 3, c2 & 7); + fprintf(stream, "%9s", module_text[mod]); + if (mp_msg_color) + fprintf(stream, "\033[0;37m"); + fprintf(stream, ": "); +} + void mp_msg(int mod, int lev, const char *format, ... ){ va_list va; char tmp[MSGSIZE_MAX]; + FILE *stream = lev <= MSGL_WARN ? stderr : stdout; + static int header = 1; if (!mp_msg_test(mod, lev)) return; // do not display va_start(va, format); @@ -133,82 +215,11 @@ void mp_msg(int mod, int lev, const char *format, ... ){ } #endif -#ifdef MSG_USE_COLORS -/* that's only a silly color test */ -#ifdef MP_ANNOY_ME - { int c; - static int flag=1; - if(flag) - for(c=0;c<24;c++) - printf("\033[%d;3%dm*** COLOR TEST %d ***\n",(c>7),c&7,c); - flag=0; - } -#endif - { unsigned char v_colors[10]={9,1,3,15,7,2,2,8,8,8}; - static const char *mod_text[MSGT_MAX]= { - "GLOBAL", - "CPLAYER", - "GPLAYER", - "VIDEOOUT", - "AUDIOOUT", - "DEMUXER", - "DS", - "DEMUX", - "HEADER", - "AVSYNC", - "AUTOQ", - "CFGPARSER", - "DECAUDIO", - "DECVIDEO", - "SEEK", - "WIN32", - "OPEN", - "DVD", - "PARSEES", - "LIRC", - "STREAM", - "CACHE", - "MENCODER", - "XACODEC", - "TV", - "OSDEP", - "SPUDEC", - "PLAYTREE", - "INPUT", - "VFILTER", - "OSD", - "NETWORK", - "CPUDETECT", - "CODECCFG", - "SWS", - "VOBSUB", - "SUBREADER", - "AFILTER", - "NETST", - "MUXER", - "OSDMENU", - "IDENTIFY", - "RADIO", - "ASS", - "LOADER", - "STATUSLINE", - }; - - int c=v_colors[lev]; - int c2=(mod+1)%15+1; - static int header=1; - FILE *stream= (lev) <= MSGL_WARN ? stderr : stdout; - if(header){ - fprintf(stream, "\033[%d;3%dm%9s\033[0;37m: ",c2>>3,c2&7, mod_text[mod]); - } - fprintf(stream, "\033[%d;3%dm",c>>3,c&7); - header= tmp[strlen(tmp)-1] == '\n' - ||tmp[strlen(tmp)-1] == '\r'; - } -#endif - if (lev <= MSGL_WARN){ - fprintf(stderr, "%s", tmp);fflush(stderr); - } else { - printf("%s", tmp);fflush(stdout); - } + if (header) + print_msg_module(stream, mod); + set_msg_color(stream, lev); + header = tmp[strlen(tmp)-1] == '\n' || tmp[strlen(tmp)-1] == '\r'; + + fprintf(stream, "%s", tmp); + fflush(stream); } |