comparison mp_msg.c @ 16618:bad73cd81b23

mp_msg cleanup.
author ods15
date Thu, 29 Sep 2005 05:21:12 +0000
parents cdd8c0dfc19b
children 05af35012e4f
comparison
equal deleted inserted replaced
16617:bc9bf383f0f7 16618:bad73cd81b23
6 #include <stdarg.h> 6 #include <stdarg.h>
7 7
8 #include "config.h" 8 #include "config.h"
9 9
10 #if defined(FOR_MENCODER) || defined(CODECS2HTML) 10 #if defined(FOR_MENCODER) || defined(CODECS2HTML)
11 #undef ENABLE_GUI_CODE 11 #undef HAVE_NEW_GUI
12 #elif defined(HAVE_NEW_GUI)
13 #define ENABLE_GUI_CODE HAVE_NEW_GUI
14 #else
15 #undef ENABLE_GUI_CODE
16 #endif 12 #endif
17 13
18 #if ENABLE_GUI_CODE 14 #ifdef HAVE_NEW_GUI
19 #include "Gui/interface.h" 15 #include "Gui/interface.h"
20 extern int use_gui; 16 extern int use_gui;
21 #endif 17 #endif
22 #include "mp_msg.h" 18 #include "mp_msg.h"
23 19
24 /* maximum message length of mp_msg */ 20 /* maximum message length of mp_msg */
25 #define MSGSIZE_MAX 3072 21 #define MSGSIZE_MAX 3072
26 22
27 static int mp_msg_levels[MSGT_MAX]; // verbose level of this module 23 static int mp_msg_levels[MSGT_MAX]; // verbose level of this module
28
29 #if 1
30 24
31 void mp_msg_init(){ 25 void mp_msg_init(){
32 #ifdef USE_I18N 26 #ifdef USE_I18N
33 #ifdef MP_DEBUG 27 #ifdef MP_DEBUG
34 fprintf(stdout, "Using GNU internationalization\n"); 28 fprintf(stdout, "Using GNU internationalization\n");
55 int mp_msg_test(int mod, int lev) 49 int mp_msg_test(int mod, int lev)
56 { 50 {
57 return lev <= mp_msg_levels[mod]; 51 return lev <= mp_msg_levels[mod];
58 } 52 }
59 53
60 void mp_msg_c( int x, const char *format, ... ){ 54 void mp_msg(int mod, int lev, const char *format, ... ){
61 #if 1
62 va_list va; 55 va_list va;
63 char tmp[MSGSIZE_MAX]; 56 char tmp[MSGSIZE_MAX];
64 57
65 if((x&255)>mp_msg_levels[x>>8]) return; // do not display 58 if (lev > mp_msg_levels[mod]) return; // do not display
66 va_start(va, format); 59 va_start(va, format);
67 vsnprintf(tmp, MSGSIZE_MAX, mp_gettext(format), va); 60 vsnprintf(tmp, MSGSIZE_MAX, mp_gettext(format), va);
68 va_end(va); 61 va_end(va);
69 tmp[MSGSIZE_MAX-2] = '\n'; 62 tmp[MSGSIZE_MAX-2] = '\n';
70 tmp[MSGSIZE_MAX-1] = 0; 63 tmp[MSGSIZE_MAX-1] = 0;
71 64
72 #if ENABLE_GUI_CODE 65 #ifdef HAVE_NEW_GUI
73 if(use_gui) 66 if(use_gui)
74 guiMessageBox(x&255, tmp); 67 guiMessageBox(lev, tmp);
75 #endif 68 #endif
76 69
77 #ifdef MSG_USE_COLORS 70 #ifdef MSG_USE_COLORS
78 /* that's only a silly color test */ 71 /* that's only a silly color test */
79 #ifdef MP_ANNOY_ME 72 #ifdef MP_ANNOY_ME
137 "SUBREADER", 130 "SUBREADER",
138 "AFILTER", 131 "AFILTER",
139 "NETST", 132 "NETST",
140 "MUXER"}; 133 "MUXER"};
141 134
142 int c=v_colors[(x & 255)]; 135 int c=v_colors[lev];
143 int c2=((x>>8)+1)%15+1; 136 int c2=(mod+1)%15+1;
144 static int header=1; 137 static int header=1;
145 FILE *stream= (x & 255) <= MSGL_WARN ? stderr : stdout; 138 FILE *stream= (lev) <= MSGL_WARN ? stderr : stdout;
146 if(header){ 139 if(header){
147 fprintf(stream, "\033[%d;3%dm%9s\033[0;37m: ",c2>>3,c2&7, mod_text[x>>8]); 140 fprintf(stream, "\033[%d;3%dm%9s\033[0;37m: ",c2>>3,c2&7, mod_text[mod]);
148 } 141 }
149 fprintf(stream, "\033[%d;3%dm",c>>3,c&7); 142 fprintf(stream, "\033[%d;3%dm",c>>3,c&7);
150 header= tmp[strlen(tmp)-1] == '\n' 143 header= tmp[strlen(tmp)-1] == '\n'
151 /*||tmp[strlen(tmp)-1] == '\r'*/; 144 /*||tmp[strlen(tmp)-1] == '\r'*/;
152 } 145 }
153 #endif 146 #endif
154 if ((x & 255) <= MSGL_WARN){ 147 if (lev <= MSGL_WARN){
155 fprintf(stderr, "%s", tmp);fflush(stderr); 148 fprintf(stderr, "%s", tmp);fflush(stderr);
156 } else { 149 } else {
157 printf("%s", tmp);fflush(stdout); 150 printf("%s", tmp);fflush(stdout);
158 } 151 }
159
160 #else
161 va_list va;
162 if((x&255)>mp_msg_levels[x>>8]) return; // do not display
163 va_start(va, format);
164 #if ENABLE_GUI_CODE
165 if(use_gui){
166 char tmp[16*80];
167 vsnprintf( tmp,8*80,format,va ); tmp[8*80-1]=0;
168 switch( x&255 ) {
169 case MSGL_FATAL:
170 fprintf( stderr,"%s",tmp );
171 fflush(stderr);
172 gtkMessageBox( GTK_MB_FATAL|GTK_MB_SIMPLE,tmp );
173 break;
174 case MSGL_ERR:
175 fprintf( stderr,"%s",tmp );
176 fflush(stderr);
177 gtkMessageBox( GTK_MB_ERROR|GTK_MB_SIMPLE,tmp );
178 break;
179 case MSGL_WARN:
180 fprintf( stderr, "%s",tmp );
181 fflush(stdout);
182 gtkMessageBox( GTK_MB_WARNING|GTK_MB_SIMPLE,tmp );
183 break;
184 default:
185 fprintf(stderr, "%s",tmp );
186 fflush(stdout);
187 }
188 } else
189 #endif
190 if((x&255)<=MSGL_ERR){
191 // fprintf(stderr,"%%%%%% ");
192 vfprintf(stderr,format, va);
193 fflush(stderr);
194 } else {
195 // printf("%%%%%% ");
196 vfprintf(stderr,format, va);
197 fflush(stdout);
198 }
199 va_end(va);
200 #endif
201 } 152 }
202
203 #else
204
205 FILE *mp_msg_file[MSGT_MAX]; // print message to this file (can be stdout/err)
206 static FILE* mp_msg_last_file=NULL;
207
208 // how to handle errors->stderr messages->stdout ?
209 void mp_msg( int x, const char *format, ... ){
210 if((x&255)>mp_msg_levels[x>>8] || !mp_msg_file[x>>8]) return; // do not display
211 va_list va;
212 va_start(va, format);
213 vfprintf(mp_msg_file[x>>8],format, va);
214 if(mp_msg_last_file!=mp_msg_file[x>>8]){
215 fflush(mp_msg_file[x>>8]);
216 mp_msg_last_file=mp_msg_file[x>>8];
217 }
218 va_end(va);
219 }
220
221 #endif