annotate mp_msg.c @ 24992:5701e23ebcb4

Better handling of win32 GUI thread: 1. Use _beginthreadex to create the GUI thread to avoid possible memory leak when linked to MS CRT. 2. Terminate the GUI thread in an cleaner way using PostThreadMessage() rather than the unrecommended TerminateThread().
author zuxy
date Sun, 11 Nov 2007 08:14:57 +0000
parents 8f2154e066cf
children e256d72c1f7a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7200
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
1
17108
f9a03e3c8e23 1000l, reverting 2 more unrelated changes with last commit
ods15
parents: 17106
diff changeset
2 //#define MSG_USE_COLORS
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
3
2caba2f48026 new message printing system
arpi
parents:
diff changeset
4 #include <stdio.h>
2caba2f48026 new message printing system
arpi
parents:
diff changeset
5 #include <stdlib.h>
2caba2f48026 new message printing system
arpi
parents:
diff changeset
6 #include <stdarg.h>
17972
03170287aea9 10l missing header for strdup
ods15
parents: 17931
diff changeset
7 #include <string.h>
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
8
1925
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
9 #include "config.h"
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
10
17772
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
11 #ifdef USE_ICONV
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
12 #include <iconv.h>
22002
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
13 #include <errno.h>
22886
71b3e04d0555 "()" to "(void)" function param list fixes
uau
parents: 22517
diff changeset
14 extern char* get_term_charset(void);
17772
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
15 #endif
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
16
22517
3d3b328fcfb3 mp_msg.c is never built with -DCODECS2HTML.
diego
parents: 22471
diff changeset
17 #if defined(FOR_MENCODER)
16618
bad73cd81b23 mp_msg cleanup.
ods15
parents: 16379
diff changeset
18 #undef HAVE_NEW_GUI
24697
8f2154e066cf Make sure forked code does not try to display a GTK message box (and thus crashes)
reimar
parents: 24121
diff changeset
19 int use_gui;
8573
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
20 #endif
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
21
16618
bad73cd81b23 mp_msg cleanup.
ods15
parents: 16379
diff changeset
22 #ifdef HAVE_NEW_GUI
23077
17bf4f4b0715 Gui --> gui
diego
parents: 22886
diff changeset
23 #include "gui/interface.h"
1925
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
24 #endif
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
25 #include "mp_msg.h"
2caba2f48026 new message printing system
arpi
parents:
diff changeset
26
6306
786ab42c10be Extend maximum mp_msg message size, some translations need it or help message will be cutted.
atmos4
parents: 6048
diff changeset
27 /* maximum message length of mp_msg */
786ab42c10be Extend maximum mp_msg message size, some translations need it or help message will be cutted.
atmos4
parents: 6048
diff changeset
28 #define MSGSIZE_MAX 3072
786ab42c10be Extend maximum mp_msg message size, some translations need it or help message will be cutted.
atmos4
parents: 6048
diff changeset
29
17742
c95961832830 Comment fix: mp_msg_levels[] is inited to -2, not 2.
diego
parents: 17672
diff changeset
30 int mp_msg_levels[MSGT_MAX]; // verbose level of this module. inited to -2
17120
637a2f4ff216 Some more cola for msglevel, codec-cfg can't even call mp_msg_init or it'll
ods15
parents: 17108
diff changeset
31 int mp_msg_level_all = MSGL_STATUS;
637a2f4ff216 Some more cola for msglevel, codec-cfg can't even call mp_msg_init or it'll
ods15
parents: 17108
diff changeset
32 int verbose = 0;
17772
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
33 #ifdef USE_ICONV
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
34 char *mp_msg_charset = NULL;
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
35 static char *old_charset = NULL;
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
36 static iconv_t msgiconv;
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
37 #endif
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
38
22002
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
39 const char* filename_recode(const char* filename)
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
40 {
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
41 #if !defined(USE_ICONV) || !defined(MSG_CHARSET)
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
42 return filename;
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
43 #else
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
44 static iconv_t inv_msgiconv = (iconv_t)(-1);
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
45 static char recoded_filename[MSGSIZE_MAX];
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
46 size_t filename_len, max_path;
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
47 char* precoded;
22006
b79ca70e0cad Handle mp_msg_charset == NULL correctly in filename_recode.
reimar
parents: 22005
diff changeset
48 if (!mp_msg_charset ||
b79ca70e0cad Handle mp_msg_charset == NULL correctly in filename_recode.
reimar
parents: 22005
diff changeset
49 !strcasecmp(mp_msg_charset, MSG_CHARSET) ||
22005
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
50 !strcasecmp(mp_msg_charset, "noconv"))
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
51 return filename;
22002
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
52 if (inv_msgiconv == (iconv_t)(-1)) {
22005
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
53 inv_msgiconv = iconv_open(MSG_CHARSET, mp_msg_charset);
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
54 if (inv_msgiconv == (iconv_t)(-1))
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
55 return filename;
22002
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
56 }
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
57 filename_len = strlen(filename);
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
58 max_path = MSGSIZE_MAX - 4;
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
59 precoded = recoded_filename;
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
60 if (iconv(inv_msgiconv, &filename, &filename_len,
22005
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
61 &precoded, &max_path) == (size_t)(-1) && errno == E2BIG) {
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
62 precoded[0] = precoded[1] = precoded[2] = '.';
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
63 precoded += 3;
22002
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
64 }
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
65 *precoded = '\0';
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
66 return recoded_filename;
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
67 #endif
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
68 }
ebd2d5efb11b filename double-conversion, especially usefull for CJK users :-)
gpoirier
parents: 21653
diff changeset
69
17566
f580a7755ac5 Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents: 17440
diff changeset
70 void mp_msg_init(void){
17106
05af35012e4f new -msglevel option, constrols msg level for every msg module
ods15
parents: 16618
diff changeset
71 int i;
17440
de9a36b1082c MPLAYER_VERBOSE, new enviorment variable to control verbosity before init
ods15
parents: 17120
diff changeset
72 char *env = getenv("MPLAYER_VERBOSE");
de9a36b1082c MPLAYER_VERBOSE, new enviorment variable to control verbosity before init
ods15
parents: 17120
diff changeset
73 if (env)
de9a36b1082c MPLAYER_VERBOSE, new enviorment variable to control verbosity before init
ods15
parents: 17120
diff changeset
74 verbose = atoi(env);
17106
05af35012e4f new -msglevel option, constrols msg level for every msg module
ods15
parents: 16618
diff changeset
75 for(i=0;i<MSGT_MAX;i++) mp_msg_levels[i] = -2;
18237
4231482179b6 Get ride of the several if(identify) messy lines and rearangment of some of the output, both patches by Kiriuja mplayer-patches AT en-directo_net, his changes are barely unrelated, nevertheless Im commiting them thogeter just for the sake of my mental healt, I had both patches already applied on my local three
reynaldo
parents: 18000
diff changeset
76 mp_msg_levels[MSGT_IDENTIFY] = -1; // no -identify output by default
17772
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
77 #ifdef USE_ICONV
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
78 mp_msg_charset = getenv("MPLAYER_CHARSET");
22442
56a0b0f8a66e Add code to detect and convert to console codepage on Windows.
reimar
parents: 22006
diff changeset
79 if (!mp_msg_charset)
56a0b0f8a66e Add code to detect and convert to console codepage on Windows.
reimar
parents: 22006
diff changeset
80 mp_msg_charset = get_term_charset();
17772
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
81 #endif
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
82 }
2caba2f48026 new message printing system
arpi
parents:
diff changeset
83
7058
2e5c07262861 new v4l capture patch by Jindrich Makovicka <makovick@kmlinux.fjfi.cvut.cz>:
arpi
parents: 6306
diff changeset
84 int mp_msg_test(int mod, int lev)
2e5c07262861 new v4l capture patch by Jindrich Makovicka <makovick@kmlinux.fjfi.cvut.cz>:
arpi
parents: 6306
diff changeset
85 {
17106
05af35012e4f new -msglevel option, constrols msg level for every msg module
ods15
parents: 16618
diff changeset
86 return lev <= (mp_msg_levels[mod] == -2 ? mp_msg_level_all + verbose : mp_msg_levels[mod]);
7058
2e5c07262861 new v4l capture patch by Jindrich Makovicka <makovick@kmlinux.fjfi.cvut.cz>:
arpi
parents: 6306
diff changeset
87 }
2e5c07262861 new v4l capture patch by Jindrich Makovicka <makovick@kmlinux.fjfi.cvut.cz>:
arpi
parents: 6306
diff changeset
88
16618
bad73cd81b23 mp_msg cleanup.
ods15
parents: 16379
diff changeset
89 void mp_msg(int mod, int lev, const char *format, ... ){
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
90 va_list va;
6306
786ab42c10be Extend maximum mp_msg message size, some translations need it or help message will be cutted.
atmos4
parents: 6048
diff changeset
91 char tmp[MSGSIZE_MAX];
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
92
17106
05af35012e4f new -msglevel option, constrols msg level for every msg module
ods15
parents: 16618
diff changeset
93 if (!mp_msg_test(mod, lev)) return; // do not display
5286
30caf02c0eae 10l - va_start needs teh pointer to stack - not the translated message
arpi
parents: 5220
diff changeset
94 va_start(va, format);
18000
3b4e03cb518d more cruft
rfelker
parents: 17998
diff changeset
95 vsnprintf(tmp, MSGSIZE_MAX, format, va);
7195
a5b2566f3c2b print only fatal/error/warning to stderr, others go to stdout
arpi
parents: 7058
diff changeset
96 va_end(va);
10853
1e04ac498440 force a new line if a message is very long
pl
parents: 10415
diff changeset
97 tmp[MSGSIZE_MAX-2] = '\n';
6306
786ab42c10be Extend maximum mp_msg message size, some translations need it or help message will be cutted.
atmos4
parents: 6048
diff changeset
98 tmp[MSGSIZE_MAX-1] = 0;
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
99
16618
bad73cd81b23 mp_msg cleanup.
ods15
parents: 16379
diff changeset
100 #ifdef HAVE_NEW_GUI
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
101 if(use_gui)
16618
bad73cd81b23 mp_msg cleanup.
ods15
parents: 16379
diff changeset
102 guiMessageBox(lev, tmp);
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
103 #endif
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
104
17772
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
105 #if defined(USE_ICONV) && defined(MSG_CHARSET)
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
106 if (mp_msg_charset && strcasecmp(mp_msg_charset, "noconv")) {
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
107 char tmp2[MSGSIZE_MAX];
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
108 size_t inlen = strlen(tmp), outlen = MSGSIZE_MAX;
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
109 char *in = tmp, *out = tmp2;
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
110 if (!old_charset || strcmp(old_charset, mp_msg_charset)) {
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
111 if (old_charset) {
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
112 free(old_charset);
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
113 iconv_close(msgiconv);
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
114 }
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
115 msgiconv = iconv_open(mp_msg_charset, MSG_CHARSET);
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
116 old_charset = strdup(mp_msg_charset);
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
117 }
17931
ed9950b8200d The fix in mp_msg.c avoids a core dump when iconv_open() fails, the other
albeu
parents: 17772
diff changeset
118 if (msgiconv == (iconv_t)(-1)) {
ed9950b8200d The fix in mp_msg.c avoids a core dump when iconv_open() fails, the other
albeu
parents: 17772
diff changeset
119 fprintf(stderr,"iconv: conversion from %s to %s unsupported\n"
19549
5680696f964b Mixed up from and to charsets in iconv open failure message.
reimar
parents: 18237
diff changeset
120 ,MSG_CHARSET,mp_msg_charset);
17931
ed9950b8200d The fix in mp_msg.c avoids a core dump when iconv_open() fails, the other
albeu
parents: 17772
diff changeset
121 }else{
17772
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
122 memset(tmp2, 0, MSGSIZE_MAX);
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
123 while (iconv(msgiconv, &in, &inlen, &out, &outlen) == -1) {
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
124 if (!inlen || !outlen)
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
125 break;
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
126 *out++ = *in++;
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
127 outlen--; inlen--;
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
128 }
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
129 strncpy(tmp, tmp2, MSGSIZE_MAX);
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
130 tmp[MSGSIZE_MAX-1] = 0;
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
131 tmp[MSGSIZE_MAX-2] = '\n';
17931
ed9950b8200d The fix in mp_msg.c avoids a core dump when iconv_open() fails, the other
albeu
parents: 17772
diff changeset
132 }
17772
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
133 }
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
134 #endif
0d7cc103ed1e Automaticall convert message to console charset, use utf8 for GTK2 Gui
reimar
parents: 17742
diff changeset
135
7200
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
136 #ifdef MSG_USE_COLORS
10415
c1247b33c424 moved some annonying messages to debug mode only
alex
parents: 8573
diff changeset
137 /* that's only a silly color test */
16379
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
138 #ifdef MP_ANNOY_ME
7200
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
139 { int c;
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
140 static int flag=1;
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
141 if(flag)
16379
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
142 for(c=0;c<24;c++)
7200
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
143 printf("\033[%d;3%dm*** COLOR TEST %d ***\n",(c>7),c&7,c);
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
144 flag=0;
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
145 }
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
146 #endif
22005
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
147 { unsigned char v_colors[10]={9,1,3,15,7,2,2,8,8,8};
21653
04cea12cd324 Fix possible crashes with colorized mplayer output
reimar
parents: 19549
diff changeset
148 static const char *mod_text[MSGT_MAX]= {
16379
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
149 "GLOBAL",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
150 "CPLAYER",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
151 "GPLAYER",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
152 "VIDEOOUT",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
153 "AUDIOOUT",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
154 "DEMUXER",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
155 "DS",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
156 "DEMUX",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
157 "HEADER",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
158 "AVSYNC",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
159 "AUTOQ",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
160 "CFGPARSER",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
161 "DECAUDIO",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
162 "DECVIDEO",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
163 "SEEK",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
164 "WIN32",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
165 "OPEN",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
166 "DVD",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
167 "PARSEES",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
168 "LIRC",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
169 "STREAM",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
170 "CACHE",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
171 "MENCODER",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
172 "XACODEC",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
173 "TV",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
174 "OSDEP",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
175 "SPUDEC",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
176 "PLAYTREE",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
177 "INPUT",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
178 "VFILTER",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
179 "OSD",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
180 "NETWORK",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
181 "CPUDETECT",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
182 "CODECCFG",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
183 "SWS",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
184 "VOBSUB",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
185 "SUBREADER",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
186 "AFILTER",
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
187 "NETST",
21653
04cea12cd324 Fix possible crashes with colorized mplayer output
reimar
parents: 19549
diff changeset
188 "MUXER",
04cea12cd324 Fix possible crashes with colorized mplayer output
reimar
parents: 19549
diff changeset
189 "OSDMENU",
04cea12cd324 Fix possible crashes with colorized mplayer output
reimar
parents: 19549
diff changeset
190 "IDENTIFY",
04cea12cd324 Fix possible crashes with colorized mplayer output
reimar
parents: 19549
diff changeset
191 "RADIO",
04cea12cd324 Fix possible crashes with colorized mplayer output
reimar
parents: 19549
diff changeset
192 "ASS",
04cea12cd324 Fix possible crashes with colorized mplayer output
reimar
parents: 19549
diff changeset
193 "LOADER",
23460
44746cbd4e5b Create a new MSGT for just the status line.
diego
parents: 23077
diff changeset
194 "STATUSLINE",
21653
04cea12cd324 Fix possible crashes with colorized mplayer output
reimar
parents: 19549
diff changeset
195 };
16379
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
196
16618
bad73cd81b23 mp_msg cleanup.
ods15
parents: 16379
diff changeset
197 int c=v_colors[lev];
bad73cd81b23 mp_msg cleanup.
ods15
parents: 16379
diff changeset
198 int c2=(mod+1)%15+1;
16379
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
199 static int header=1;
16618
bad73cd81b23 mp_msg cleanup.
ods15
parents: 16379
diff changeset
200 FILE *stream= (lev) <= MSGL_WARN ? stderr : stdout;
16379
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
201 if(header){
16618
bad73cd81b23 mp_msg cleanup.
ods15
parents: 16379
diff changeset
202 fprintf(stream, "\033[%d;3%dm%9s\033[0;37m: ",c2>>3,c2&7, mod_text[mod]);
16379
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
203 }
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
204 fprintf(stream, "\033[%d;3%dm",c>>3,c&7);
cdd8c0dfc19b improve colorization
michael
parents: 16374
diff changeset
205 header= tmp[strlen(tmp)-1] == '\n'
17672
b238eeec6ae6 This now works correctly thanks to clear-to-end-of-line patch
ods15
parents: 17566
diff changeset
206 ||tmp[strlen(tmp)-1] == '\r';
7200
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
207 }
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
208 #endif
16618
bad73cd81b23 mp_msg cleanup.
ods15
parents: 16379
diff changeset
209 if (lev <= MSGL_WARN){
22005
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
210 fprintf(stderr, "%s", tmp);fflush(stderr);
7195
a5b2566f3c2b print only fatal/error/warning to stderr, others go to stdout
arpi
parents: 7058
diff changeset
211 } else {
22005
77c4ad229db6 Cosmetics: remove tabs, almost all added during last patch, from
reimar
parents: 22002
diff changeset
212 printf("%s", tmp);fflush(stdout);
7195
a5b2566f3c2b print only fatal/error/warning to stderr, others go to stdout
arpi
parents: 7058
diff changeset
213 }
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
214 }