mirror of
https://github.com/mpv-player/mpv
synced 2025-02-04 06:01:56 +00:00
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
This commit is contained in:
parent
c3f944e14a
commit
b74750a948
@ -692,6 +692,14 @@ debug level 4
|
||||
.PD 1
|
||||
.
|
||||
.TP
|
||||
.B \-msgcolor
|
||||
Enable colorful console output on terminals that support ANSI color.
|
||||
.
|
||||
.TP
|
||||
.B \-msgmodule
|
||||
Prepend module name in front of each console message.
|
||||
.
|
||||
.TP
|
||||
.B "\-quiet\ "
|
||||
Make console output less verbose; in particular, prevents the status line
|
||||
(i.e.\& A: 0.7 V: 0.6 A-V: 0.068 ...) from being displayed.
|
||||
|
@ -9,6 +9,8 @@
|
||||
{"really-quiet", &verbose, CONF_TYPE_FLAG, CONF_GLOBAL, 0, -10, NULL},
|
||||
{"v", cfg_inc_verbose, CONF_TYPE_FUNC, CONF_GLOBAL|CONF_NOSAVE, 0, 0, NULL},
|
||||
{"msglevel", msgl_config, CONF_TYPE_SUBCONFIG, CONF_GLOBAL, 0, 0, NULL},
|
||||
{"msgcolor", &mp_msg_color, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
|
||||
{"msgmodule", &mp_msg_module, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
|
||||
#ifdef USE_ICONV
|
||||
{"msgcharset", &mp_msg_charset, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL},
|
||||
#endif
|
||||
|
@ -4,6 +4,8 @@
|
||||
#include "config.h"
|
||||
|
||||
extern char *mp_msg_charset;
|
||||
extern int mp_msg_color;
|
||||
extern int mp_msg_module;
|
||||
|
||||
// codec/filter opts: (defined at libmpcodecs/vd.c)
|
||||
extern float screen_size_xy;
|
||||
|
15
configure
vendored
15
configure
vendored
@ -411,7 +411,6 @@ Miscellaneous options:
|
||||
\$LINGUAS is also honored) [en]
|
||||
(Available: $LANGUAGES all)
|
||||
--with-install=PATH path to a custom install program
|
||||
--enable-color-console enable color console output (UNSUPPORTED) [disable]
|
||||
|
||||
Advanced options:
|
||||
--enable-mmx enable MMX [autodetect]
|
||||
@ -672,7 +671,6 @@ _w32threads=auto
|
||||
_ass=auto
|
||||
_rpath=no
|
||||
_asmalign_pot=auto
|
||||
_color_console=no
|
||||
_stream_cache=yes
|
||||
_def_stream_cache="#define USE_STREAM_CACHE 1"
|
||||
_need_shmem=yes
|
||||
@ -1118,8 +1116,6 @@ for ac_option do
|
||||
--disable-ass) _ass=no ;;
|
||||
--enable-rpath) _rpath=yes ;;
|
||||
--disable-rpath) _rpath=no ;;
|
||||
--enable-color-console) _color_console=yes ;;
|
||||
--disable-color-console) _color_console=no ;;
|
||||
|
||||
--enable-fribidi) _fribidi=yes ;;
|
||||
--disable-fribidi) _fribidi=no ;;
|
||||
@ -7544,14 +7540,6 @@ fi
|
||||
echores "$_maemo"
|
||||
fi
|
||||
|
||||
echocheck "color console output"
|
||||
if test "$_color_console" = yes ; then
|
||||
_def_color_console='#define MSG_USE_COLORS 1'
|
||||
else
|
||||
_def_color_console='#undef MSG_USE_COLORS'
|
||||
fi
|
||||
echores "$_color_console"
|
||||
|
||||
# linker paths should be the same for mencoder and mplayer
|
||||
_ld_tmp=""
|
||||
for I in $_libs_mplayer ; do
|
||||
@ -8003,9 +7991,6 @@ $_def_crash_debug
|
||||
/* Toggles debugging informations */
|
||||
$_def_debug
|
||||
|
||||
/* Toggles color console output */
|
||||
$_def_color_console
|
||||
|
||||
/* Indicates that libcdio is available for VCD and CD-DA playback */
|
||||
$_def_libcdio
|
||||
|
||||
|
173
mp_msg.c
173
mp_msg.c
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user