annotate mp_msg.c @ 15536:b39eee207c42

LANG=C ensures month/day order and English language in the date string for more reliable operation in diverse environments. Tested on OpenBSD, NetBSD, FreeBSD, Darwin 10.2 and Darwin 10.1. Darwin 10.4 should work as well, 10.3 does not due to broken ls.
author diego
date Sat, 21 May 2005 14:44:10 +0000
parents 4a6b79a1ad52
children e2e231134056
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
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
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>
2caba2f48026 new message printing system
arpi
parents:
diff changeset
7
1925
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
8 #include "config.h"
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
9
8573
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
10 #if defined(FOR_MENCODER) || defined(CODECS2HTML)
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
11 #undef ENABLE_GUI_CODE
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
12 #elif defined(HAVE_NEW_GUI)
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
13 #define ENABLE_GUI_CODE HAVE_NEW_GUI
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
14 #else
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
15 #undef ENABLE_GUI_CODE
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
16 #endif
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
17
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
18 #if ENABLE_GUI_CODE
1925
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
19 #include "Gui/mplayer/widgets.h"
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
20 extern void gtkMessageBox( int type,char * str );
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
21 extern int use_gui;
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
22 #endif
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
23 #include "mp_msg.h"
2caba2f48026 new message printing system
arpi
parents:
diff changeset
24
6306
786ab42c10be Extend maximum mp_msg message size, some translations need it or help message will be cutted.
atmos4
parents: 6048
diff changeset
25 /* 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
26 #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
27
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
28 static int mp_msg_levels[MSGT_MAX]; // verbose level of this module
2caba2f48026 new message printing system
arpi
parents:
diff changeset
29
2caba2f48026 new message printing system
arpi
parents:
diff changeset
30 #if 1
2caba2f48026 new message printing system
arpi
parents:
diff changeset
31
5220
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
32 void mp_msg_init(){
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
33 #ifdef USE_I18N
10415
c1247b33c424 moved some annonying messages to debug mode only
alex
parents: 8573
diff changeset
34 #ifdef MP_DEBUG
5220
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
35 fprintf(stdout, "Using GNU internationalization\n");
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
36 fprintf(stdout, "Original domain: %s\n", textdomain(NULL));
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
37 fprintf(stdout, "Original dirname: %s\n", bindtextdomain(textdomain(NULL),NULL));
10415
c1247b33c424 moved some annonying messages to debug mode only
alex
parents: 8573
diff changeset
38 #endif
5220
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
39 bindtextdomain("mplayer", PREFIX"/share/locale");
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
40 textdomain("mplayer");
10415
c1247b33c424 moved some annonying messages to debug mode only
alex
parents: 8573
diff changeset
41 #ifdef MP_DEBUG
5220
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
42 fprintf(stdout, "Current domain: %s\n", textdomain(NULL));
10415
c1247b33c424 moved some annonying messages to debug mode only
alex
parents: 8573
diff changeset
43 fprintf(stdout, "Current dirname: %s\n\n", bindtextdomain(textdomain(NULL),NULL));
c1247b33c424 moved some annonying messages to debug mode only
alex
parents: 8573
diff changeset
44 #endif
5220
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
45 #endif
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
46 mp_msg_set_level(MSGL_STATUS);
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
47 }
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
48
4afbe13150e6 splitted mp_msg_init and mp_msg_set_level and added i18n support to init
alex
parents: 5102
diff changeset
49 void mp_msg_set_level(int verbose){
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
50 int i;
2caba2f48026 new message printing system
arpi
parents:
diff changeset
51 for(i=0;i<MSGT_MAX;i++){
2caba2f48026 new message printing system
arpi
parents:
diff changeset
52 mp_msg_levels[i]=verbose;
2caba2f48026 new message printing system
arpi
parents:
diff changeset
53 }
2caba2f48026 new message printing system
arpi
parents:
diff changeset
54 }
2caba2f48026 new message printing system
arpi
parents:
diff changeset
55
7058
2e5c07262861 new v4l capture patch by Jindrich Makovicka <makovick@kmlinux.fjfi.cvut.cz>:
arpi
parents: 6306
diff changeset
56 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
57 {
2e5c07262861 new v4l capture patch by Jindrich Makovicka <makovick@kmlinux.fjfi.cvut.cz>:
arpi
parents: 6306
diff changeset
58 return lev <= mp_msg_levels[mod];
2e5c07262861 new v4l capture patch by Jindrich Makovicka <makovick@kmlinux.fjfi.cvut.cz>:
arpi
parents: 6306
diff changeset
59 }
2e5c07262861 new v4l capture patch by Jindrich Makovicka <makovick@kmlinux.fjfi.cvut.cz>:
arpi
parents: 6306
diff changeset
60
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
61 void mp_msg_c( int x, const char *format, ... ){
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
62 #if 1
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
63 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
64 char tmp[MSGSIZE_MAX];
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
65
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
66 if((x&255)>mp_msg_levels[x>>8]) return; // do not display
5286
30caf02c0eae 10l - va_start needs teh pointer to stack - not the translated message
arpi
parents: 5220
diff changeset
67 va_start(va, format);
6306
786ab42c10be Extend maximum mp_msg message size, some translations need it or help message will be cutted.
atmos4
parents: 6048
diff changeset
68 vsnprintf(tmp, MSGSIZE_MAX, mp_gettext(format), va);
7195
a5b2566f3c2b print only fatal/error/warning to stderr, others go to stdout
arpi
parents: 7058
diff changeset
69 va_end(va);
10853
1e04ac498440 force a new line if a message is very long
pl
parents: 10415
diff changeset
70 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
71 tmp[MSGSIZE_MAX-1] = 0;
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
72
8573
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
73 #if ENABLE_GUI_CODE
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
74 if(use_gui)
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
75 {
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
76 switch(x & 255)
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
77 {
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
78 case MSGL_FATAL:
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
79 gtkMessageBox(GTK_MB_FATAL|GTK_MB_SIMPLE, tmp);
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
80 break;
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
81 case MSGL_ERR:
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
82 gtkMessageBox(GTK_MB_ERROR|GTK_MB_SIMPLE, tmp);
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
83 break;
7205
9d11474c39af WARNING message gui windows disabled, the only critical warn message (too
arpi
parents: 7200
diff changeset
84 #if 0
9d11474c39af WARNING message gui windows disabled, the only critical warn message (too
arpi
parents: 7200
diff changeset
85 // WARNING! Do NOT enable this! There are too many non-critical messages with
9d11474c39af WARNING message gui windows disabled, the only critical warn message (too
arpi
parents: 7200
diff changeset
86 // MSGL_WARN, for example: broken SPU packets, codec's bit error messages,
9d11474c39af WARNING message gui windows disabled, the only critical warn message (too
arpi
parents: 7200
diff changeset
87 // etc etc, they should not raise up a new window every time.
7200
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
88 case MSGL_WARN:
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
89 gtkMessageBox(GTK_MB_WARNING|GTK_MB_SIMPLE, tmp);
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
90 break;
7205
9d11474c39af WARNING message gui windows disabled, the only critical warn message (too
arpi
parents: 7200
diff changeset
91 #endif
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
92 }
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
93 }
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
94 #endif
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
95
7200
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
96 #ifdef MSG_USE_COLORS
10415
c1247b33c424 moved some annonying messages to debug mode only
alex
parents: 8573
diff changeset
97 /* that's only a silly color test */
c1247b33c424 moved some annonying messages to debug mode only
alex
parents: 8573
diff changeset
98 #ifdef MP_DEBUG
7200
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
99 { int c;
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
100 static int flag=1;
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
101 if(flag)
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
102 for(c=0;c<16;c++)
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
103 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
104 flag=0;
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
105 }
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
106 #endif
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
107 { unsigned char v_colors[10]={9,9,11,14,15,7,6,5,5,5};
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
108 int c=v_colors[(x & 255)];
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
109 fprintf(((x & 255) <= MSGL_WARN)?stderr:stdout, "\033[%d;3%dm",(c>7),c&7);
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
110 }
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
111 #endif
7195
a5b2566f3c2b print only fatal/error/warning to stderr, others go to stdout
arpi
parents: 7058
diff changeset
112 if ((x & 255) <= MSGL_WARN){
a5b2566f3c2b print only fatal/error/warning to stderr, others go to stdout
arpi
parents: 7058
diff changeset
113 fprintf(stderr, "%s", tmp);fflush(stderr);
a5b2566f3c2b print only fatal/error/warning to stderr, others go to stdout
arpi
parents: 7058
diff changeset
114 } else {
a5b2566f3c2b print only fatal/error/warning to stderr, others go to stdout
arpi
parents: 7058
diff changeset
115 printf("%s", tmp);fflush(stdout);
a5b2566f3c2b print only fatal/error/warning to stderr, others go to stdout
arpi
parents: 7058
diff changeset
116 }
7200
9a123ba671fd - warnings enabled for GUI mode
arpi
parents: 7195
diff changeset
117
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
118 #else
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
119 va_list va;
2caba2f48026 new message printing system
arpi
parents:
diff changeset
120 if((x&255)>mp_msg_levels[x>>8]) return; // do not display
2caba2f48026 new message printing system
arpi
parents:
diff changeset
121 va_start(va, format);
8573
b2e4f9dab7ad codec-cfg cannot be built when the gui is enabled - it fails to link with a
jkeil
parents: 7205
diff changeset
122 #if ENABLE_GUI_CODE
1971
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
123 if(use_gui){
3293
fc74fe43eb89 msg limit increased
arpi
parents: 1971
diff changeset
124 char tmp[16*80];
1971
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
125 vsnprintf( tmp,8*80,format,va ); tmp[8*80-1]=0;
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
126 switch( x&255 ) {
1925
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
127 case MSGL_FATAL:
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
128 fprintf( stderr,"%s",tmp );
3780
9eb4aa623ab6 fflush disappeared? .so?
arpi
parents: 3293
diff changeset
129 fflush(stderr);
1971
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
130 gtkMessageBox( GTK_MB_FATAL|GTK_MB_SIMPLE,tmp );
1925
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
131 break;
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
132 case MSGL_ERR:
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
133 fprintf( stderr,"%s",tmp );
3780
9eb4aa623ab6 fflush disappeared? .so?
arpi
parents: 3293
diff changeset
134 fflush(stderr);
1971
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
135 gtkMessageBox( GTK_MB_ERROR|GTK_MB_SIMPLE,tmp );
1925
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
136 break;
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
137 case MSGL_WARN:
4888
cb2adf32c356 Use stdout as default mencoder's output if no filename specified
nick
parents: 4176
diff changeset
138 fprintf( stderr, "%s",tmp );
3780
9eb4aa623ab6 fflush disappeared? .so?
arpi
parents: 3293
diff changeset
139 fflush(stdout);
1971
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
140 gtkMessageBox( GTK_MB_WARNING|GTK_MB_SIMPLE,tmp );
1925
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
141 break;
633a7f0d72a4 add gui error handling jol.
pontscho
parents: 1566
diff changeset
142 default:
4888
cb2adf32c356 Use stdout as default mencoder's output if no filename specified
nick
parents: 4176
diff changeset
143 fprintf(stderr, "%s",tmp );
3780
9eb4aa623ab6 fflush disappeared? .so?
arpi
parents: 3293
diff changeset
144 fflush(stdout);
1971
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
145 }
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
146 } else
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
147 #endif
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
148 if((x&255)<=MSGL_ERR){
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
149 // fprintf(stderr,"%%%%%% ");
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
150 vfprintf(stderr,format, va);
3780
9eb4aa623ab6 fflush disappeared? .so?
arpi
parents: 3293
diff changeset
151 fflush(stderr);
1971
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
152 } else {
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
153 // printf("%%%%%% ");
4888
cb2adf32c356 Use stdout as default mencoder's output if no filename specified
nick
parents: 4176
diff changeset
154 vfprintf(stderr,format, va);
3780
9eb4aa623ab6 fflush disappeared? .so?
arpi
parents: 3293
diff changeset
155 fflush(stdout);
1971
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
156 }
7d6116e415a3 cleanup
arpi
parents: 1934
diff changeset
157 va_end(va);
5102
17f97ed8259e added i18n support
alex
parents: 4888
diff changeset
158 #endif
1562
2caba2f48026 new message printing system
arpi
parents:
diff changeset
159 }
2caba2f48026 new message printing system
arpi
parents:
diff changeset
160
2caba2f48026 new message printing system
arpi
parents:
diff changeset
161 #else
2caba2f48026 new message printing system
arpi
parents:
diff changeset
162
2caba2f48026 new message printing system
arpi
parents:
diff changeset
163 FILE *mp_msg_file[MSGT_MAX]; // print message to this file (can be stdout/err)
2caba2f48026 new message printing system
arpi
parents:
diff changeset
164 static FILE* mp_msg_last_file=NULL;
2caba2f48026 new message printing system
arpi
parents:
diff changeset
165
2caba2f48026 new message printing system
arpi
parents:
diff changeset
166 // how to handle errors->stderr messages->stdout ?
2caba2f48026 new message printing system
arpi
parents:
diff changeset
167 void mp_msg( int x, const char *format, ... ){
2caba2f48026 new message printing system
arpi
parents:
diff changeset
168 if((x&255)>mp_msg_levels[x>>8] || !mp_msg_file[x>>8]) return; // do not display
2caba2f48026 new message printing system
arpi
parents:
diff changeset
169 va_list va;
2caba2f48026 new message printing system
arpi
parents:
diff changeset
170 va_start(va, format);
2caba2f48026 new message printing system
arpi
parents:
diff changeset
171 vfprintf(mp_msg_file[x>>8],format, va);
2caba2f48026 new message printing system
arpi
parents:
diff changeset
172 if(mp_msg_last_file!=mp_msg_file[x>>8]){
2caba2f48026 new message printing system
arpi
parents:
diff changeset
173 fflush(mp_msg_file[x>>8]);
2caba2f48026 new message printing system
arpi
parents:
diff changeset
174 mp_msg_last_file=mp_msg_file[x>>8];
2caba2f48026 new message printing system
arpi
parents:
diff changeset
175 }
2caba2f48026 new message printing system
arpi
parents:
diff changeset
176 va_end(va);
2caba2f48026 new message printing system
arpi
parents:
diff changeset
177 }
2caba2f48026 new message printing system
arpi
parents:
diff changeset
178
2caba2f48026 new message printing system
arpi
parents:
diff changeset
179 #endif