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