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