annotate gui/interface.c @ 32927:edb972e22021

Fix memory leak in appInitStruct(). The NumberOf{Main,Bar,Menu}Items members actually don't hold the number of items but the last index used. Therefore, the last item won't get freed so far. To set the correct "number" for the global external variable prior to using it, the function appResetStruct() has been added and is used in appInitStruct() as well.
author ib
date Thu, 03 Mar 2011 13:45:30 +0000
parents 1481268ccd30
children 15aecb36f23e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26458
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
1 /*
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
2 * This file is part of MPlayer.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
3 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
5 * it under the terms of the GNU General Public License as published by
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
7 * (at your option) any later version.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
8 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
12 * GNU General Public License for more details.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
13 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
14 * You should have received a copy of the GNU General Public License along
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 25851
diff changeset
17 */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
18
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
19 #include <inttypes.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
20 #include <stdlib.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
21 #include <stdio.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
22 #include <string.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
23 #include <sys/types.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
24
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
25 #include "wm/ws.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
26 #include "wm/wsxdnd.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
27 #include "interface.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
28 #include "skin/skin.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
29
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
30 #include "mplayer/gtk/eq.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
31 #include "mplayer/widgets.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
32 #include "mplayer/gmplayer.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
33 #include "mplayer/play.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
34
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
35 #include "access_mpcontext.h"
32461
bc43cf7638e6 Move ass_mp.[ch] to the sub directory.
cigaes
parents: 32209
diff changeset
36 #include "sub/ass_mp.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
37 #include "app.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
38 #include "cfg.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
39 #include "help_mp.h"
30901
76a13038105e Rename get_path.[ch] --> path.[ch].
diego
parents: 30689
diff changeset
40 #include "path.h"
30516
f4e017b6921a Fix exit_player() usage throughout the codebase.
diego
parents: 30063
diff changeset
41 #include "mp_core.h"
32032
52b0385d2d7a Move **sub_name extern declaration to mpcommon.h.
diego
parents: 32030
diff changeset
42 #include "mpcommon.h"
30536
39a4dd7ec420 Move GUI-related extern declarations to a GUI header file.
diego
parents: 30535
diff changeset
43 #include "mplayer.h"
30653
3d23e24c5c60 Declare externally used variables from vd.c as extern in vd.h.
diego
parents: 30536
diff changeset
44 #include "libmpcodecs/vd.h"
31424
283eac48391d Move extern declarations for vf.c variables to vf.h.
diego
parents: 31373
diff changeset
45 #include "libmpcodecs/vf.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
46 #include "libvo/x11_common.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
47 #include "libvo/video_out.h"
32466
9e627a1793b1 Move font_load.[ch], font_load_ft.c and osd_font.h from libvo to sub.
cigaes
parents: 32461
diff changeset
48 #include "sub/font_load.h"
32467
fbe5c829c69b Move libvo/sub.[ch] from libvo to sub.
cigaes
parents: 32466
diff changeset
49 #include "sub/sub.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
50 #include "input/input.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
51 #include "libao2/audio_out.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
52 #include "mixer.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
53 #include "libaf/af.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
54 #include "libaf/equalizer.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
55
27393
4876c89bafdd Rename font-related preprocessor directives.
diego
parents: 27390
diff changeset
56 #ifdef CONFIG_ICONV
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
57 #include <iconv.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
58 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
59
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
60 #include "stream/stream.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
61 #include "libmpdemux/demuxer.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
62 #include "libmpdemux/stheader.h"
31425
2392ad3cec9c Move af_cfg extern variable declaration to dec_audio.h.
diego
parents: 31424
diff changeset
63 #include "libmpcodecs/dec_audio.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
64 #include "libmpcodecs/dec_video.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
65
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
66 #ifdef CONFIG_DVDREAD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
67 #include "stream/stream_dvd.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
68 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
69
23603
c1221a031ab7 Add a (almost correct) prototype for vcd_seek_to_track
reimar
parents: 23341
diff changeset
70 int vcd_seek_to_track(void *vcd, int track);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
71
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
72 #include "m_config.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
73 #include "m_option.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
74
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
75
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
76 guiInterface_t guiIntfStruct;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
77 int guiWinID=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
78
32900
1481268ccd30 Move global skin directory variables.
ib
parents: 32847
diff changeset
79 char *skinName;
1481268ccd30 Move global skin directory variables.
ib
parents: 32847
diff changeset
80 char *skinDirInHome;
1481268ccd30 Move global skin directory variables.
ib
parents: 32847
diff changeset
81 char *skinMPlayerDir;
1481268ccd30 Move global skin directory variables.
ib
parents: 32847
diff changeset
82
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
83 int gstrcmp( const char * a,const char * b )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
84 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
85 if ( !a && !b ) return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
86 if ( !a || !b ) return -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
87 return strcmp( a,b );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
88 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
89
30535
016e5fc1dead GUI: Mark functions that are not used outside their files as static.
diego
parents: 30516
diff changeset
90 static int gstrncmp( const char * a, const char * b, int size )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
91 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
92 if ( !a && !b ) return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
93 if ( !a || !b ) return -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
94 return strncmp( a,b,size );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
95 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
96
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
97 char * gstrdup( const char * str )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
98 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
99 if ( !str ) return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
100 return strdup( str );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
101 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
102
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
103 char * gstrchr( char * str,int c )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
104 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
105 if ( !str ) return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
106 return strchr( str,c );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
107 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
108
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
109 void gfree( void ** p )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
110 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
111 free( *p ); *p=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
112 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
113
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
114 /**
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
115 * \brief this actually creates a new list containing only one element...
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
116 */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
117 void gaddlist( char *** list,const char * entry )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
118 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
119 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
120
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
121 if ( (*list) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
122 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
123 for ( i=0;(*list)[i];i++ ) free( (*list)[i] );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
124 free( (*list) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
125 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
126
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
127 (*list)=malloc( 2 * sizeof(char **) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
128 (*list)[0]=gstrdup( entry );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
129 (*list)[1]=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
130 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
131
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
132 /**
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
133 * \brief this replaces a string starting with search by replace.
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
134 * If not found, replace is appended.
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
135 */
30535
016e5fc1dead GUI: Mark functions that are not used outside their files as static.
diego
parents: 30516
diff changeset
136 static void greplace(char ***list, const char *search, const char *replace)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
137 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
138 int i = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
139 int len = (search) ? strlen(search) : 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
140
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
141 if (*list) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
142 for (i = 0; (*list)[i]; i++) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
143 if (search && (strncmp((*list)[i], search, len) == 0)) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
144 free((*list)[i]);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
145 (*list)[i] = gstrdup(replace);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
146 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
147 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
148 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
149 *list = realloc(*list, (i + 2) * sizeof(char *));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
150 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
151 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
152 *list = malloc(2 * sizeof(char *));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
153
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
154 (*list)[i] = gstrdup(replace);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
155 (*list)[i + 1] = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
156 }
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
157
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
158 void guiInit( void )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
159 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
160 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
161
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
162 memset( &guiIntfStruct,0,sizeof( guiIntfStruct ) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
163 guiIntfStruct.Balance=50.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
164 guiIntfStruct.StreamType=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
165
32927
edb972e22021 Fix memory leak in appInitStruct().
ib
parents: 32900
diff changeset
166 appResetStruct();
edb972e22021 Fix memory leak in appInitStruct().
ib
parents: 32900
diff changeset
167
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
168 memset( &gtkEquChannels,0,sizeof( gtkEquChannels ) );
27370
14c5017f40d2 Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents: 27359
diff changeset
169 #ifdef CONFIG_DXR3
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
170 if ( !gtkDXR3Device ) gtkDXR3Device=strdup( "/dev/em8300-0" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
171 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
172 if ( stream_cache_size > 0 ) { gtkCacheOn=1; gtkCacheSize=stream_cache_size; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
173 else if ( stream_cache_size == 0 ) gtkCacheOn = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
174 if ( autosync && autosync != gtkAutoSync ) { gtkAutoSyncOn=1; gtkAutoSync=autosync; }
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
175
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
176 #ifdef CONFIG_ASS
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
177 gtkASS.enabled = ass_enabled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
178 gtkASS.use_margins = ass_use_margins;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
179 gtkASS.top_margin = ass_top_margin;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
180 gtkASS.bottom_margin = ass_bottom_margin;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
181 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
182
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
183 gtkInit();
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
184 // --- initialize X
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
185 wsXInit( (void *)mDisplay );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
186 // --- load skin
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
187 skinDirInHome=get_path("skins");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
188 skinMPlayerDir=MPLAYER_DATADIR "/skins";
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
189 mp_msg( MSGT_GPLAYER,MSGL_V,"SKIN dir 1: '%s'\n",skinDirInHome);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
190 mp_msg( MSGT_GPLAYER,MSGL_V,"SKIN dir 2: '%s'\n",skinMPlayerDir);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
191 if ( !skinName ) skinName=strdup( "default" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
192 i = skinRead( skinName );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
193 if ((i == -1) && strcmp(skinName,"default"))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
194 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
195 mp_msg( MSGT_GPLAYER,MSGL_WARN,MSGTR_SKIN_SKINCFG_SelectedSkinNotFound, skinName);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
196 skinName=strdup( "default" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
197 i = skinRead( skinName );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
198 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
199 switch (i) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
200 case -1: mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_SKIN_SKINCFG_SkinNotFound,skinName ); exit( 0 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
201 case -2: mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_SKIN_SKINCFG_SkinCfgReadError,skinName ); exit( 0 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
202 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
203 // --- initialize windows
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
204 if ( ( mplDrawBuffer = malloc( appMPlayer.main.Bitmap.ImageSize ) ) == NULL )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
205 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
206 fprintf( stderr,MSGTR_NEMDB );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
207 exit( 0 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
208 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
209
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
210 if ( gui_save_pos )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
211 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
212 appMPlayer.main.x = gui_main_pos_x;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
213 appMPlayer.main.y = gui_main_pos_y;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
214 appMPlayer.sub.x = gui_sub_pos_x;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
215 appMPlayer.sub.y = gui_sub_pos_y;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
216 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
217
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
218 if (WinID>0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
219 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
220 appMPlayer.subWindow.Parent=WinID;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
221 appMPlayer.sub.x=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
222 appMPlayer.sub.y=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
223 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
224 if (guiWinID>=0) appMPlayer.mainWindow.Parent=guiWinID;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
225
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
226 wsCreateWindow( &appMPlayer.subWindow,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
227 appMPlayer.sub.x,appMPlayer.sub.y,appMPlayer.sub.width,appMPlayer.sub.height,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
228 wsNoBorder,wsShowMouseCursor|wsHandleMouseButton|wsHandleMouseMove,wsShowFrame|wsHideWindow,"MPlayer - Video" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
229
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
230 wsDestroyImage( &appMPlayer.subWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
231 wsCreateImage( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Width,appMPlayer.sub.Bitmap.Height );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
232 wsXDNDMakeAwareness(&appMPlayer.subWindow);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
233
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
234 mplMenuInit();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
235 mplPBInit();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
236
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
237 // i=wsHideFrame|wsMaxSize|wsHideWindow;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
238 // if ( appMPlayer.mainDecoration ) i=wsShowFrame|wsMaxSize|wsHideWindow;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
239 i=wsShowFrame|wsMaxSize|wsHideWindow;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
240 wsCreateWindow( &appMPlayer.mainWindow,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
241 appMPlayer.main.x,appMPlayer.main.y,appMPlayer.main.width,appMPlayer.main.height,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
242 wsNoBorder,wsShowMouseCursor|wsHandleMouseButton|wsHandleMouseMove,i,"MPlayer" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
243
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
244 wsSetShape( &appMPlayer.mainWindow,appMPlayer.main.Mask.Image );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
245 wsXDNDMakeAwareness(&appMPlayer.mainWindow);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
246
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
247 #ifdef DEBUG
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
248 mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] depth on screen: %d\n",wsDepthOnScreen );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
249 mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] parent: 0x%x\n",(int)appMPlayer.mainWindow.WindowID );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
250 mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] sub: 0x%x\n",(int)appMPlayer.subWindow.WindowID );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
251 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
252
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
253 appMPlayer.mainWindow.ReDraw=(void *)mplMainDraw;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
254 appMPlayer.mainWindow.MouseHandler=mplMainMouseHandle;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
255 appMPlayer.mainWindow.KeyHandler=mplMainKeyHandle;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
256 appMPlayer.mainWindow.DandDHandler=mplDandDHandler;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
257
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
258 appMPlayer.subWindow.ReDraw=(void *)mplSubDraw;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
259 appMPlayer.subWindow.MouseHandler=mplSubMouseHandle;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
260 appMPlayer.subWindow.KeyHandler=mplMainKeyHandle;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
261 appMPlayer.subWindow.DandDHandler=mplDandDHandler;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
262
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
263 wsSetBackgroundRGB( &appMPlayer.subWindow,appMPlayer.sub.R,appMPlayer.sub.G,appMPlayer.sub.B );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
264 wsClearWindow( appMPlayer.subWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
265 if ( appMPlayer.sub.Bitmap.Image ) wsConvert( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Image,appMPlayer.sub.Bitmap.ImageSize );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
266
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
267 btnModify( evSetVolume,guiIntfStruct.Volume );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
268 btnModify( evSetBalance,guiIntfStruct.Balance );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
269 btnModify( evSetMoviePosition,guiIntfStruct.Position );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
270
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
271 wsSetIcon( wsDisplay,appMPlayer.mainWindow.WindowID,guiIcon,guiIconMask );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
272 wsSetIcon( wsDisplay,appMPlayer.subWindow.WindowID,guiIcon,guiIconMask );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
273
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
274 guiIntfStruct.Playing=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
275
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
276 if ( !appMPlayer.mainDecoration ) wsWindowDecoration( &appMPlayer.mainWindow,0 );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
277
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
278 wsVisibleWindow( &appMPlayer.mainWindow,wsShowWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
279 #if 0
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
280 wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
281
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
282 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
283 XEvent xev;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
284 do { XNextEvent( wsDisplay,&xev ); } while ( xev.type != MapNotify || xev.xmap.event != appMPlayer.subWindow.WindowID );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
285 appMPlayer.subWindow.Mapped=wsMapped;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
286 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
287
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
288 if ( !fullscreen ) fullscreen=gtkLoadFullscreen;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
289 if ( fullscreen )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
290 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
291 mplFullScreen();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
292 btnModify( evFullScreen,btnPressed );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
293 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
294 #else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
295 if ( !fullscreen ) fullscreen=gtkLoadFullscreen;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
296 if ( gtkShowVideoWindow )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
297 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
298 wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
299 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
300 XEvent xev;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
301 do { XNextEvent( wsDisplay,&xev ); } while ( xev.type != MapNotify || xev.xmap.event != appMPlayer.subWindow.WindowID );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
302 appMPlayer.subWindow.Mapped=wsMapped;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
303 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
304
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
305 if ( fullscreen )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
306 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
307 mplFullScreen();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
308 btnModify( evFullScreen,btnPressed );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
309 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
310 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
311 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
312 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
313 if ( fullscreen )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
314 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
315 wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
316 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
317 XEvent xev;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
318 do { XNextEvent( wsDisplay,&xev ); } while ( xev.type != MapNotify || xev.xmap.event != appMPlayer.subWindow.WindowID );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
319 appMPlayer.subWindow.Mapped=wsMapped;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
320 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
321 wsVisibleWindow( &appMPlayer.subWindow, wsShowWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
322
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
323 mplFullScreen();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
324 btnModify( evFullScreen,btnPressed );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
325 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
326 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
327 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
328 mplSubRender=1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
329 // ---
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
330
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
331 if ( filename ) mplSetFileName( NULL,filename,STREAMTYPE_FILE );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
332 if ( plCurrent && !filename ) mplSetFileName( plCurrent->path,plCurrent->name,STREAMTYPE_FILE );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
333 if ( subdata ) guiSetFilename( guiIntfStruct.Subtitlename, subdata->filename );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
334 guiLoadFont();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
335 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
336
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
337 void guiDone( void )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
338 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
339 mplMainRender=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
340 mp_msg( MSGT_GPLAYER,MSGL_V,"[GUI] done.\n" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
341
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
342 if ( gui_save_pos )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
343 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
344 gui_main_pos_x=appMPlayer.mainWindow.X; gui_main_pos_y=appMPlayer.mainWindow.Y;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
345 gui_sub_pos_x=appMPlayer.subWindow.X; gui_sub_pos_y=appMPlayer.subWindow.Y;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
346 }
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
347
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
348 #ifdef CONFIG_ASS
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
349 ass_enabled = gtkASS.enabled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
350 ass_use_margins = gtkASS.use_margins;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
351 ass_top_margin = gtkASS.top_margin;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
352 ass_bottom_margin = gtkASS.bottom_margin;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
353 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
354
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
355 cfg_write();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
356 wsXDone();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
357 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
358
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
359 void guiLoadFont( void )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
360 {
27393
4876c89bafdd Rename font-related preprocessor directives.
diego
parents: 27390
diff changeset
361 #ifdef CONFIG_FREETYPE
25851
9ebd00825df2 Allow independent scaling of vo_font and sub_font.
reimar
parents: 25765
diff changeset
362 load_font_ft(vo_image_width, vo_image_height, &vo_font, font_name, osd_font_scale_factor);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
363 #else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
364 if ( vo_font )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
365 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
366 int i;
32537
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
367 free( vo_font->name );
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
368 free( vo_font->fpath );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
369 for ( i=0;i<16;i++ )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
370 if ( vo_font->pic_a[i] )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
371 {
32537
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
372 free( vo_font->pic_a[i]->bmp );
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
373 free( vo_font->pic_a[i]->pal );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
374 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
375 for ( i=0;i<16;i++ )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
376 if ( vo_font->pic_b[i] )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
377 {
32537
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
378 free( vo_font->pic_b[i]->bmp );
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
379 free( vo_font->pic_b[i]->pal );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
380 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
381 free( vo_font ); vo_font=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
382 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
383 if ( font_name )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
384 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
385 vo_font=read_font_desc( font_name,font_factor,0 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
386 if ( !vo_font ) mp_msg( MSGT_CPLAYER,MSGL_ERR,MSGTR_CantLoadFont,font_name );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
387 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
388 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
389 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
390 font_name=gstrdup( get_path( "font/font.desc" ) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
391 vo_font=read_font_desc( font_name,font_factor,0 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
392 if ( !vo_font )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
393 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
394 gfree( (void **)&font_name ); font_name=gstrdup(MPLAYER_DATADIR "/font/font.desc" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
395 vo_font=read_font_desc( font_name,font_factor,0 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
396 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
397 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
398 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
399 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
400
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
401 void guiLoadSubtitle( char * name )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
402 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
403 if ( guiIntfStruct.Playing == 0 )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
404 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
405 guiIntfStruct.SubtitleChanged=1; //what is this for? (mw)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
406 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
407 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
408 if ( subdata )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
409 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
410 mp_msg( MSGT_GPLAYER,MSGL_INFO,MSGTR_DeletingSubtitles );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
411 sub_free( subdata );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
412 subdata=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
413 vo_sub=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
414 if ( vo_osd_list )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
415 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
416 int len;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
417 mp_osd_obj_t * osd = vo_osd_list;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
418 while ( osd )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
419 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
420 if ( osd->type == OSDTYPE_SUBTITLE ) break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
421 osd=osd->next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
422 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
423 if ( osd && osd->flags&OSDFLAG_VISIBLE )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
424 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
425 len=osd->stride * ( osd->bbox.y2 - osd->bbox.y1 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
426 memset( osd->bitmap_buffer,0,len );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
427 memset( osd->alpha_buffer,0,len );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
428 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
429 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
430 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
431 if ( name )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
432 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
433 mp_msg( MSGT_GPLAYER,MSGL_INFO,MSGTR_LoadingSubtitles,name );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
434 subdata=sub_read_file( name, guiIntfStruct.FPS );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
435 if ( !subdata ) mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_CantLoadSub,name );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
436 sub_name = (malloc(2 * sizeof(char*))); //when mplayer will be restarted
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
437 sub_name[0] = strdup(name); //sub_name[0] will be read
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
438 sub_name[1] = NULL;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
439 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
440 update_set_of_subtitles();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
441
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
442 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
443
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
444 static void add_vf( char * str )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
445 {
32712
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
446 void *p;
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
447
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
448 if ( vf_settings )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
449 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
450 int i = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
451 while ( vf_settings[i].name ) if ( !gstrcmp( vf_settings[i++].name,str ) ) { i=-1; break; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
452 if ( i != -1 )
32712
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
453 {
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
454 if ( !( p=realloc( vf_settings,( i + 2 ) * sizeof( m_obj_settings_t ) ) ) ) return;
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
455 vf_settings=p;
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
456 vf_settings[i].name=strdup( str );
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
457 vf_settings[i].attribs = NULL;
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
458 vf_settings[i+1].name=NULL;
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
459 }
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
460 }
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
461 else { vf_settings=malloc( 2 * sizeof( m_obj_settings_t ) ); vf_settings[0].name=strdup( str );vf_settings[0].attribs = NULL; vf_settings[1].name=NULL; }
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
462
6ff3cc81d602 Fix resource leaks and check for realloc failures
ib
parents: 32543
diff changeset
463 mp_msg( MSGT_GPLAYER,MSGL_STATUS,MSGTR_AddingVideoFilter,str );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
464 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
465
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
466 static void remove_vf( char * str )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
467 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
468 int n = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
469
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
470 if ( !vf_settings ) return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
471
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
472 mp_msg( MSGT_GPLAYER,MSGL_STATUS,MSGTR_RemovingVideoFilter,str );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
473
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
474 while ( vf_settings[n++].name ); n--;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
475 if ( n > -1 )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
476 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
477 int i = 0,m = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
478 while ( vf_settings[i].name ) if ( !gstrcmp( vf_settings[i++].name,str ) ) { m=i - 1; break; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
479 i--;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
480 if ( m > -1 )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
481 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
482 if ( n == 1 ) { free( vf_settings[0].name );free( vf_settings[0].attribs ); free( vf_settings ); vf_settings=NULL; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
483 else { free( vf_settings[i].name );free( vf_settings[i].attribs ); memcpy( &vf_settings[i],&vf_settings[i + 1],( n - i ) * sizeof( m_obj_settings_t ) ); }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
484 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
485 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
486 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
487
30689
ebe42a93c6c3 Fix silly type of guiGetEvent argument to use void * instead of char * and
reimar
parents: 30653
diff changeset
488 int guiGetEvent( int type,void * arg )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
489 {
25765
304fc0bbefe1 audio_out / video_out structs should be treated as const
reimar
parents: 25219
diff changeset
490 const ao_functions_t *audio_out = NULL;
25219
e82ecde2cbd4 Mark several uses of vo_functions_t as const to stop some of the current
reimar
parents: 24242
diff changeset
491 const vo_functions_t *video_out = NULL;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
492 mixer_t *mixer = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
493
30689
ebe42a93c6c3 Fix silly type of guiGetEvent argument to use void * instead of char * and
reimar
parents: 30653
diff changeset
494 stream_t * stream = arg;
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
495 #ifdef CONFIG_DVDREAD
30689
ebe42a93c6c3 Fix silly type of guiGetEvent argument to use void * instead of char * and
reimar
parents: 30653
diff changeset
496 dvd_priv_t * dvdp = arg;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
497 #endif
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
498
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
499 if (guiIntfStruct.mpcontext) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
500 audio_out = mpctx_get_audio_out(guiIntfStruct.mpcontext);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
501 video_out = mpctx_get_video_out(guiIntfStruct.mpcontext);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
502 mixer = mpctx_get_mixer(guiIntfStruct.mpcontext);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
503 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
504
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
505 switch ( type )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
506 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
507 case guiXEvent:
30689
ebe42a93c6c3 Fix silly type of guiGetEvent argument to use void * instead of char * and
reimar
parents: 30653
diff changeset
508 guiIntfStruct.event_struct=arg;
ebe42a93c6c3 Fix silly type of guiGetEvent argument to use void * instead of char * and
reimar
parents: 30653
diff changeset
509 wsEvents( wsDisplay,arg,NULL );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
510 gtkEventHandling();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
511 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
512 case guiCEvent:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
513 switch ( (int)arg )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
514 {
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
515 case guiSetPlay:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
516 guiIntfStruct.Playing=1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
517 // if ( !gtkShowVideoWindow ) wsVisibleWindow( &appMPlayer.subWindow,wsHideWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
518 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
519 case guiSetStop:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
520 guiIntfStruct.Playing=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
521 // if ( !gtkShowVideoWindow ) wsVisibleWindow( &appMPlayer.subWindow,wsHideWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
522 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
523 case guiSetPause: guiIntfStruct.Playing=2; break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
524 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
525 mplState();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
526 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
527 case guiSetState:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
528 mplState();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
529 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
530 case guiSetFileName:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
531 if ( arg ) guiSetFilename( guiIntfStruct.Filename,arg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
532 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
533 case guiSetAudioOnly:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
534 guiIntfStruct.AudioOnly=(int)arg;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
535 if ( (int)arg ) { guiIntfStruct.NoWindow=True; wsVisibleWindow( &appMPlayer.subWindow,wsHideWindow ); }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
536 else wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
537 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
538 case guiSetContext:
30689
ebe42a93c6c3 Fix silly type of guiGetEvent argument to use void * instead of char * and
reimar
parents: 30653
diff changeset
539 guiIntfStruct.mpcontext=arg;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
540 case guiSetDemuxer:
30689
ebe42a93c6c3 Fix silly type of guiGetEvent argument to use void * instead of char * and
reimar
parents: 30653
diff changeset
541 guiIntfStruct.demuxer=arg;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
542 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
543 case guiSetAfilter:
30689
ebe42a93c6c3 Fix silly type of guiGetEvent argument to use void * instead of char * and
reimar
parents: 30653
diff changeset
544 guiIntfStruct.afilter=arg;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
545 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
546 case guiSetShVideo:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
547 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
548 if ( !appMPlayer.subWindow.isFullScreen )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
549 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
550 wsResizeWindow( &appMPlayer.subWindow,vo_dwidth,vo_dheight );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
551 wsMoveWindow( &appMPlayer.subWindow,True,appMPlayer.sub.x,appMPlayer.sub.y );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
552 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
553 guiIntfStruct.MovieWidth=vo_dwidth;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
554 guiIntfStruct.MovieHeight=vo_dheight;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
555 if (guiWinID>=0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
556 wsMoveWindow( &appMPlayer.mainWindow,0,0, vo_dheight);
31315
ad274a5b093b For vos that support the new libvo API (provide UPDATE_SCREENINFO),
reimar
parents: 31312
diff changeset
557 WinID = appMPlayer.subWindow.WindowID;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
558 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
559 break;
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
560 #ifdef CONFIG_DVDREAD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
561 case guiSetDVD:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
562 guiIntfStruct.DVD.titles=dvdp->vmg_file->tt_srpt->nr_of_srpts;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
563 guiIntfStruct.DVD.chapters=dvdp->vmg_file->tt_srpt->title[dvd_title].nr_of_ptts;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
564 guiIntfStruct.DVD.angles=dvdp->vmg_file->tt_srpt->title[dvd_title].nr_of_angles;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
565 guiIntfStruct.DVD.nr_of_audio_channels=dvdp->nr_of_channels;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
566 memcpy( guiIntfStruct.DVD.audio_streams,dvdp->audio_streams,sizeof( dvdp->audio_streams ) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
567 guiIntfStruct.DVD.nr_of_subtitles=dvdp->nr_of_subtitles;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
568 memcpy( guiIntfStruct.DVD.subtitles,dvdp->subtitles,sizeof( dvdp->subtitles ) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
569 guiIntfStruct.DVD.current_title=dvd_title + 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
570 guiIntfStruct.DVD.current_chapter=dvd_chapter + 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
571 guiIntfStruct.DVD.current_angle=dvd_angle + 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
572 guiIntfStruct.Track=dvd_title + 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
573 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
574 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
575 case guiSetStream:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
576 guiIntfStruct.StreamType=stream->type;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
577 switch( stream->type )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
578 {
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
579 #ifdef CONFIG_DVDREAD
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
580 case STREAMTYPE_DVD:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
581 guiGetEvent( guiSetDVD,(char *)stream->priv );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
582 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
583 #endif
27370
14c5017f40d2 Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents: 27359
diff changeset
584 #ifdef CONFIG_VCD
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
585 case STREAMTYPE_VCD:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
586 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
587 int i;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
588
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
589 if (!stream->priv)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
590 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
591 guiIntfStruct.VCDTracks=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
592 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
593 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
594 for ( i=1;i < 100;i++ )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
595 if ( vcd_seek_to_track( stream->priv,i ) < 0 ) break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
596 vcd_seek_to_track( stream->priv,vcd_track );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
597 guiIntfStruct.VCDTracks=--i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
598 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
599 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
600 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
601 default: break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
602 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
603 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
604 case guiIEvent:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
605 mp_msg( MSGT_GPLAYER,MSGL_V,"cmd: %d\n",(int)arg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
606 switch( (int)arg )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
607 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
608 case MP_CMD_QUIT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
609 mplEventHandling( evExit,0 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
610 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
611 case MP_CMD_VO_FULLSCREEN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
612 mplEventHandling( evFullScreen,0 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
613 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
614 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
615 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
616 case guiReDraw:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
617 mplEventHandling( evRedraw,0 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
618 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
619 case guiSetVolume:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
620 if ( audio_out )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
621 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
622 float l,r;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
623 mixer_getvolume( mixer,&l,&r );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
624 guiIntfStruct.Volume=(r>l?r:l);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
625 if ( r != l ) guiIntfStruct.Balance=( ( r - l ) + 100 ) * 0.5f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
626 else guiIntfStruct.Balance=50.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
627 btnModify( evSetVolume,guiIntfStruct.Volume );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
628 btnModify( evSetBalance,guiIntfStruct.Balance );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
629 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
630 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
631 case guiSetFileFormat:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
632 guiIntfStruct.FileFormat=(int)arg;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
633 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
634 case guiSetValues:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
635 // -- video
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
636 guiIntfStruct.sh_video=arg;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
637 if ( arg )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
638 {
30689
ebe42a93c6c3 Fix silly type of guiGetEvent argument to use void * instead of char * and
reimar
parents: 30653
diff changeset
639 sh_video_t * sh = arg;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
640 guiIntfStruct.FPS=sh->fps;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
641 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
642
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
643 if ( guiIntfStruct.NoWindow ) wsVisibleWindow( &appMPlayer.subWindow,wsHideWindow );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
644
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
645 if ( guiIntfStruct.StreamType == STREAMTYPE_STREAM ) btnSet( evSetMoviePosition,btnDisabled );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
646 else btnSet( evSetMoviePosition,btnReleased );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
647
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
648 // -- audio
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
649 if ( audio_out )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
650 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
651 float l,r;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
652 mixer_getvolume( mixer,&l,&r );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
653 guiIntfStruct.Volume=(r>l?r:l);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
654 if ( r != l ) guiIntfStruct.Balance=( ( r - l ) + 100 ) * 0.5f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
655 else guiIntfStruct.Balance=50.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
656 btnModify( evSetVolume,guiIntfStruct.Volume );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
657 btnModify( evSetBalance,guiIntfStruct.Balance );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
658 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
659
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
660 if ( gtkEnableAudioEqualizer )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
661 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
662 equalizer_t eq;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
663 int i,j;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
664 for ( i=0;i<6;i++ )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
665 for ( j=0;j<10;j++ )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
666 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
667 eq.channel=i; eq.band=j; eq.gain=gtkEquChannels[i][j];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
668 gtkSet( gtkSetEqualizer,0,&eq );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
669 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
670 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
671 // -- subtitle
27370
14c5017f40d2 Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents: 27359
diff changeset
672 #ifdef CONFIG_DXR3
32117
7af5fdfdc3d9 Remove libavcodec ifdeffery from the GUI code.
diego
parents: 32040
diff changeset
673 if ( video_driver_list && !gstrcmp( video_driver_list[0],"dxr3" ) && guiIntfStruct.FileFormat != DEMUXER_TYPE_MPEG_PS && !gtkVfLAVC )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
674 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
675 gtkMessageBox( GTK_MB_FATAL,MSGTR_NEEDLAVC );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
676 guiIntfStruct.Playing=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
677 return True;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
678 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
679 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
680 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
681 case guiSetDefaults:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
682 // if ( guiIntfStruct.Playing == 1 && guiIntfStruct.FilenameChanged )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
683 if ( guiIntfStruct.FilenameChanged )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
684 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
685 audio_id=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
686 video_id=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
687 dvdsub_id=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
688 vobsub_id=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
689 stream_cache_size=-1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
690 autosync=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
691 vcd_track=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
692 dvd_title=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
693 force_fps=0;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
694 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
695 guiIntfStruct.demuxer=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
696 guiIntfStruct.sh_video=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
697 wsPostRedisplay( &appMPlayer.subWindow );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
698 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
699 case guiSetParameters:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
700 guiGetEvent( guiSetDefaults,NULL );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
701 switch ( guiIntfStruct.StreamType )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
702 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
703 case STREAMTYPE_PLAYLIST:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
704 break;
27370
14c5017f40d2 Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents: 27359
diff changeset
705 #ifdef CONFIG_VCD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
706 case STREAMTYPE_VCD:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
707 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
708 char tmp[512];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
709 sprintf( tmp,"vcd://%d",guiIntfStruct.Track + 1 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
710 guiSetFilename( guiIntfStruct.Filename,tmp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
711 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
712 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
713 #endif
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
714 #ifdef CONFIG_DVDREAD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
715 case STREAMTYPE_DVD:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
716 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
717 char tmp[512];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
718 sprintf( tmp,"dvd://%d",guiIntfStruct.Title );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
719 guiSetFilename( guiIntfStruct.Filename,tmp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
720 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
721 dvd_chapter=guiIntfStruct.Chapter;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
722 dvd_angle=guiIntfStruct.Angle;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
723 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
724 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
725 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
726 //if ( guiIntfStruct.StreamType != STREAMTYPE_PLAYLIST ) // Does not make problems anymore!
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
727 {
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
728 if ( guiIntfStruct.Filename ) filename=gstrdup( guiIntfStruct.Filename );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
729 else if ( filename ) guiSetFilename( guiIntfStruct.Filename,filename );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
730 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
731 // --- video opts
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
732
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
733 if ( !video_driver_list )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
734 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
735 int i = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
736 while ( video_out_drivers[i++] )
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
737 if ( video_out_drivers[i - 1]->control( VOCTRL_GUISUPPORT,NULL ) == VO_TRUE )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
738 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
739 gaddlist( &video_driver_list,(char *)video_out_drivers[i - 1]->info->short_name );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
740 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
741 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
742 }
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
743
30516
f4e017b6921a Fix exit_player() usage throughout the codebase.
diego
parents: 30063
diff changeset
744 if ( !video_driver_list && !video_driver_list[0] ) { gtkMessageBox( GTK_MB_FATAL,MSGTR_IDFGCVD ); exit_player(EXIT_ERROR); }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
745
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
746 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
747 int i = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
748 guiIntfStruct.NoWindow=False;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
749 while ( video_out_drivers[i++] )
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
750 if ( video_out_drivers[i - 1]->control( VOCTRL_GUISUPPORT,NULL ) == VO_TRUE )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
751 {
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
752 if ( ( video_driver_list && !gstrcmp( video_driver_list[0],(char *)video_out_drivers[i - 1]->info->short_name ) )&&( video_out_drivers[i - 1]->control( VOCTRL_GUI_NOWINDOW,NULL ) == VO_TRUE ) )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
753 { guiIntfStruct.NoWindow=True; break; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
754 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
755 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
756
27370
14c5017f40d2 Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents: 27359
diff changeset
757 #ifdef CONFIG_DXR3
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
758 remove_vf( "lavc" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
759 if ( video_driver_list && !gstrcmp( video_driver_list[0],"dxr3" ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
760 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
761 if ( ( guiIntfStruct.StreamType != STREAMTYPE_DVD)&&( guiIntfStruct.StreamType != STREAMTYPE_VCD ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
762 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
763 if ( gtkVfLAVC ) add_vf( "lavc" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
764 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
765 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
766 #endif
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
767 // ---
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
768 if ( gtkVfPP ) add_vf( "pp" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
769 else remove_vf( "pp" );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
770
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
771 // --- audio opts
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
772 // if ( ao_plugin_cfg.plugin_list ) { free( ao_plugin_cfg.plugin_list ); ao_plugin_cfg.plugin_list=NULL; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
773 if (gtkAONorm)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
774 greplace(&af_cfg.list, "volnorm", "volnorm");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
775 if (gtkEnableAudioEqualizer)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
776 greplace(&af_cfg.list, "equalizer", "equalizer");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
777 if ( gtkAOExtraStereo )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
778 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
779 char *name = malloc(12 + 20 + 1);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
780 snprintf(name, 12 + 20, "extrastereo=%f", gtkAOExtraStereoMul);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
781 name[12 + 20] = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
782 greplace(&af_cfg.list, "extrastereo", name);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
783 free(name);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
784 }
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
785 #ifdef CONFIG_OSS_AUDIO
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
786 if ( audio_driver_list && !gstrncmp( audio_driver_list[0],"oss",3 ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
787 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
788 char *tmp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
789 mixer_device = gtkAOOSSMixer;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
790 mixer_channel = gtkAOOSSMixerChannel;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
791 if (gtkAOOSSDevice) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
792 tmp = calloc( 1,strlen( gtkAOOSSDevice ) + 7 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
793 sprintf( tmp,"oss:%s",gtkAOOSSDevice );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
794 } else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
795 tmp = strdup("oss");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
796 gaddlist( &audio_driver_list,tmp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
797 free(tmp);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
798 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
799 #endif
27390
9d95dc936e66 Introduce CONFIG_ALSA preprocessor directive for ALSA 0.9 and 1.x.
diego
parents: 27387
diff changeset
800 #ifdef CONFIG_ALSA
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
801 if ( audio_driver_list && !gstrncmp( audio_driver_list[0],"alsa",4 ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
802 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
803 char *tmp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
804 mixer_device = gtkAOALSAMixer;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
805 mixer_channel = gtkAOALSAMixerChannel;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
806 if (gtkAOALSADevice) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
807 tmp = calloc( 1,strlen( gtkAOALSADevice ) + 14 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
808 sprintf( tmp,"alsa:device=%s",gtkAOALSADevice );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
809 } else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
810 tmp = strdup("alsa");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
811 gaddlist( &audio_driver_list,tmp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
812 free(tmp);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
813 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
814 #endif
27370
14c5017f40d2 Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents: 27359
diff changeset
815 #ifdef CONFIG_SDL
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
816 if ( audio_driver_list && !gstrncmp( audio_driver_list[0],"sdl",3 ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
817 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
818 char *tmp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
819 if (gtkAOSDLDriver) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
820 tmp = calloc( 1,strlen( gtkAOSDLDriver ) + 10 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
821 sprintf( tmp,"sdl:%s",gtkAOSDLDriver );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
822 } else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
823 tmp = strdup("sdl");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
824 gaddlist( &audio_driver_list,tmp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
825 free(tmp);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
826 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
827 #endif
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
828 #ifdef CONFIG_ESD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
829 if ( audio_driver_list && !gstrncmp( audio_driver_list[0],"esd",3 ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
830 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
831 char *tmp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
832 if (gtkAOESDDevice) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
833 tmp = calloc( 1,strlen( gtkAOESDDevice ) + 10 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
834 sprintf( tmp,"esd:%s",gtkAOESDDevice );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
835 } else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
836 tmp = strdup("esd");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
837 gaddlist( &audio_driver_list,tmp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
838 free(tmp);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
839 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
840 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
841 // -- subtitle
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
842 //subdata->filename=gstrdup( guiIntfStruct.Subtitlename );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
843 stream_dump_type=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
844 if ( gtkSubDumpMPSub ) stream_dump_type=4;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
845 if ( gtkSubDumpSrt ) stream_dump_type=6;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
846 gtkSubDumpMPSub=gtkSubDumpSrt=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
847 guiLoadFont();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
848
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
849 // --- misc
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
850 if ( gtkCacheOn ) stream_cache_size=gtkCacheSize;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
851 if ( gtkAutoSyncOn ) autosync=gtkAutoSync;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
852
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
853 if ( guiIntfStruct.AudioFile ) audio_stream=gstrdup( guiIntfStruct.AudioFile );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
854 else if ( guiIntfStruct.FilenameChanged ) gfree( (void**)&audio_stream );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
855 //audio_stream=NULL;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
856
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
857 guiIntfStruct.DiskChanged=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
858 guiIntfStruct.FilenameChanged=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
859 guiIntfStruct.NewPlay=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
860
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
861 #ifdef CONFIG_ASS
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
862 ass_enabled = gtkASS.enabled;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
863 ass_use_margins = gtkASS.use_margins;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
864 ass_top_margin = gtkASS.top_margin;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
865 ass_bottom_margin = gtkASS.bottom_margin;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
866 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
867
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
868 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
869 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
870 return False;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
871 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
872
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
873 void guiEventHandling( void )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
874 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
875 if ( !guiIntfStruct.Playing || guiIntfStruct.NoWindow ) wsHandleEvents();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
876 gtkEventHandling();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
877 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
878
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
879 // ---
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
880
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
881 float gtkEquChannels[6][10];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
882
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
883 plItem * plCurrent = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
884 plItem * plList = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
885 plItem * plLastPlayed = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
886
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
887 URLItem *URLList = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
888
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
889 char *fsHistory[fsPersistant_MaxPos] = { NULL,NULL,NULL,NULL,NULL };
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
890
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
891 #if defined( MP_DEBUG ) && 0
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
892 void list( void )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
893 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
894 plItem * next = plList;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
895 printf( "--- list ---\n" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
896 while( next || next->next )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
897 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
898 printf( "item: %s/%s\n",next->path,next->name );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
899 if ( next->next ) next=next->next; else break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
900 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
901 printf( "--- end of list ---\n" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
902 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
903 #else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
904 #define list();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
905 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
906
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
907 void * gtkSet( int cmd,float fparam, void * vparam )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
908 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
909 equalizer_t * eq = (equalizer_t *)vparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
910 plItem * item = (plItem *)vparam;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
911
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
912 URLItem * url_item = (URLItem *)vparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
913 int is_added = True;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
914
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
915 switch ( cmd )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
916 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
917 // --- handle playlist
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
918 case gtkAddPlItem: // add item to playlist
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
919 if ( plList )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
920 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
921 plItem * next = plList;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
922 while ( next->next ) { /*printf( "%s\n",next->name );*/ next=next->next; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
923 next->next=item; item->prev=next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
924 } else { item->prev=item->next=NULL; plCurrent=plList=item; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
925 list();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
926 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
927 case gtkInsertPlItem: // add item into playlist after current
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
928 if ( plCurrent )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
929 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
930 plItem * curr = plCurrent;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
931 item->next=curr->next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
932 if (item->next)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
933 item->next->prev=item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
934 item->prev=curr;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
935 curr->next=item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
936 plCurrent=plCurrent->next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
937 return plCurrent;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
938 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
939 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
940 return gtkSet(gtkAddPlItem,0,(void*)item);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
941 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
942 case gtkGetNextPlItem: // get current item from playlist
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
943 if ( plCurrent && plCurrent->next)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
944 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
945 plCurrent=plCurrent->next;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
946 /*if ( !plCurrent && plList )
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
947 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
948 plItem * next = plList;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
949 while ( next->next ) { if ( !next->next ) break; next=next->next; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
950 plCurrent=next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
951 }*/
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
952 return plCurrent;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
953 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
954 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
955 case gtkGetPrevPlItem:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
956 if ( plCurrent && plCurrent->prev)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
957 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
958 plCurrent=plCurrent->prev;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
959 //if ( !plCurrent && plList ) plCurrent=plList;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
960 return plCurrent;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
961 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
962 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
963 case gtkSetCurrPlItem: // set current item
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
964 plCurrent=item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
965 return plCurrent;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
966 case gtkGetCurrPlItem: // get current item
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
967 return plCurrent;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
968 case gtkDelCurrPlItem: // delete current item
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
969 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
970 plItem * curr = plCurrent;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
971
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
972 if (!curr)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
973 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
974 if (curr->prev)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
975 curr->prev->next=curr->next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
976 if (curr->next)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
977 curr->next->prev=curr->prev;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
978 if (curr==plList)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
979 plList=curr->next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
980 plCurrent=curr->next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
981 // Free it
32537
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
982 free( curr->path );
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
983 free( curr->name );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
984 free( curr );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
985 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
986 mplCurr(); // Instead of using mplNext && mplPrev
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
987
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
988 return plCurrent;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
989 case gtkDelPl: // delete list
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
990 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
991 plItem * curr = plList;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
992 plItem * next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
993 if ( !plList ) return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
994 if ( !curr->next )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
995 {
32537
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
996 free( curr->path );
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
997 free( curr->name );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
998 free( curr );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
999 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1000 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1001 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1002 while ( curr->next )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1003 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1004 next=curr->next;
32537
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
1005 free( curr->path );
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 32467
diff changeset
1006 free( curr->name );
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
1007 free( curr );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1008 curr=next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1009 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1010 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1011 plList=NULL; plCurrent=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1012 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1013 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1014 // ----- Handle url
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1015 case gtkAddURLItem:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1016 if ( URLList )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1017 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1018 URLItem * next_url = URLList;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1019 is_added = False;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1020 while ( next_url->next )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1021 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1022 if ( !gstrcmp( next_url->url,url_item->url ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1023 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1024 is_added=True;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1025 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1026 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1027 next_url=next_url->next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1028 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1029 if ( ( !is_added )&&( gstrcmp( next_url->url,url_item->url ) ) ) next_url->next=url_item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1030 } else { url_item->next=NULL; URLList=url_item; }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1031 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1032 // --- subtitle
27393
4876c89bafdd Rename font-related preprocessor directives.
diego
parents: 27390
diff changeset
1033 #ifndef CONFIG_FREETYPE
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1034 case gtkSetFontFactor:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1035 font_factor=fparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1036 guiLoadFont();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1037 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1038 #else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1039 case gtkSetFontOutLine:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1040 subtitle_font_thickness=( 8.0f / 100.0f ) * fparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1041 guiLoadFont();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1042 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1043 case gtkSetFontBlur:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1044 subtitle_font_radius=( 8.0f / 100.0f ) * fparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1045 guiLoadFont();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1046 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1047 case gtkSetFontTextScale:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1048 text_font_scale_factor=fparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1049 guiLoadFont();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1050 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1051 case gtkSetFontOSDScale:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1052 osd_font_scale_factor=fparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1053 guiLoadFont();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1054 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1055 case gtkSetFontEncoding:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1056 gfree( (void **)&subtitle_font_encoding );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1057 subtitle_font_encoding=gstrdup( (char *)vparam );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1058 guiLoadFont();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1059 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1060 case gtkSetFontAutoScale:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1061 subtitle_autoscale=(int)fparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1062 guiLoadFont();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1063 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1064 #endif
27393
4876c89bafdd Rename font-related preprocessor directives.
diego
parents: 27390
diff changeset
1065 #ifdef CONFIG_ICONV
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1066 case gtkSetSubEncoding:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1067 gfree( (void **)&sub_cp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1068 sub_cp=gstrdup( (char *)vparam );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1069 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1070 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1071 // --- misc
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1072 case gtkClearStruct:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1073 if ( (unsigned int)vparam & guiFilenames )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1074 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1075 gfree( (void **)&guiIntfStruct.Filename );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1076 gfree( (void **)&guiIntfStruct.Subtitlename );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1077 gfree( (void **)&guiIntfStruct.AudioFile );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1078 gtkSet( gtkDelPl,0,NULL );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1079 }
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 26458
diff changeset
1080 #ifdef CONFIG_DVDREAD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1081 if ( (unsigned int)vparam & guiDVD ) memset( &guiIntfStruct.DVD,0,sizeof( guiDVDStruct ) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1082 #endif
27370
14c5017f40d2 Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents: 27359
diff changeset
1083 #ifdef CONFIG_VCD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1084 if ( (unsigned int)vparam & guiVCD ) guiIntfStruct.VCDTracks=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1085 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1086 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1087 case gtkSetExtraStereo:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1088 gtkAOExtraStereoMul=fparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1089 if (guiIntfStruct.afilter)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1090 af_control_any_rev(guiIntfStruct.afilter,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1091 AF_CONTROL_ES_MUL | AF_CONTROL_SET, &gtkAOExtraStereoMul);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1092 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1093 case gtkSetPanscan:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1094 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1095 mp_cmd_t * mp_cmd;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1096 mp_cmd=calloc( 1,sizeof( *mp_cmd ) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1097 mp_cmd->id=MP_CMD_PANSCAN; mp_cmd->name=strdup( "panscan" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1098 mp_cmd->args[0].v.f=fparam; mp_cmd->args[1].v.i=1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1099 mp_input_queue_cmd( mp_cmd );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1100 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1101 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1102 case gtkSetAutoq:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1103 auto_quality=(int)fparam;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1104 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1105 // --- set equalizers
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1106 case gtkSetContrast:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1107 if ( guiIntfStruct.sh_video ) set_video_colors( guiIntfStruct.sh_video,"contrast",(int)fparam );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1108 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1109 case gtkSetBrightness:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1110 if ( guiIntfStruct.sh_video ) set_video_colors( guiIntfStruct.sh_video,"brightness",(int)fparam );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1111 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1112 case gtkSetHue:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1113 if ( guiIntfStruct.sh_video ) set_video_colors( guiIntfStruct.sh_video,"hue",(int)fparam );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1114 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1115 case gtkSetSaturation:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1116 if ( guiIntfStruct.sh_video ) set_video_colors( guiIntfStruct.sh_video,"saturation",(int)fparam );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1117 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1118 case gtkSetEqualizer:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1119 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1120 af_control_ext_t tmp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1121 if ( eq )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1122 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1123 gtkEquChannels[eq->channel][eq->band]=eq->gain;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1124 tmp.ch = eq->channel;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1125 tmp.arg = gtkEquChannels[eq->channel];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1126 if (guiIntfStruct.afilter)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1127 af_control_any_rev(guiIntfStruct.afilter,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1128 AF_CONTROL_EQUALIZER_GAIN | AF_CONTROL_SET, &tmp);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1129 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1130 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1131 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1132 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1133 memset( gtkEquChannels,0,sizeof( gtkEquChannels ) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1134 if (guiIntfStruct.afilter)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1135 for ( i=0;i<6;i++ )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1136 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1137 tmp.ch = i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1138 tmp.arg = gtkEquChannels[i];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1139 af_control_any_rev(guiIntfStruct.afilter,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1140 AF_CONTROL_EQUALIZER_GAIN | AF_CONTROL_SET, &tmp);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1141 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1142 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1143 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1144 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1145 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1146 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1147 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1148
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1149 #include "playtree.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1150
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1151 //This function adds/inserts one file into the gui playlist
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1152
30535
016e5fc1dead GUI: Mark functions that are not used outside their files as static.
diego
parents: 30516
diff changeset
1153 static int import_file_into_gui(char* temp, int insert)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1154 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1155 char *filename, *pathname;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1156 plItem * item;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
1157
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1158 filename = strdup(mp_basename(temp));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1159 pathname = strdup(temp);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1160 if (strlen(pathname)-strlen(filename)>0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1161 pathname[strlen(pathname)-strlen(filename)-1]='\0'; // We have some path so remove / at end
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1162 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1163 pathname[strlen(pathname)-strlen(filename)]='\0';
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1164 mp_msg(MSGT_PLAYTREE,MSGL_V, "Adding filename %s && pathname %s\n",filename,pathname); //FIXME: Change to MSGL_DBG2 ?
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1165 item=calloc( 1,sizeof( plItem ) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1166 if (!item)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1167 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1168 item->name=filename;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1169 item->path=pathname;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1170 if (insert)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1171 gtkSet( gtkInsertPlItem,0,(void*)item ); // Inserts the item after current, and makes current=item
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1172 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1173 gtkSet( gtkAddPlItem,0,(void*)item );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1174 return 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1175 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1176
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1177
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1178 // This function imports the initial playtree (based on cmd-line files) into the gui playlist
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1179 // by either:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1180 // - overwriting gui pl (enqueue=0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1181 // - appending it to gui pl (enqueue=1)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1182
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1183 int import_initial_playtree_into_gui(play_tree_t* my_playtree, m_config_t* config, int enqueue)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1184 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1185 play_tree_iter_t* my_pt_iter=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1186 int result=0;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
1187
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1188 if (!enqueue) // Delete playlist before "appending"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1189 gtkSet(gtkDelPl,0,0);
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
1190
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1191 if((my_pt_iter=pt_iter_create(&my_playtree,config)))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1192 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1193 while ((filename=pt_iter_get_next_file(my_pt_iter))!=NULL)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1194 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1195 if (import_file_into_gui(filename, 0)) // Add it to end of list
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1196 result=1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1197 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1198 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1199
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1200 mplCurr(); // Update filename
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1201 mplGotoTheNext=1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1202
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1203 if (!enqueue)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1204 filename=guiIntfStruct.Filename; // Backward compatibility; if file is specified on commandline,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1205 // gmplayer does directly start in Play-Mode.
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
1206 else
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1207 filename=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1208
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1209 return result;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1210 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1211
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1212 // This function imports and inserts an playtree, that is created "on the fly", for example by
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1213 // parsing some MOV-Reference-File; or by loading an playlist with "File Open"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1214 //
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1215 // The file which contained the playlist is thereby replaced with it's contents.
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1216
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1217 int import_playtree_playlist_into_gui(play_tree_t* my_playtree, m_config_t* config)
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
1218 {
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1219 play_tree_iter_t* my_pt_iter=NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1220 int result=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1221 plItem * save=(plItem*)gtkSet( gtkGetCurrPlItem, 0, 0); // Save current item
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1222
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1223 if((my_pt_iter=pt_iter_create(&my_playtree,config)))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1224 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1225 while ((filename=pt_iter_get_next_file(my_pt_iter))!=NULL)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1226 {
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
1227 if (import_file_into_gui(filename, 1)) // insert it into the list and set plCurrent=new item
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1228 result=1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1229 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1230 pt_iter_destroy(&my_pt_iter);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1231 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1232
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
1233 if (save)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1234 gtkSet(gtkSetCurrPlItem, 0, (void*)save);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1235 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1236 gtkSet(gtkSetCurrPlItem, 0, (void*)plList); // go to head, if plList was empty before
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1237
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1238 if (save && result)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1239 gtkSet(gtkDelCurrPlItem, 0, 0);
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
1240
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1241 mplCurr(); // Update filename
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1242 filename=NULL;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27393
diff changeset
1243
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1244 return result;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1245 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1246
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1247 // wrapper function for mp_msg to display a message box for errors and warnings.
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1248
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1249 void guiMessageBox(int level, char * str) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1250 switch(level) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1251 case MSGL_FATAL:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1252 gtkMessageBox(GTK_MB_FATAL|GTK_MB_SIMPLE, str);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1253 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1254 case MSGL_ERR:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1255 gtkMessageBox(GTK_MB_ERROR|GTK_MB_SIMPLE, str);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1256 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1257 #if 0
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1258 // WARNING! Do NOT enable this! There are too many non-critical messages with
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1259 // MSGL_WARN, for example: broken SPU packets, codec's bit error messages,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1260 // etc etc, they should not raise up a new window every time.
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1261 case MSGL_WARN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1262 gtkMessageBox(GTK_MB_WARNING|GTK_MB_SIMPLE, str);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1263 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1264 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1265 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1266 }