~ubuntu-dev/mplayer/ubuntu-feisty

« back to all changes in this revision

Viewing changes to mp_msg.c

  • Committer: Reinhard Tartler
  • Date: 2006-07-08 08:45:33 UTC
  • Revision ID: siretart@tauware.de-20060708084533-dbc155bde7122e78
imported mplayer_0.99+1.0pre7try2+cvs20060117

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
//#define MSG_USE_COLORS
 
3
 
 
4
#include <stdio.h>
 
5
#include <stdlib.h>
 
6
#include <stdarg.h>
 
7
 
 
8
#include "config.h"
 
9
 
 
10
#if     defined(FOR_MENCODER) || defined(CODECS2HTML)
 
11
#undef HAVE_NEW_GUI
 
12
#endif
 
13
 
 
14
#ifdef HAVE_NEW_GUI
 
15
#include "Gui/interface.h"
 
16
extern int use_gui;
 
17
#endif
 
18
#include "mp_msg.h"
 
19
 
 
20
/* maximum message length of mp_msg */
 
21
#define MSGSIZE_MAX 3072
 
22
 
 
23
int mp_msg_levels[MSGT_MAX]; // verbose level of this module. inited to 2
 
24
int mp_msg_level_all = MSGL_STATUS;
 
25
int verbose = 0;
 
26
 
 
27
void mp_msg_init(){
 
28
    int i;
 
29
#ifdef USE_I18N
 
30
#ifdef MP_DEBUG
 
31
    fprintf(stdout, "Using GNU internationalization\n");
 
32
    fprintf(stdout, "Original domain: %s\n", textdomain(NULL));
 
33
    fprintf(stdout, "Original dirname: %s\n", bindtextdomain(textdomain(NULL),NULL));
 
34
#endif
 
35
    bindtextdomain("mplayer", PREFIX"/share/locale");
 
36
    textdomain("mplayer");
 
37
#ifdef MP_DEBUG
 
38
    fprintf(stdout, "Current domain: %s\n", textdomain(NULL));
 
39
    fprintf(stdout, "Current dirname: %s\n\n", bindtextdomain(textdomain(NULL),NULL));
 
40
#endif
 
41
#endif
 
42
    for(i=0;i<MSGT_MAX;i++) mp_msg_levels[i] = -2;
 
43
}
 
44
 
 
45
int mp_msg_test(int mod, int lev)
 
46
{
 
47
    return lev <= (mp_msg_levels[mod] == -2 ? mp_msg_level_all + verbose : mp_msg_levels[mod]);
 
48
}
 
49
 
 
50
void mp_msg(int mod, int lev, const char *format, ... ){
 
51
    va_list va;
 
52
    char tmp[MSGSIZE_MAX];
 
53
    
 
54
    if (!mp_msg_test(mod, lev)) return; // do not display
 
55
    va_start(va, format);
 
56
    vsnprintf(tmp, MSGSIZE_MAX, mp_gettext(format), va);
 
57
    va_end(va);
 
58
    tmp[MSGSIZE_MAX-2] = '\n';
 
59
    tmp[MSGSIZE_MAX-1] = 0;
 
60
 
 
61
#ifdef HAVE_NEW_GUI
 
62
    if(use_gui)
 
63
        guiMessageBox(lev, tmp);
 
64
#endif
 
65
 
 
66
#ifdef MSG_USE_COLORS
 
67
/* that's only a silly color test */
 
68
#ifdef MP_ANNOY_ME
 
69
    { int c;
 
70
      static int flag=1;
 
71
      if(flag)
 
72
      for(c=0;c<24;c++)
 
73
          printf("\033[%d;3%dm***  COLOR TEST %d  ***\n",(c>7),c&7,c);
 
74
      flag=0;
 
75
    }
 
76
#endif    
 
77
    {   unsigned char v_colors[10]={9,1,3,15,7,2,2,8,8,8};
 
78
        static const char *lev_text[]= {
 
79
                                "FATAL",
 
80
                                "ERROR",
 
81
                                "WARN",
 
82
                                "HINT",
 
83
                                "INFO",
 
84
                                "STATUS",
 
85
                                "V",
 
86
                                "DGB2",
 
87
                                "DGB3",
 
88
                                "DGB4"};
 
89
        static const char *mod_text[]= {
 
90
                                "GLOBAL",
 
91
                                "CPLAYER",
 
92
                                "GPLAYER",
 
93
                                "VIDEOOUT",
 
94
                                "AUDIOOUT",
 
95
                                "DEMUXER",
 
96
                                "DS",
 
97
                                "DEMUX",
 
98
                                "HEADER",
 
99
                                "AVSYNC",
 
100
                                "AUTOQ",
 
101
                                "CFGPARSER",
 
102
                                "DECAUDIO",
 
103
                                "DECVIDEO",
 
104
                                "SEEK",
 
105
                                "WIN32",
 
106
                                "OPEN",
 
107
                                "DVD",
 
108
                                "PARSEES",
 
109
                                "LIRC",
 
110
                                "STREAM",
 
111
                                "CACHE",
 
112
                                "MENCODER",
 
113
                                "XACODEC",
 
114
                                "TV",
 
115
                                "OSDEP",
 
116
                                "SPUDEC",
 
117
                                "PLAYTREE",
 
118
                                "INPUT",
 
119
                                "VFILTER",
 
120
                                "OSD",
 
121
                                "NETWORK",
 
122
                                "CPUDETECT",
 
123
                                "CODECCFG",
 
124
                                "SWS",
 
125
                                "VOBSUB",
 
126
                                "SUBREADER",
 
127
                                "AFILTER",
 
128
                                "NETST",
 
129
                                "MUXER"};
 
130
 
 
131
        int c=v_colors[lev];
 
132
        int c2=(mod+1)%15+1;
 
133
        static int header=1;
 
134
        FILE *stream= (lev) <= MSGL_WARN ? stderr : stdout;
 
135
        if(header){
 
136
            fprintf(stream, "\033[%d;3%dm%9s\033[0;37m: ",c2>>3,c2&7, mod_text[mod]);
 
137
        }
 
138
        fprintf(stream, "\033[%d;3%dm",c>>3,c&7);
 
139
        header=    tmp[strlen(tmp)-1] == '\n'
 
140
                 /*||tmp[strlen(tmp)-1] == '\r'*/;
 
141
    }
 
142
#endif
 
143
    if (lev <= MSGL_WARN){
 
144
        fprintf(stderr, "%s", tmp);fflush(stderr);
 
145
    } else {
 
146
        printf("%s", tmp);fflush(stdout);
 
147
    }
 
148
}