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