33572
|
1 /*
|
|
2 * This file is part of MPlayer.
|
|
3 *
|
|
4 * MPlayer is free software; you can redistribute it and/or modify
|
|
5 * it under the terms of the GNU General Public License as published by
|
|
6 * the Free Software Foundation; either version 2 of the License, or
|
|
7 * (at your option) any later version.
|
|
8 *
|
|
9 * MPlayer is distributed in the hope that it will be useful,
|
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12 * GNU General Public License for more details.
|
|
13 *
|
|
14 * You should have received a copy of the GNU General Public License along
|
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
|
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
17 */
|
|
18
|
|
19 #include <stdlib.h>
|
|
20 #include <sys/types.h>
|
|
21 #include <sys/stat.h>
|
|
22 #include <unistd.h>
|
|
23 #include <string.h>
|
|
24
|
|
25 #include <gdk/gdkkeysyms.h>
|
|
26 #include <gtk/gtk.h>
|
|
27
|
|
28 #include "config.h"
|
|
29 #include "help_mp.h"
|
|
30 #include "mixer.h"
|
|
31 #include "mpcommon.h"
|
|
32 #include "libao2/audio_out.h"
|
|
33 #include "sub/sub.h"
|
|
34 #include "libvo/video_out.h"
|
|
35 #include "libvo/x11_common.h"
|
|
36 #include "stream/stream.h"
|
|
37 #include "libmpdemux/demuxer.h"
|
|
38 #include "libmpdemux/stheader.h"
|
|
39 #include "libmpcodecs/dec_video.h"
|
|
40 #include "sub/font_load.h"
|
|
41
|
|
42 #include "gui/app.h"
|
|
43 #include "gui/cfg.h"
|
|
44 #include "gui/interface.h"
|
|
45 #include "gui/ui/gmplayer.h"
|
|
46 #include "gui/ui/widgets.h"
|
33737
|
47 #include "gui/util/string.h"
|
33572
|
48 #include "preferences.h"
|
|
49 #include "fileselect.h"
|
|
50 #include "tools.h"
|
|
51
|
|
52 // for mpcodecs_[av]d_drivers:
|
|
53 #include "libmpcodecs/vd.h"
|
|
54 #include "libmpcodecs/ad.h"
|
|
55
|
|
56 GtkWidget * Preferences = NULL;
|
|
57 static GtkWidget * AConfig;
|
|
58 static GtkWidget * VConfig;
|
|
59 //static GtkWidget * BLoadSubtitle;
|
|
60 static GtkWidget * BLoadFont;
|
|
61 static GtkWidget * BOk;
|
|
62 static GtkWidget * BCancel;
|
|
63
|
|
64 static GtkWidget * CLADrivers;
|
|
65 static GtkWidget * CLVDrivers;
|
|
66
|
|
67 //static GtkWidget * ESubtitleName;
|
|
68 GtkWidget * prEFontName;
|
|
69 GtkWidget * prEDVDDevice;
|
|
70 GtkWidget * prECDRomDevice;
|
|
71 static GtkWidget * EVFM;
|
|
72 static GtkWidget * EAFM;
|
|
73
|
|
74 static GtkWidget * CBVFM;
|
|
75 static GtkWidget * CBAFM;
|
|
76 static GtkWidget * CBAudioEqualizer;
|
|
77 //static GtkWidget * CBSurround;
|
|
78 static GtkWidget * CBExtraStereo;
|
|
79 static GtkWidget * CBNormalize;
|
|
80 static GtkWidget * CBSoftwareMixer;
|
|
81 static GtkWidget * CBDoubleBuffer;
|
|
82 static GtkWidget * CBDR;
|
|
83 static GtkWidget * CBFramedrop;
|
|
84 static GtkWidget * CBHFramedrop;
|
|
85 //static GtkWidget * CBFullScreen;
|
|
86 static GtkWidget * CBShowVideoWindow;
|
|
87 static GtkWidget * CBNonInterlaved;
|
|
88 static GtkWidget * CBIndex;
|
|
89 static GtkWidget * CBFlip;
|
|
90 static GtkWidget * CBNoAutoSub;
|
|
91 static GtkWidget * CBSubUnicode;
|
|
92 static GtkWidget * CBSubOverlap;
|
|
93 static GtkWidget * CBDumpMPSub;
|
|
94 static GtkWidget * CBDumpSrt;
|
|
95 static GtkWidget * CBUseASS;
|
|
96 static GtkWidget * CBASSUseMargins;
|
|
97 static GtkWidget * SBASSTopMargin;
|
|
98 static GtkWidget * SBASSBottomMargin;
|
|
99 static GtkWidget * CBPostprocess;
|
|
100 static GtkWidget * CBCache;
|
|
101 static GtkWidget * CBLoadFullscreen;
|
|
102 static GtkWidget * CBSaveWinPos;
|
|
103 static GtkWidget * CBStopXScreenSaver;
|
|
104 static GtkWidget * CBPlayBar;
|
|
105 static GtkWidget * CBNoIdle;
|
|
106
|
|
107 static GtkWidget * SBCache;
|
|
108 static GtkAdjustment * SBCacheadj;
|
|
109
|
|
110 static GtkWidget * CBAutoSync;
|
|
111 static GtkWidget * SBAutoSync;
|
|
112 static GtkAdjustment * SBAutoSyncadj;
|
|
113
|
|
114 static GtkWidget * RBOSDNone;
|
|
115 static GtkWidget * RBOSDTandP;
|
|
116 static GtkWidget * RBOSDIndicator;
|
|
117 static GtkWidget * RBOSDTPTT;
|
|
118
|
|
119 static GtkWidget * HSAudioDelay;
|
|
120 static GtkWidget * HSExtraStereoMul;
|
|
121 static GtkWidget * HSPanscan;
|
|
122 static GtkWidget * HSSubDelay;
|
|
123 static GtkWidget * HSSubPosition;
|
|
124 static GtkWidget * HSSubFPS;
|
|
125 static GtkWidget * HSPPQuality;
|
|
126 static GtkWidget * HSFPS;
|
|
127
|
|
128 static GtkAdjustment * HSExtraStereoMuladj, * HSAudioDelayadj, * HSPanscanadj, * HSSubDelayadj;
|
|
129 static GtkAdjustment * HSSubPositionadj, * HSSubFPSadj, * HSPPQualityadj, * HSFPSadj;
|
|
130
|
|
131 #ifndef CONFIG_FREETYPE
|
|
132 static GtkWidget * HSFontFactor;
|
|
133 static GtkAdjustment * HSFontFactoradj;
|
|
134 #else
|
|
135 static GtkWidget * HSFontBlur, * HSFontOutLine, * HSFontTextScale, * HSFontOSDScale;
|
|
136 static GtkAdjustment * HSFontBluradj, * HSFontOutLineadj, * HSFontTextScaleadj, * HSFontOSDScaleadj;
|
|
137 static GtkWidget * CBFontEncoding, * EFontEncoding;
|
|
138 static GtkWidget * RBFontNoAutoScale, * RBFontAutoScaleWidth, * RBFontAutoScaleHeight, * RBFontAutoScaleDiagonal;
|
|
139 //static GtkWidget * AutoScale;
|
|
140 #endif
|
|
141
|
|
142 #ifdef CONFIG_ICONV
|
|
143 static GtkWidget * CBSubEncoding, * ESubEncoding;
|
|
144 #endif
|
|
145
|
|
146 #if defined(CONFIG_FREETYPE) || defined(CONFIG_ICONV)
|
|
147 static struct
|
|
148 {
|
|
149 char * name;
|
|
150 char * comment;
|
|
151 } lEncoding[] =
|
|
152 {
|
|
153 { "unicode", MSGTR_PREFERENCES_FontEncoding1 },
|
|
154 { "iso-8859-1", MSGTR_PREFERENCES_FontEncoding2 },
|
|
155 { "iso-8859-15", MSGTR_PREFERENCES_FontEncoding3 },
|
|
156 { "iso-8859-2", MSGTR_PREFERENCES_FontEncoding4 },
|
|
157 { "cp1250", MSGTR_PREFERENCES_FontEncoding22},
|
|
158 { "iso-8859-3", MSGTR_PREFERENCES_FontEncoding5 },
|
|
159 { "iso-8859-4", MSGTR_PREFERENCES_FontEncoding6 },
|
|
160 { "iso-8859-5", MSGTR_PREFERENCES_FontEncoding7 },
|
|
161 { "cp1251", MSGTR_PREFERENCES_FontEncoding21},
|
|
162 { "iso-8859-6", MSGTR_PREFERENCES_FontEncoding8 },
|
|
163 { "cp1256", MSGTR_PREFERENCES_FontEncoding23 },
|
|
164 { "iso-8859-7", MSGTR_PREFERENCES_FontEncoding9 },
|
|
165 { "iso-8859-9", MSGTR_PREFERENCES_FontEncoding10 },
|
|
166 { "iso-8859-13", MSGTR_PREFERENCES_FontEncoding11 },
|
|
167 { "iso-8859-14", MSGTR_PREFERENCES_FontEncoding12 },
|
|
168 { "iso-8859-8", MSGTR_PREFERENCES_FontEncoding13 },
|
|
169 { "koi8-r", MSGTR_PREFERENCES_FontEncoding14 },
|
|
170 { "koi8-u/ru", MSGTR_PREFERENCES_FontEncoding15 },
|
|
171 { "cp936", MSGTR_PREFERENCES_FontEncoding16 },
|
|
172 { "big5", MSGTR_PREFERENCES_FontEncoding17 },
|
|
173 { "shift-jis", MSGTR_PREFERENCES_FontEncoding18 },
|
|
174 { "cp949", MSGTR_PREFERENCES_FontEncoding19 },
|
|
175 { "cp874", MSGTR_PREFERENCES_FontEncoding20 },
|
|
176 { NULL,NULL }
|
|
177 };
|
|
178 char * lCEncoding = NULL;
|
|
179 char * lSEncoding = NULL;
|
|
180 #endif
|
|
181
|
|
182 static int old_audio_driver = 0;
|
|
183 static char * ao_driver[3];
|
|
184 static char * vo_driver[3];
|
|
185 static int old_video_driver = 0;
|
|
186
|
|
187 #ifdef CONFIG_DXR3
|
|
188 void ShowDXR3Config( void );
|
|
189 void HideDXR3Config( void );
|
|
190 #endif
|
|
191 void ShowAudioConfig( void );
|
|
192 void HideAudioConfig( void );
|
|
193
|
|
194 static gboolean prHScaler( GtkWidget * widget,GdkEventMotion * event,gpointer user_data );
|
|
195 static void prToggled( GtkToggleButton * togglebutton,gpointer user_data );
|
|
196 static void prCListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data );
|
|
197 #if defined(CONFIG_FREETYPE) || defined(CONFIG_ICONV)
|
|
198 static void prEntry( GtkContainer * container,gpointer user_data );
|
|
199 #endif
|
|
200
|
|
201 void ShowPreferences( void )
|
|
202 {
|
|
203 if ( Preferences ) gtkActive( Preferences );
|
|
204 else Preferences=create_Preferences();
|
|
205
|
|
206 // -- 1. page
|
|
207 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBAudioEqualizer ),gtkEnableAudioEqualizer );
|
|
208 #if 0
|
|
209 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSurround ),gtkAOSurround );
|
|
210 #endif
|
|
211 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBExtraStereo ),gtkAOExtraStereo );
|
|
212 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNormalize ),gtkAONorm );
|
|
213 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSoftwareMixer ),soft_vol );
|
|
214 gtk_adjustment_set_value( HSExtraStereoMuladj,gtkAOExtraStereoMul );
|
|
215 {
|
|
216 int i = 0;
|
|
217 char * tmp[3]; tmp[2]="";
|
|
218 old_audio_driver=-1;
|
|
219 if ( CLADrivers ) gtk_clist_clear( GTK_CLIST( CLADrivers ) );
|
|
220 while ( audio_out_drivers[i] )
|
|
221 {
|
|
222 const ao_info_t *info = audio_out_drivers[i++]->info;
|
|
223 if ( !strcmp( info->short_name,"plugin" ) ) continue;
|
|
224 if ( audio_driver_list )
|
|
225 {
|
|
226 char * name = gstrdup( audio_driver_list[0] );
|
|
227 char * sep = gstrchr( audio_driver_list[0],':' );
|
|
228 if ( sep ) *sep=0;
|
|
229 if ( !gstrcmp( name,(char *)info->short_name ) ) old_audio_driver=i - 1;
|
|
230 free( name );
|
|
231 }
|
|
232 tmp[0]=(char *)info->short_name; tmp[1]=(char *)info->name; gtk_clist_append( GTK_CLIST( CLADrivers ),tmp );
|
|
233 }
|
|
234 if ( old_audio_driver > -1 )
|
|
235 {
|
|
236 gtk_clist_select_row( GTK_CLIST( CLADrivers ),old_audio_driver,0 );
|
|
237 gtk_clist_get_text( GTK_CLIST( CLADrivers ),old_audio_driver,0,(char **)&ao_driver );
|
|
238 gtk_widget_set_sensitive( AConfig,FALSE );
|
|
239 if ( !strncmp( ao_driver[0],"oss",3 ) ||
|
|
240 !strncmp( ao_driver[0],"alsa",4 ) ||
|
|
241 !strncmp( ao_driver[0],"esd",3 ) ||
|
|
242 !strncmp( ao_driver[0],"sdl",3 ) )
|
|
243 gtk_widget_set_sensitive( AConfig,TRUE );
|
|
244 }
|
|
245 }
|
|
246
|
|
247 // -- 2. page
|
|
248 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDoubleBuffer ),vo_doublebuffering );
|
|
249 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDR ),vo_directrendering );
|
|
250
|
|
251 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBFramedrop ),FALSE );
|
|
252 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBHFramedrop ),FALSE );
|
|
253 switch ( frame_dropping )
|
|
254 {
|
|
255 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBHFramedrop ),TRUE );
|
|
256 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBFramedrop ),TRUE );
|
|
257 }
|
|
258
|
|
259 if (flip != -1)
|
|
260 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBFlip ),flip );
|
|
261 gtk_adjustment_set_value( HSPanscanadj,vo_panscan );
|
|
262
|
|
263 {
|
|
264 int i = 0, c = 0;
|
|
265 char * tmp[3]; tmp[2]="";
|
|
266 old_video_driver=0;
|
|
267 if ( CLVDrivers ) gtk_clist_clear( GTK_CLIST( CLVDrivers ) );
|
|
268 while ( video_out_drivers[i] )
|
|
269 if ( video_out_drivers[i++]->control( VOCTRL_GUISUPPORT,NULL ) == VO_TRUE )
|
|
270 {
|
|
271 if ( video_driver_list && !gstrcmp( video_driver_list[0],(char *)video_out_drivers[i - 1]->info->short_name ) ) old_video_driver=c; c++;
|
|
272 tmp[0]=(char *)video_out_drivers[i - 1]->info->short_name; tmp[1]=(char *)video_out_drivers[i - 1]->info->name;
|
|
273 gtk_clist_append( GTK_CLIST( CLVDrivers ),tmp );
|
|
274 }
|
|
275 gtk_clist_select_row( GTK_CLIST( CLVDrivers ),old_video_driver,0 );
|
|
276 gtk_clist_get_text( GTK_CLIST( CLVDrivers ),old_video_driver,0,(char **)&vo_driver );
|
|
277 gtk_widget_set_sensitive( VConfig,FALSE );
|
|
278 #ifdef CONFIG_DXR3
|
|
279 if ( !gstrcmp( vo_driver[0],"dxr3" ) ) gtk_widget_set_sensitive( VConfig,TRUE );
|
|
280 #endif
|
|
281 }
|
|
282
|
|
283 gtk_adjustment_set_value( HSFPSadj,force_fps );
|
|
284
|
|
285 // -- 3. page
|
|
286 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSubOverlap ),suboverlap_enabled );
|
|
287 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNoAutoSub ),!sub_auto );
|
|
288 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDumpMPSub ),gtkSubDumpMPSub );
|
|
289 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDumpSrt ),gtkSubDumpSrt );
|
|
290 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSubUnicode ),sub_unicode );
|
|
291 #ifdef CONFIG_ASS
|
|
292 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBUseASS ),gtkASS.enabled );
|
|
293 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBASSUseMargins ),gtkASS.use_margins );
|
|
294 gtk_spin_button_set_value( (GtkSpinButton *)SBASSTopMargin,(gdouble)gtkASS.top_margin );
|
|
295 gtk_spin_button_set_value( (GtkSpinButton *)SBASSBottomMargin,(gdouble)gtkASS.bottom_margin );
|
|
296
|
|
297 if ( !gtkASS.enabled )
|
|
298 {
|
|
299 gtk_widget_set_sensitive( CBASSUseMargins,FALSE );
|
|
300 gtk_widget_set_sensitive( SBASSTopMargin,FALSE );
|
|
301 gtk_widget_set_sensitive( SBASSBottomMargin,FALSE );
|
|
302 }
|
|
303 #endif
|
|
304
|
|
305 gtk_adjustment_set_value( HSSubDelayadj,sub_delay );
|
|
306 gtk_adjustment_set_value( HSSubFPSadj,sub_fps );
|
|
307 gtk_adjustment_set_value( HSSubPositionadj,sub_pos );
|
|
308 switch ( osd_level )
|
|
309 {
|
|
310 case 0: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDNone ),TRUE ); break;
|
|
311 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ),TRUE ); break;
|
|
312 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDTandP ),TRUE ); break;
|
|
313 case 3: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDTPTT ),TRUE ); break;
|
|
314 }
|
|
315 #if 0
|
|
316 if ( guiInfo.Subtitlename ) gtk_entry_set_text( GTK_ENTRY( ESubtitleName ),guiInfo.Subtitlename );
|
|
317 #endif
|
|
318
|
|
319 #ifdef CONFIG_ICONV
|
|
320 if ( sub_cp )
|
|
321 {
|
|
322 int i;
|
|
323 for ( i=0;lEncoding[i].name;i++ )
|
|
324 if ( !gstrcmp( sub_cp,lEncoding[i].name ) ) break;
|
|
325 if ( lEncoding[i].name ) lSEncoding=lEncoding[i].comment;
|
|
326 gtk_entry_set_text( GTK_ENTRY( ESubEncoding ),lSEncoding );
|
|
327 }
|
|
328 #endif
|
|
329
|
|
330 // --- 4. page
|
|
331 // font ...
|
|
332 if ( font_name ) gtk_entry_set_text( GTK_ENTRY( prEFontName ),font_name );
|
|
333 #ifndef CONFIG_FREETYPE
|
|
334 gtk_adjustment_set_value( HSFontFactoradj,font_factor );
|
|
335 #else
|
|
336 gtk_adjustment_set_value( HSFontBluradj,( subtitle_font_radius / 8.0f ) * 100.0f );
|
|
337 gtk_adjustment_set_value( HSFontOutLineadj,( subtitle_font_thickness / 8.0f ) * 100.0f );
|
|
338 gtk_adjustment_set_value( HSFontTextScaleadj,text_font_scale_factor );
|
|
339 gtk_adjustment_set_value( HSFontOSDScaleadj,osd_font_scale_factor );
|
|
340 if ( subtitle_font_encoding )
|
|
341 {
|
|
342 int i;
|
|
343 for ( i=0;lEncoding[i].name;i++ )
|
|
344 if ( !gstrcmp( subtitle_font_encoding,lEncoding[i].name ) ) break;
|
|
345 if ( lEncoding[i].name ) lCEncoding=lEncoding[i].comment;
|
|
346 gtk_entry_set_text( GTK_ENTRY( EFontEncoding ),lCEncoding );
|
|
347 }
|
|
348 switch ( subtitle_autoscale )
|
|
349 {
|
|
350 case 0: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontNoAutoScale ),TRUE ); break;
|
|
351 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleHeight ),TRUE ); break;
|
|
352 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleWidth ),TRUE ); break;
|
|
353 case 3: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleDiagonal ),TRUE ); break;
|
|
354 }
|
|
355 #endif
|
|
356
|
|
357 // -- 5. page
|
|
358 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ),force_ni );
|
|
359 if ( index_mode == 1 ) gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBIndex ),1 );
|
|
360 {
|
|
361 int i;
|
|
362 GList * Items = NULL;
|
|
363 char * name = NULL;
|
|
364
|
|
365 Items=g_list_append( Items,MSGTR_PREFERENCES_None );
|
|
366 for( i=0;mpcodecs_vd_drivers[i];i++ )
|
|
367 {
|
|
368 Items=g_list_append( Items,(char *)mpcodecs_vd_drivers[i]->info->name );
|
|
369 if ( video_fm_list && !gstrcmp( video_fm_list[0],(char *)mpcodecs_vd_drivers[i]->info->short_name ) ) name=(char *)mpcodecs_vd_drivers[i]->info->name;
|
|
370 }
|
|
371 gtk_combo_set_popdown_strings( GTK_COMBO( CBVFM ),Items );
|
|
372 g_list_free( Items );
|
|
373 if ( name ) gtk_entry_set_text( GTK_ENTRY( EVFM ),name );
|
|
374 }
|
|
375
|
|
376 {
|
|
377 int i;
|
|
378 GList * Items = NULL;
|
|
379 char * name = NULL;
|
|
380
|
|
381 Items=g_list_append( Items,MSGTR_PREFERENCES_None );
|
|
382 for( i=0;mpcodecs_ad_drivers[i];i++ )
|
|
383 {
|
|
384 Items=g_list_append( Items,(char *)mpcodecs_ad_drivers[i]->info->name );
|
|
385 if ( audio_fm_list && !gstrcmp( audio_fm_list[0],(char *)mpcodecs_ad_drivers[i]->info->short_name ) ) name=(char *)mpcodecs_ad_drivers[i]->info->name;
|
|
386 }
|
|
387 gtk_combo_set_popdown_strings( GTK_COMBO( CBAFM ),Items );
|
|
388 g_list_free( Items );
|
|
389 if ( name ) gtk_entry_set_text( GTK_ENTRY( EAFM ),name );
|
|
390 }
|
|
391
|
|
392 // --- 6. page
|
|
393 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPostprocess ),gtkVfPP );
|
|
394 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ),gtkLoadFullscreen );
|
|
395 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSaveWinPos ),gui_save_pos );
|
|
396 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBShowVideoWindow ),gtkShowVideoWindow );
|
|
397 if ( !gtkShowVideoWindow )
|
|
398 {
|
|
399 gtk_widget_set_sensitive( CBLoadFullscreen,FALSE );
|
|
400 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ),0 );
|
|
401 }
|
|
402 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBStopXScreenSaver ),stop_xscreensaver );
|
|
403 gtk_adjustment_set_value( HSPPQualityadj,auto_quality );
|
|
404
|
|
405 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPlayBar ),gtkEnablePlayBar );
|
|
406 if ( !guiApp.playbarIsPresent )
|
|
407 {
|
|
408 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPlayBar ),0 );
|
|
409 gtk_widget_set_sensitive( CBPlayBar,FALSE );
|
|
410 }
|
|
411 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNoIdle ),!player_idle_mode );
|
|
412
|
|
413 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBCache ),0 );
|
|
414 gtk_adjustment_set_value( SBCacheadj,(float)gtkCacheSize );
|
|
415 if ( !gtkCacheOn ) gtk_widget_set_sensitive( SBCache,FALSE );
|
|
416 else gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBCache ),TRUE );
|
|
417
|
|
418 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBAutoSync ),0 );
|
|
419 gtk_adjustment_set_value( SBAutoSyncadj,(float)gtkAutoSync );
|
|
420 if ( !gtkAutoSyncOn ) gtk_widget_set_sensitive( SBAutoSync,FALSE );
|
|
421 else gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBAutoSync ),TRUE );
|
|
422
|
|
423 if ( dvd_device ) gtk_entry_set_text( GTK_ENTRY( prEDVDDevice ),dvd_device );
|
|
424 else gtk_entry_set_text( GTK_ENTRY( prEDVDDevice ),DEFAULT_DVD_DEVICE );
|
|
425 if ( cdrom_device ) gtk_entry_set_text( GTK_ENTRY( prECDRomDevice ),cdrom_device );
|
|
426 else gtk_entry_set_text( GTK_ENTRY( prECDRomDevice ),DEFAULT_CDROM_DEVICE );
|
|
427
|
|
428 // -- disables
|
|
429 #ifndef CONFIG_ASS
|
|
430 gtk_widget_set_sensitive( CBUseASS,FALSE );
|
|
431 gtk_widget_set_sensitive( CBASSUseMargins,FALSE );
|
|
432 gtk_widget_set_sensitive( SBASSTopMargin,FALSE );
|
|
433 gtk_widget_set_sensitive( SBASSBottomMargin,FALSE );
|
|
434 #endif
|
|
435
|
|
436 // -- signals
|
|
437 gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)0 );
|
|
438 gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 );
|
|
439 gtk_signal_connect( GTK_OBJECT( CBSoftwareMixer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 );
|
|
440 gtk_signal_connect( GTK_OBJECT( CBAudioEqualizer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)2 );
|
|
441 gtk_signal_connect( GTK_OBJECT( CBShowVideoWindow ),"toggled",GTK_SIGNAL_FUNC( prToggled ), (void*)3 );
|
|
442 #ifdef CONFIG_FREETYPE
|
|
443 gtk_signal_connect( GTK_OBJECT( RBFontNoAutoScale ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)4 );
|
|
444 gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleHeight ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)5 );
|
|
445 gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleWidth ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)6 );
|
|
446 gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleDiagonal ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)7 );
|
|
447 #endif
|
|
448 gtk_signal_connect( GTK_OBJECT( CBCache ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)8);
|
|
449 gtk_signal_connect( GTK_OBJECT( CBAutoSync ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)9);
|
|
450 #ifdef CONFIG_ASS
|
|
451 gtk_signal_connect( GTK_OBJECT( CBUseASS ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)10);
|
|
452 #endif
|
|
453
|
|
454 gtk_signal_connect( GTK_OBJECT( HSExtraStereoMul ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)0 );
|
|
455 gtk_signal_connect( GTK_OBJECT( HSAudioDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)1 );
|
|
456 gtk_signal_connect( GTK_OBJECT( HSPanscan ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)2 );
|
|
457 gtk_signal_connect( GTK_OBJECT( HSSubDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)3 );
|
|
458 gtk_signal_connect( GTK_OBJECT( HSSubPosition ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)4 );
|
|
459 #ifndef CONFIG_FREETYPE
|
|
460 gtk_signal_connect( GTK_OBJECT( HSFontFactor ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)5 );
|
|
461 #else
|
|
462 gtk_signal_connect( GTK_OBJECT( HSFontBlur ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)6 );
|
|
463 gtk_signal_connect( GTK_OBJECT( HSFontOutLine ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)7 );
|
|
464 gtk_signal_connect( GTK_OBJECT( HSFontTextScale ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)8 );
|
|
465 gtk_signal_connect( GTK_OBJECT( HSFontOSDScale ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)9 );
|
|
466 gtk_signal_connect( GTK_OBJECT( EFontEncoding ),"changed",GTK_SIGNAL_FUNC( prEntry ),(void *)0 );
|
|
467 #endif
|
|
468 #ifdef CONFIG_ICONV
|
|
469 gtk_signal_connect( GTK_OBJECT( ESubEncoding ),"changed",GTK_SIGNAL_FUNC( prEntry ),(void *)1 );
|
|
470 #endif
|
|
471 gtk_signal_connect( GTK_OBJECT( HSPPQuality ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)10 );
|
|
472
|
|
473 gtk_signal_connect( GTK_OBJECT( CLADrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)0 );
|
|
474 gtk_signal_connect( GTK_OBJECT( CLVDrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)1 );
|
|
475
|
|
476 gtk_widget_show( Preferences );
|
|
477 gtkSetLayer( Preferences );
|
|
478 {
|
|
479 static int visible = 1;
|
|
480 if ( visible )
|
|
481 {
|
|
482 gtkMessageBox( GTK_MB_WARNING,MSGTR_PREFERENCES_Message );
|
|
483 visible=0;
|
|
484 }
|
|
485 }
|
|
486 }
|
|
487
|
|
488 static void HidePreferences( void )
|
|
489 {
|
|
490 if ( !Preferences ) return;
|
|
491 gtk_widget_hide( Preferences );
|
|
492 gtk_widget_destroy( Preferences );
|
|
493 Preferences=NULL;
|
|
494 HideAudioConfig();
|
|
495 #ifdef CONFIG_DXR3
|
|
496 HideDXR3Config();
|
|
497 #endif
|
|
498 }
|
|
499
|
|
500 #if defined(CONFIG_FREETYPE) || defined(CONFIG_ICONV)
|
|
501 static void prEntry( GtkContainer * container,gpointer user_data )
|
|
502 {
|
|
503 const char * comment;
|
|
504 int i;
|
|
505
|
|
506 switch( (int)user_data )
|
|
507 {
|
|
508 #ifdef CONFIG_FREETYPE
|
|
509 case 0: // font encoding
|
|
510 comment=gtk_entry_get_text( GTK_ENTRY( EFontEncoding ) );
|
|
511 for ( i=0;lEncoding[i].name;i++ )
|
|
512 if ( !gstrcmp( lEncoding[i].comment,comment ) ) break;
|
|
513 if ( lEncoding[i].comment ) gtkSet( gtkSetFontEncoding,0,lEncoding[i].name );
|
|
514 break;
|
|
515 #endif
|
|
516 #ifdef CONFIG_ICONV
|
|
517 case 1: // sub encoding
|
|
518 comment=gtk_entry_get_text( GTK_ENTRY( ESubEncoding ) );
|
|
519 for ( i=0;lEncoding[i].name;i++ )
|
|
520 if ( !gstrcmp( lEncoding[i].comment,comment ) ) break;
|
|
521 if ( lEncoding[i].comment ) gtkSet( gtkSetSubEncoding,0,lEncoding[i].name );
|
|
522 else gtkSet( gtkSetSubEncoding,0,NULL );
|
|
523 break;
|
|
524 #endif
|
|
525 }
|
|
526 }
|
|
527 #endif
|
|
528
|
|
529 #define bAConfig 0
|
|
530 #define bVconfig 1
|
|
531 #define bOk 2
|
|
532 #define bCancel 3
|
|
533 #define bLSubtitle 4
|
|
534 #define bLFont 5
|
|
535
|
|
536 static void prButton( GtkButton * button, gpointer user_data )
|
|
537 {
|
|
538 switch ( (int)user_data )
|
|
539 {
|
|
540 case bOk:
|
|
541 // -- 1. page
|
|
542 gtkEnableAudioEqualizer=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAudioEqualizer ) );
|
|
543 gtkAOExtraStereo=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBExtraStereo ) );
|
|
544 gtkAONorm=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNormalize ) );
|
|
545 soft_vol=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSoftwareMixer ) );
|
|
546 gtkSet( gtkSetExtraStereo,HSExtraStereoMuladj->value,NULL );
|
|
547 audio_delay=HSAudioDelayadj->value;
|
|
548
|
|
549 gaddlist( &audio_driver_list,ao_driver[0] );
|
|
550 gaddlist( &video_driver_list,vo_driver[0] );
|
|
551
|
|
552 // -- 2. page
|
|
553 vo_doublebuffering=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDoubleBuffer ) );
|
|
554 vo_directrendering=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDR ) );
|
|
555
|
|
556 frame_dropping=0;
|
|
557 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBFramedrop ) ) == TRUE ) frame_dropping=1;
|
|
558 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBHFramedrop ) ) == TRUE ) frame_dropping=2;
|
|
559
|
|
560 flip=-1;
|
|
561 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBFlip ) ) ) flip=1;
|
|
562
|
|
563 force_fps=HSFPSadj->value;
|
|
564
|
|
565 // -- 3. page
|
|
566 suboverlap_enabled=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSubOverlap ) );
|
|
567 sub_auto=!gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNoAutoSub ) );
|
|
568 gtkSubDumpMPSub=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDumpMPSub ) );
|
|
569 gtkSubDumpSrt=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDumpSrt ) );
|
|
570 sub_unicode=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSubUnicode ) );
|
|
571 #ifdef CONFIG_ASS
|
|
572 gtkASS.enabled=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBUseASS ) );
|
|
573 gtkASS.use_margins=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBASSUseMargins ) );
|
|
574 gtkASS.top_margin=gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( SBASSTopMargin ) );
|
|
575 gtkASS.bottom_margin=gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( SBASSBottomMargin ) );
|
|
576 #endif
|
|
577 sub_delay=HSSubDelayadj->value;
|
|
578 sub_fps=HSSubFPSadj->value;
|
|
579 sub_pos=(int)HSSubPositionadj->value;
|
|
580 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDNone ) ) ) osd_level=0;
|
|
581 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ) ) ) osd_level=1;
|
|
582 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDTandP ) ) ) osd_level=2;
|
|
583 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDTPTT ) ) ) osd_level=3;
|
|
584
|
|
585
|
|
586 // --- 4. page
|
|
587 guiSetFilename( font_name,gtk_entry_get_text( GTK_ENTRY( prEFontName ) ) );
|
|
588 #ifndef CONFIG_FREETYPE
|
|
589 gtkSet( gtkSetFontFactor,HSFontFactoradj->value,NULL );
|
|
590 #else
|
|
591 gtkSet( gtkSetFontBlur,HSFontBluradj->value,NULL );
|
|
592 gtkSet( gtkSetFontOutLine,HSFontOutLineadj->value,NULL );
|
|
593 gtkSet( gtkSetFontTextScale,HSFontTextScaleadj->value,NULL );
|
|
594 gtkSet( gtkSetFontOSDScale,HSFontOSDScaleadj->value,NULL );
|
|
595 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontNoAutoScale ) ) ) gtkSet( gtkSetFontAutoScale,0,NULL );
|
|
596 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleHeight ) ) ) gtkSet( gtkSetFontAutoScale,1,NULL );
|
|
597 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleWidth ) ) ) gtkSet( gtkSetFontAutoScale,2,NULL );
|
|
598 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleDiagonal ) ) ) gtkSet( gtkSetFontAutoScale,3,NULL );
|
|
599 #endif
|
|
600
|
|
601 // -- 5. page
|
|
602 force_ni=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ) );
|
|
603 index_mode=-1;
|
|
604 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBIndex ) ) ) index_mode=1;
|
|
605
|
|
606 {
|
|
607 int i;
|
|
608 const char * tmp = gtk_entry_get_text( GTK_ENTRY( EVFM ) );
|
|
609 for( i=0;mpcodecs_vd_drivers[i];i++ )
|
|
610 if ( !gstrcmp( tmp,(char *)mpcodecs_vd_drivers[i]->info->name ) )
|
|
611 { gaddlist( &video_fm_list,(char *)mpcodecs_vd_drivers[i]->info->short_name ); break; }
|
|
612 }
|
|
613
|
|
614 {
|
|
615 int i;
|
|
616 const char * tmp = gtk_entry_get_text( GTK_ENTRY( EAFM ) );
|
|
617 for( i=0;mpcodecs_ad_drivers[i];i++ )
|
|
618 if ( !gstrcmp( tmp,(char *)mpcodecs_ad_drivers[i]->info->name ) )
|
|
619 { gaddlist( &audio_fm_list,(char *)mpcodecs_ad_drivers[i]->info->short_name ); break; }
|
|
620 }
|
|
621
|
|
622 // --- 6. page
|
|
623 gtkVfPP=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBPostprocess ) );
|
|
624 gtkLoadFullscreen=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ) );
|
|
625 gui_save_pos=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSaveWinPos ) );
|
|
626 gtkShowVideoWindow=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBShowVideoWindow ) );
|
|
627 stop_xscreensaver=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBStopXScreenSaver ) );
|
|
628 gtkEnablePlayBar=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBPlayBar ) );
|
|
629 player_idle_mode=!gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNoIdle ) );
|
|
630 gtkSet( gtkSetAutoq,HSPPQualityadj->value,NULL );
|
|
631
|
|
632 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBCache ) ) ) { gtkCacheSize=(int)SBCacheadj->value; gtkCacheOn=1; }
|
|
633 else gtkCacheOn=0;
|
|
634
|
|
635 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAutoSync ) ) ) { gtkAutoSync=(int)SBAutoSyncadj->value; gtkAutoSyncOn=1; }
|
|
636 else gtkAutoSyncOn=0;
|
|
637
|
|
638 guiSetFilename( dvd_device,gtk_entry_get_text( GTK_ENTRY( prEDVDDevice ) ) );
|
|
639 guiSetFilename( cdrom_device,gtk_entry_get_text( GTK_ENTRY( prECDRomDevice ) ) );
|
|
640
|
|
641 case bCancel:
|
|
642 HidePreferences();
|
|
643 break;
|
|
644 case bAConfig:
|
|
645 if ( !ao_driver[0] ) break;
|
|
646 gtk_widget_set_sensitive( AConfig,FALSE );
|
|
647 if ( !strncmp( ao_driver[0],"oss",3 ) ||
|
|
648 !strncmp( ao_driver[0],"alsa",4 ) ||
|
|
649 !strncmp( ao_driver[0],"esd",3 ) ||
|
|
650 !strncmp( ao_driver[0],"sdl",3 ) ) {
|
|
651 ShowAudioConfig();
|
|
652 gtk_widget_set_sensitive( AConfig,TRUE );
|
|
653 }
|
|
654 break;
|
|
655 case bVconfig:
|
|
656 if ( !vo_driver[0] ) break;
|
|
657 gtk_widget_set_sensitive( VConfig,FALSE );
|
|
658 #ifdef CONFIG_DXR3
|
|
659 if ( !gstrcmp( vo_driver[0],"dxr3" ) ) { ShowDXR3Config(); gtk_widget_set_sensitive( VConfig,TRUE ); }
|
|
660 #endif
|
|
661 break;
|
|
662 #if 0
|
|
663 case bLSubtitle:
|
|
664 break;
|
|
665 #endif
|
|
666 case bLFont:
|
|
667 ShowFileSelect( fsFontSelector,FALSE );
|
|
668 gtkSetLayer( fsFileSelect );
|
|
669 break;
|
|
670 }
|
|
671 }
|
|
672
|
|
673 static gboolean prHScaler( GtkWidget * widget,GdkEventMotion * event,gpointer user_data )
|
|
674 {
|
|
675 switch ( (int)user_data )
|
|
676 {
|
|
677 case 0: // extra stereo coefficient
|
|
678 if ( !guiInfo.Playing ) break;
|
|
679 gtkSet( gtkSetExtraStereo,HSExtraStereoMuladj->value,NULL );
|
|
680 break;
|
|
681 case 1: // audio delay
|
|
682 audio_delay=HSAudioDelayadj->value;
|
|
683 break;
|
|
684 case 2: // panscan
|
|
685 gtkSet( gtkSetPanscan,HSPanscanadj->value,NULL );
|
|
686 break;
|
|
687 case 3: // sub delay
|
|
688 sub_delay=HSSubDelayadj->value;
|
|
689 break;
|
|
690 case 4: // sub position
|
|
691 sub_pos=(int)HSSubPositionadj->value;
|
|
692 break;
|
|
693 #ifndef CONFIG_FREETYPE
|
|
694 case 5: // font factor
|
|
695 gtkSet( gtkSetFontFactor,HSFontFactoradj->value,NULL );
|
|
696 break;
|
|
697 #else
|
|
698 case 6: // font blur
|
|
699 gtkSet( gtkSetFontBlur,HSFontBluradj->value,NULL );
|
|
700 break;
|
|
701 case 7: // font outline
|
|
702 gtkSet( gtkSetFontOutLine,HSFontOutLineadj->value,NULL );
|
|
703 break;
|
|
704 case 8: // text scale
|
|
705 gtkSet( gtkSetFontTextScale,HSFontTextScaleadj->value,NULL );
|
|
706 break;
|
|
707 case 9: // osd scale
|
|
708 gtkSet( gtkSetFontOSDScale,HSFontOSDScaleadj->value,NULL );
|
|
709 break;
|
|
710 #endif
|
|
711 case 10: // auto quality
|
|
712 gtkSet( gtkSetAutoq,HSPPQualityadj->value,NULL );
|
|
713 break;
|
|
714 }
|
|
715 return FALSE;
|
|
716 }
|
|
717
|
|
718 static void prToggled( GtkToggleButton * togglebutton,gpointer user_data )
|
|
719 {
|
|
720 int window;
|
|
721 switch ( (int)user_data )
|
|
722 {
|
|
723 case 0: // extra stereo coefficient
|
|
724 if ( guiInfo.Playing )
|
|
725 gtk_widget_set_sensitive( HSExtraStereoMul,gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBExtraStereo ) ) );
|
|
726 break;
|
|
727 // case 1: // normalize
|
|
728 // case 2: // equalizer
|
|
729 // if ( guiInfo.Playing ) gtkMessageBox( GTK_MB_WARNING,"Please remember, this function need restart the playing." );
|
|
730 // break;
|
|
731 case 3:
|
|
732 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBShowVideoWindow ) ) ) gtk_widget_set_sensitive( CBLoadFullscreen,TRUE );
|
|
733 else
|
|
734 {
|
|
735 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ),0 );
|
|
736 gtk_widget_set_sensitive( CBLoadFullscreen,FALSE );
|
|
737 }
|
|
738 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBShowVideoWindow ) ) )
|
|
739 {
|
|
740 window=wsShowWindow;
|
|
741 gtkActive( Preferences );
|
|
742 } else window=wsHideWindow;
|
|
743
|
|
744 if ( !guiInfo.Playing ) wsVisibleWindow( &guiApp.subWindow,window );
|
|
745 break;
|
|
746 case 4:
|
|
747 case 5:
|
|
748 case 6:
|
|
749 case 7:
|
|
750 gtkSet( gtkSetFontAutoScale,(float)((int)user_data - 4 ),NULL );
|
|
751 break;
|
|
752 case 8:
|
|
753 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBCache ) ) ) gtk_widget_set_sensitive( SBCache,TRUE );
|
|
754 else gtk_widget_set_sensitive( SBCache,FALSE );
|
|
755 break;
|
|
756 case 9:
|
|
757 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAutoSync ) ) ) gtk_widget_set_sensitive( SBAutoSync,TRUE );
|
|
758 else gtk_widget_set_sensitive( SBAutoSync,FALSE );
|
|
759 break;
|
|
760 #ifdef CONFIG_ASS
|
|
761 case 10:
|
|
762 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBUseASS ) ) )
|
|
763 {
|
|
764 gtk_widget_set_sensitive( CBASSUseMargins,TRUE );
|
|
765 gtk_widget_set_sensitive( SBASSTopMargin,TRUE );
|
|
766 gtk_widget_set_sensitive( SBASSBottomMargin,TRUE );
|
|
767 }
|
|
768 else
|
|
769 {
|
|
770 gtk_widget_set_sensitive( CBASSUseMargins,FALSE );
|
|
771 gtk_widget_set_sensitive( SBASSTopMargin,FALSE );
|
|
772 gtk_widget_set_sensitive( SBASSBottomMargin,FALSE );
|
|
773 }
|
|
774 break;
|
|
775 #endif
|
|
776 }
|
|
777 }
|
|
778
|
|
779 static void prCListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data )
|
|
780 {
|
|
781 switch ( (int)user_data )
|
|
782 {
|
|
783 case 0: // audio driver
|
|
784 gtk_clist_get_text( GTK_CLIST( CLADrivers ),row,0,(char **)&ao_driver );
|
|
785 gtk_widget_set_sensitive( AConfig,FALSE );
|
|
786 if ( !strncmp( ao_driver[0],"oss",3 ) ||
|
|
787 !strncmp( ao_driver[0],"alsa",4 ) ||
|
|
788 !strncmp( ao_driver[0],"esd",3 ) ||
|
|
789 !strncmp( ao_driver[0],"sdl",3 ) )
|
|
790 gtk_widget_set_sensitive( AConfig,TRUE );
|
|
791 #ifndef CONFIG_GTK2
|
|
792 if ( !strncmp( ao_driver[0],"arts",4 ) )
|
|
793 gtkMessageBox(GTK_MB_WARNING|GTK_MB_SIMPLE, MSGTR_PREFERENCES_ArtsBroken);
|
|
794 #endif
|
|
795 break;
|
|
796 case 1: // video driver
|
|
797 gtk_clist_get_text( GTK_CLIST( CLVDrivers ),row,0,(char **)&vo_driver );
|
|
798 gtk_widget_set_sensitive( VConfig,FALSE );
|
|
799 #ifdef CONFIG_DXR3
|
|
800 if ( !gstrcmp( vo_driver[0],"dxr3" ) ) gtk_widget_set_sensitive( VConfig,TRUE );
|
|
801 #endif
|
|
802 break;
|
|
803 }
|
|
804 }
|
|
805
|
|
806 GtkWidget * create_Preferences( void )
|
|
807 {
|
|
808 GtkWidget * label;
|
|
809 GtkWidget * frame;
|
|
810
|
|
811 GtkWidget * vbox1;
|
|
812 GtkWidget * notebook1;
|
|
813 GtkWidget * hbox1;
|
|
814 GtkWidget * vbox2;
|
|
815 GtkWidget * scrolledwindow3;
|
|
816 GtkWidget * vbox3;
|
|
817 GtkWidget * hbox8;
|
|
818 GtkWidget * hbox2;
|
|
819 GtkWidget * vbox4;
|
|
820 GtkWidget * scrolledwindow2;
|
|
821 GtkWidget * hbuttonbox3;
|
|
822 GtkWidget * vbox5;
|
|
823 GtkWidget * vbox6;
|
|
824 GtkWidget * vbox600;
|
|
825 GSList * OSD_group = NULL;
|
|
826 #ifdef CONFIG_ICONV
|
|
827 GSList * Font_group = NULL;
|
|
828 GList * CBFontEncoding_items = NULL;
|
|
829 GList * CBSubEncoding_items = NULL;
|
|
830 #endif
|
|
831 GtkWidget * vbox7;
|
|
832 GtkWidget * vbox8;
|
|
833 GtkWidget * table1;
|
|
834 GtkWidget * vbox9;
|
|
835 GtkWidget * vbox603;
|
|
836 GtkWidget * hbox6;
|
|
837 GtkWidget * hbuttonbox5;
|
|
838 #ifndef CONFIG_FREETYPE
|
|
839 GtkWidget * hbox7;
|
|
840 #endif
|
|
841 GtkWidget * vbox601;
|
|
842 GtkWidget * vbox602;
|
|
843 GtkWidget * hbox5;
|
|
844 GtkWidget * hbuttonbox1;
|
|
845 GtkAccelGroup * accel_group;
|
|
846
|
|
847 GtkWidget * hbox9;
|
|
848 GtkWidget * hbox91;
|
|
849 GtkWidget * hbox92;
|
|
850
|
|
851 accel_group=gtk_accel_group_new();
|
|
852
|
|
853 Preferences=gtk_window_new( GTK_WINDOW_TOPLEVEL );
|
|
854 gtk_widget_set_name( Preferences,"Preferences" );
|
|
855 gtk_object_set_data( GTK_OBJECT( Preferences ),"Preferences",Preferences );
|
|
856 gtk_window_set_title( GTK_WINDOW( Preferences ),MSGTR_Preferences );
|
|
857 gtk_window_set_position( GTK_WINDOW( Preferences ),GTK_WIN_POS_CENTER );
|
|
858 // gtk_window_set_policy( GTK_WINDOW( Preferences ),FALSE,FALSE,FALSE );
|
|
859 gtk_window_set_wmclass( GTK_WINDOW( Preferences ),"Preferences","MPlayer" );
|
|
860
|
|
861 gtk_widget_realize( Preferences );
|
|
862 gtkAddIcon( Preferences );
|
|
863
|
|
864 vbox1=AddVBox( AddDialogFrame( Preferences ),0 );
|
|
865 notebook1=gtk_notebook_new();
|
|
866 gtk_widget_set_name( notebook1,"notebook1" );
|
|
867 gtk_widget_show( notebook1 );
|
|
868 gtk_box_pack_start( GTK_BOX( vbox1 ),notebook1,TRUE,TRUE,0 );
|
|
869
|
|
870 hbox1=AddVBox( notebook1,0 );
|
|
871
|
|
872 frame=AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox1,1 );
|
|
873 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 );
|
|
874
|
|
875 // --- 1. page
|
|
876
|
|
877 vbox2=AddVBox( frame,0 );
|
|
878
|
|
879 scrolledwindow3=gtk_scrolled_window_new( NULL,NULL );
|
|
880 gtk_widget_set_name( scrolledwindow3,"scrolledwindow3" );
|
|
881 gtk_widget_show( scrolledwindow3 );
|
|
882 gtk_box_pack_start( GTK_BOX( vbox2 ),scrolledwindow3,TRUE,TRUE,0 );
|
|
883 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow3 ),GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC );
|
|
884
|
|
885 CLADrivers=gtk_clist_new( 2 );
|
|
886 gtk_widget_set_name( CLADrivers,"CLADrivers" );
|
|
887 gtk_widget_show( CLADrivers );
|
|
888 gtk_container_add( GTK_CONTAINER( scrolledwindow3 ),CLADrivers );
|
|
889 gtk_clist_set_column_width( GTK_CLIST( CLADrivers ),0,50 );
|
|
890 gtk_clist_column_titles_show( GTK_CLIST( CLADrivers ) );
|
|
891 gtk_clist_set_shadow_type( GTK_CLIST( CLADrivers ),GTK_SHADOW_NONE );
|
|
892 gtk_widget_set_usize( CLADrivers,250,-2 );
|
|
893 gtk_clist_set_column_widget( GTK_CLIST( CLADrivers ),0,
|
|
894 AddLabel( MSGTR_PREFERENCES_AvailableDrivers,NULL ) );
|
|
895
|
|
896 AConfig=AddButton( MSGTR_ConfigDriver,
|
|
897 AddHButtonBox( vbox2 ) );
|
|
898
|
|
899 vbox3=AddVBox(
|
|
900 AddFrame( NULL,GTK_SHADOW_NONE,
|
|
901 AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox1,0 ),1 ),0 );
|
|
902 gtk_widget_set_usize( vbox3,250,-2 );
|
|
903
|
|
904 CBNormalize=AddCheckButton( MSGTR_PREFERENCES_NormalizeSound,vbox3 );
|
|
905 CBAudioEqualizer=AddCheckButton( MSGTR_PREFERENCES_EnableEqualizer,vbox3 );
|
|
906 CBSoftwareMixer=AddCheckButton( MSGTR_PREFERENCES_SoftwareMixer,vbox3 );
|
|
907 #if 0
|
|
908 CBSurround=AddCheckButton( "Enable surround",vbox3 );
|
|
909 #endif
|
|
910
|
|
911 AddHSeparator( vbox3 );
|
|
912 CBExtraStereo=AddCheckButton( MSGTR_PREFERENCES_ExtraStereo,vbox3 );
|
|
913 hbox8=AddHBox( vbox3,1 );
|
|
914 label=AddLabel( MSGTR_PREFERENCES_Coefficient,hbox8 );
|
|
915 // gtk_misc_set_padding( GTK_MISC( label ),20,0 );
|
|
916 HSExtraStereoMuladj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-10,10,0.1,0,0 ) );
|
|
917 HSExtraStereoMul=AddHScaler( HSExtraStereoMuladj,hbox8,1 );
|
|
918 AddHSeparator( vbox3 );
|
|
919
|
|
920 hbox8=AddHBox( vbox3,1 );
|
|
921 AddLabel( MSGTR_PREFERENCES_AudioDelay,hbox8 );
|
|
922
|
|
923 HSAudioDelayadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-10,10,0.01,0,0 ) );
|
|
924 HSAudioDelay=AddHScaler( HSAudioDelayadj,hbox8,2 );
|
|
925 label=AddLabel( MSGTR_PREFERENCES_Audio,NULL );
|
|
926 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),0 ),label );
|
|
927
|
|
928 // --- 2. page
|
|
929
|
|
930 hbox2=AddVBox( notebook1,0 );
|
|
931
|
|
932 vbox4=AddVBox(
|
|
933 AddFrame( NULL,GTK_SHADOW_NONE,
|
|
934 AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox2,1 ),1 ),0 );
|
|
935
|
|
936 scrolledwindow2=gtk_scrolled_window_new( NULL,NULL );
|
|
937 gtk_widget_set_name( scrolledwindow2,"scrolledwindow2" );
|
|
938 gtk_widget_show( scrolledwindow2 );
|
|
939 gtk_box_pack_start( GTK_BOX( vbox4 ),scrolledwindow2,TRUE,TRUE,0 );
|
|
940 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow2 ),GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC );
|
|
941
|
|
942 CLVDrivers=gtk_clist_new( 2 );
|
|
943 gtk_widget_set_name( CLVDrivers,"CLVDrivers" );
|
|
944 gtk_widget_show( CLVDrivers );
|
|
945 gtk_container_add( GTK_CONTAINER( scrolledwindow2 ),CLVDrivers );
|
|
946 gtk_clist_set_column_width( GTK_CLIST( CLVDrivers ),0,50 );
|
|
947 gtk_clist_column_titles_show( GTK_CLIST( CLVDrivers ) );
|
|
948 gtk_clist_set_shadow_type( GTK_CLIST( CLVDrivers ),GTK_SHADOW_NONE );
|
|
949 gtk_widget_set_usize( CLVDrivers,250,-2 );
|
|
950
|
|
951 label=AddLabel( MSGTR_PREFERENCES_AvailableDrivers,NULL );
|
|
952 gtk_clist_set_column_widget( GTK_CLIST( CLVDrivers ),0,label );
|
|
953
|
|
954 hbuttonbox3=AddHButtonBox( vbox4 );
|
|
955 VConfig=AddButton( MSGTR_ConfigDriver,hbuttonbox3 );
|
|
956
|
|
957 vbox5=AddVBox(
|
|
958 AddFrame( NULL,GTK_SHADOW_NONE,
|
|
959 AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox2,0 ),1 ),0 );
|
|
960 gtk_widget_set_usize( vbox5,250,-2 );
|
|
961
|
|
962 CBDoubleBuffer=AddCheckButton( MSGTR_PREFERENCES_DoubleBuffer,vbox5 );
|
|
963 CBDR=AddCheckButton( MSGTR_PREFERENCES_DirectRender,vbox5 );
|
|
964 CBFramedrop=AddCheckButton( MSGTR_PREFERENCES_FrameDrop,vbox5 );
|
|
965 CBHFramedrop=AddCheckButton( MSGTR_PREFERENCES_HFrameDrop,vbox5 );
|
|
966 CBFlip=AddCheckButton( MSGTR_PREFERENCES_Flip,vbox5 );
|
|
967
|
|
968 table1=gtk_table_new( 3,2,FALSE );
|
|
969 gtk_widget_set_name( table1,"table1" );
|
|
970 gtk_widget_show( table1 );
|
|
971 gtk_box_pack_start( GTK_BOX( vbox5 ),table1,FALSE,FALSE,0 );
|
|
972
|
|
973 label=AddLabel( MSGTR_PREFERENCES_Panscan,NULL );
|
|
974 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
975
|
|
976 label=AddLabel( MSGTR_PREFERENCES_FPS,NULL );
|
|
977 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
978
|
|
979 HSPanscanadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,1,0.001,0,0 ) );
|
|
980 HSPanscan=AddHScaler( HSPanscanadj,NULL,1 );
|
|
981 gtk_table_attach( GTK_TABLE( table1 ),HSPanscan,1,2,0,1,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
982
|
|
983 HSFPSadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,1000,0.001,0,0 ) );
|
|
984 HSFPS=gtk_spin_button_new( GTK_ADJUSTMENT( HSFPSadj ),1,3 );
|
|
985 gtk_widget_set_name( HSFPS,"HSFPS" );
|
|
986 gtk_widget_show( HSFPS );
|
|
987 gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( HSFPS ),TRUE );
|
|
988 gtk_table_attach( GTK_TABLE( table1 ),HSFPS,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
989
|
|
990 label=AddLabel( MSGTR_PREFERENCES_Video,NULL );
|
|
991 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),1 ),label );
|
|
992
|
|
993 // --- 3. page
|
|
994
|
|
995 vbox6=AddVBox( notebook1,0 );
|
|
996
|
|
997 vbox600=AddVBox(
|
|
998 AddFrame( NULL,GTK_SHADOW_NONE,
|
|
999 AddFrame( MSGTR_PREFERENCES_FRAME_OSD_Level,GTK_SHADOW_ETCHED_OUT,vbox6,0 ),1 ),0 );
|
|
1000
|
|
1001 RBOSDNone=AddRadioButton( MSGTR_PREFERENCES_None,&OSD_group,vbox600 );
|
|
1002 RBOSDTandP=AddRadioButton( MSGTR_PREFERENCES_OSDTimer,&OSD_group,vbox600 );
|
|
1003 RBOSDIndicator=AddRadioButton( MSGTR_PREFERENCES_OSDProgress,&OSD_group,vbox600 );
|
|
1004 RBOSDTPTT=AddRadioButton( MSGTR_PREFERENCES_OSDTimerPercentageTotalTime,&OSD_group,vbox600 );
|
|
1005
|
|
1006 vbox7=AddVBox(
|
|
1007 AddFrame( NULL,GTK_SHADOW_NONE,
|
|
1008 AddFrame( MSGTR_PREFERENCES_FRAME_Subtitle,GTK_SHADOW_ETCHED_OUT,vbox6,0 ),1 ),0 );
|
|
1009
|
|
1010 #if 0
|
|
1011 hbox4=AddHBox( vbox7,1 );
|
|
1012
|
|
1013 AddLabel( MSGTR_PREFERENCES_Subtitle,hbox4 );
|
|
1014
|
|
1015 ESubtitleName=gtk_entry_new();
|
|
1016 gtk_widget_set_name( ESubtitleName,"ESubtitleName" );
|
|
1017 gtk_widget_show( ESubtitleName );
|
|
1018 gtk_box_pack_start( GTK_BOX( hbox4 ),ESubtitleName,TRUE,TRUE,0 );
|
|
1019
|
|
1020 hbuttonbox4=AddHButtonBox( hbuttonbox4 );
|
|
1021 gtk_container_set_border_width( GTK_CONTAINER( hbuttonbox4 ),3 );
|
|
1022 BLoadSubtitle=AddButton( MSGTR_Browse,hbuttonbox4 );
|
|
1023 #endif
|
|
1024
|
|
1025 vbox8=AddVBox( vbox7,0 );
|
|
1026
|
|
1027 table1=gtk_table_new( 3,2,FALSE );
|
|
1028 gtk_widget_set_name( table1,"table1" );
|
|
1029 gtk_widget_show( table1 );
|
|
1030 gtk_box_pack_start( GTK_BOX( vbox8 ),table1,FALSE,FALSE,0 );
|
|
1031
|
|
1032 label=AddLabel( MSGTR_PREFERENCES_SUB_Delay,NULL );
|
|
1033 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1034
|
|
1035 label=AddLabel( MSGTR_PREFERENCES_SUB_POS,NULL );
|
|
1036 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1037
|
|
1038 label=AddLabel( MSGTR_PREFERENCES_SUB_FPS,NULL );
|
|
1039 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,2,3,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1040
|
|
1041 #ifdef CONFIG_ICONV
|
|
1042 label=AddLabel( MSGTR_PREFERENCES_FontEncoding,NULL );
|
|
1043 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,3,4,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1044 #endif
|
|
1045
|
|
1046 HSSubDelayadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-10.0,10,0.01,0,0 ) );
|
|
1047 HSSubDelay=AddHScaler( HSSubDelayadj,NULL,1 );
|
|
1048 gtk_table_attach( GTK_TABLE( table1 ),HSSubDelay,1,2,0,1,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1049
|
|
1050 HSSubPositionadj=GTK_ADJUSTMENT( gtk_adjustment_new( 100,0,100,1,0,0 ) );
|
|
1051 HSSubPosition=AddHScaler( HSSubPositionadj,NULL,0 );
|
|
1052 gtk_table_attach( GTK_TABLE( table1 ),HSSubPosition,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1053
|
|
1054 HSSubFPSadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.01,0,0 ) );
|
|
1055 HSSubFPS=gtk_spin_button_new( GTK_ADJUSTMENT( HSSubFPSadj ),1,3 );
|
|
1056 gtk_widget_set_name( HSSubFPS,"HSSubFPS" );
|
|
1057 gtk_widget_show( HSSubFPS );
|
|
1058 gtk_widget_set_usize( HSSubFPS,60,-1 );
|
|
1059 gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( HSSubFPS ),TRUE );
|
|
1060 gtk_table_attach( GTK_TABLE( table1 ),HSSubFPS,1,2,2,3,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1061
|
|
1062 #ifdef CONFIG_ICONV
|
|
1063 CBSubEncoding=gtk_combo_new();
|
|
1064 gtk_widget_set_name( CBSubEncoding,"CBSubEncoding" );
|
|
1065 gtk_widget_show( CBSubEncoding );
|
|
1066 gtk_table_attach( GTK_TABLE( table1 ),CBSubEncoding,1,2,3,4,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1067 CBSubEncoding_items=g_list_append( CBSubEncoding_items,MSGTR_PREFERENCES_None );
|
|
1068 {
|
|
1069 int i;
|
|
1070 for ( i=0;lEncoding[i].name;i++ ) CBSubEncoding_items=g_list_append( CBSubEncoding_items,lEncoding[i].comment );
|
|
1071 }
|
|
1072 gtk_combo_set_popdown_strings( GTK_COMBO( CBSubEncoding ),CBSubEncoding_items );
|
|
1073 g_list_free( CBSubEncoding_items );
|
|
1074
|
|
1075 ESubEncoding=GTK_COMBO( CBSubEncoding )->entry;
|
|
1076 gtk_widget_set_name( ESubEncoding,"ESubEncoding" );
|
|
1077 gtk_entry_set_editable( GTK_ENTRY( ESubEncoding ),FALSE );
|
|
1078 gtk_widget_show( ESubEncoding );
|
|
1079 #endif
|
|
1080
|
|
1081 vbox9=AddVBox( vbox8,0 );
|
|
1082
|
|
1083 CBSubOverlap=AddCheckButton( MSGTR_PREFERENCES_SUB_Overlap,vbox9 );
|
|
1084 CBNoAutoSub=AddCheckButton( MSGTR_PREFERENCES_SUB_AutoLoad,vbox9 );
|
|
1085 CBSubUnicode=AddCheckButton( MSGTR_PREFERENCES_SUB_Unicode,vbox9 );
|
|
1086 CBDumpMPSub=AddCheckButton( MSGTR_PREFERENCES_SUB_MPSUB,vbox9 );
|
|
1087 CBDumpSrt=AddCheckButton( MSGTR_PREFERENCES_SUB_SRT,vbox9 );
|
|
1088
|
|
1089 AddHSeparator( vbox9 );
|
|
1090 CBUseASS=AddCheckButton( MSGTR_PREFERENCES_SUB_USE_ASS,vbox9 );
|
|
1091 hbox9=AddHBox( vbox9,0 );
|
|
1092 CBASSUseMargins=AddCheckButton( MSGTR_PREFERENCES_SUB_ASS_USE_MARGINS,hbox9 );
|
|
1093
|
|
1094 hbox91=gtk_hbox_new( FALSE,0 );
|
|
1095 gtk_widget_set_name( hbox91,"hbox91" );
|
|
1096 gtk_box_pack_start( GTK_BOX( hbox9 ),hbox91,TRUE,FALSE,0 );
|
|
1097 gtk_widget_show( hbox91 );
|
|
1098 SBASSTopMargin=AddSpinButton( MSGTR_PREFERENCES_SUB_ASS_TOP_MARGIN,
|
|
1099 (GtkAdjustment *)gtk_adjustment_new(0,0,512,1,8,0),hbox91 );
|
|
1100
|
|
1101 hbox92=gtk_hbox_new( FALSE,0 );
|
|
1102 gtk_widget_set_name( hbox92,"hbox92" );
|
|
1103 gtk_box_pack_start( GTK_BOX( hbox9 ),hbox92,TRUE,FALSE,0 );
|
|
1104 gtk_widget_show( hbox92 );
|
|
1105 SBASSBottomMargin=AddSpinButton( MSGTR_PREFERENCES_SUB_ASS_BOTTOM_MARGIN,
|
|
1106 (GtkAdjustment *)gtk_adjustment_new(0,0,512,1,8,0),hbox92 );
|
|
1107
|
|
1108 label=AddLabel( MSGTR_PREFERENCES_SubtitleOSD,NULL );
|
|
1109 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),2 ),label );
|
|
1110 vbox601=AddVBox( notebook1,0 );
|
|
1111
|
|
1112 // --- 4. page
|
|
1113
|
|
1114 vbox603=AddVBox(
|
|
1115 AddFrame( NULL,GTK_SHADOW_NONE,
|
|
1116 AddFrame( MSGTR_PREFERENCES_FRAME_Font,GTK_SHADOW_ETCHED_OUT,vbox601,0 ),1 ),0 );
|
|
1117
|
|
1118 hbox6=AddHBox( vbox603,1 );
|
|
1119 AddLabel( MSGTR_PREFERENCES_Font,hbox6 );
|
|
1120 prEFontName=gtk_entry_new();
|
|
1121 gtk_widget_set_name( prEFontName,"prEFontName" );
|
|
1122 gtk_widget_show( prEFontName );
|
|
1123 gtk_box_pack_start( GTK_BOX( hbox6 ),prEFontName,TRUE,TRUE,0 );
|
|
1124 hbuttonbox5=AddHButtonBox( hbox6 );
|
|
1125 gtk_container_set_border_width( GTK_CONTAINER( hbuttonbox5 ),3 );
|
|
1126 BLoadFont=AddButton( MSGTR_Browse,hbuttonbox5 );
|
|
1127
|
|
1128 #ifndef CONFIG_FREETYPE
|
|
1129 hbox7=AddHBox( vbox603,1 );
|
|
1130 AddLabel( MSGTR_PREFERENCES_FontFactor,hbox7 );
|
|
1131 HSFontFactoradj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,10,0.05,0,0 ) );
|
|
1132 HSFontFactor=AddHScaler( HSFontFactoradj,hbox7,2 );
|
|
1133 #else
|
|
1134
|
|
1135 RBFontNoAutoScale=AddRadioButton( MSGTR_PREFERENCES_FontNoAutoScale,&Font_group,vbox603 );
|
|
1136 RBFontAutoScaleHeight=AddRadioButton( MSGTR_PREFERENCES_FontPropHeight,&Font_group,vbox603 );
|
|
1137 RBFontAutoScaleWidth=AddRadioButton( MSGTR_PREFERENCES_FontPropWidth,&Font_group,vbox603 );
|
|
1138 RBFontAutoScaleDiagonal=AddRadioButton( MSGTR_PREFERENCES_FontPropDiagonal,&Font_group,vbox603 );
|
|
1139
|
|
1140 table1=gtk_table_new( 3,2,FALSE );
|
|
1141 gtk_widget_set_name( table1,"table1" );
|
|
1142 gtk_widget_show( table1 );
|
|
1143 gtk_box_pack_start( GTK_BOX( vbox603 ),table1,FALSE,FALSE,0 );
|
|
1144
|
|
1145 label=AddLabel( MSGTR_PREFERENCES_FontEncoding,NULL );
|
|
1146 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1147
|
|
1148 CBFontEncoding=gtk_combo_new();
|
|
1149 gtk_widget_set_name( CBFontEncoding,"CBFontEncoding" );
|
|
1150 gtk_widget_show( CBFontEncoding );
|
|
1151 gtk_table_attach( GTK_TABLE( table1 ),CBFontEncoding,1,2,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1152 {
|
|
1153 int i;
|
|
1154 for ( i=0;lEncoding[i].name;i++ ) CBFontEncoding_items=g_list_append( CBFontEncoding_items,lEncoding[i].comment );
|
|
1155 }
|
|
1156 gtk_combo_set_popdown_strings( GTK_COMBO( CBFontEncoding ),CBFontEncoding_items );
|
|
1157 g_list_free( CBFontEncoding_items );
|
|
1158
|
|
1159 EFontEncoding=GTK_COMBO( CBFontEncoding )->entry;
|
|
1160 gtk_widget_set_name( EFontEncoding,"EFontEncoding" );
|
|
1161 gtk_entry_set_editable( GTK_ENTRY( EFontEncoding ),FALSE );
|
|
1162 gtk_widget_show( EFontEncoding );
|
|
1163
|
|
1164 label=AddLabel( MSGTR_PREFERENCES_FontBlur,NULL );
|
|
1165 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1166
|
|
1167 HSFontBluradj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) );
|
|
1168 HSFontBlur=AddHScaler( HSFontBluradj,NULL,2 );
|
|
1169 gtk_table_attach( GTK_TABLE( table1 ),HSFontBlur,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1170
|
|
1171 label=AddLabel( MSGTR_PREFERENCES_FontOutLine,NULL );
|
|
1172 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,2,3,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1173
|
|
1174 HSFontOutLineadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) );
|
|
1175 HSFontOutLine=AddHScaler( HSFontOutLineadj,NULL,2 );
|
|
1176 gtk_table_attach( GTK_TABLE( table1 ),HSFontOutLine,1,2,2,3,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1177
|
|
1178 label=AddLabel( MSGTR_PREFERENCES_FontTextScale,NULL );
|
|
1179 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,3,4,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1180
|
|
1181 HSFontTextScaleadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) );
|
|
1182 HSFontTextScale=AddHScaler( HSFontTextScaleadj,NULL,2 );
|
|
1183 gtk_table_attach( GTK_TABLE( table1 ),HSFontTextScale,1,2,3,4,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1184
|
|
1185 label=AddLabel( MSGTR_PREFERENCES_FontOSDScale,NULL );
|
|
1186 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,4,5,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1187
|
|
1188 HSFontOSDScaleadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) );
|
|
1189 HSFontOSDScale=AddHScaler( HSFontOSDScaleadj,NULL,2 );
|
|
1190 gtk_table_attach( GTK_TABLE( table1 ),HSFontOSDScale,1,2,4,5,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1191 #endif
|
|
1192
|
|
1193 label=AddLabel( MSGTR_PREFERENCES_FRAME_Font,NULL );
|
|
1194 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),3 ),label );
|
|
1195
|
|
1196 // --- 5. page
|
|
1197
|
|
1198 vbox601=AddVBox( notebook1,0 );
|
|
1199
|
|
1200 vbox602=AddVBox(
|
|
1201 AddFrame( NULL,GTK_SHADOW_NONE,
|
|
1202 AddFrame( MSGTR_PREFERENCES_FRAME_CodecDemuxer,GTK_SHADOW_ETCHED_OUT,vbox601,0 ),1 ),0 );
|
|
1203
|
|
1204 CBNonInterlaved=AddCheckButton( MSGTR_PREFERENCES_NI,vbox602 );
|
|
1205 CBIndex=AddCheckButton( MSGTR_PREFERENCES_IDX,vbox602 );
|
|
1206
|
|
1207 hbox5=AddHBox( vbox602,1 );
|
|
1208
|
|
1209 AddLabel( MSGTR_PREFERENCES_VideoCodecFamily,hbox5 );
|
|
1210
|
|
1211 CBVFM=gtk_combo_new();
|
|
1212 gtk_widget_set_name( CBVFM,"CBVFM" );
|
|
1213 gtk_widget_show( CBVFM );
|
|
1214 gtk_box_pack_start( GTK_BOX( hbox5 ),CBVFM,TRUE,TRUE,0 );
|
|
1215
|
|
1216 EVFM=GTK_COMBO( CBVFM )->entry;
|
|
1217 gtk_widget_set_name( EVFM,"CEVFM" );
|
|
1218 gtk_entry_set_editable( GTK_ENTRY( EVFM ),FALSE );
|
|
1219 gtk_widget_show( EVFM );
|
|
1220
|
|
1221 hbox5=AddHBox( vbox602,1 );
|
|
1222
|
|
1223 AddLabel( MSGTR_PREFERENCES_AudioCodecFamily,hbox5 );
|
|
1224
|
|
1225 CBAFM=gtk_combo_new();
|
|
1226 gtk_widget_set_name( CBAFM,"CBAFM" );
|
|
1227 gtk_widget_show( CBAFM );
|
|
1228 gtk_box_pack_start( GTK_BOX( hbox5 ),CBAFM,TRUE,TRUE,0 );
|
|
1229
|
|
1230 EAFM=GTK_COMBO( CBAFM )->entry;
|
|
1231 gtk_widget_set_name( EAFM,"EAFM" );
|
|
1232 gtk_entry_set_editable( GTK_ENTRY( EAFM ),FALSE );
|
|
1233 gtk_widget_show( EAFM );
|
|
1234
|
|
1235 label=AddLabel( MSGTR_PREFERENCES_Codecs,NULL );
|
|
1236 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),4 ),label );
|
|
1237
|
|
1238 vbox601=AddVBox( notebook1,0 );
|
|
1239
|
|
1240 // --- 6. page
|
|
1241
|
|
1242 vbox602=AddVBox(
|
|
1243 AddFrame( NULL,GTK_SHADOW_NONE,
|
|
1244 AddFrame( MSGTR_PREFERENCES_FRAME_PostProcess,GTK_SHADOW_ETCHED_OUT,vbox601,0 ),1 ),0 );
|
|
1245
|
|
1246 CBPostprocess=AddCheckButton( MSGTR_PREFERENCES_PostProcess,vbox602 );
|
|
1247
|
|
1248 hbox5=AddHBox( vbox602,1 );
|
|
1249
|
|
1250 AddLabel( MSGTR_PREFERENCES_AutoQuality,hbox5 );
|
|
1251
|
|
1252 if ( guiInfo.sh_video && guiInfo.Playing ) HSPPQualityadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,get_video_quality_max( guiInfo.sh_video ),0,0,0 ) );
|
|
1253 else HSPPQualityadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0,0,0 ) );
|
|
1254 HSPPQuality=AddHScaler( HSPPQualityadj,hbox5,0 );
|
|
1255
|
|
1256 vbox602=AddVBox(
|
|
1257 AddFrame( NULL,GTK_SHADOW_NONE,
|
|
1258 AddFrame( MSGTR_PREFERENCES_FRAME_Cache,GTK_SHADOW_ETCHED_OUT,vbox601,0 ),1 ),0 );
|
|
1259
|
|
1260 CBCache=AddCheckButton( MSGTR_PREFERENCES_Cache,vbox602 );
|
|
1261
|
|
1262 hbox5=AddHBox( vbox602,1 );
|
|
1263
|
|
1264 AddLabel( MSGTR_PREFERENCES_CacheSize,hbox5 );
|
|
1265
|
|
1266 SBCacheadj=GTK_ADJUSTMENT( gtk_adjustment_new( gtkCacheSize,32,1048576,1,32,0 ) );
|
|
1267 SBCache=gtk_spin_button_new( GTK_ADJUSTMENT( SBCacheadj ),1,0 );
|
|
1268 gtk_widget_show( SBCache );
|
|
1269 gtk_box_pack_start( GTK_BOX( hbox5 ),SBCache,TRUE,TRUE,0 );
|
|
1270
|
|
1271 vbox602=AddVBox(
|
|
1272 AddFrame( NULL,GTK_SHADOW_NONE,
|
|
1273 AddFrame( MSGTR_PREFERENCES_FRAME_Misc,GTK_SHADOW_ETCHED_OUT,vbox601,1 ),1 ),0 );
|
|
1274
|
|
1275 CBShowVideoWindow=AddCheckButton( MSGTR_PREFERENCES_ShowVideoWindow,vbox602 );
|
|
1276 CBLoadFullscreen=AddCheckButton( MSGTR_PREFERENCES_LoadFullscreen,vbox602 );
|
|
1277 CBSaveWinPos=AddCheckButton( MSGTR_PREFERENCES_SaveWinPos,vbox602 );
|
|
1278 CBStopXScreenSaver=AddCheckButton( MSGTR_PREFERENCES_XSCREENSAVER,vbox602 );
|
|
1279 CBPlayBar=AddCheckButton( MSGTR_PREFERENCES_PlayBar,vbox602 );
|
|
1280 CBNoIdle=AddCheckButton( MSGTR_PREFERENCES_NoIdle,vbox602 );
|
|
1281
|
|
1282 AddHSeparator( vbox602 );
|
|
1283
|
|
1284 CBAutoSync=AddCheckButton( MSGTR_PREFERENCES_AutoSync,vbox602 );
|
|
1285 hbox5=AddHBox( vbox602,1 );
|
|
1286 AddLabel( MSGTR_PREFERENCES_AutoSyncValue,hbox5 );
|
|
1287 SBAutoSyncadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,10000,1,10,10 ) );
|
|
1288 SBAutoSync=gtk_spin_button_new( GTK_ADJUSTMENT( SBAutoSyncadj ),1,0 );
|
|
1289 gtk_widget_show( SBAutoSync );
|
|
1290 gtk_box_pack_start( GTK_BOX( hbox5 ),SBAutoSync,TRUE,TRUE,0 );
|
|
1291
|
|
1292 AddHSeparator( vbox602 );
|
|
1293
|
|
1294 table1=gtk_table_new( 2,2,FALSE );
|
|
1295 gtk_widget_set_name( table1,"table1" );
|
|
1296 gtk_widget_show( table1 );
|
|
1297 gtk_box_pack_start( GTK_BOX( vbox602 ),table1,FALSE,FALSE,0 );
|
|
1298
|
|
1299 label=AddLabel( MSGTR_PREFERENCES_DVDDevice,NULL );
|
|
1300 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1301 prEDVDDevice=gtk_entry_new();
|
|
1302 gtk_widget_set_name( prEDVDDevice,"prEDVDDevice" );
|
|
1303 gtk_widget_show( prEDVDDevice );
|
|
1304 gtk_table_attach( GTK_TABLE( table1 ),prEDVDDevice,1,2,0,1,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1305
|
|
1306 label=AddLabel( MSGTR_PREFERENCES_CDROMDevice,NULL );
|
|
1307 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1308 prECDRomDevice=gtk_entry_new();
|
|
1309 gtk_widget_set_name( prECDRomDevice,"prECDRomDevice" );
|
|
1310 gtk_widget_show( prECDRomDevice );
|
|
1311 gtk_table_attach( GTK_TABLE( table1 ),prECDRomDevice,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
|
|
1312
|
|
1313 // AddHSeparator( vbox602 );
|
|
1314
|
|
1315 label=AddLabel( MSGTR_PREFERENCES_Misc,NULL );
|
|
1316 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),5 ),label );
|
|
1317
|
|
1318 // ---
|
|
1319
|
|
1320 AddHSeparator( vbox1 );
|
|
1321
|
|
1322 hbuttonbox1=AddHButtonBox( vbox1 );
|
|
1323 gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END );
|
|
1324 gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 );
|
|
1325 BOk=AddButton( MSGTR_Ok,hbuttonbox1 );
|
|
1326 BCancel=AddButton( MSGTR_Cancel,hbuttonbox1 );
|
|
1327
|
|
1328 gtk_widget_add_accelerator( BOk,"clicked",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE );
|
|
1329 gtk_widget_add_accelerator( BCancel,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE );
|
|
1330
|
|
1331 gtk_signal_connect( GTK_OBJECT( Preferences ),"destroy",GTK_SIGNAL_FUNC( WidgetDestroy ),&Preferences );
|
|
1332
|
|
1333 gtk_signal_connect( GTK_OBJECT( AConfig ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bAConfig );
|
|
1334 gtk_signal_connect( GTK_OBJECT( BOk ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bOk );
|
|
1335 gtk_signal_connect( GTK_OBJECT( BCancel ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bCancel );
|
|
1336 gtk_signal_connect( GTK_OBJECT( VConfig ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bVconfig );
|
|
1337 #if 0
|
|
1338 gtk_signal_connect( GTK_OBJECT( BLoadSubtitle ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bLSubtitle );
|
|
1339 #endif
|
|
1340 gtk_signal_connect( GTK_OBJECT( BLoadFont ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bLFont );
|
|
1341
|
|
1342 #if 0
|
|
1343 gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( on_CBNormalize_toggled ),NULL );
|
|
1344 gtk_signal_connect( GTK_OBJECT( CBSoftwareMixer ),"toggled",GTK_SIGNAL_FUNC( on_CBSoftwareMixer_toggled ),NULL );
|
|
1345 gtk_signal_connect( GTK_OBJECT( CBSurround ),"toggled",GTK_SIGNAL_FUNC( on_CBSurround_toggled ),NULL );
|
|
1346 gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( on_CBExtraStereo_toggled ),NULL );
|
|
1347 gtk_signal_connect( GTK_OBJECT( CBDoubleBuffer ),"toggled",GTK_SIGNAL_FUNC( on_CBDoubleBuffer_toggled ),NULL );
|
|
1348 gtk_signal_connect( GTK_OBJECT( CBDR ),"toggled",GTK_SIGNAL_FUNC( on_CBDR_toggled ),NULL );
|
|
1349 gtk_signal_connect( GTK_OBJECT( CBFramedrop ),"toggled",GTK_SIGNAL_FUNC( on_CBFramedrop_toggled ),NULL );
|
|
1350 gtk_signal_connect( GTK_OBJECT( CBHFramedrop ),"toggled",GTK_SIGNAL_FUNC( on_CBHFramedrop_toggled ),NULL );
|
|
1351 gtk_signal_connect( GTK_OBJECT( CBFullScreen ),"toggled",GTK_SIGNAL_FUNC( on_CBFullScreen_toggled ),NULL );
|
|
1352 gtk_signal_connect( GTK_OBJECT( CBNonInterlaved ),"toggled",GTK_SIGNAL_FUNC( on_CBNonInterlaved_toggled ),NULL );
|
|
1353 gtk_signal_connect( GTK_OBJECT( CBFlip ),"toggled",GTK_SIGNAL_FUNC( on_CBFlip_toggled ),NULL );
|
|
1354 gtk_signal_connect( GTK_OBJECT( CBPostprocess ),"toggled",GTK_SIGNAL_FUNC( on_CBPostprocess_toggled ),NULL );
|
|
1355 gtk_signal_connect( GTK_OBJECT( CBNoAutoSub ),"toggled",GTK_SIGNAL_FUNC( on_CBNoAutoSub_toggled ),NULL );
|
|
1356 gtk_signal_connect( GTK_OBJECT( CBSubUnicode ),"toggled",GTK_SIGNAL_FUNC( on_CNSubUnicode_toggled ),NULL );
|
|
1357 gtk_signal_connect( GTK_OBJECT( CBDumpMPSub ),"toggled",GTK_SIGNAL_FUNC( on_CBDumpMPSub_toggled ),NULL );
|
|
1358 gtk_signal_connect( GTK_OBJECT( CBDumpSrt ),"toggled",GTK_SIGNAL_FUNC( on_CBDumpSrt_toggled ),NULL );
|
|
1359 #endif
|
|
1360 #if 0
|
|
1361 gtk_signal_connect( GTK_OBJECT( RBOSDNone ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDNone_toggled ),NULL );
|
|
1362 gtk_signal_connect( GTK_OBJECT( RBOSDTandP ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDTandP_toggled ),NULL );
|
|
1363 gtk_signal_connect( GTK_OBJECT( RBOSDIndicator ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDIndicator_toggled ),NULL );
|
|
1364 gtk_signal_connect( GTK_OBJECT( RBOSDTPTT ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDIndicator_toggled ),NULL );
|
|
1365 gtk_signal_connect( GTK_OBJECT( CBAudioEqualizer ),"toggled",GTK_SIGNAL_FUNC( on_CBAudioEqualizer_toggled ),NULL );
|
|
1366 #endif
|
|
1367 #if 0
|
|
1368 gtk_signal_connect( GTK_OBJECT( HSAudioDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSAudioDelay_motion_notify_event ),NULL );
|
|
1369 gtk_signal_connect( GTK_OBJECT( HSPanscan ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSPanscan_motion_notify_event ),NULL );
|
|
1370 gtk_signal_connect( GTK_OBJECT( label2 ),"motion_notify_event",GTK_SIGNAL_FUNC( on_label2_motion_notify_event ),NULL );
|
|
1371 gtk_signal_connect( GTK_OBJECT( HSSubDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSSubDelay_motion_notify_event ),NULL );
|
|
1372 gtk_signal_connect( GTK_OBJECT( HSSubPosition ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSSubPosition_motion_notify_event ),NULL );
|
|
1373 gtk_signal_connect( GTK_OBJECT( HSSubFPS ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSSubFPS_motion_notify_event ),NULL );
|
|
1374 gtk_signal_connect( GTK_OBJECT( HSFontFactor ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSFontFactor_motion_notify_event ),NULL );
|
|
1375 gtk_signal_connect( GTK_OBJECT( HSPPQuality ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSPPQuality_motion_notify_event ),NULL );
|
|
1376 #endif
|
|
1377
|
|
1378 gtk_notebook_set_page( GTK_NOTEBOOK( notebook1 ),2 );
|
|
1379
|
|
1380 gtk_window_add_accel_group( GTK_WINDOW( Preferences ),accel_group );
|
|
1381
|
|
1382 return Preferences;
|
|
1383 }
|
|
1384
|
|
1385 #ifdef CONFIG_OSS_AUDIO
|
|
1386 static GList *appendOSSDevices(GList *l)
|
|
1387 {
|
|
1388 // careful! the current implementation allows only string constants!
|
|
1389 l = g_list_append(l, (gpointer)"/dev/dsp");
|
|
1390 if (gtkAOOSSDevice && strncmp(gtkAOOSSDevice, "/dev/sound", 10) == 0) {
|
|
1391 l = g_list_append(l, (gpointer)"/dev/sound/dsp0");
|
|
1392 l = g_list_append(l, (gpointer)"/dev/sound/dsp1");
|
|
1393 l = g_list_append(l, (gpointer)"/dev/sound/dsp2");
|
|
1394 l = g_list_append(l, (gpointer)"/dev/sound/dsp3");
|
|
1395 } else {
|
|
1396 l = g_list_append(l, (gpointer)"/dev/dsp0");
|
|
1397 l = g_list_append(l, (gpointer)"/dev/dsp1");
|
|
1398 l = g_list_append(l, (gpointer)"/dev/dsp2");
|
|
1399 l = g_list_append(l, (gpointer)"/dev/dsp3");
|
|
1400 }
|
|
1401 #ifdef CONFIG_DXR3
|
|
1402 l = g_list_append(l, (gpointer)"/dev/em8300_ma");
|
|
1403 l = g_list_append(l, (gpointer)"/dev/em8300_ma-0");
|
|
1404 l = g_list_append(l, (gpointer)"/dev/em8300_ma-1");
|
|
1405 l = g_list_append(l, (gpointer)"/dev/em8300_ma-2");
|
|
1406 l = g_list_append(l, (gpointer)"/dev/em8300_ma-3");
|
|
1407 #endif
|
|
1408 return l;
|
|
1409 }
|
|
1410
|
|
1411 static GList *appendOSSMixers(GList *l)
|
|
1412 {
|
|
1413 // careful! the current implementation allows only string constants!
|
|
1414 l = g_list_append(l, (gpointer)"/dev/mixer");
|
|
1415 if (gtkAOOSSMixer && strncmp(gtkAOOSSMixer, "/dev/sound", 10) == 0) {
|
|
1416 l = g_list_append(l, (gpointer)"/dev/sound/mixer0");
|
|
1417 l = g_list_append(l, (gpointer)"/dev/sound/mixer1");
|
|
1418 l = g_list_append(l, (gpointer)"/dev/sound/mixer2");
|
|
1419 l = g_list_append(l, (gpointer)"/dev/sound/mixer3");
|
|
1420 } else {
|
|
1421 l = g_list_append(l, (gpointer)"/dev/mixer0");
|
|
1422 l = g_list_append(l, (gpointer)"/dev/mixer1");
|
|
1423 l = g_list_append(l, (gpointer)"/dev/mixer2");
|
|
1424 l = g_list_append(l, (gpointer)"/dev/mixer3");
|
|
1425 }
|
|
1426 return l;
|
|
1427 }
|
|
1428
|
|
1429 static GList *appendOSSMixerChannels(GList *l)
|
|
1430 {
|
|
1431 l = g_list_append(l, (gpointer)"vol");
|
|
1432 l = g_list_append(l, (gpointer)"pcm");
|
|
1433 l = g_list_append(l, (gpointer)"line");
|
|
1434 return l;
|
|
1435 }
|
|
1436 #endif
|
|
1437
|
|
1438 #ifdef CONFIG_ALSA
|
|
1439 static GList *appendALSADevices(GList *l)
|
|
1440 {
|
|
1441 l = g_list_append(l, (gpointer)"default");
|
|
1442 l = g_list_append(l, (gpointer)"hw=0.0");
|
|
1443 l = g_list_append(l, (gpointer)"hw=0.1");
|
|
1444 l = g_list_append(l, (gpointer)"hw=0.2");
|
|
1445 l = g_list_append(l, (gpointer)"surround40");
|
|
1446 l = g_list_append(l, (gpointer)"surround51");
|
|
1447 l = g_list_append(l, (gpointer)"plug=surround40");
|
|
1448 l = g_list_append(l, (gpointer)"plug=surround51");
|
|
1449 return l;
|
|
1450 }
|
|
1451
|
|
1452 static GList *appendALSAMixers(GList *l)
|
|
1453 {
|
|
1454 l = g_list_append(l, (gpointer)"default");
|
|
1455 return l;
|
|
1456 }
|
|
1457
|
|
1458 static GList *appendALSAMixerChannels(GList *l)
|
|
1459 {
|
|
1460 l = g_list_append(l, (gpointer)"Master");
|
|
1461 l = g_list_append(l, (gpointer)"Line");
|
|
1462 l = g_list_append(l, (gpointer)"PCM");
|
|
1463 l = g_list_append(l, (gpointer)"PCM,1");
|
|
1464 return l;
|
|
1465 }
|
|
1466 #endif
|
|
1467
|
|
1468 #ifdef CONFIG_SDL
|
|
1469 static GList *appendSDLDevices(GList *l)
|
|
1470 {
|
|
1471 l = g_list_append(l, (gpointer)"alsa");
|
|
1472 l = g_list_append(l, (gpointer)"arts");
|
|
1473 l = g_list_append(l, (gpointer)"esd");
|
|
1474 l = g_list_append(l, (gpointer)"jack");
|
|
1475 l = g_list_append(l, (gpointer)"oss");
|
|
1476 l = g_list_append(l, (gpointer)"nas");
|
|
1477 return l;
|
|
1478 }
|
|
1479 #endif
|
|
1480
|
|
1481 #ifdef CONFIG_ESD
|
|
1482 static GList *appendESDDevices(GList *l)
|
|
1483 {
|
|
1484 l = g_list_append(l, (gpointer)"Enter Remote IP");
|
|
1485 l = g_list_append(l, (gpointer)"Use Software Mixer");
|
|
1486 return l;
|
|
1487 }
|
|
1488 #endif
|
|
1489
|
|
1490 // Gets text string from a gtk entry, interpreting
|
|
1491 // MSGTR_PREFERENCES_DriverDefault as null string.
|
|
1492 static const char *getGtkEntryText(GtkWidget *from)
|
|
1493 {
|
|
1494 const char *tmp = gtk_entry_get_text(GTK_ENTRY(from));
|
|
1495 if (strcmp(tmp, MSGTR_PREFERENCES_DriverDefault) == 0) {
|
|
1496 tmp = NULL;
|
|
1497 }
|
|
1498 return tmp;
|
|
1499 }
|
|
1500
|
|
1501 // Sets text string of a gtk entry, interpreting
|
|
1502 // null string as MSGTR_PREFERENCES_DriverDefault.
|
|
1503 static void setGtkEntryText(GtkWidget *dest, char *to)
|
|
1504 {
|
|
1505 if (!to) {
|
|
1506 to = MSGTR_PREFERENCES_DriverDefault;
|
|
1507 }
|
|
1508 gtk_entry_set_text(GTK_ENTRY(dest),to);
|
|
1509 }
|
|
1510
|
|
1511 GtkWidget *AudioConfig;
|
|
1512 static GtkWidget *CEAudioDevice;
|
|
1513 static GtkWidget *CBAudioDevice;
|
|
1514 static GtkWidget *CEAudioMixer;
|
|
1515 static GtkWidget *CBAudioMixer;
|
|
1516 static GtkWidget *CEAudioMixerChannel;
|
|
1517 static GtkWidget *CBAudioMixerChannel;
|
|
1518 static GtkWidget *BAudioOk;
|
|
1519 static GtkWidget *BAudioCancel;
|
|
1520
|
|
1521 void ShowAudioConfig( void ) {
|
|
1522 if (AudioConfig) gtkActive(AudioConfig);
|
|
1523 else AudioConfig = create_AudioConfig();
|
|
1524
|
|
1525 #ifdef CONFIG_OSS_AUDIO
|
|
1526 if (strncmp(ao_driver[0], "oss", 3) == 0) {
|
|
1527 setGtkEntryText(CEAudioDevice, gtkAOOSSDevice);
|
|
1528 setGtkEntryText(CEAudioMixer, gtkAOOSSMixer);
|
|
1529 setGtkEntryText(CEAudioMixerChannel, gtkAOOSSMixerChannel);
|
|
1530 }
|
|
1531 #endif
|
|
1532 #ifdef CONFIG_ALSA
|
|
1533 if (strncmp(ao_driver[0], "alsa", 4) == 0) {
|
|
1534 setGtkEntryText(CEAudioDevice, gtkAOALSADevice);
|
|
1535 setGtkEntryText(CEAudioMixer, gtkAOALSAMixer);
|
|
1536 setGtkEntryText(CEAudioMixerChannel, gtkAOALSAMixerChannel);
|
|
1537 }
|
|
1538 #endif
|
|
1539 #ifdef CONFIG_SDL
|
|
1540 if (strncmp(ao_driver[0], "sdl", 3) == 0) {
|
|
1541 setGtkEntryText(CEAudioDevice, gtkAOSDLDriver);
|
|
1542 }
|
|
1543 #endif
|
|
1544 #ifdef CONFIG_ESD
|
|
1545 if (strncmp(ao_driver[0], "esd", 3) == 0) {
|
|
1546 setGtkEntryText(CEAudioDevice, gtkAOESDDevice);
|
|
1547 }
|
|
1548 #endif
|
|
1549
|
|
1550 gtk_widget_show(AudioConfig);
|
|
1551 gtkSetLayer(AudioConfig);
|
|
1552 }
|
|
1553
|
|
1554 void HideAudioConfig( void ) {
|
|
1555 if (!AudioConfig) return;
|
|
1556 gtk_widget_hide(AudioConfig);
|
|
1557 gtk_widget_destroy(AudioConfig);
|
|
1558 AudioConfig=NULL;
|
|
1559 }
|
|
1560
|
|
1561 static void audioButton(GtkButton *button, gpointer user_data) {
|
|
1562 switch( (int)user_data ) {
|
|
1563 case 1:
|
|
1564 #ifdef CONFIG_OSS_AUDIO
|
|
1565 if (strncmp(ao_driver[0], "oss", 3) == 0) {
|
|
1566 gfree((void **) >kAOOSSDevice);
|
|
1567 gtkAOOSSDevice = gstrdup(getGtkEntryText(CEAudioDevice));
|
|
1568 gfree((void **) >kAOOSSMixer);
|
|
1569 gtkAOOSSMixer = gstrdup(getGtkEntryText(CEAudioMixer));
|
|
1570 gfree((void **) >kAOOSSMixerChannel);
|
|
1571 gtkAOOSSMixerChannel = gstrdup(getGtkEntryText(CEAudioMixerChannel));
|
|
1572 }
|
|
1573 #endif
|
|
1574 #ifdef CONFIG_ALSA
|
|
1575 if (strncmp(ao_driver[0], "alsa", 4) == 0) {
|
|
1576 gfree((void **) >kAOALSADevice);
|
|
1577 gtkAOALSADevice = gstrdup(getGtkEntryText(CEAudioDevice));
|
|
1578 gfree((void **) >kAOALSAMixer);
|
|
1579 gtkAOALSAMixer = gstrdup(getGtkEntryText(CEAudioMixer));
|
|
1580 gfree((void **) >kAOALSAMixerChannel);
|
|
1581 gtkAOALSAMixerChannel = gstrdup(getGtkEntryText(CEAudioMixerChannel));
|
|
1582 }
|
|
1583 #endif
|
|
1584 #ifdef CONFIG_SDL
|
|
1585 if (strncmp(ao_driver[0], "sdl", 3) == 0) {
|
|
1586 gfree((void **) >kAOSDLDriver);
|
|
1587 gtkAOSDLDriver = gstrdup(getGtkEntryText(CEAudioDevice));
|
|
1588 }
|
|
1589 #endif
|
|
1590 #ifdef CONFIG_ESD
|
|
1591 if (strncmp(ao_driver[0], "esd", 3) == 0) {
|
|
1592 gfree((void **) >kAOESDDevice);
|
|
1593 gtkAOESDDevice = gstrdup(getGtkEntryText(CEAudioDevice));
|
|
1594 }
|
|
1595 #endif
|
|
1596 case 0:
|
|
1597 HideAudioConfig();
|
|
1598 break;
|
|
1599 }
|
|
1600 }
|
|
1601
|
|
1602 GtkWidget *create_AudioConfig( void ) {
|
|
1603 GList *items = NULL;
|
|
1604 GtkWidget *vbox;
|
|
1605 GtkWidget *table;
|
|
1606 GtkWidget *label;
|
|
1607 GtkWidget *hbuttonbox;
|
|
1608 GtkAccelGroup *accel_group;
|
|
1609
|
|
1610 AudioConfig = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
|
1611 gtk_widget_set_name(AudioConfig, "AudioConfig");
|
|
1612 gtk_object_set_data(GTK_OBJECT(AudioConfig), "AudioConfig", AudioConfig);
|
|
1613 gtk_window_set_title(GTK_WINDOW(AudioConfig), MSGTR_AudioPreferences);
|
|
1614 gtk_window_set_position(GTK_WINDOW(AudioConfig), GTK_WIN_POS_CENTER);
|
|
1615 gtk_window_set_policy(GTK_WINDOW(AudioConfig), FALSE, FALSE, FALSE);
|
|
1616 gtk_window_set_wmclass(GTK_WINDOW(AudioConfig), "Audio Config", "MPlayer");
|
|
1617
|
|
1618 gtk_widget_realize(AudioConfig);
|
|
1619 gtkAddIcon(AudioConfig);
|
|
1620
|
|
1621 vbox = AddVBox(AddDialogFrame(AudioConfig), 0);
|
|
1622
|
|
1623 table = gtk_table_new(2, 3, FALSE);
|
|
1624 gtk_widget_set_name(table, "table");
|
|
1625 gtk_widget_show(table);
|
|
1626 gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0);
|
|
1627
|
|
1628 label = AddLabel(MSGTR_PREFERENCES_Audio_Device, NULL);
|
|
1629 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0);
|
|
1630
|
|
1631 CBAudioDevice = AddComboBox(NULL);
|
|
1632 gtk_table_attach(GTK_TABLE(table), CBAudioDevice, 1, 2, 0, 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0);
|
|
1633 items = g_list_append(items,(gpointer)MSGTR_PREFERENCES_DriverDefault);
|
|
1634 #ifdef CONFIG_OSS_AUDIO
|
|
1635 if (strncmp(ao_driver[0], "oss", 3) == 0)
|
|
1636 items = appendOSSDevices(items);
|
|
1637 #endif
|
|
1638 #ifdef CONFIG_ALSA
|
|
1639 if (strncmp(ao_driver[0], "alsa", 4) == 0)
|
|
1640 items = appendALSADevices(items);
|
|
1641 #endif
|
|
1642 #ifdef CONFIG_SDL
|
|
1643 if (strncmp(ao_driver[0], "sdl", 3) == 0)
|
|
1644 items = appendSDLDevices(items);
|
|
1645 #endif
|
|
1646 #ifdef CONFIG_ESD
|
|
1647 if (strncmp(ao_driver[0], "esd", 3) == 0)
|
|
1648 items = appendESDDevices(items);
|
|
1649 #endif
|
|
1650 gtk_combo_set_popdown_strings(GTK_COMBO(CBAudioDevice), items);
|
|
1651 g_list_free(items);
|
|
1652 items = NULL;
|
|
1653
|
|
1654 CEAudioDevice = GTK_COMBO(CBAudioDevice)->entry;
|
|
1655 gtk_widget_set_name(CEAudioDevice, "CEAudioDevice");
|
|
1656 gtk_widget_show(CEAudioDevice);
|
|
1657
|
|
1658 label = AddLabel(MSGTR_PREFERENCES_Audio_Mixer, NULL);
|
|
1659 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0);
|
|
1660
|
|
1661 CBAudioMixer = AddComboBox(NULL);
|
|
1662 gtk_table_attach(GTK_TABLE(table), CBAudioMixer, 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0);
|
|
1663 items = g_list_append(items, (gpointer)MSGTR_PREFERENCES_DriverDefault);
|
|
1664 #ifdef CONFIG_OSS_AUDIO
|
|
1665 if (strncmp(ao_driver[0], "oss", 3) == 0)
|
|
1666 items = appendOSSMixers(items);
|
|
1667 #endif
|
|
1668 #ifdef CONFIG_ALSA
|
|
1669 if (strncmp(ao_driver[0], "alsa", 4) == 0)
|
|
1670 items = appendALSAMixers(items);
|
|
1671 #endif
|
|
1672 gtk_combo_set_popdown_strings(GTK_COMBO(CBAudioMixer), items);
|
|
1673 g_list_free(items);
|
|
1674 items = NULL;
|
|
1675
|
|
1676 CEAudioMixer = GTK_COMBO(CBAudioMixer)->entry;
|
|
1677 gtk_widget_set_name(CEAudioMixer, "CEAudioMixer");
|
|
1678 gtk_widget_show(CEAudioMixer);
|
|
1679
|
|
1680 label = AddLabel(MSGTR_PREFERENCES_Audio_MixerChannel, NULL);
|
|
1681 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0);
|
|
1682
|
|
1683 CBAudioMixerChannel = AddComboBox(NULL);
|
|
1684 gtk_table_attach(GTK_TABLE(table), CBAudioMixerChannel, 1, 2, 2, 3, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0);
|
|
1685 items = g_list_append(items, (gpointer)MSGTR_PREFERENCES_DriverDefault);
|
|
1686 #ifdef CONFIG_OSS_AUDIO
|
|
1687 if (strncmp(ao_driver[0], "oss", 3) == 0)
|
|
1688 items = appendOSSMixerChannels(items);
|
|
1689 #endif
|
|
1690 #ifdef CONFIG_ALSA
|
|
1691 if (strncmp(ao_driver[0], "alsa", 4) == 0)
|
|
1692 items = appendALSAMixerChannels(items);
|
|
1693 #endif
|
|
1694 gtk_combo_set_popdown_strings(GTK_COMBO(CBAudioMixerChannel), items);
|
|
1695 g_list_free(items);
|
|
1696 items = NULL;
|
|
1697
|
|
1698 CEAudioMixerChannel = GTK_COMBO(CBAudioMixerChannel)->entry;
|
|
1699 gtk_widget_set_name(CEAudioMixerChannel, "CEAudioMixerChannel");
|
|
1700 gtk_widget_show(CEAudioMixerChannel);
|
|
1701
|
|
1702 AddHSeparator(vbox);
|
|
1703
|
|
1704 hbuttonbox = AddHButtonBox(vbox);
|
|
1705 gtk_button_box_set_layout(GTK_BUTTON_BOX(hbuttonbox), GTK_BUTTONBOX_END);
|
|
1706 gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbuttonbox), 10);
|
|
1707 BAudioOk = AddButton(MSGTR_Ok, hbuttonbox);
|
|
1708 BAudioCancel = AddButton(MSGTR_Cancel, hbuttonbox);
|
|
1709
|
|
1710 gtk_signal_connect(GTK_OBJECT(AudioConfig), "destroy", GTK_SIGNAL_FUNC(WidgetDestroy), &AudioConfig);
|
|
1711 gtk_signal_connect(GTK_OBJECT(BAudioOk), "clicked", GTK_SIGNAL_FUNC(audioButton), (void*)1);
|
|
1712 gtk_signal_connect(GTK_OBJECT(BAudioCancel), "clicked", GTK_SIGNAL_FUNC(audioButton), (void*)0);
|
|
1713
|
|
1714 accel_group = gtk_accel_group_new();
|
|
1715 gtk_widget_add_accelerator(BAudioOk, "clicked", accel_group, GDK_Return, 0, GTK_ACCEL_VISIBLE);
|
|
1716 gtk_widget_add_accelerator(BAudioCancel, "clicked", accel_group, GDK_Escape, 0, GTK_ACCEL_VISIBLE);
|
|
1717 gtk_window_add_accel_group(GTK_WINDOW(AudioConfig), accel_group);
|
|
1718
|
|
1719 return AudioConfig;
|
|
1720 }
|
|
1721
|
|
1722 #ifdef CONFIG_DXR3
|
|
1723 // --- dxr3 config box
|
|
1724
|
|
1725 static GtkWidget * DXR3Config;
|
|
1726 static GtkWidget * CBDevice;
|
|
1727 static GtkWidget * CEDXR3Device;
|
|
1728 static GtkWidget * RBVNone;
|
|
1729 static GtkWidget * RBVLavc;
|
|
1730 static GtkWidget * dxr3BOk;
|
|
1731 static GtkWidget * dxr3BCancel;
|
|
1732
|
|
1733 GtkWidget * create_DXR3Config( void );
|
|
1734
|
|
1735 void ShowDXR3Config( void )
|
|
1736 {
|
|
1737 if ( DXR3Config ) gtkActive( DXR3Config );
|
|
1738 else DXR3Config=create_DXR3Config();
|
|
1739
|
|
1740 gtk_entry_set_text( GTK_ENTRY( CEDXR3Device ),gtkDXR3Device );
|
|
1741
|
|
1742 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBVNone ),TRUE );
|
|
1743 if ( gtkVfLAVC ) gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBVLavc ),TRUE );
|
|
1744
|
|
1745 gtk_widget_show( DXR3Config );
|
|
1746 gtkSetLayer( DXR3Config );
|
|
1747 }
|
|
1748
|
|
1749 void HideDXR3Config( void )
|
|
1750 {
|
|
1751 if ( !DXR3Config ) return;
|
|
1752 gtk_widget_hide( DXR3Config );
|
|
1753 gtk_widget_destroy( DXR3Config );
|
|
1754 DXR3Config=NULL;
|
|
1755 }
|
|
1756
|
|
1757 static void dxr3Button( GtkButton * button,gpointer user_data )
|
|
1758 {
|
|
1759 switch ( (int)user_data )
|
|
1760 {
|
|
1761 case 0: // Ok
|
|
1762 gfree( (void **)>kDXR3Device ); gtkDXR3Device=strdup( gtk_entry_get_text( GTK_ENTRY( CEDXR3Device ) ) );
|
|
1763 gtkVfLAVC=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBVLavc ) );
|
|
1764 case 1: // Cancel
|
|
1765 HideDXR3Config();
|
|
1766 break;
|
|
1767 }
|
|
1768 }
|
|
1769
|
|
1770 GtkWidget * create_DXR3Config( void )
|
|
1771 {
|
|
1772 GtkWidget * vbox1;
|
|
1773 GtkWidget * vbox2;
|
|
1774 GtkWidget * hbox1;
|
|
1775 GList * CBDevice_items = NULL;
|
|
1776 GtkWidget * vbox3;
|
|
1777 GSList * VEncoder_group = NULL;
|
|
1778 GtkWidget * hbuttonbox1;
|
|
1779 GtkAccelGroup * accel_group;
|
|
1780
|
|
1781 accel_group=gtk_accel_group_new();
|
|
1782
|
|
1783 DXR3Config=gtk_window_new( GTK_WINDOW_TOPLEVEL );
|
|
1784 gtk_widget_set_name( DXR3Config,"DXR3Config" );
|
|
1785 gtk_object_set_data( GTK_OBJECT( DXR3Config ),"DXR3Config",DXR3Config );
|
|
1786 // gtk_widget_set_usize( DXR3Config,300,156 );
|
|
1787 GTK_WIDGET_SET_FLAGS( DXR3Config,GTK_CAN_DEFAULT );
|
|
1788 gtk_window_set_title( GTK_WINDOW( DXR3Config ),"DXR3/H+" );
|
|
1789 gtk_window_set_position( GTK_WINDOW( DXR3Config ),GTK_WIN_POS_CENTER );
|
|
1790 gtk_window_set_policy( GTK_WINDOW( DXR3Config ),FALSE,FALSE,FALSE );
|
|
1791 gtk_window_set_wmclass( GTK_WINDOW( DXR3Config ),"DXR3","MPlayer" );
|
|
1792
|
|
1793 gtk_widget_realize( DXR3Config );
|
|
1794 gtkAddIcon( DXR3Config );
|
|
1795
|
|
1796 vbox1=AddVBox( AddDialogFrame( DXR3Config ),0 );
|
|
1797 vbox2=AddVBox( vbox1,0 );
|
|
1798 hbox1=AddHBox( vbox2,1 );
|
|
1799 AddLabel( MSGTR_PREFERENCES_Audio_Device,hbox1 );
|
|
1800
|
|
1801 CBDevice=AddComboBox( hbox1 );
|
|
1802
|
|
1803 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300" );
|
|
1804 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-0" );
|
|
1805 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-1" );
|
|
1806 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-2" );
|
|
1807 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-3" );
|
|
1808 gtk_combo_set_popdown_strings( GTK_COMBO( CBDevice ),CBDevice_items );
|
|
1809 g_list_free( CBDevice_items );
|
|
1810
|
|
1811 CEDXR3Device=GTK_COMBO( CBDevice )->entry;
|
|
1812 gtk_widget_set_name( CEDXR3Device,"CEDXR3Device" );
|
|
1813 gtk_widget_show( CEDXR3Device );
|
|
1814 gtk_entry_set_text( GTK_ENTRY( CEDXR3Device ),"/dev/em8300" );
|
|
1815
|
|
1816 AddHSeparator( vbox2 );
|
|
1817 vbox3=AddVBox( vbox2,0 );
|
|
1818 AddLabel( MSGTR_PREFERENCES_DXR3_VENC,vbox3 );
|
|
1819 RBVNone=AddRadioButton( MSGTR_PREFERENCES_None,&VEncoder_group,vbox3 );
|
|
1820 RBVLavc=AddRadioButton( MSGTR_PREFERENCES_DXR3_LAVC,&VEncoder_group,vbox3 );
|
|
1821
|
|
1822 AddHSeparator( vbox1 );
|
|
1823
|
|
1824 hbuttonbox1=AddHButtonBox( vbox1 );
|
|
1825 gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END );
|
|
1826 gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 );
|
|
1827 dxr3BOk=AddButton( MSGTR_Ok,hbuttonbox1 );
|
|
1828 dxr3BCancel=AddButton( MSGTR_Cancel,hbuttonbox1 );
|
|
1829
|
|
1830 gtk_widget_add_accelerator( dxr3BOk,"clicked",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE );
|
|
1831 gtk_widget_add_accelerator( dxr3BCancel,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE );
|
|
1832
|
|
1833 gtk_signal_connect( GTK_OBJECT( DXR3Config ),"destroy",GTK_SIGNAL_FUNC( WidgetDestroy ),&DXR3Config );
|
|
1834
|
|
1835 gtk_signal_connect( GTK_OBJECT( dxr3BOk ),"clicked",GTK_SIGNAL_FUNC( dxr3Button ),(void *)0 );
|
|
1836 gtk_signal_connect( GTK_OBJECT( dxr3BCancel ),"clicked",GTK_SIGNAL_FUNC( dxr3Button ),(void *)1 );
|
|
1837
|
|
1838 gtk_window_add_accel_group( GTK_WINDOW( DXR3Config ),accel_group );
|
|
1839
|
|
1840 return DXR3Config;
|
|
1841 }
|
|
1842
|
|
1843 #endif
|