Mercurial > mplayer.hg
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 |
rev | line source |
---|---|
7200 | 1 |
2 //#define MSG_USE_COLORS | |
1562 | 3 |
4 #include <stdio.h> | |
5 #include <stdlib.h> | |
6 #include <stdarg.h> | |
7 | |
1925 | 8 #include "config.h" |
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 | 19 #include "Gui/mplayer/widgets.h" |
20 extern void gtkMessageBox( int type,char * str ); | |
21 extern int use_gui; | |
22 #endif | |
1562 | 23 #include "mp_msg.h" |
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 | 28 static int mp_msg_levels[MSGT_MAX]; // verbose level of this module |
29 | |
30 #if 1 | |
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 | 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 | 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 | 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 | 43 fprintf(stdout, "Current dirname: %s\n\n", bindtextdomain(textdomain(NULL),NULL)); |
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 | 50 int i; |
51 for(i=0;i<MSGT_MAX;i++){ | |
52 mp_msg_levels[i]=verbose; | |
53 } | |
54 } | |
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 | 61 void mp_msg_c( int x, const char *format, ... ){ |
5102 | 62 #if 1 |
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 | 65 |
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 | 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 | 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 | 74 if(use_gui) |
75 { | |
76 switch(x & 255) | |
77 { | |
78 case MSGL_FATAL: | |
79 gtkMessageBox(GTK_MB_FATAL|GTK_MB_SIMPLE, tmp); | |
80 break; | |
81 case MSGL_ERR: | |
82 gtkMessageBox(GTK_MB_ERROR|GTK_MB_SIMPLE, tmp); | |
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 | 88 case MSGL_WARN: |
89 gtkMessageBox(GTK_MB_WARNING|GTK_MB_SIMPLE, tmp); | |
90 break; | |
7205
9d11474c39af
WARNING message gui windows disabled, the only critical warn message (too
arpi
parents:
7200
diff
changeset
|
91 #endif |
5102 | 92 } |
93 } | |
94 #endif | |
95 | |
7200 | 96 #ifdef MSG_USE_COLORS |
10415 | 97 /* that's only a silly color test */ |
98 #ifdef MP_DEBUG | |
7200 | 99 { int c; |
100 static int flag=1; | |
101 if(flag) | |
102 for(c=0;c<16;c++) | |
103 printf("\033[%d;3%dm*** COLOR TEST %d ***\n",(c>7),c&7,c); | |
104 flag=0; | |
105 } | |
106 #endif | |
107 { unsigned char v_colors[10]={9,9,11,14,15,7,6,5,5,5}; | |
108 int c=v_colors[(x & 255)]; | |
109 fprintf(((x & 255) <= MSGL_WARN)?stderr:stdout, "\033[%d;3%dm",(c>7),c&7); | |
110 } | |
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 | 117 |
5102 | 118 #else |
1562 | 119 va_list va; |
120 if((x&255)>mp_msg_levels[x>>8]) return; // do not display | |
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 | 123 if(use_gui){ |
3293 | 124 char tmp[16*80]; |
1971 | 125 vsnprintf( tmp,8*80,format,va ); tmp[8*80-1]=0; |
126 switch( x&255 ) { | |
1925 | 127 case MSGL_FATAL: |
128 fprintf( stderr,"%s",tmp ); | |
3780 | 129 fflush(stderr); |
1971 | 130 gtkMessageBox( GTK_MB_FATAL|GTK_MB_SIMPLE,tmp ); |
1925 | 131 break; |
132 case MSGL_ERR: | |
133 fprintf( stderr,"%s",tmp ); | |
3780 | 134 fflush(stderr); |
1971 | 135 gtkMessageBox( GTK_MB_ERROR|GTK_MB_SIMPLE,tmp ); |
1925 | 136 break; |
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 | 139 fflush(stdout); |
1971 | 140 gtkMessageBox( GTK_MB_WARNING|GTK_MB_SIMPLE,tmp ); |
1925 | 141 break; |
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 | 144 fflush(stdout); |
1971 | 145 } |
146 } else | |
147 #endif | |
148 if((x&255)<=MSGL_ERR){ | |
149 // fprintf(stderr,"%%%%%% "); | |
150 vfprintf(stderr,format, va); | |
3780 | 151 fflush(stderr); |
1971 | 152 } else { |
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 | 155 fflush(stdout); |
1971 | 156 } |
157 va_end(va); | |
5102 | 158 #endif |
1562 | 159 } |
160 | |
161 #else | |
162 | |
163 FILE *mp_msg_file[MSGT_MAX]; // print message to this file (can be stdout/err) | |
164 static FILE* mp_msg_last_file=NULL; | |
165 | |
166 // how to handle errors->stderr messages->stdout ? | |
167 void mp_msg( int x, const char *format, ... ){ | |
168 if((x&255)>mp_msg_levels[x>>8] || !mp_msg_file[x>>8]) return; // do not display | |
169 va_list va; | |
170 va_start(va, format); | |
171 vfprintf(mp_msg_file[x>>8],format, va); | |
172 if(mp_msg_last_file!=mp_msg_file[x>>8]){ | |
173 fflush(mp_msg_file[x>>8]); | |
174 mp_msg_last_file=mp_msg_file[x>>8]; | |
175 } | |
176 va_end(va); | |
177 } | |
178 | |
179 #endif |