Mercurial > mplayer.hg
annotate Gui/mplayer/gtk/opts.c @ 8276:f9c18cda60b2
fix(?) cache
author | pontscho |
---|---|
date | Mon, 25 Nov 2002 16:22:58 +0000 |
parents | 6892658f9125 |
children | f7d0ac887455 |
rev | line source |
---|---|
2901 | 1 |
6794 | 2 #include <sys/types.h> |
3 #include <sys/stat.h> | |
4 #include <unistd.h> | |
5 #include <string.h> | |
2901 | 6 |
6794 | 7 #include <gdk/gdkkeysyms.h> |
8 #include <gtk/gtk.h> | |
9 | |
2901 | 10 #include "../../../config.h" |
11 #include "../../../help_mp.h" | |
6794 | 12 #include "../../../mixer.h" |
13 #include "../../../libao2/audio_out.h" | |
14 #include "../../../libvo/video_out.h" | |
7186 | 15 |
6794 | 16 #include "../../cfg.h" |
17 #include "../../interface.h" | |
2901 | 18 #include "../widgets.h" |
19 #include "opts.h" | |
6794 | 20 #include "fs.h" |
8173 | 21 #include "common.h" |
2901 | 22 |
7186 | 23 typedef struct sh_video_t sh_video_t; |
24 typedef struct sh_audio_t sh_audio_t; | |
25 | |
7473
bd7a539178a3
compilation fix, patch by Sidik Isani <lksi@cfht.hawaii.edu>
arpi
parents:
7415
diff
changeset
|
26 // for mpcodecs_[av]d_drivers: |
7186 | 27 #include "../../../libmpcodecs/vd.h" |
28 #include "../../../libmpcodecs/ad.h" | |
29 | |
6794 | 30 GtkWidget * Preferences; |
31 static GtkWidget * AConfig; | |
32 static GtkWidget * VConfig; | |
33 //static GtkWidget * BLoadSubtitle; | |
34 static GtkWidget * BLoadFont; | |
35 static GtkWidget * BOk; | |
36 static GtkWidget * BCancel; | |
37 | |
38 static GtkWidget * CLADrivers; | |
39 static GtkWidget * CLVDrivers; | |
40 | |
41 //static GtkWidget * ESubtitleName; | |
42 GtkWidget * prEFontName; | |
43 static GtkWidget * EVFM; | |
7186 | 44 static GtkWidget * EAFM; |
6794 | 45 |
46 static GtkWidget * CBVFM; | |
7186 | 47 static GtkWidget * CBAFM; |
6794 | 48 static GtkWidget * CBAudioEqualizer; |
49 //static GtkWidget * CBSurround; | |
50 static GtkWidget * CBExtraStereo; | |
51 static GtkWidget * CBNoSound; | |
52 static GtkWidget * CBNormalize; | |
53 static GtkWidget * CBDoubleBuffer; | |
54 static GtkWidget * CBDR; | |
55 static GtkWidget * CBFramedrop; | |
56 static GtkWidget * CBHFramedrop; | |
57 //static GtkWidget * CBFullScreen; | |
58 static GtkWidget * CBNonInterlaved; | |
59 static GtkWidget * CBIndex; | |
60 static GtkWidget * CBFlip; | |
61 static GtkWidget * CBNoAutoSub; | |
62 static GtkWidget * CBSubUnicode; | |
63 static GtkWidget * CBDumpMPSub; | |
64 static GtkWidget * CBDumpSrt; | |
65 static GtkWidget * CBPostprocess; | |
7526 | 66 static GtkWidget * CBCache; |
7538 | 67 static GtkWidget * CBLoadFullscreen; |
7526 | 68 |
69 static GtkWidget * SBCache; | |
70 static GtkAdjustment * SBCacheadj; | |
6794 | 71 |
72 static GtkWidget * RBOSDNone; | |
73 static GtkWidget * RBOSDTandP; | |
74 static GtkWidget * RBOSDIndicator; | |
75 | |
76 static GtkWidget * HSAudioDelay; | |
77 static GtkWidget * HSExtraStereoMul; | |
78 static GtkWidget * HSPanscan; | |
79 static GtkWidget * HSSubDelay; | |
80 static GtkWidget * HSSubPosition; | |
81 static GtkWidget * HSSubFPS; | |
82 static GtkWidget * HSPPQuality; | |
83 | |
84 static GtkAdjustment * HSExtraStereoMuladj, * HSAudioDelayadj, * HSPanscanadj, * HSSubDelayadj; | |
7139 | 85 static GtkAdjustment * HSSubPositionadj, * HSSubFPSadj, * HSPPQualityadj; |
86 | |
87 #ifndef HAVE_FREETYPE | |
88 static GtkWidget * HSFontFactor; | |
89 static GtkAdjustment * HSFontFactoradj; | |
90 #else | |
91 static GtkWidget * HSFontBlur, * HSFontOutLine, * HSFontTextScale, * HSFontOSDScale; | |
92 static GtkAdjustment * HSFontBluradj, * HSFontOutLineadj, * HSFontTextScaleadj, * HSFontOSDScaleadj; | |
93 static GtkWidget * CBFontEncoding, * EFontEncoding; | |
94 static GtkWidget * RBFontNoAutoScale, * BRFontAutoScaleWidth, * RBFontAutoScaleHeight, * RBFontAutoScaleDiagonal; | |
95 //static GtkWidget * AutoScale; | |
96 #endif | |
6794 | 97 |
7139 | 98 #ifdef HAVE_FREETYPE |
99 static struct | |
100 { | |
101 char * name; | |
102 char * comment; | |
103 } lEncoding[] = | |
104 { | |
105 { "unicode", MSGTR_PREFERENCES_FontEncoding1 }, | |
106 { "iso-8859-1", MSGTR_PREFERENCES_FontEncoding2 }, | |
107 { "iso-8859-15", MSGTR_PREFERENCES_FontEncoding3 }, | |
108 { "iso-8859-2", MSGTR_PREFERENCES_FontEncoding4 }, | |
109 { "iso-8859-3", MSGTR_PREFERENCES_FontEncoding5 }, | |
110 { "iso-8859-4", MSGTR_PREFERENCES_FontEncoding6 }, | |
111 { "iso-8859-5", MSGTR_PREFERENCES_FontEncoding7 }, | |
7415 | 112 { "cp1251", MSGTR_PREFERENCES_FontEncoding21}, |
7139 | 113 { "iso-8859-6", MSGTR_PREFERENCES_FontEncoding8 }, |
114 { "iso-8859-7", MSGTR_PREFERENCES_FontEncoding9 }, | |
115 { "iso-8859-9", MSGTR_PREFERENCES_FontEncoding10 }, | |
116 { "iso-8859-13", MSGTR_PREFERENCES_FontEncoding11 }, | |
117 { "iso-8859-14", MSGTR_PREFERENCES_FontEncoding12 }, | |
118 { "iso-8859-8", MSGTR_PREFERENCES_FontEncoding13 }, | |
119 { "koi8-r", MSGTR_PREFERENCES_FontEncoding14 }, | |
120 { "koi8-u/ru", MSGTR_PREFERENCES_FontEncoding15 }, | |
121 { "cp936", MSGTR_PREFERENCES_FontEncoding16 }, | |
122 { "big5", MSGTR_PREFERENCES_FontEncoding17 }, | |
123 { "shift-jis", MSGTR_PREFERENCES_FontEncoding18 }, | |
124 { "cp949", MSGTR_PREFERENCES_FontEncoding19 }, | |
125 { "cp874", MSGTR_PREFERENCES_FontEncoding20 }, | |
126 { NULL,NULL } | |
127 }; | |
128 char * lCEncoding = NULL; | |
129 #endif | |
6794 | 130 |
131 int gtkVPreferences = 0; | |
132 static int old_audio_driver = 0; | |
6840 | 133 static char * ao_driver[3]; |
134 static char * vo_driver[3]; | |
6794 | 135 static int old_video_driver = 0; |
136 | |
7009 | 137 #ifdef USE_OSS_AUDIO |
138 void ShowOSSConfig( void ); | |
139 void HideOSSConfig( void ); | |
140 #endif | |
141 #ifdef HAVE_DXR3 | |
142 void ShowDXR3Config( void ); | |
143 void HideDXR3Config( void ); | |
144 #endif | |
6794 | 145 static gboolean prHScaler( GtkWidget * widget,GdkEventMotion * event,gpointer user_data ); |
146 static void prToggled( GtkToggleButton * togglebutton,gpointer user_data ); | |
147 static void prCListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data ); | |
7139 | 148 #ifdef HAVE_FREETYPE |
149 static void prEntry( GtkContainer * container,GtkWidget * widget,gpointer user_data ); | |
150 #endif | |
6794 | 151 |
152 extern int muted; | |
153 | |
154 void ShowPreferences( void ) | |
155 { | |
156 if ( gtkVPreferences ) gtkActive( Preferences ); | |
157 else Preferences=create_Preferences(); | |
2901 | 158 |
6794 | 159 // -- 1. page |
160 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBAudioEqualizer ),gtkEnableAudioEqualizer ); | |
161 gtkAONoSound=muted; | |
162 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNoSound ),gtkAONoSound ); | |
163 #if 0 | |
164 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSurround ),gtkAOSurround ); | |
165 #endif | |
166 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBExtraStereo ),gtkAOExtraStereo ); | |
167 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNormalize ),gtkAONorm ); | |
168 gtk_adjustment_set_value( HSExtraStereoMuladj,gtkAOExtraStereoMul ); | |
169 { | |
170 int i = 0; | |
6840 | 171 char * tmp[3]; tmp[2]=""; |
8181 | 172 old_audio_driver=-1; |
6794 | 173 while ( audio_out_drivers[i] ) |
174 { | |
175 const ao_info_t *info = audio_out_drivers[i++]->info; | |
176 if ( !strcmp( info->short_name,"plugin" ) ) continue; | |
7706 | 177 if ( audio_driver_list ) |
178 { | |
179 char * name = gstrdup( audio_driver_list[0] ); | |
180 char * sep = strchr( audio_driver_list[0],':' ); | |
181 if ( sep ) *sep=0; | |
182 if ( !gstrcmp( name,(char *)info->short_name ) ) old_audio_driver=i - 1; | |
183 } | |
6840 | 184 tmp[0]=(char *)info->short_name; tmp[1]=(char *)info->name; gtk_clist_append( GTK_CLIST( CLADrivers ),tmp ); |
6794 | 185 } |
8181 | 186 if ( old_audio_driver > -1 ) |
187 { | |
188 gtk_clist_select_row( GTK_CLIST( CLADrivers ),old_audio_driver,0 ); | |
189 gtk_clist_get_text( GTK_CLIST( CLADrivers ),old_audio_driver,0,(char **)&ao_driver ); | |
190 gtk_widget_set_sensitive( AConfig,FALSE ); | |
7009 | 191 #ifdef USE_OSS_AUDIO |
8181 | 192 if ( !strncmp( ao_driver[0],"oss",3 ) ) gtk_widget_set_sensitive( AConfig,TRUE ); |
7009 | 193 #endif |
8181 | 194 } |
6794 | 195 } |
2901 | 196 |
6794 | 197 // -- 2. page |
7019 | 198 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDoubleBuffer ),vo_doublebuffering ); |
199 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDR ),vo_directrendering ); | |
200 | |
201 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBFramedrop ),FALSE ); | |
202 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBHFramedrop ),FALSE ); | |
203 switch ( frame_dropping ) | |
204 { | |
205 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBHFramedrop ),TRUE ); | |
206 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBFramedrop ),TRUE ); | |
207 } | |
208 | |
7194 | 209 if (flip != -1) |
210 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBFlip ),flip ); | |
6794 | 211 gtk_adjustment_set_value( HSPanscanadj,vo_panscan ); |
7582 | 212 |
6794 | 213 { |
214 int i = 0, c = 0; | |
6840 | 215 char * tmp[3]; tmp[2]=""; |
6794 | 216 old_video_driver=0; |
217 while ( video_out_drivers[i] ) | |
218 if ( video_out_drivers[i++]->control( VOCTRL_GUISUPPORT,NULL ) == VO_TRUE ) | |
219 { | |
8151 | 220 if ( video_driver_list && !gstrcmp( video_driver_list[0],(char *)video_out_drivers[i - 1]->info->short_name ) ) old_video_driver=c; c++; |
8154 | 221 tmp[0]=(char *)video_out_drivers[i - 1]->info->short_name; tmp[1]=(char *)video_out_drivers[i - 1]->info->name; |
222 gtk_clist_append( GTK_CLIST( CLVDrivers ),tmp ); | |
6794 | 223 } |
224 gtk_clist_select_row( GTK_CLIST( CLVDrivers ),old_video_driver,0 ); | |
225 gtk_clist_get_text( GTK_CLIST( CLVDrivers ),old_video_driver,0,(char **)&vo_driver ); | |
226 gtk_widget_set_sensitive( VConfig,FALSE ); | |
7009 | 227 #ifdef HAVE_DXR3 |
228 if ( !gstrcmp( vo_driver[0],"dxr3" ) ) gtk_widget_set_sensitive( VConfig,TRUE ); | |
229 #endif | |
6794 | 230 } |
2901 | 231 |
6794 | 232 // -- 3. page |
7019 | 233 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNoAutoSub ),!sub_auto ); |
6794 | 234 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDumpMPSub ),gtkSubDumpMPSub ); |
235 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDumpSrt ),gtkSubDumpSrt ); | |
7019 | 236 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSubUnicode ),sub_unicode ); |
237 gtk_adjustment_set_value( HSSubDelayadj,sub_delay ); | |
238 gtk_adjustment_set_value( HSSubFPSadj,sub_fps ); | |
239 gtk_adjustment_set_value( HSSubPositionadj,sub_pos ); | |
6794 | 240 switch ( osd_level ) |
2901 | 241 { |
6794 | 242 case 0: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDNone ),TRUE ); break; |
243 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ),TRUE ); break; | |
244 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDTandP ),TRUE ); break; | |
2901 | 245 } |
6794 | 246 #if 0 |
247 if ( guiIntfStruct.Subtitlename ) gtk_entry_set_text( GTK_ENTRY( ESubtitleName ),guiIntfStruct.Subtitlename ); | |
248 #endif | |
7139 | 249 // font ... |
7019 | 250 if ( font_name ) gtk_entry_set_text( GTK_ENTRY( prEFontName ),font_name ); |
7139 | 251 #ifndef HAVE_FREETYPE |
252 gtk_adjustment_set_value( HSFontFactoradj,font_factor ); | |
253 #else | |
7526 | 254 gtk_adjustment_set_value( HSFontBluradj,( subtitle_font_radius / 8.0f ) * 100.0f ); |
255 gtk_adjustment_set_value( HSFontOutLineadj,( subtitle_font_thickness / 8.0f ) * 100.0f ); | |
7139 | 256 gtk_adjustment_set_value( HSFontTextScaleadj,text_font_scale_factor ); |
257 gtk_adjustment_set_value( HSFontOSDScaleadj,osd_font_scale_factor ); | |
258 if ( subtitle_font_encoding ) | |
259 { | |
260 int i; | |
261 for ( i=0;lEncoding[i].name;i++ ) | |
262 if ( !gstrcmp( subtitle_font_encoding,lEncoding[i].name ) ) break; | |
263 if ( lEncoding[i].name ) lCEncoding=lEncoding[i].comment; | |
264 gtk_entry_set_text( GTK_ENTRY( EFontEncoding ),lCEncoding ); | |
265 } | |
266 switch ( subtitle_autoscale ) | |
267 { | |
268 case 0: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontNoAutoScale ),TRUE ); break; | |
269 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( BRFontAutoScaleWidth ),TRUE ); break; | |
270 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleHeight ),TRUE ); break; | |
271 case 3: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleDiagonal ),TRUE ); break; | |
272 } | |
273 #endif | |
6794 | 274 |
275 // -- 4. page | |
7019 | 276 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ),force_ni ); |
277 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBIndex ),index_mode ); | |
7009 | 278 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPostprocess ),gtkVopPP ); |
7538 | 279 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ),gtkLoadFullscreen ); |
7019 | 280 gtk_adjustment_set_value( HSPPQualityadj,auto_quality ); |
6794 | 281 { |
7186 | 282 int i; |
283 GList * Items = NULL; | |
284 char * name = NULL; | |
285 | |
7203 | 286 Items=g_list_append( Items,MSGTR_PREFERENCES_None ); |
7186 | 287 for( i=0;mpcodecs_vd_drivers[i];i++ ) |
288 { | |
289 Items=g_list_append( Items,(char *)mpcodecs_vd_drivers[i]->info->name ); | |
7526 | 290 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; |
7186 | 291 } |
292 gtk_combo_set_popdown_strings( GTK_COMBO( CBVFM ),Items ); | |
293 g_list_free( Items ); | |
294 if ( name ) gtk_entry_set_text( GTK_ENTRY( EVFM ),name ); | |
295 } | |
7526 | 296 |
7186 | 297 { |
298 int i; | |
299 GList * Items = NULL; | |
300 char * name = NULL; | |
301 | |
7203 | 302 Items=g_list_append( Items,MSGTR_PREFERENCES_None ); |
7186 | 303 for( i=0;mpcodecs_ad_drivers[i];i++ ) |
304 { | |
305 Items=g_list_append( Items,(char *)mpcodecs_ad_drivers[i]->info->name ); | |
7526 | 306 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; |
7186 | 307 } |
308 gtk_combo_set_popdown_strings( GTK_COMBO( CBAFM ),Items ); | |
309 g_list_free( Items ); | |
310 if ( name ) gtk_entry_set_text( GTK_ENTRY( EAFM ),name ); | |
6794 | 311 } |
312 | |
7526 | 313 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBCache ),0 ); |
8276 | 314 if ( stream_cache_size > 0 ) |
7526 | 315 { |
316 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBCache ),1 ); | |
8276 | 317 gtk_adjustment_set_value( SBCacheadj,(float)stream_cache_size ); |
7526 | 318 } else gtk_widget_set_sensitive( SBCache,FALSE ); |
319 | |
6794 | 320 // -- disables |
321 #ifndef USE_SUB | |
322 gtk_widget_set_sensitive( AConfig,FALSE ); | |
323 gtk_widget_set_sensitive( CBNoAutoSub,FALSE ); | |
324 gtk_widget_set_sensitive( CBSubUnicode,FALSE ); | |
325 gtk_widget_set_sensitive( CBDumpMPSub,FALSE ); | |
326 gtk_widget_set_sensitive( CBDumpSrt,FALSE ); | |
327 gtk_widget_set_sensitive( HSSubDelay,FALSE ); | |
328 gtk_widget_set_sensitive( HSSubPosition,FALSE ); | |
329 gtk_widget_set_sensitive( HSSubFPS,FALSE ); | |
330 #endif | |
331 | |
332 #ifndef USE_OSD | |
333 gtk_widget_set_sensitive( RBOSDNone,FALSE ); | |
334 gtk_widget_set_sensitive( RBOSDTandP,FALSE ); | |
335 gtk_widget_set_sensitive( RBOSDIndicator,FALSE ); | |
336 #endif | |
337 | |
338 #if !defined( USE_OSD ) && !defined( USE_SUB ) | |
339 gtk_widget_set_sensitive( HSFontFactor,FALSE ); | |
340 gtk_widget_set_sensitive( prEFontName,FALSE ); | |
341 gtk_widget_set_sensitive( BLoadFont,FALSE ); | |
342 #endif | |
343 | |
344 // -- signals | |
345 gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)0 ); | |
346 gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 ); | |
347 gtk_signal_connect( GTK_OBJECT( CBAudioEqualizer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)2 ); | |
348 gtk_signal_connect( GTK_OBJECT( CBNoSound ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)3 ); | |
7139 | 349 #ifdef HAVE_FREETYPE |
350 gtk_signal_connect( GTK_OBJECT( RBFontNoAutoScale ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)4 ); | |
351 gtk_signal_connect( GTK_OBJECT( BRFontAutoScaleWidth ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)5 ); | |
352 gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleHeight ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)6 ); | |
353 gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleDiagonal ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)7 ); | |
354 #endif | |
7526 | 355 gtk_signal_connect( GTK_OBJECT( CBCache ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)8); |
6794 | 356 |
357 gtk_signal_connect( GTK_OBJECT( HSExtraStereoMul ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)0 ); | |
358 gtk_signal_connect( GTK_OBJECT( HSAudioDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)1 ); | |
359 gtk_signal_connect( GTK_OBJECT( HSPanscan ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)2 ); | |
360 gtk_signal_connect( GTK_OBJECT( HSSubDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)3 ); | |
361 gtk_signal_connect( GTK_OBJECT( HSSubPosition ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)4 ); | |
7139 | 362 #ifndef HAVE_FREETYPE |
6794 | 363 gtk_signal_connect( GTK_OBJECT( HSFontFactor ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)5 ); |
7139 | 364 #else |
365 gtk_signal_connect( GTK_OBJECT( HSFontBlur ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)6 ); | |
366 gtk_signal_connect( GTK_OBJECT( HSFontOutLine ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)7 ); | |
367 gtk_signal_connect( GTK_OBJECT( HSFontTextScale ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)8 ); | |
368 gtk_signal_connect( GTK_OBJECT( HSFontOSDScale ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)9 ); | |
369 gtk_signal_connect( GTK_OBJECT( EFontEncoding ),"changed",GTK_SIGNAL_FUNC( prEntry ),NULL ); | |
370 #endif | |
7751 | 371 gtk_signal_connect( GTK_OBJECT( HSPPQuality ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)10 ); |
6794 | 372 |
373 gtk_signal_connect( GTK_OBJECT( CLADrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)0 ); | |
374 gtk_signal_connect( GTK_OBJECT( CLVDrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)1 ); | |
375 | |
6903 | 376 gtkVPreferences=1; |
6794 | 377 gtk_widget_show( Preferences ); |
378 gtkSetLayer( Preferences ); | |
379 gtkMessageBox( GTK_MB_WARNING,MSGTR_PREFERENCES_Message ); | |
2901 | 380 } |
381 | |
6794 | 382 void HidePreferences( void ) |
2901 | 383 { |
6794 | 384 if ( !gtkVPreferences ) return; |
6903 | 385 gtkVPreferences=0; |
6794 | 386 gtk_widget_hide( Preferences ); gtk_widget_destroy( Preferences ); |
7009 | 387 #ifdef USE_OSS_AUDIO |
6794 | 388 HideOSSConfig(); |
7009 | 389 #endif |
390 #ifdef HAVE_DXR3 | |
391 HideDXR3Config(); | |
392 #endif | |
6794 | 393 } |
394 | |
7139 | 395 #ifdef HAVE_FREETYPE |
396 static void prEntry( GtkContainer * container,GtkWidget * widget,gpointer user_data ) | |
397 { | |
398 char * comment = gtk_entry_get_text( GTK_ENTRY( EFontEncoding ) ); | |
399 int i; | |
400 | |
401 for ( i=0;lEncoding[i].name;i++ ) | |
402 if ( !gstrcmp( lEncoding[i].comment,comment ) ) break; | |
403 | |
404 if ( lEncoding[i].comment ) gtkSet( gtkSetFontEncoding,0,lEncoding[i].name ); | |
405 } | |
406 #endif | |
407 | |
6794 | 408 static void prDestroy( GtkObject * object,gpointer user_data ) |
409 { HidePreferences(); } | |
410 | |
411 static void prShow( GtkWidget * widget,gpointer user_data ) | |
412 { gtkVPreferences=(int)user_data; } | |
413 | |
414 #define bAConfig 0 | |
415 #define bVconfig 1 | |
416 #define bOk 2 | |
417 #define bCancel 3 | |
418 #define bLSubtitle 4 | |
419 #define bLFont 5 | |
420 | |
421 void prButton( GtkButton * button,gpointer user_data ) | |
422 { | |
423 switch ( (int)user_data ) | |
2901 | 424 { |
6794 | 425 case bOk: |
426 // -- 1. page | |
427 gtkEnableAudioEqualizer=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAudioEqualizer ) ); | |
428 gtkAOExtraStereo=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBExtraStereo ) ); | |
429 gtkAONorm=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNormalize ) ); | |
430 gtkAONoSound=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNoSound ) ); | |
431 gtkSet( gtkSetExtraStereo,HSExtraStereoMuladj->value,NULL ); | |
8043 | 432 audio_delay=HSAudioDelayadj->value; |
7582 | 433 |
434 gaddlist( &audio_driver_list,ao_driver[0] ); | |
435 gaddlist( &video_driver_list,vo_driver[0] ); | |
6794 | 436 |
437 // -- 2. page | |
7019 | 438 vo_doublebuffering=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDoubleBuffer ) ); |
439 vo_directrendering=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDR ) ); | |
440 | |
441 frame_dropping=0; | |
442 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBFramedrop ) ) == TRUE ) frame_dropping=1; | |
443 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBHFramedrop ) ) == TRUE ) frame_dropping=2; | |
444 | |
7705 | 445 flip=-1; |
446 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBFlip ) ) ) flip=1; | |
6794 | 447 |
448 // -- 3. page | |
8043 | 449 sub_auto=!gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNoAutoSub ) ); |
6794 | 450 gtkSubDumpMPSub=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDumpMPSub ) ); |
451 gtkSubDumpSrt=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDumpSrt ) ); | |
7019 | 452 sub_unicode=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSubUnicode ) ); |
8043 | 453 sub_delay=HSSubDelayadj->value; |
454 sub_fps=HSSubFPSadj->value; | |
455 sub_pos=(int)HSSubPositionadj->value; | |
6794 | 456 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDNone ) ) ) osd_level=0; |
457 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ) ) ) osd_level=1; | |
458 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDTandP ) ) ) osd_level=2; | |
7139 | 459 |
460 // font ... | |
7019 | 461 guiSetFilename( font_name,gtk_entry_get_text( GTK_ENTRY( prEFontName ) ) ); |
7139 | 462 #ifndef HAVE_FREETYPE |
463 gtkSet( gtkSetFontFactor,HSFontFactoradj->value,NULL ); | |
464 #else | |
465 gtkSet( gtkSetFontBlur,HSFontBluradj->value,NULL ); | |
466 gtkSet( gtkSetFontOutLine,HSFontOutLineadj->value,NULL ); | |
467 gtkSet( gtkSetFontTextScale,HSFontTextScaleadj->value,NULL ); | |
468 gtkSet( gtkSetFontOSDScale,HSFontOSDScaleadj->value,NULL ); | |
469 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontNoAutoScale ) ) ) gtkSet( gtkSetFontAutoScale,0,NULL ); | |
470 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( BRFontAutoScaleWidth ) ) ) gtkSet( gtkSetFontAutoScale,1,NULL ); | |
471 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleHeight ) ) ) gtkSet( gtkSetFontAutoScale,2,NULL ); | |
472 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleDiagonal ) ) ) gtkSet( gtkSetFontAutoScale,3,NULL ); | |
473 #endif | |
6794 | 474 |
475 // -- 4. page | |
7019 | 476 force_ni=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ) ); |
477 index_mode=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBIndex ) ); | |
7009 | 478 gtkVopPP=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBPostprocess ) ); |
7538 | 479 gtkLoadFullscreen=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ) ); |
6794 | 480 gtkSet( gtkSetAutoq,HSPPQualityadj->value,NULL ); |
7526 | 481 |
8276 | 482 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBCache ) ) ) stream_cache_size=(int)SBCacheadj->value; |
483 else stream_cache_size=-1; | |
7526 | 484 |
6794 | 485 { |
486 int i; | |
487 char * tmp = gtk_entry_get_text( GTK_ENTRY( EVFM ) ); | |
7186 | 488 for( i=0;mpcodecs_vd_drivers[i];i++ ) |
7582 | 489 if ( !gstrcmp( tmp,(char *)mpcodecs_vd_drivers[i]->info->name ) ) |
490 { gaddlist( &video_fm_list,(char *)mpcodecs_vd_drivers[i]->info->short_name ); break; } | |
7186 | 491 } |
7526 | 492 |
7186 | 493 { |
494 int i; | |
495 char * tmp = gtk_entry_get_text( GTK_ENTRY( EAFM ) ); | |
496 for( i=0;mpcodecs_ad_drivers[i];i++ ) | |
7582 | 497 if ( !gstrcmp( tmp,(char *)mpcodecs_ad_drivers[i]->info->name ) ) |
498 { gaddlist( &audio_fm_list,(char *)mpcodecs_ad_drivers[i]->info->short_name ); break; } | |
6794 | 499 } |
500 | |
501 case bCancel: | |
502 HidePreferences(); | |
503 break; | |
504 case bAConfig: | |
505 gtk_widget_set_sensitive( AConfig,FALSE ); | |
7009 | 506 #ifdef USE_OSS_AUDIO |
7706 | 507 if ( !strncmp( ao_driver[0],"oss",3 ) ) { ShowOSSConfig(); gtk_widget_set_sensitive( AConfig,TRUE ); } |
7009 | 508 #endif |
6794 | 509 break; |
7009 | 510 case bVconfig: |
511 gtk_widget_set_sensitive( VConfig,FALSE ); | |
512 #ifdef HAVE_DXR3 | |
513 if ( !gstrcmp( vo_driver[0],"dxr3" ) ) { ShowDXR3Config(); gtk_widget_set_sensitive( VConfig,TRUE ); } | |
514 #endif | |
515 break; | |
6794 | 516 #if 0 |
517 case bLSubtitle: | |
518 break; | |
519 #endif | |
520 case bLFont: | |
521 ShowFileSelect( fsFontSelector,FALSE ); | |
522 gtkSetLayer( fsFileSelect ); | |
523 break; | |
524 } | |
525 } | |
526 | |
527 static gboolean prHScaler( GtkWidget * widget,GdkEventMotion * event,gpointer user_data ) | |
528 { | |
529 switch ( (int)user_data ) | |
530 { | |
531 case 0: // extra stereo coefficient | |
532 if ( !guiIntfStruct.Playing ) break; | |
533 gtkSet( gtkSetExtraStereo,HSExtraStereoMuladj->value,NULL ); | |
534 break; | |
535 case 1: // audio delay | |
8043 | 536 audio_delay=HSAudioDelayadj->value; |
6794 | 537 break; |
538 case 2: // panscan | |
539 gtkSet( gtkSetPanscan,HSPanscanadj->value,NULL ); | |
540 break; | |
541 case 3: // sub delay | |
8043 | 542 sub_delay=HSSubDelayadj->value; |
6794 | 543 break; |
544 case 4: // sub position | |
8043 | 545 sub_pos=(int)HSSubPositionadj->value; |
6794 | 546 break; |
8154 | 547 #ifndef HAVE_FREETYPE |
6794 | 548 case 5: // font factor |
549 gtkSet( gtkSetFontFactor,HSFontFactoradj->value,NULL ); | |
550 break; | |
7139 | 551 #else |
552 case 6: // font blur | |
553 gtkSet( gtkSetFontBlur,HSFontBluradj->value,NULL ); | |
554 break; | |
555 case 7: // font outline | |
556 gtkSet( gtkSetFontOutLine,HSFontOutLineadj->value,NULL ); | |
557 break; | |
558 case 8: // text scale | |
559 gtkSet( gtkSetFontTextScale,HSFontTextScaleadj->value,NULL ); | |
560 break; | |
561 case 9: // osd scale | |
562 gtkSet( gtkSetFontOSDScale,HSFontOSDScaleadj->value,NULL ); | |
563 break; | |
564 #endif | |
7751 | 565 case 10: // auto quality |
566 gtkSet( gtkSetAutoq,HSPPQualityadj->value,NULL ); | |
567 break; | |
2901 | 568 } |
569 return FALSE; | |
570 } | |
571 | |
6794 | 572 static void prToggled( GtkToggleButton * togglebutton,gpointer user_data ) |
2901 | 573 { |
6794 | 574 switch ( (int)user_data ) |
575 { | |
576 case 0: // extra stereo coefficient | |
577 if ( guiIntfStruct.Playing ) | |
578 gtk_widget_set_sensitive( HSExtraStereoMul,gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBExtraStereo ) ) ); | |
579 break; | |
580 // case 1: // normalize | |
581 // case 2: // equalizer | |
582 // if ( guiIntfStruct.Playing ) gtkMessageBox( GTK_MB_WARNING,"Please remember, this function need restart the playing." ); | |
583 // break; | |
584 case 3: // no sound | |
585 mixer_mute(); | |
586 break; | |
7139 | 587 case 4: |
588 case 5: | |
589 case 6: | |
590 case 7: | |
591 gtkSet( gtkSetFontAutoScale,(float)((int)user_data - 4 ),NULL ); | |
592 break; | |
7526 | 593 case 8: |
594 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBCache ) ) ) gtk_widget_set_sensitive( SBCache,TRUE ); | |
595 else gtk_widget_set_sensitive( SBCache,FALSE ); | |
596 break; | |
6794 | 597 } |
2901 | 598 } |
599 | |
6794 | 600 static void prCListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data ) |
2901 | 601 { |
6794 | 602 switch ( (int)user_data ) |
603 { | |
604 case 0: // audio driver | |
605 gtk_clist_get_text( GTK_CLIST( CLADrivers ),row,0,(char **)&ao_driver ); | |
606 gtk_widget_set_sensitive( AConfig,FALSE ); | |
7009 | 607 #ifdef USE_OSS_AUDIO |
7706 | 608 if ( !strncmp( ao_driver[0],"oss",3 ) ) gtk_widget_set_sensitive( AConfig,TRUE ); |
7009 | 609 #endif |
6794 | 610 break; |
611 case 1: // video driver | |
612 gtk_clist_get_text( GTK_CLIST( CLVDrivers ),row,0,(char **)&vo_driver ); | |
7009 | 613 gtk_widget_set_sensitive( VConfig,FALSE ); |
614 #ifdef HAVE_DXR3 | |
615 if ( !gstrcmp( vo_driver[0],"dxr3" ) ) gtk_widget_set_sensitive( VConfig,TRUE ); | |
616 #endif | |
6794 | 617 break; |
618 } | |
2901 | 619 } |
620 | |
6794 | 621 GtkWidget * create_Preferences( void ) |
2901 | 622 { |
8156 | 623 GtkWidget * label; |
8173 | 624 GtkWidget * frame; |
625 | |
6794 | 626 GtkWidget * vbox1; |
627 GtkWidget * notebook1; | |
628 GtkWidget * hbox1; | |
629 GtkWidget * vbox2; | |
630 GtkWidget * scrolledwindow3; | |
631 GtkWidget * hbuttonbox2; | |
632 GtkWidget * vbox3; | |
633 GtkWidget * hbox8; | |
634 GtkWidget * hbox2; | |
635 GtkWidget * vbox4; | |
636 GtkWidget * scrolledwindow2; | |
637 GtkWidget * hbuttonbox3; | |
638 GtkWidget * vbox5; | |
639 GtkWidget * hbox3; | |
640 GtkWidget * vbox6; | |
641 GtkWidget * vbox600; | |
642 GSList * OSD_group = NULL; | |
7139 | 643 GSList * Font_group = NULL; |
644 GList * CBFontEncoding_items = NULL; | |
6794 | 645 GtkWidget * vbox7; |
646 GtkWidget * vbox8; | |
647 GtkWidget * table1; | |
648 GtkWidget * vbox9; | |
649 GtkWidget * vbox603; | |
650 GtkWidget * hbox6; | |
651 GtkWidget * hbuttonbox5; | |
7139 | 652 #ifndef HAVE_FREETYPE |
6794 | 653 GtkWidget * hbox7; |
7139 | 654 #endif |
6794 | 655 GtkWidget * vbox601; |
656 GtkWidget * vbox602; | |
657 GtkWidget * hbox5; | |
658 GtkWidget * hbuttonbox1; | |
659 GtkAccelGroup * accel_group; | |
660 | |
661 accel_group=gtk_accel_group_new(); | |
2901 | 662 |
8043 | 663 Preferences=gtk_window_new( GTK_WINDOW_TOPLEVEL ); |
6794 | 664 gtk_widget_set_name( Preferences,"Preferences" ); |
665 gtk_object_set_data( GTK_OBJECT( Preferences ),"Preferences",Preferences ); | |
666 gtk_window_set_title( GTK_WINDOW( Preferences ),MSGTR_Preferences ); | |
667 gtk_window_set_position( GTK_WINDOW( Preferences ),GTK_WIN_POS_CENTER ); | |
7217 | 668 // gtk_window_set_policy( GTK_WINDOW( Preferences ),FALSE,FALSE,FALSE ); |
6794 | 669 gtk_window_set_wmclass( GTK_WINDOW( Preferences ),"Preferences","MPlayer" ); |
670 | |
671 gtk_widget_realize( Preferences ); | |
672 gtkAddIcon( Preferences ); | |
2901 | 673 |
8154 | 674 frame=AddFrame( NULL,GTK_SHADOW_IN,Preferences,1 ); |
675 gtk_container_set_border_width( GTK_CONTAINER( frame ),1 ); | |
676 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
677 frame=AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,frame,1 ); | |
678 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
6794 | 679 |
8173 | 680 vbox1=AddVBox( frame ); |
6794 | 681 |
682 notebook1=gtk_notebook_new(); | |
683 gtk_widget_set_name( notebook1,"notebook1" ); | |
684 gtk_widget_ref( notebook1 ); | |
685 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"notebook1",notebook1,(GtkDestroyNotify)gtk_widget_unref ); | |
686 gtk_widget_show( notebook1 ); | |
687 gtk_box_pack_start( GTK_BOX( vbox1 ),notebook1,TRUE,TRUE,0 ); | |
2901 | 688 |
8173 | 689 hbox1=AddHBox( notebook1,0 ); |
6794 | 690 |
8154 | 691 frame=AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox1,1 ); |
692 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
6840 | 693 |
8173 | 694 vbox2=AddVBox( frame ); |
2901 | 695 |
6794 | 696 scrolledwindow3=gtk_scrolled_window_new( NULL,NULL ); |
697 gtk_widget_set_name( scrolledwindow3,"scrolledwindow3" ); | |
698 gtk_widget_ref( scrolledwindow3 ); | |
699 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"scrolledwindow3",scrolledwindow3,(GtkDestroyNotify)gtk_widget_unref ); | |
700 gtk_widget_show( scrolledwindow3 ); | |
701 gtk_box_pack_start( GTK_BOX( vbox2 ),scrolledwindow3,TRUE,TRUE,0 ); | |
702 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow3 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC ); | |
703 | |
6840 | 704 CLADrivers=gtk_clist_new( 2 ); |
6794 | 705 gtk_widget_set_name( CLADrivers,"CLADrivers" ); |
706 gtk_widget_ref( CLADrivers ); | |
707 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"CLADrivers",CLADrivers,(GtkDestroyNotify)gtk_widget_unref ); | |
708 gtk_widget_show( CLADrivers ); | |
709 gtk_container_add( GTK_CONTAINER( scrolledwindow3 ),CLADrivers ); | |
6840 | 710 gtk_clist_set_column_width( GTK_CLIST( CLADrivers ),0,50 ); |
6794 | 711 gtk_clist_column_titles_show( GTK_CLIST( CLADrivers ) ); |
712 gtk_clist_set_shadow_type( GTK_CLIST( CLADrivers ),GTK_SHADOW_NONE ); | |
6840 | 713 gtk_widget_set_usize( CLADrivers,200,-2 ); |
6794 | 714 |
8156 | 715 label=AddLabel( MSGTR_PREFERENCES_AvailableDrivers,NULL ); |
716 gtk_clist_set_column_widget( GTK_CLIST( CLADrivers ),0,label ); | |
6794 | 717 |
8173 | 718 hbuttonbox2=AddHButtonBox( vbox2 ); |
719 AConfig=AddButton( MSGTR_ConfigDriver,hbuttonbox2 ); | |
6794 | 720 |
8154 | 721 frame=AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox1,1 ); |
722 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
8173 | 723 vbox3=AddVBox( frame ); |
724 gtk_widget_set_usize( vbox3,250,-2 ); | |
2901 | 725 |
8173 | 726 CBNoSound=AddCheckButton( MSGTR_PREFERENCES_DoNotPlaySound,vbox3 ); |
727 AddHSeparator( vbox3 ); | |
728 CBNormalize=AddCheckButton( MSGTR_PREFERENCES_NormalizeSound,vbox3 ); | |
729 CBAudioEqualizer=AddCheckButton( MSGTR_PREFERENCES_EnEqualizer,vbox3 ); | |
6794 | 730 #if 0 |
8173 | 731 CBSurround=AddCheckButton( "Enable surround",vbox3 ); |
6794 | 732 #endif |
8173 | 733 CBExtraStereo=AddCheckButton( MSGTR_PREFERENCES_ExtraStereo,vbox3 ); |
6794 | 734 |
8173 | 735 hbox8=AddHBox( vbox3,1 ); |
2901 | 736 |
8156 | 737 label=AddLabel( MSGTR_PREFERENCES_Coefficient,hbox8 ); |
738 gtk_misc_set_padding( GTK_MISC( label ),20,0 ); | |
6794 | 739 |
740 HSExtraStereoMuladj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-10,10,0.1,0,0 ) ); | |
8173 | 741 HSExtraStereoMul=AddHScaler( HSExtraStereoMuladj,hbox8,1 ); |
742 hbox8=AddHBox( vbox3,1 ); | |
8156 | 743 AddLabel( MSGTR_PREFERENCES_AudioDelay,hbox8 ); |
6794 | 744 |
745 HSAudioDelayadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-100,100,0.01,0,0 ) ); | |
8173 | 746 HSAudioDelay=AddHScaler( HSAudioDelayadj,hbox8,2 ); |
8156 | 747 label=AddLabel( MSGTR_PREFERENCES_Audio,NULL ); |
748 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),0 ),label ); | |
8173 | 749 hbox2=AddHBox( notebook1,0 ); |
6794 | 750 |
8154 | 751 frame=AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox2,1 ); |
752 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
8173 | 753 vbox4=AddVBox( frame ); |
2901 | 754 |
6794 | 755 scrolledwindow2=gtk_scrolled_window_new( NULL,NULL ); |
756 gtk_widget_set_name( scrolledwindow2,"scrolledwindow2" ); | |
757 gtk_widget_ref( scrolledwindow2 ); | |
758 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"scrolledwindow2",scrolledwindow2,(GtkDestroyNotify)gtk_widget_unref ); | |
759 gtk_widget_show( scrolledwindow2 ); | |
760 gtk_box_pack_start( GTK_BOX( vbox4 ),scrolledwindow2,TRUE,TRUE,0 ); | |
761 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow2 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC ); | |
762 | |
6840 | 763 CLVDrivers=gtk_clist_new( 2 ); |
6794 | 764 gtk_widget_set_name( CLVDrivers,"CLVDrivers" ); |
765 gtk_widget_ref( CLVDrivers ); | |
766 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"CLVDrivers",CLVDrivers,(GtkDestroyNotify)gtk_widget_unref ); | |
767 gtk_widget_show( CLVDrivers ); | |
768 gtk_container_add( GTK_CONTAINER( scrolledwindow2 ),CLVDrivers ); | |
6840 | 769 gtk_clist_set_column_width( GTK_CLIST( CLVDrivers ),0,50 ); |
6794 | 770 gtk_clist_column_titles_show( GTK_CLIST( CLVDrivers ) ); |
771 gtk_clist_set_shadow_type( GTK_CLIST( CLVDrivers ),GTK_SHADOW_NONE ); | |
6840 | 772 gtk_widget_set_usize( CLVDrivers,200,-2 ); |
6794 | 773 |
8156 | 774 label=AddLabel( MSGTR_PREFERENCES_AvailableDrivers,NULL ); |
775 gtk_clist_set_column_widget( GTK_CLIST( CLVDrivers ),0,label ); | |
6794 | 776 |
8173 | 777 hbuttonbox3=AddHButtonBox( vbox4 ); |
778 VConfig=AddButton( MSGTR_ConfigDriver,hbuttonbox3 ); | |
2901 | 779 |
8154 | 780 frame=AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox2,1 ); |
781 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
8173 | 782 vbox5=AddVBox( frame ); |
783 gtk_widget_set_usize( vbox5,250,-2 ); | |
2901 | 784 |
8173 | 785 CBDoubleBuffer=AddCheckButton( MSGTR_PREFERENCES_DoubleBuffer,vbox5 ); |
786 // gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDoubleBuffer ),TRUE ); | |
787 CBDR=AddCheckButton( MSGTR_PREFERENCES_DirectRender,vbox5 ); | |
788 CBFramedrop=AddCheckButton( MSGTR_PREFERENCES_FrameDrop,vbox5 ); | |
789 CBHFramedrop=AddCheckButton( MSGTR_PREFERENCES_HFrameDrop,vbox5 ); | |
790 CBFlip=AddCheckButton( MSGTR_PREFERENCES_Flip,vbox5 ); | |
6794 | 791 |
8173 | 792 hbox3=AddHBox( vbox5,1 ); |
6794 | 793 |
8156 | 794 AddLabel( MSGTR_PREFERENCES_Panscan,hbox3 ); |
2901 | 795 |
6794 | 796 HSPanscanadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,1,0.001,0,0 ) ); |
8173 | 797 HSPanscan=AddHScaler( HSPanscanadj,hbox3,1 ); |
6794 | 798 |
8156 | 799 label=AddLabel( MSGTR_PREFERENCES_Video,NULL ); |
8173 | 800 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),1 ),label ); |
801 vbox6=AddVBox( notebook1 ); | |
6794 | 802 |
8154 | 803 frame=AddFrame( MSGTR_PREFERENCES_FRAME_OSD_Level,GTK_SHADOW_ETCHED_OUT,vbox6,1 ); |
804 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
8173 | 805 vbox600=AddVBox( frame ); |
2901 | 806 |
8173 | 807 RBOSDNone=AddRadioButton( MSGTR_PREFERENCES_None,&OSD_group,vbox600 ); |
808 RBOSDTandP=AddRadioButton( MSGTR_PREFERENCES_OSDTimer,&OSD_group,vbox600 ); | |
809 RBOSDIndicator=AddRadioButton( MSGTR_PREFERENCES_OSDProgress,&OSD_group,vbox600 ); | |
6794 | 810 |
8154 | 811 frame=AddFrame( MSGTR_PREFERENCES_FRAME_Subtitle,GTK_SHADOW_ETCHED_OUT,vbox6,1 ); |
812 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
8173 | 813 vbox7=AddVBox( frame ); |
6840 | 814 |
6794 | 815 #if 0 |
8173 | 816 hbox4=AddHBox( vbox7,1 ); |
6794 | 817 |
8173 | 818 AddLabel( MSGTR_PREFERENCES_Subtitle,hbox4 ); |
6794 | 819 |
820 ESubtitleName=gtk_entry_new(); | |
821 gtk_widget_set_name( ESubtitleName,"ESubtitleName" ); | |
822 gtk_widget_ref( ESubtitleName ); | |
823 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"ESubtitleName",ESubtitleName,(GtkDestroyNotify)gtk_widget_unref ); | |
824 gtk_widget_show( ESubtitleName ); | |
825 gtk_box_pack_start( GTK_BOX( hbox4 ),ESubtitleName,TRUE,TRUE,0 ); | |
826 | |
8173 | 827 hbuttonbox4=AddHButtonBox( hbuttonbox4 ); |
828 gtk_container_set_border_width( GTK_CONTAINER( hbuttonbox4 ),3 ); | |
829 BLoadSubtitle=AddButton( MSGTR_Browse,hbuttonbox4 ); | |
830 #endif | |
2901 | 831 |
8173 | 832 vbox8=AddVBox( vbox7 ); |
6794 | 833 |
834 table1=gtk_table_new( 3,2,FALSE ); | |
835 gtk_widget_set_name( table1,"table1" ); | |
836 gtk_widget_ref( table1 ); | |
837 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"table1",table1,(GtkDestroyNotify)gtk_widget_unref ); | |
838 gtk_widget_show( table1 ); | |
839 gtk_box_pack_start( GTK_BOX( vbox8 ),table1,FALSE,FALSE,0 ); | |
2901 | 840 |
8156 | 841 label=AddLabel( MSGTR_PREFERENCES_SUB_Delay,NULL ); |
842 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
2901 | 843 |
8156 | 844 label=AddLabel( MSGTR_PREFERENCES_SUB_FPS,NULL ); |
845 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
6794 | 846 |
847 HSSubDelayadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-10.0,10,0.01,0,0 ) ); | |
8173 | 848 HSSubDelay=AddHScaler( HSSubDelayadj,NULL,1 ); |
849 gtk_table_attach( GTK_TABLE( table1 ),HSSubDelay,1,2,0,1,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
2901 | 850 |
8156 | 851 label=AddLabel( MSGTR_PREFERENCES_SUB_POS,NULL ); |
852 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,2,3,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
6794 | 853 |
854 HSSubPositionadj=GTK_ADJUSTMENT( gtk_adjustment_new( 100,0,100,1,0,0 ) ); | |
8173 | 855 HSSubPosition=AddHScaler( HSSubPositionadj,NULL,0 ); |
856 gtk_table_attach( GTK_TABLE( table1 ),HSSubPosition,1,2,2,3,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
6794 | 857 |
858 HSSubFPSadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.01,0,0 ) ); | |
8173 | 859 HSSubFPS=AddHScaler( HSSubFPSadj,NULL,1 ); |
860 gtk_table_attach( GTK_TABLE( table1 ),HSSubFPS,1,2,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
6794 | 861 |
8173 | 862 vbox9=AddVBox( vbox8 ); |
6794 | 863 |
8173 | 864 CBNoAutoSub=AddCheckButton( MSGTR_PREFERENCES_SUB_AutoLoad,vbox9 ); |
865 CBSubUnicode=AddCheckButton( MSGTR_PREFERENCES_SUB_Unicode,vbox9 ); | |
866 CBDumpMPSub=AddCheckButton( MSGTR_PREFERENCES_SUB_MPSUB,vbox9 ); | |
867 CBDumpSrt=AddCheckButton( MSGTR_PREFERENCES_SUB_SRT,vbox9 ); | |
6794 | 868 |
8154 | 869 frame=AddFrame( MSGTR_PREFERENCES_FRAME_Font,GTK_SHADOW_ETCHED_OUT,vbox6,1 ); |
870 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
8173 | 871 vbox603=AddVBox( frame ); |
2901 | 872 |
8173 | 873 hbox6=AddHBox( vbox603,1 ); |
6794 | 874 |
8156 | 875 AddLabel( MSGTR_PREFERENCES_Font,hbox6 ); |
6794 | 876 |
877 prEFontName=gtk_entry_new(); | |
878 gtk_widget_set_name( prEFontName,"prEFontName" ); | |
879 gtk_widget_ref( prEFontName ); | |
880 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"prEFontName",prEFontName,(GtkDestroyNotify)gtk_widget_unref ); | |
881 gtk_widget_show( prEFontName ); | |
882 gtk_box_pack_start( GTK_BOX( hbox6 ),prEFontName,TRUE,TRUE,0 ); | |
883 | |
8173 | 884 hbuttonbox5=AddHButtonBox( hbox6 ); |
885 gtk_container_set_border_width( GTK_CONTAINER( hbuttonbox5 ),3 ); | |
886 BLoadFont=AddButton( MSGTR_Browse,hbuttonbox5 ); | |
6794 | 887 |
7139 | 888 #ifndef HAVE_FREETYPE |
8173 | 889 hbox7=AddHBox( vbox603,1 ); |
8156 | 890 AddLabel( MSGTR_PREFERENCES_FontFactor,hbox7 ); |
6794 | 891 HSFontFactoradj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,10,0.05,0,0 ) ); |
8173 | 892 HSFontFactor=AddHScaler( HSFontFactoradj,hbox7,2 ); |
7139 | 893 #else |
6794 | 894 |
8173 | 895 RBFontNoAutoScale=AddRadioButton( MSGTR_PREFERENCES_FontNoAutoScale,&Font_group,vbox603 ); |
896 BRFontAutoScaleWidth=AddRadioButton( MSGTR_PREFERENCES_FontPropWidth,&Font_group,vbox603 ); | |
897 RBFontAutoScaleHeight=AddRadioButton( MSGTR_PREFERENCES_FontPropHeight,&Font_group,vbox603 ); | |
898 RBFontAutoScaleDiagonal=AddRadioButton( MSGTR_PREFERENCES_FontPropDiagonal,&Font_group,vbox603 ); | |
7139 | 899 |
900 table1=gtk_table_new( 3,2,FALSE ); | |
901 gtk_widget_set_name( table1,"table1" ); | |
902 gtk_widget_ref( table1 ); | |
903 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"table1",table1,(GtkDestroyNotify)gtk_widget_unref ); | |
904 gtk_widget_show( table1 ); | |
905 gtk_box_pack_start( GTK_BOX( vbox603 ),table1,FALSE,FALSE,0 ); | |
906 | |
8156 | 907 label=AddLabel( MSGTR_PREFERENCES_FontEncoding,NULL ); |
908 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
7139 | 909 |
910 CBFontEncoding=gtk_combo_new(); | |
911 gtk_widget_set_name( CBFontEncoding,"CBFontEncoding" ); | |
912 gtk_widget_ref( CBFontEncoding ); | |
913 gtk_widget_show( CBFontEncoding ); | |
914 gtk_table_attach( GTK_TABLE( table1 ),CBFontEncoding,1,2,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
915 { | |
916 int i; | |
917 for ( i=0;lEncoding[i].name;i++ ) CBFontEncoding_items=g_list_append( CBFontEncoding_items,lEncoding[i].comment ); | |
918 } | |
919 gtk_combo_set_popdown_strings( GTK_COMBO( CBFontEncoding ),CBFontEncoding_items ); | |
920 g_list_free( CBFontEncoding_items ); | |
921 | |
922 EFontEncoding=GTK_COMBO( CBFontEncoding )->entry; | |
923 gtk_widget_set_name( EFontEncoding,"EFontEncoding" ); | |
924 gtk_entry_set_editable( GTK_ENTRY( EFontEncoding ),FALSE ); | |
925 gtk_widget_ref( EFontEncoding ); | |
926 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"EFontEncoding",EFontEncoding,(GtkDestroyNotify)gtk_widget_unref ); | |
927 gtk_widget_show( EFontEncoding ); | |
928 | |
8156 | 929 label=AddLabel( MSGTR_PREFERENCES_FontBlur,NULL ); |
930 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
7139 | 931 |
932 HSFontBluradj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) ); | |
8173 | 933 HSFontBlur=AddHScaler( HSFontBluradj,NULL,2 ); |
934 gtk_table_attach( GTK_TABLE( table1 ),HSFontBlur,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
7139 | 935 |
8156 | 936 label=AddLabel( MSGTR_PREFERENCES_FontOutLine,NULL ); |
937 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,2,3,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
7139 | 938 |
939 HSFontOutLineadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) ); | |
8173 | 940 HSFontOutLine=AddHScaler( HSFontOutLineadj,NULL,2 ); |
941 gtk_table_attach( GTK_TABLE( table1 ),HSFontOutLine,1,2,2,3,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
7139 | 942 |
8156 | 943 label=AddLabel( MSGTR_PREFERENCES_FontTextScale,NULL ); |
944 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,3,4,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
7139 | 945 |
946 HSFontTextScaleadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) ); | |
8173 | 947 HSFontTextScale=AddHScaler( HSFontTextScaleadj,NULL,2 ); |
948 gtk_table_attach( GTK_TABLE( table1 ),HSFontTextScale,1,2,3,4,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
7139 | 949 |
8156 | 950 label=AddLabel( MSGTR_PREFERENCES_FontOSDScale,NULL ); |
951 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,4,5,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
7139 | 952 |
953 HSFontOSDScaleadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) ); | |
8173 | 954 HSFontOSDScale=AddHScaler( HSFontOSDScaleadj,NULL,2 ); |
955 gtk_table_attach( GTK_TABLE( table1 ),HSFontOSDScale,1,2,4,5,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
7139 | 956 #endif |
957 | |
8156 | 958 label=AddLabel( MSGTR_PREFERENCES_SubtitleOSD,NULL ); |
959 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),2 ),label ); | |
8173 | 960 vbox601=AddVBox( notebook1 ); |
6794 | 961 |
8154 | 962 frame=AddFrame( MSGTR_PREFERENCES_FRAME_PostProcess,GTK_SHADOW_ETCHED_OUT,vbox601,0 ); |
963 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
8173 | 964 vbox602=AddVBox( frame ); |
6794 | 965 |
8173 | 966 CBPostprocess=AddCheckButton( MSGTR_PREFERENCES_PostProcess,vbox602 ); |
6794 | 967 |
8173 | 968 hbox5=AddHBox( vbox602,1 ); |
2901 | 969 |
8156 | 970 AddLabel( MSGTR_PREFERENCES_AutoQuality,hbox5 ); |
2901 | 971 |
7751 | 972 if ( guiIntfStruct.sh_video && guiIntfStruct.Playing ) HSPPQualityadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,get_video_quality_max( guiIntfStruct.sh_video ),0,0,0 ) ); |
973 else HSPPQualityadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0,0,0 ) ); | |
8173 | 974 HSPPQuality=AddHScaler( HSPPQualityadj,hbox5,0 ); |
6794 | 975 |
8154 | 976 frame=AddFrame( MSGTR_PREFERENCES_FRAME_CodecDemuxer,GTK_SHADOW_ETCHED_OUT,vbox601,0 ); |
977 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
8173 | 978 vbox602=AddVBox( frame ); |
6794 | 979 |
8173 | 980 CBNonInterlaved=AddCheckButton( MSGTR_PREFERENCES_NI,vbox602 ); |
981 CBIndex=AddCheckButton( MSGTR_PREFERENCES_IDX,vbox602 ); | |
2901 | 982 |
8173 | 983 hbox5=AddHBox( vbox602,1 ); |
6794 | 984 |
8156 | 985 AddLabel( MSGTR_PREFERENCES_VideoCodecFamily,hbox5 ); |
2901 | 986 |
6794 | 987 CBVFM=gtk_combo_new(); |
988 gtk_widget_set_name( CBVFM,"CBVFM" ); | |
989 gtk_widget_ref( CBVFM ); | |
990 gtk_widget_show( CBVFM ); | |
991 gtk_box_pack_start( GTK_BOX( hbox5 ),CBVFM,TRUE,TRUE,0 ); | |
992 | |
993 EVFM=GTK_COMBO( CBVFM )->entry; | |
994 gtk_widget_set_name( EVFM,"CEVFM" ); | |
995 gtk_entry_set_editable( GTK_ENTRY( EVFM ),FALSE ); | |
996 gtk_widget_ref( EVFM ); | |
997 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"EVFM",EVFM,(GtkDestroyNotify)gtk_widget_unref ); | |
998 gtk_widget_show( EVFM ); | |
2901 | 999 |
8173 | 1000 hbox5=AddHBox( vbox602,1 ); |
7186 | 1001 |
8156 | 1002 AddLabel( MSGTR_PREFERENCES_AudioCodecFamily,hbox5 ); |
7186 | 1003 |
1004 CBAFM=gtk_combo_new(); | |
1005 gtk_widget_set_name( CBAFM,"CBAFM" ); | |
1006 gtk_widget_ref( CBAFM ); | |
1007 gtk_widget_show( CBAFM ); | |
1008 gtk_box_pack_start( GTK_BOX( hbox5 ),CBAFM,TRUE,TRUE,0 ); | |
1009 | |
1010 EAFM=GTK_COMBO( CBAFM )->entry; | |
1011 gtk_widget_set_name( EAFM,"EAFM" ); | |
1012 gtk_entry_set_editable( GTK_ENTRY( EAFM ),FALSE ); | |
1013 gtk_widget_ref( EAFM ); | |
1014 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"EAFM",EAFM,(GtkDestroyNotify)gtk_widget_unref ); | |
1015 gtk_widget_show( EAFM ); | |
1016 | |
8154 | 1017 frame=AddFrame( MSGTR_PREFERENCES_FRAME_Cache,GTK_SHADOW_ETCHED_OUT,vbox601,0 ); |
1018 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
8173 | 1019 vbox602=AddVBox( frame ); |
7526 | 1020 |
8173 | 1021 CBCache=AddCheckButton( MSGTR_PREFERENCES_Cache,vbox602 ); |
7526 | 1022 |
8173 | 1023 hbox5=AddHBox( vbox602,1 ); |
7526 | 1024 |
8156 | 1025 AddLabel( MSGTR_PREFERENCES_CacheSize,hbox5 ); |
7526 | 1026 |
1027 SBCacheadj=GTK_ADJUSTMENT( gtk_adjustment_new( 2048,4,65535,1,10,10 ) ); | |
1028 SBCache=gtk_spin_button_new( GTK_ADJUSTMENT( SBCacheadj ),1,0 ); | |
1029 gtk_widget_ref( SBCache ); | |
1030 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"SBCache",SBCache,(GtkDestroyNotify)gtk_widget_unref ); | |
1031 gtk_widget_show( SBCache ); | |
1032 gtk_box_pack_start( GTK_BOX( hbox5 ),SBCache,TRUE,TRUE,0 ); | |
1033 | |
8154 | 1034 frame=AddFrame( MSGTR_PREFERENCES_FRAME_Misc,GTK_SHADOW_ETCHED_OUT,vbox601,0 ); |
1035 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
8173 | 1036 vbox602=AddVBox( frame ); |
7538 | 1037 |
8173 | 1038 CBLoadFullscreen=AddCheckButton( MSGTR_PREFERENCES_LoadFullscreen,vbox602 ); |
7538 | 1039 |
8156 | 1040 label=AddLabel( MSGTR_PREFERENCES_Misc,NULL ); |
1041 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),3 ),label ); | |
2901 | 1042 |
8173 | 1043 AddHSeparator( vbox1 ); |
6794 | 1044 |
8173 | 1045 hbuttonbox1=AddHButtonBox( vbox1 ); |
1046 gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); | |
1047 gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); | |
1048 BOk=AddButton( MSGTR_Ok,hbuttonbox1 ); | |
1049 BCancel=AddButton( MSGTR_Cancel,hbuttonbox1 ); | |
6794 | 1050 |
1051 gtk_widget_add_accelerator( BOk,"released",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); | |
1052 gtk_widget_add_accelerator( BCancel,"released",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); | |
1053 | |
1054 gtk_signal_connect( GTK_OBJECT( Preferences ),"destroy",GTK_SIGNAL_FUNC( prDestroy ),NULL ); | |
1055 gtk_signal_connect( GTK_OBJECT( Preferences ),"show",GTK_SIGNAL_FUNC( prShow ),(void*)1 ); | |
1056 gtk_signal_connect( GTK_OBJECT( Preferences ),"hide",GTK_SIGNAL_FUNC( prShow ),(void*)0 ); | |
1057 | |
1058 gtk_signal_connect( GTK_OBJECT( AConfig ),"released",GTK_SIGNAL_FUNC( prButton ),(void*)bAConfig ); | |
1059 gtk_signal_connect( GTK_OBJECT( BOk ),"released",GTK_SIGNAL_FUNC( prButton ),(void*)bOk ); | |
1060 gtk_signal_connect( GTK_OBJECT( BCancel ),"released",GTK_SIGNAL_FUNC( prButton ),(void*)bCancel ); | |
1061 gtk_signal_connect( GTK_OBJECT( VConfig ),"released",GTK_SIGNAL_FUNC( prButton ),(void*)bVconfig ); | |
1062 #if 0 | |
1063 gtk_signal_connect( GTK_OBJECT( BLoadSubtitle ),"released",GTK_SIGNAL_FUNC( prButton ),(void*)bLSubtitle ); | |
1064 #endif | |
1065 gtk_signal_connect( GTK_OBJECT( BLoadFont ),"released",GTK_SIGNAL_FUNC( prButton ),(void*)bLFont ); | |
2901 | 1066 |
6794 | 1067 #if 0 |
1068 gtk_signal_connect( GTK_OBJECT( CBNoSound ),"toggled",GTK_SIGNAL_FUNC( on_CBNoSound_toggled ),NULL ); | |
1069 gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( on_CBNormalize_toggled ),NULL ); | |
1070 gtk_signal_connect( GTK_OBJECT( CBSurround ),"toggled",GTK_SIGNAL_FUNC( on_CBSurround_toggled ),NULL ); | |
1071 gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( on_CBExtraStereo_toggled ),NULL ); | |
1072 gtk_signal_connect( GTK_OBJECT( CBDoubleBuffer ),"toggled",GTK_SIGNAL_FUNC( on_CBDoubleBuffer_toggled ),NULL ); | |
1073 gtk_signal_connect( GTK_OBJECT( CBDR ),"toggled",GTK_SIGNAL_FUNC( on_CBDR_toggled ),NULL ); | |
1074 gtk_signal_connect( GTK_OBJECT( CBFramedrop ),"toggled",GTK_SIGNAL_FUNC( on_CBFramedrop_toggled ),NULL ); | |
1075 gtk_signal_connect( GTK_OBJECT( CBHFramedrop ),"toggled",GTK_SIGNAL_FUNC( on_CBHFramedrop_toggled ),NULL ); | |
1076 gtk_signal_connect( GTK_OBJECT( CBFullScreen ),"toggled",GTK_SIGNAL_FUNC( on_CBFullScreen_toggled ),NULL ); | |
1077 gtk_signal_connect( GTK_OBJECT( CBNonInterlaved ),"toggled",GTK_SIGNAL_FUNC( on_CBNonInterlaved_toggled ),NULL ); | |
1078 gtk_signal_connect( GTK_OBJECT( CBFlip ),"toggled",GTK_SIGNAL_FUNC( on_CBFlip_toggled ),NULL ); | |
1079 gtk_signal_connect( GTK_OBJECT( CBPostprocess ),"toggled",GTK_SIGNAL_FUNC( on_CBPostprocess_toggled ),NULL ); | |
1080 gtk_signal_connect( GTK_OBJECT( CBNoAutoSub ),"toggled",GTK_SIGNAL_FUNC( on_CBNoAutoSub_toggled ),NULL ); | |
1081 gtk_signal_connect( GTK_OBJECT( CBSubUnicode ),"toggled",GTK_SIGNAL_FUNC( on_CNSubUnicode_toggled ),NULL ); | |
1082 gtk_signal_connect( GTK_OBJECT( CBDumpMPSub ),"toggled",GTK_SIGNAL_FUNC( on_CBDumpMPSub_toggled ),NULL ); | |
1083 gtk_signal_connect( GTK_OBJECT( CBDumpSrt ),"toggled",GTK_SIGNAL_FUNC( on_CBDumpSrt_toggled ),NULL ); | |
1084 #endif | |
1085 #if 0 | |
1086 gtk_signal_connect( GTK_OBJECT( RBOSDNone ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDNone_toggled ),NULL ); | |
1087 gtk_signal_connect( GTK_OBJECT( RBOSDTandP ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDTandP_toggled ),NULL ); | |
1088 gtk_signal_connect( GTK_OBJECT( RBOSDIndicator ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDIndicator_toggled ),NULL ); | |
1089 gtk_signal_connect( GTK_OBJECT( CBAudioEqualizer ),"toggled",GTK_SIGNAL_FUNC( on_CBAudioEqualizer_toggled ),NULL ); | |
1090 #endif | |
1091 #if 0 | |
1092 gtk_signal_connect( GTK_OBJECT( HSAudioDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSAudioDelay_motion_notify_event ),NULL ); | |
1093 gtk_signal_connect( GTK_OBJECT( HSPanscan ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSPanscan_motion_notify_event ),NULL ); | |
1094 gtk_signal_connect( GTK_OBJECT( label2 ),"motion_notify_event",GTK_SIGNAL_FUNC( on_label2_motion_notify_event ),NULL ); | |
1095 gtk_signal_connect( GTK_OBJECT( HSSubDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSSubDelay_motion_notify_event ),NULL ); | |
1096 gtk_signal_connect( GTK_OBJECT( HSSubPosition ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSSubPosition_motion_notify_event ),NULL ); | |
1097 gtk_signal_connect( GTK_OBJECT( HSSubFPS ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSSubFPS_motion_notify_event ),NULL ); | |
1098 gtk_signal_connect( GTK_OBJECT( HSFontFactor ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSFontFactor_motion_notify_event ),NULL ); | |
1099 gtk_signal_connect( GTK_OBJECT( HSPPQuality ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSPPQuality_motion_notify_event ),NULL ); | |
1100 #endif | |
2901 | 1101 |
7187 | 1102 gtk_notebook_set_page( GTK_NOTEBOOK( notebook1 ),2 ); |
6794 | 1103 |
1104 gtk_window_add_accel_group( GTK_WINDOW( Preferences ),accel_group ); | |
1105 | |
1106 return Preferences; | |
1107 } | |
2901 | 1108 |
7009 | 1109 #ifdef USE_OSS_AUDIO |
6794 | 1110 GtkWidget * OSSConfig; |
1111 static GtkWidget * CEOssDevice; | |
1112 static GtkWidget * CEOssMixer; | |
1113 static GtkWidget * CBOssMixer; | |
1114 static GtkWidget * CBOssDevice; | |
1115 static GtkWidget * BOssOk; | |
1116 static GtkWidget * BOssCancel; | |
1117 | |
7009 | 1118 int gtkVOSSConfig = 0; |
1119 | |
6794 | 1120 void ShowOSSConfig( void ) |
1121 { | |
1122 if ( gtkVOSSConfig ) gtkActive( OSSConfig ); | |
1123 else OSSConfig=create_OSSConfig(); | |
1124 | |
7706 | 1125 gtk_entry_set_text( GTK_ENTRY( CEOssMixer ),gtkAOOSSMixer ); |
1126 gtk_entry_set_text( GTK_ENTRY( CEOssDevice ),gtkAOOSSDevice ); | |
2901 | 1127 |
6794 | 1128 gtk_widget_show( OSSConfig ); |
1129 gtkSetLayer( OSSConfig ); | |
6903 | 1130 gtkVOSSConfig=1; |
6794 | 1131 } |
1132 | |
1133 void HideOSSConfig( void ) | |
1134 { | |
1135 if ( !gtkVOSSConfig ) return; | |
1136 gtk_widget_hide( OSSConfig ); | |
1137 gtk_widget_destroy( OSSConfig ); | |
6903 | 1138 gtkVOSSConfig=0; |
6794 | 1139 } |
1140 | |
1141 static void ossDestroy( GtkObject * object,gpointer user_data ) | |
1142 { HideOSSConfig(); } | |
1143 | |
1144 static void ossShow( GtkWidget * widget,gpointer user_data ) | |
1145 { gtkVOSSConfig=(int)user_data; } | |
2901 | 1146 |
6794 | 1147 static void ossButton( GtkButton * button,gpointer user_data ) |
1148 { | |
1149 switch( (int)user_data ) | |
1150 { | |
1151 case 1: | |
7706 | 1152 gfree( (void **)>kAOOSSMixer ); gtkAOOSSMixer=strdup( gtk_entry_get_text( GTK_ENTRY( CEOssMixer ) ) ); |
1153 gfree( (void **)>kAOOSSDevice ); gtkAOOSSDevice=strdup( gtk_entry_get_text( GTK_ENTRY( CEOssDevice ) ) ); | |
6794 | 1154 case 0: |
1155 HideOSSConfig(); | |
1156 break; | |
1157 } | |
1158 } | |
2901 | 1159 |
6794 | 1160 GtkWidget * create_OSSConfig( void ) |
1161 { | |
1162 GList * CBOssDevice_items=NULL; | |
1163 GList * CBOssMixer_items=NULL; | |
8156 | 1164 GtkWidget * frame; |
6794 | 1165 GtkWidget * vbox604; |
1166 GtkWidget * table2; | |
8156 | 1167 GtkWidget * label; |
6794 | 1168 GtkWidget * hbuttonbox6; |
1169 GtkAccelGroup * accel_group; | |
1170 | |
1171 accel_group=gtk_accel_group_new(); | |
1172 | |
8043 | 1173 OSSConfig=gtk_window_new( GTK_WINDOW_TOPLEVEL ); |
6794 | 1174 gtk_widget_set_name( OSSConfig,"OSSConfig" ); |
1175 gtk_object_set_data( GTK_OBJECT( OSSConfig ),"OSSConfig",OSSConfig ); | |
1176 gtk_widget_set_usize( OSSConfig,270,92 ); | |
1177 gtk_window_set_title( GTK_WINDOW( OSSConfig ),MSGTR_OSSPreferences ); | |
1178 gtk_window_set_position( GTK_WINDOW( OSSConfig ),GTK_WIN_POS_CENTER ); | |
1179 gtk_window_set_policy( GTK_WINDOW( OSSConfig ),FALSE,FALSE,FALSE ); | |
1180 gtk_window_set_wmclass( GTK_WINDOW( OSSConfig ),"OSS Config","MPlayer" ); | |
2901 | 1181 |
6794 | 1182 gtk_widget_realize( OSSConfig ); |
1183 gtkAddIcon( OSSConfig ); | |
2901 | 1184 |
8156 | 1185 frame=AddFrame( NULL,GTK_SHADOW_IN,OSSConfig,1 ); |
1186 gtk_container_set_border_width( GTK_CONTAINER( frame ),1 ); | |
1187 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
1188 frame=AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,frame,1 ); | |
1189 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
6794 | 1190 |
8173 | 1191 vbox604=AddVBox( frame ); |
6794 | 1192 |
1193 table2=gtk_table_new( 2,2,FALSE ); | |
1194 gtk_widget_set_name( table2,"table2" ); | |
1195 gtk_widget_ref( table2 ); | |
1196 gtk_object_set_data_full( GTK_OBJECT( OSSConfig ),"table2",table2,(GtkDestroyNotify)gtk_widget_unref ); | |
1197 gtk_widget_show( table2 ); | |
1198 gtk_box_pack_start( GTK_BOX( vbox604 ),table2,TRUE,TRUE,0 ); | |
1199 | |
8156 | 1200 label=AddLabel( MSGTR_PREFERENCES_OSS_Device,NULL ); |
1201 gtk_table_attach( GTK_TABLE( table2 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
6794 | 1202 |
8156 | 1203 label=AddLabel( MSGTR_PREFERENCES_OSS_Mixer,NULL ); |
1204 gtk_table_attach( GTK_TABLE( table2 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
2901 | 1205 |
6794 | 1206 CBOssDevice=gtk_combo_new(); |
1207 gtk_widget_set_name( CBOssDevice,"CBOssDevice" ); | |
1208 gtk_widget_ref( CBOssDevice ); | |
1209 gtk_object_set_data_full( GTK_OBJECT( OSSConfig ),"CBOssDevice",CBOssDevice,(GtkDestroyNotify)gtk_widget_unref ); | |
1210 gtk_widget_show( CBOssDevice ); | |
1211 gtk_table_attach( GTK_TABLE( table2 ),CBOssDevice,1,2,0,1,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
1212 CBOssDevice_items=g_list_append( CBOssDevice_items,(gpointer)"/dev/dsp" ); | |
1213 CBOssDevice_items=g_list_append( CBOssDevice_items,(gpointer)"/dev/dsp0" ); | |
1214 CBOssDevice_items=g_list_append( CBOssDevice_items,(gpointer)"/dev/dsp1" ); | |
1215 CBOssDevice_items=g_list_append( CBOssDevice_items,(gpointer)"/dev/dsp2" ); | |
1216 CBOssDevice_items=g_list_append( CBOssDevice_items,(gpointer)"/dev/dsp3" ); | |
7706 | 1217 #ifdef HAVE_DXR3 |
1218 CBOssDevice_items=g_list_append( CBOssDevice_items,(gpointer)"/dev/em8300_ma" ); | |
1219 CBOssDevice_items=g_list_append( CBOssDevice_items,(gpointer)"/dev/em8300_ma-0" ); | |
1220 CBOssDevice_items=g_list_append( CBOssDevice_items,(gpointer)"/dev/em8300_ma-1" ); | |
1221 CBOssDevice_items=g_list_append( CBOssDevice_items,(gpointer)"/dev/em8300_ma-2" ); | |
1222 CBOssDevice_items=g_list_append( CBOssDevice_items,(gpointer)"/dev/em8300_ma-3" ); | |
1223 #endif | |
6794 | 1224 gtk_combo_set_popdown_strings( GTK_COMBO( CBOssDevice ),CBOssDevice_items ); |
1225 g_list_free( CBOssDevice_items ); | |
1226 | |
1227 CEOssDevice=GTK_COMBO( CBOssDevice )->entry; | |
1228 gtk_widget_set_name( CEOssDevice,"CEOssDevice" ); | |
1229 gtk_widget_ref( CEOssDevice ); | |
1230 gtk_object_set_data_full( GTK_OBJECT( OSSConfig ),"CEOssDevice",CEOssDevice,(GtkDestroyNotify)gtk_widget_unref ); | |
1231 gtk_widget_show( CEOssDevice ); | |
1232 | |
1233 CBOssMixer=gtk_combo_new(); | |
1234 gtk_widget_set_name( CBOssMixer,"CBOssMixer" ); | |
1235 gtk_widget_ref( CBOssMixer ); | |
1236 gtk_object_set_data_full( GTK_OBJECT( OSSConfig ),"CBOssMixer",CBOssMixer,(GtkDestroyNotify)gtk_widget_unref ); | |
1237 gtk_widget_show( CBOssMixer ); | |
1238 gtk_table_attach( GTK_TABLE( table2 ),CBOssMixer,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
1239 CBOssMixer_items=g_list_append( CBOssMixer_items,(gpointer)"/dev/mixer" ); | |
1240 CBOssMixer_items=g_list_append( CBOssMixer_items,(gpointer)"/dev/mixer0" ); | |
1241 CBOssMixer_items=g_list_append( CBOssMixer_items,(gpointer)"/dev/mixer1" ); | |
1242 CBOssMixer_items=g_list_append( CBOssMixer_items,(gpointer)"/dev/mixer2" ); | |
1243 CBOssMixer_items=g_list_append( CBOssMixer_items,(gpointer)"/dev/mixer3" ); | |
1244 gtk_combo_set_popdown_strings( GTK_COMBO( CBOssMixer ),CBOssMixer_items ); | |
1245 g_list_free( CBOssMixer_items ); | |
1246 | |
1247 CEOssMixer=GTK_COMBO( CBOssMixer )->entry; | |
1248 gtk_widget_set_name( CEOssMixer,"CEOssMixer" ); | |
1249 gtk_widget_ref( CEOssMixer ); | |
1250 gtk_object_set_data_full( GTK_OBJECT( OSSConfig ),"CEOssMixer",CEOssMixer,(GtkDestroyNotify)gtk_widget_unref ); | |
1251 gtk_widget_show( CEOssMixer ); | |
2901 | 1252 |
8173 | 1253 AddHSeparator( vbox604 ); |
6794 | 1254 |
8173 | 1255 hbuttonbox6=AddHButtonBox( vbox604 ); |
1256 gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox6 ),GTK_BUTTONBOX_END ); | |
1257 gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox6 ),10 ); | |
1258 BOssOk=AddButton( MSGTR_Ok,hbuttonbox6 ); | |
1259 BOssCancel=AddButton( MSGTR_Cancel,hbuttonbox6 ); | |
2901 | 1260 |
6794 | 1261 gtk_signal_connect( GTK_OBJECT( OSSConfig ),"destroy",GTK_SIGNAL_FUNC( ossDestroy ),NULL ); |
1262 gtk_signal_connect( GTK_OBJECT( OSSConfig ),"hide",GTK_SIGNAL_FUNC( ossShow ),(void*)0 ); | |
1263 gtk_signal_connect( GTK_OBJECT( OSSConfig ),"show",GTK_SIGNAL_FUNC( ossShow ),(void*)1 ); | |
1264 | |
1265 gtk_signal_connect( GTK_OBJECT( BOssOk ),"released",GTK_SIGNAL_FUNC( ossButton ),(void*)1 ); | |
1266 gtk_signal_connect( GTK_OBJECT( BOssCancel ),"released",GTK_SIGNAL_FUNC( ossButton ),(void*)0 ); | |
1267 | |
1268 gtk_widget_add_accelerator( BOssOk,"released",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); | |
1269 gtk_widget_add_accelerator( BOssCancel,"released",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); | |
1270 | |
1271 gtk_window_add_accel_group( GTK_WINDOW( OSSConfig ),accel_group ); | |
1272 | |
1273 return OSSConfig; | |
2901 | 1274 } |
6794 | 1275 |
7009 | 1276 #endif |
1277 | |
1278 #ifdef HAVE_DXR3 | |
1279 // --- dxr3 config box | |
1280 | |
1281 static GtkWidget * DXR3Config; | |
1282 static GtkWidget * CBDevice; | |
1283 static GtkWidget * CEDXR3Device; | |
1284 static GtkWidget * RBVNone; | |
8043 | 1285 #ifdef USE_LIBAVCODEC |
1286 static GtkWidget * RBVLavc; | |
1287 #endif | |
1288 #ifdef USE_LIBFAME | |
1289 static GtkWidget * RBVFame; | |
1290 #endif | |
7009 | 1291 static GtkWidget * dxr3BOk; |
1292 static GtkWidget * dxr3BCancel; | |
1293 | |
1294 static int gtkVDXR3Config = 0; | |
1295 | |
1296 GtkWidget * create_DXR3Config( void ); | |
1297 | |
1298 void ShowDXR3Config( void ) | |
1299 { | |
1300 if ( gtkVDXR3Config ) gtkActive( DXR3Config ); | |
1301 else DXR3Config=create_DXR3Config(); | |
1302 | |
7706 | 1303 gtk_entry_set_text( GTK_ENTRY( CEDXR3Device ),gtkDXR3Device ); |
1304 | |
7009 | 1305 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBVNone ),TRUE ); |
8043 | 1306 #ifdef USE_LIBAVCODEC |
7009 | 1307 if ( gtkVopLAVC ) gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBVLavc ),TRUE ); |
8043 | 1308 #endif |
1309 #ifdef USE_LIBFAME | |
7009 | 1310 if ( gtkVopFAME ) gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBVFame ),TRUE ); |
8043 | 1311 #endif |
7009 | 1312 |
1313 gtk_widget_show( DXR3Config ); | |
1314 gtkSetLayer( DXR3Config ); | |
1315 gtkVDXR3Config=1; | |
1316 } | |
1317 | |
1318 void HideDXR3Config( void ) | |
1319 { | |
1320 if ( !gtkVDXR3Config ) return; | |
1321 gtk_widget_hide( DXR3Config ); | |
1322 gtk_widget_destroy( DXR3Config ); | |
1323 gtkVDXR3Config=0; | |
1324 } | |
1325 | |
1326 static void dxr3Button( GtkButton * button,gpointer user_data ) | |
1327 { | |
1328 switch ( (int)user_data ) | |
1329 { | |
1330 case 0: // Ok | |
7706 | 1331 gfree( (void **)>kDXR3Device ); gtkDXR3Device=strdup( gtk_entry_get_text( GTK_ENTRY( CEDXR3Device ) ) ); |
8043 | 1332 #ifdef USE_LIBAVCODEC |
7009 | 1333 gtkVopLAVC=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBVLavc ) ); |
8043 | 1334 #endif |
1335 #ifdef USE_LIBFAME | |
7009 | 1336 gtkVopFAME=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBVFame ) ); |
8043 | 1337 #endif |
7009 | 1338 case 2: // Destroy |
1339 case 1: // Cancel | |
1340 HideDXR3Config(); | |
1341 break; | |
1342 case 3: // Show | |
1343 gtkVDXR3Config=1; | |
1344 break; | |
1345 case 4: // Hide | |
1346 gtkVDXR3Config=0; | |
1347 break; | |
1348 } | |
1349 } | |
1350 | |
1351 GtkWidget * create_DXR3Config( void ) | |
1352 { | |
8156 | 1353 GtkWidget * frame; |
7009 | 1354 GtkWidget * vbox1; |
1355 GtkWidget * vbox2; | |
1356 GtkWidget * hbox1; | |
1357 GList * CBDevice_items = NULL; | |
1358 GtkWidget * vbox3; | |
1359 GSList * VEncoder_group = NULL; | |
1360 GtkWidget * hbuttonbox1; | |
1361 GtkAccelGroup * accel_group; | |
1362 | |
1363 accel_group=gtk_accel_group_new(); | |
1364 | |
8043 | 1365 DXR3Config=gtk_window_new( GTK_WINDOW_TOPLEVEL ); |
7009 | 1366 gtk_widget_set_name( DXR3Config,"DXR3Config" ); |
1367 gtk_object_set_data( GTK_OBJECT( DXR3Config ),"DXR3Config",DXR3Config ); | |
8043 | 1368 // gtk_widget_set_usize( DXR3Config,300,156 ); |
7009 | 1369 GTK_WIDGET_SET_FLAGS( DXR3Config,GTK_CAN_DEFAULT ); |
1370 gtk_window_set_title( GTK_WINDOW( DXR3Config ),"DXR3/H+" ); | |
1371 gtk_window_set_position( GTK_WINDOW( DXR3Config ),GTK_WIN_POS_CENTER ); | |
1372 gtk_window_set_modal( GTK_WINDOW( DXR3Config ),TRUE ); | |
1373 gtk_window_set_policy( GTK_WINDOW( DXR3Config ),FALSE,FALSE,FALSE ); | |
1374 gtk_window_set_wmclass( GTK_WINDOW( DXR3Config ),"DXR3","MPlayer" ); | |
1375 | |
1376 gtk_widget_realize( DXR3Config ); | |
1377 gtkAddIcon( DXR3Config ); | |
1378 | |
8156 | 1379 frame=AddFrame( NULL,GTK_SHADOW_IN,DXR3Config,1 ); |
1380 gtk_container_set_border_width( GTK_CONTAINER( frame ),1 ); | |
1381 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
1382 frame=AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,frame,1 ); | |
1383 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
7009 | 1384 |
8173 | 1385 vbox1=AddVBox( frame ); |
1386 vbox2=AddVBox( vbox1 ); | |
1387 hbox1=AddHBox( vbox2,1 ); | |
8156 | 1388 AddLabel( MSGTR_PREFERENCES_OSS_Device,hbox1 ); |
7009 | 1389 |
1390 CBDevice=gtk_combo_new(); | |
1391 gtk_widget_set_name( CBDevice,"CBDevice" ); | |
1392 gtk_widget_ref( CBDevice ); | |
1393 gtk_object_set_data_full( GTK_OBJECT( DXR3Config ),"CBDevice",CBDevice,(GtkDestroyNotify)gtk_widget_unref ); | |
1394 gtk_widget_show( CBDevice ); | |
1395 gtk_box_pack_start( GTK_BOX( hbox1 ),CBDevice,TRUE,TRUE,0 ); | |
1396 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300" ); | |
7706 | 1397 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-0" ); |
1398 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-1" ); | |
1399 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-2" ); | |
1400 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-3" ); | |
7009 | 1401 gtk_combo_set_popdown_strings( GTK_COMBO( CBDevice ),CBDevice_items ); |
1402 g_list_free( CBDevice_items ); | |
1403 | |
1404 CEDXR3Device=GTK_COMBO( CBDevice )->entry; | |
1405 gtk_widget_set_name( CEDXR3Device,"CEDXR3Device" ); | |
1406 gtk_widget_ref( CEDXR3Device ); | |
1407 gtk_object_set_data_full( GTK_OBJECT( DXR3Config ),"CEDXR3Device",CEDXR3Device,(GtkDestroyNotify)gtk_widget_unref ); | |
1408 gtk_widget_show( CEDXR3Device ); | |
1409 gtk_entry_set_text( GTK_ENTRY( CEDXR3Device ),"/dev/em8300" ); | |
1410 | |
8043 | 1411 #if defined( USE_LIBAVCODEC ) || defined( USE_LIBFAME ) |
8173 | 1412 AddHSeparator( vbox2 ); |
1413 vbox3=AddVBox( vbox2 ); | |
8156 | 1414 AddLabel( MSGTR_PREFERENCES_DXR3_VENC,vbox3 ); |
8173 | 1415 RBVNone=AddRadioButton( MSGTR_PREFERENCES_None,&VEncoder_group,vbox3 ); |
8043 | 1416 #ifdef USE_LIBAVCODEC |
8173 | 1417 RBVLavc=AddRadioButton( MSGTR_PREFERENCES_DXR3_LAVC,&VEncoder_group,vbox3 ); |
1418 #endif | |
1419 #ifdef USE_LIBFAME | |
1420 RBVFame=AddRadioButton( MSGTR_PREFERENCES_DXR3_FAME,&VEncoder_group,vbox3 ); | |
8043 | 1421 #endif |
7009 | 1422 |
8043 | 1423 #endif |
7009 | 1424 |
8173 | 1425 AddHSeparator( vbox1 ); |
7009 | 1426 |
8173 | 1427 hbuttonbox1=AddHButtonBox( vbox1 ); |
1428 gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); | |
1429 gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); | |
1430 dxr3BOk=AddButton( MSGTR_Ok,hbuttonbox1 ); | |
1431 dxr3BCancel=AddButton( MSGTR_Cancel,hbuttonbox1 ); | |
7009 | 1432 |
1433 gtk_widget_add_accelerator( dxr3BOk,"released",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); | |
1434 gtk_widget_add_accelerator( dxr3BCancel,"released",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); | |
1435 | |
1436 gtk_signal_connect( GTK_OBJECT( DXR3Config ),"destroy",GTK_SIGNAL_FUNC( dxr3Button ),(void *)2 ); | |
1437 gtk_signal_connect( GTK_OBJECT( DXR3Config ),"show",GTK_SIGNAL_FUNC( dxr3Button ),(void *)3 ); | |
1438 gtk_signal_connect( GTK_OBJECT( DXR3Config ),"hide",GTK_SIGNAL_FUNC( dxr3Button ),(void *)4 ); | |
1439 | |
1440 gtk_signal_connect( GTK_OBJECT( dxr3BOk ),"released",GTK_SIGNAL_FUNC( dxr3Button ),(void *)0 ); | |
1441 gtk_signal_connect( GTK_OBJECT( dxr3BCancel ),"released",GTK_SIGNAL_FUNC( dxr3Button ),(void *)1 ); | |
1442 | |
1443 gtk_window_add_accel_group( GTK_WINDOW( DXR3Config ),accel_group ); | |
1444 | |
1445 return DXR3Config; | |
1446 } | |
1447 | |
1448 #endif |