2 //#define MSG_USE_COLORS
10 #if defined(FOR_MENCODER) || defined(CODECS2HTML)
11 #undef ENABLE_GUI_CODE
12 #elif defined(HAVE_NEW_GUI)
13 #define ENABLE_GUI_CODE HAVE_NEW_GUI
15 #undef ENABLE_GUI_CODE
19 #include "Gui/mplayer/widgets.h"
20 extern void gtkMessageBox( int type
,char * str
);
25 /* maximum message length of mp_msg */
26 #define MSGSIZE_MAX 3072
28 static int mp_msg_levels
[MSGT_MAX
]; // verbose level of this module
34 fprintf(stdout
, "Using GNU internationalization\n");
35 fprintf(stdout
, "Original domain: %s\n", textdomain(NULL
));
36 fprintf(stdout
, "Original dirname: %s\n", bindtextdomain(textdomain(NULL
),NULL
));
37 setlocale(LC_ALL
, ""); /* set from the environment variables */
38 bindtextdomain("mplayer", PREFIX
"/share/locale");
39 textdomain("mplayer");
40 fprintf(stdout
, "Current domain: %s\n", textdomain(NULL
));
41 fprintf(stdout
, "Current dirname: %s\n", bindtextdomain(textdomain(NULL
),NULL
));
43 mp_msg_set_level(MSGL_STATUS
);
46 void mp_msg_set_level(int verbose
){
48 for(i
=0;i
<MSGT_MAX
;i
++){
49 mp_msg_levels
[i
]=verbose
;
53 int mp_msg_test(int mod
, int lev
)
55 return lev
<= mp_msg_levels
[mod
];
58 void mp_msg_c( int x
, const char *format
, ... ){
61 char tmp
[MSGSIZE_MAX
];
63 if((x
&255)>mp_msg_levels
[x
>>8]) return; // do not display
65 vsnprintf(tmp
, MSGSIZE_MAX
, mp_gettext(format
), va
);
67 tmp
[MSGSIZE_MAX
-1] = 0;
75 gtkMessageBox(GTK_MB_FATAL
|GTK_MB_SIMPLE
, tmp
);
78 gtkMessageBox(GTK_MB_ERROR
|GTK_MB_SIMPLE
, tmp
);
81 // WARNING! Do NOT enable this! There are too many non-critical messages with
82 // MSGL_WARN, for example: broken SPU packets, codec's bit error messages,
83 // etc etc, they should not raise up a new window every time.
85 gtkMessageBox(GTK_MB_WARNING
|GTK_MB_SIMPLE
, tmp
);
98 printf("\033[%d;3%dm*** COLOR TEST %d ***\n",(c
>7),c
&7,c
);
102 { unsigned char v_colors
[10]={9,9,11,14,15,7,6,5,5,5};
103 int c
=v_colors
[(x
& 255)];
104 fprintf(((x
& 255) <= MSGL_WARN
)?stderr
:stdout
, "\033[%d;3%dm",(c
>7),c
&7);
107 if ((x
& 255) <= MSGL_WARN
){
108 fprintf(stderr
, "%s", tmp
);fflush(stderr
);
110 printf("%s", tmp
);fflush(stdout
);
115 if((x
&255)>mp_msg_levels
[x
>>8]) return; // do not display
116 va_start(va
, format
);
120 vsnprintf( tmp
,8*80,format
,va
); tmp
[8*80-1]=0;
123 fprintf( stderr
,"%s",tmp
);
125 gtkMessageBox( GTK_MB_FATAL
|GTK_MB_SIMPLE
,tmp
);
128 fprintf( stderr
,"%s",tmp
);
130 gtkMessageBox( GTK_MB_ERROR
|GTK_MB_SIMPLE
,tmp
);
133 fprintf( stderr
, "%s",tmp
);
135 gtkMessageBox( GTK_MB_WARNING
|GTK_MB_SIMPLE
,tmp
);
138 fprintf(stderr
, "%s",tmp
);
143 if((x
&255)<=MSGL_ERR
){
144 // fprintf(stderr,"%%%%%% ");
145 vfprintf(stderr
,format
, va
);
148 // printf("%%%%%% ");
149 vfprintf(stderr
,format
, va
);
158 FILE *mp_msg_file
[MSGT_MAX
]; // print message to this file (can be stdout/err)
159 static FILE* mp_msg_last_file
=NULL
;
161 // how to handle errors->stderr messages->stdout ?
162 void mp_msg( int x
, const char *format
, ... ){
163 if((x
&255)>mp_msg_levels
[x
>>8] || !mp_msg_file
[x
>>8]) return; // do not display
165 va_start(va
, format
);
166 vfprintf(mp_msg_file
[x
>>8],format
, va
);
167 if(mp_msg_last_file
!=mp_msg_file
[x
>>8]){
168 fflush(mp_msg_file
[x
>>8]);
169 mp_msg_last_file
=mp_msg_file
[x
>>8];