annotate Gui/cfg.c @ 9278:caea8ed36b48

The reason why mplayer crashes (in some cases) when using x11 output and -wid (>0) parameter is this: Mplayer by default creates a colormap using DirectColor visual. If the window given to mplayer uses TrueColor visual there will be an error when mplayer sets the colormap for the window. This patch modifies mplayer to use TrueColor visual if the window given to mplayer uses TrueColor. Another solution is to make sure that the window given to mplayer is created using DirectColor visual if it is supported by the display. Jouni Tulkki <jitulkki@cc.hut.fi>
author arpi
date Tue, 04 Feb 2003 18:31:44 +0000
parents c2f31ca14a92
children a9273ae50f59
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6770
pontscho
parents:
diff changeset
1
pontscho
parents:
diff changeset
2 #include <stdlib.h>
pontscho
parents:
diff changeset
3 #include <stdio.h>
pontscho
parents:
diff changeset
4 #include <string.h>
pontscho
parents:
diff changeset
5
pontscho
parents:
diff changeset
6 #include "../config.h"
pontscho
parents:
diff changeset
7 #include "../mp_msg.h"
pontscho
parents:
diff changeset
8 #include "../mplayer.h"
pontscho
parents:
diff changeset
9 #include "../cfgparser.h"
pontscho
parents:
diff changeset
10
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
11 #ifdef USE_SETLOCALE
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
12 #include <locale.h>
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
13 #endif
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
14
6770
pontscho
parents:
diff changeset
15 #include "../../libvo/video_out.h"
pontscho
parents:
diff changeset
16
pontscho
parents:
diff changeset
17 #include "cfg.h"
6797
06d29dbdf20d upsz, sorry, i forgott this :) (skin name saving:)
pontscho
parents: 6794
diff changeset
18 #include "app.h"
6770
pontscho
parents:
diff changeset
19 #include "interface.h"
pontscho
parents:
diff changeset
20 #include "mplayer/play.h"
pontscho
parents:
diff changeset
21
pontscho
parents:
diff changeset
22 // --- params
pontscho
parents:
diff changeset
23
pontscho
parents:
diff changeset
24 int gtkEnableAudioEqualizer = 0;
pontscho
parents:
diff changeset
25
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6912
diff changeset
26 int gtkVopPP = 0;
8043
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
27 #ifdef USE_LIBAVCODEC
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
28 int gtkVopLAVC = 0;
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
29 #endif
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
30 #ifdef USE_LIBFAME
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
31 int gtkVopFAME = 0;
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
32 #endif
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6912
diff changeset
33
6770
pontscho
parents:
diff changeset
34 int gtkAONorm = 0;
pontscho
parents:
diff changeset
35 int gtkAOSurround = 0;
pontscho
parents:
diff changeset
36 int gtkAOExtraStereo = 0;
pontscho
parents:
diff changeset
37 float gtkAOExtraStereoMul = 1.0;
8600
54eac4cf587c Lots of functions and variables specific to OSS audio are used without
arpi
parents: 8311
diff changeset
38 #ifdef USE_OSS_AUDIO
6770
pontscho
parents:
diff changeset
39 char * gtkAOOSSMixer;
pontscho
parents:
diff changeset
40 char * gtkAOOSSDevice;
8600
54eac4cf587c Lots of functions and variables specific to OSS audio are used without
arpi
parents: 8311
diff changeset
41 #endif
8714
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8600
diff changeset
42 #ifdef HAVE_SDL
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8600
diff changeset
43 char * gtkAOSDLDriver;
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8600
diff changeset
44 #endif
6770
pontscho
parents:
diff changeset
45
8284
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8276
diff changeset
46 int gtkCacheOn = 0;
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8276
diff changeset
47 int gtkCacheSize = 2048;
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8276
diff changeset
48
8311
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
49 int gtkAutoSyncOn = 0;
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
50 int gtkAutoSync = 0;
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
51
7706
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
52 #ifdef HAVE_DXR3
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
53 char * gtkDXR3Device;
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
54 #endif
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
55
6770
pontscho
parents:
diff changeset
56 int gtkSubDumpMPSub = 0;
pontscho
parents:
diff changeset
57 int gtkSubDumpSrt = 0;
pontscho
parents:
diff changeset
58
7538
c7b61f316edf - add "start in fullscreen" function
pontscho
parents: 7526
diff changeset
59 int gtkLoadFullscreen = 0;
9202
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9056
diff changeset
60 int gtkShowVideoWindow = 1;
8974
pontscho
parents: 8973
diff changeset
61 int gtkEnablePlayBar = 1;
7538
c7b61f316edf - add "start in fullscreen" function
pontscho
parents: 7526
diff changeset
62
6770
pontscho
parents:
diff changeset
63 // ---
pontscho
parents:
diff changeset
64
pontscho
parents:
diff changeset
65 extern char * get_path( char * filename );
pontscho
parents:
diff changeset
66 extern int flip;
pontscho
parents:
diff changeset
67 extern int frame_dropping;
8308
6ea0feac9d42 add stop_xscreensaver
pontscho
parents: 8284
diff changeset
68 extern int stop_xscreensaver;
6770
pontscho
parents:
diff changeset
69
pontscho
parents:
diff changeset
70 static m_config_t * gui_conf;
pontscho
parents:
diff changeset
71 static config_t gui_opts[] =
pontscho
parents:
diff changeset
72 {
pontscho
parents:
diff changeset
73 { "enable_audio_equ",&gtkEnableAudioEqualizer,CONF_TYPE_FLAG,0,0,1,NULL },
pontscho
parents:
diff changeset
74
7582
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
75 { "vo_driver",&video_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
6770
pontscho
parents:
diff changeset
76 { "vo_panscan",&vo_panscan,CONF_TYPE_FLOAT,CONF_RANGE,0.0,1.0,NULL },
pontscho
parents:
diff changeset
77 { "vo_doublebuffering",&vo_doublebuffering,CONF_TYPE_FLAG,0,0,1,NULL },
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
78 { "vo_direct_render",&vo_directrendering,CONF_TYPE_FLAG,0,0,1,NULL },
7706
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
79 #ifdef HAVE_DXR3
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
80 { "vo_dxr3_device",&gtkDXR3Device,CONF_TYPE_STRING,0,0,0,NULL },
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
81 #endif
6770
pontscho
parents:
diff changeset
82
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
83 { "v_framedrop",&frame_dropping,CONF_TYPE_INT,CONF_RANGE,0,2,NULL },
7139
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7092
diff changeset
84 { "v_flip",&flip,CONF_TYPE_INT,CONF_RANGE,-1,1,NULL },
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
85 { "v_ni",&force_ni,CONF_TYPE_FLAG,0,0,1,NULL },
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
86 { "v_idx",&index_mode,CONF_TYPE_INT,CONF_RANGE,-1,2,NULL },
7526
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
87 { "v_vfm",&video_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
88 { "a_afm",&audio_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6912
diff changeset
89
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6912
diff changeset
90 { "vf_pp",&gtkVopPP,CONF_TYPE_FLAG,0,0,1,NULL },
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
91 { "vf_autoq",&auto_quality,CONF_TYPE_INT,CONF_RANGE,0,100,NULL },
8043
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
92 #ifdef USE_LIBAVCODEC
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6912
diff changeset
93 { "vf_lavc",&gtkVopLAVC,CONF_TYPE_FLAG,0,0,1,NULL },
8043
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
94 #endif
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
95 #ifdef USE_LIBFAME
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6912
diff changeset
96 { "vf_fame",&gtkVopFAME,CONF_TYPE_FLAG,0,0,1,NULL },
8043
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
97 #endif
6770
pontscho
parents:
diff changeset
98
7582
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
99 { "ao_driver",&audio_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
6770
pontscho
parents:
diff changeset
100 { "ao_volnorm",&gtkAONorm,CONF_TYPE_FLAG,0,0,1,NULL },
pontscho
parents:
diff changeset
101 { "ao_surround",&gtkAOSurround,CONF_TYPE_FLAG,0,0,1,NULL },
pontscho
parents:
diff changeset
102 { "ao_extra_stereo",&gtkAOExtraStereo,CONF_TYPE_FLAG,0,0,1,NULL },
pontscho
parents:
diff changeset
103 { "ao_extra_stereo_coefficient",&gtkAOExtraStereoMul,CONF_TYPE_FLOAT,CONF_RANGE,-10,10,NULL },
8600
54eac4cf587c Lots of functions and variables specific to OSS audio are used without
arpi
parents: 8311
diff changeset
104 #ifdef USE_OSS_AUDIO
6770
pontscho
parents:
diff changeset
105 { "ao_oss_mixer",&gtkAOOSSMixer,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
106 { "ao_oss_device",&gtkAOOSSDevice,CONF_TYPE_STRING,0,0,0,NULL },
8600
54eac4cf587c Lots of functions and variables specific to OSS audio are used without
arpi
parents: 8311
diff changeset
107 #endif
8714
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8600
diff changeset
108 #ifdef HAVE_SDL
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8600
diff changeset
109 { "ao_sdl_subdriver",&gtkAOSDLDriver,CONF_TYPE_STRING,0,0,0,NULL },
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8600
diff changeset
110 #endif
8933
bfe1b826cff1 add DVD and CDRom device entry's, and fix two 10l bug
pontscho
parents: 8920
diff changeset
111
bfe1b826cff1 add DVD and CDRom device entry's, and fix two 10l bug
pontscho
parents: 8920
diff changeset
112 { "dvd_device",&dvd_device,CONF_TYPE_STRING,0,0,0,NULL },
bfe1b826cff1 add DVD and CDRom device entry's, and fix two 10l bug
pontscho
parents: 8920
diff changeset
113 { "cdrom_device",&cdrom_device,CONF_TYPE_STRING,0,0,0,NULL },
6770
pontscho
parents:
diff changeset
114
8886
d32accfed8e6 add osd_level=3 support
pontscho
parents: 8717
diff changeset
115 { "osd_level",&osd_level,CONF_TYPE_INT,CONF_RANGE,0,3,NULL },
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
116 { "sub_auto_load",&sub_auto,CONF_TYPE_FLAG,0,0,1,NULL },
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
117 { "sub_unicode",&sub_unicode,CONF_TYPE_FLAG,0,0,1,NULL },
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
118 { "sub_pos",&sub_pos,CONF_TYPE_INT,CONF_RANGE,0,200,NULL },
8717
2df4e9d9922d add overlapping to preferences
pontscho
parents: 8714
diff changeset
119 { "sub_overlap",&suboverlap_enabled,CONF_TYPE_FLAG,0,0,0,NULL },
9056
3086611e8213 - add subcp
pontscho
parents: 9055
diff changeset
120 { "sub_cp",&sub_cp,CONF_TYPE_STRING,0,0,0,NULL },
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
121 { "font_factor",&font_factor,CONF_TYPE_FLOAT,CONF_RANGE,0.0,10.0,NULL },
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
122 { "font_name",&font_name,CONF_TYPE_STRING,0,0,0,NULL },
7146
c3f4a1c124ed This patch fixes a compile error when HAVE_FREETYPE is not defined.
arpi
parents: 7139
diff changeset
123 #ifdef HAVE_FREETYPE
7139
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7092
diff changeset
124 { "font_encoding",&subtitle_font_encoding,CONF_TYPE_STRING,0,0,0,NULL },
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7092
diff changeset
125 { "font_text_scale",&text_font_scale_factor,CONF_TYPE_FLOAT,CONF_RANGE,0,100,NULL },
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7092
diff changeset
126 { "font_osd_scale",&osd_font_scale_factor,CONF_TYPE_FLOAT,CONF_RANGE,0,100,NULL },
7526
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
127 { "font_blur",&subtitle_font_radius,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL },
7139
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7092
diff changeset
128 { "font_outline",&subtitle_font_thickness,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL },
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7092
diff changeset
129 { "font_autoscale",&subtitle_autoscale,CONF_TYPE_INT,CONF_RANGE,0,3,NULL },
7146
c3f4a1c124ed This patch fixes a compile error when HAVE_FREETYPE is not defined.
arpi
parents: 7139
diff changeset
130 #endif
7526
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
131
8311
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
132 { "cache",&gtkCacheOn,CONF_TYPE_FLAG,0,0,1,NULL },
8284
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8276
diff changeset
133 { "cache_size",&gtkCacheSize,CONF_TYPE_INT,CONF_RANGE,-1,65535,NULL },
8973
0a665389cf2b - add playbar
pontscho
parents: 8933
diff changeset
134
0a665389cf2b - add playbar
pontscho
parents: 8933
diff changeset
135 { "playbar",&gtkEnablePlayBar,CONF_TYPE_FLAG,0,0,1,NULL },
7538
c7b61f316edf - add "start in fullscreen" function
pontscho
parents: 7526
diff changeset
136 { "load_fullscreen",&gtkLoadFullscreen,CONF_TYPE_FLAG,0,0,1,NULL },
9202
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9056
diff changeset
137 { "show_videowin", &gtkShowVideoWindow,CONF_TYPE_FLAG,0,0,1,NULL },
8308
6ea0feac9d42 add stop_xscreensaver
pontscho
parents: 8284
diff changeset
138 { "stopxscreensaver",&stop_xscreensaver,CONF_TYPE_FLAG,0,0,1,NULL },
8311
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
139
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
140 { "autosync",&gtkAutoSyncOn,CONF_TYPE_FLAG,0,0,1,NULL },
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
141 { "autosync_size",&gtkAutoSync,CONF_TYPE_INT,CONF_RANGE,0,10000,NULL },
6797
06d29dbdf20d upsz, sorry, i forgott this :) (skin name saving:)
pontscho
parents: 6794
diff changeset
142
06d29dbdf20d upsz, sorry, i forgott this :) (skin name saving:)
pontscho
parents: 6794
diff changeset
143 { "gui_skin",&skinName,CONF_TYPE_STRING,0,0,0,NULL },
6770
pontscho
parents:
diff changeset
144
pontscho
parents:
diff changeset
145 { "equ_channel_1",&gtkEquChannel1,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
146 { "equ_channel_2",&gtkEquChannel2,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
147 { "equ_channel_3",&gtkEquChannel3,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
148 { "equ_channel_4",&gtkEquChannel4,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
149 { "equ_channel_5",&gtkEquChannel5,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
150 { "equ_channel_6",&gtkEquChannel6,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
151
pontscho
parents:
diff changeset
152 #if 1
6840
ed02bae611d5 - some cosmetic change in preferences
pontscho
parents: 6797
diff changeset
153 #define audio_equ_row( i,j ) { "equ_band_"#i#j,&gtkEquChannels[i][j],CONF_TYPE_FLOAT,CONF_RANGE,-15.0,15.0,NULL },
6770
pontscho
parents:
diff changeset
154 audio_equ_row( 0,0 ) audio_equ_row( 0,1 ) audio_equ_row( 0,2 ) audio_equ_row( 0,3 ) audio_equ_row( 0,4 ) audio_equ_row( 0,5 ) audio_equ_row( 0,6 ) audio_equ_row( 0,7 ) audio_equ_row( 0,8 ) audio_equ_row( 0,9 )
pontscho
parents:
diff changeset
155 audio_equ_row( 1,0 ) audio_equ_row( 1,1 ) audio_equ_row( 1,2 ) audio_equ_row( 1,3 ) audio_equ_row( 1,4 ) audio_equ_row( 1,5 ) audio_equ_row( 1,6 ) audio_equ_row( 1,7 ) audio_equ_row( 1,8 ) audio_equ_row( 1,9 )
pontscho
parents:
diff changeset
156 audio_equ_row( 2,0 ) audio_equ_row( 2,1 ) audio_equ_row( 2,2 ) audio_equ_row( 2,3 ) audio_equ_row( 2,4 ) audio_equ_row( 2,5 ) audio_equ_row( 2,6 ) audio_equ_row( 2,7 ) audio_equ_row( 2,8 ) audio_equ_row( 2,9 )
pontscho
parents:
diff changeset
157 audio_equ_row( 3,0 ) audio_equ_row( 3,1 ) audio_equ_row( 3,2 ) audio_equ_row( 3,3 ) audio_equ_row( 3,4 ) audio_equ_row( 3,5 ) audio_equ_row( 3,6 ) audio_equ_row( 3,7 ) audio_equ_row( 3,8 ) audio_equ_row( 3,9 )
pontscho
parents:
diff changeset
158 audio_equ_row( 4,0 ) audio_equ_row( 4,1 ) audio_equ_row( 4,2 ) audio_equ_row( 4,3 ) audio_equ_row( 4,4 ) audio_equ_row( 4,5 ) audio_equ_row( 4,6 ) audio_equ_row( 4,7 ) audio_equ_row( 4,8 ) audio_equ_row( 4,9 )
pontscho
parents:
diff changeset
159 audio_equ_row( 5,0 ) audio_equ_row( 5,1 ) audio_equ_row( 5,2 ) audio_equ_row( 5,3 ) audio_equ_row( 5,4 ) audio_equ_row( 5,5 ) audio_equ_row( 5,6 ) audio_equ_row( 5,7 ) audio_equ_row( 5,8 ) audio_equ_row( 5,9 )
pontscho
parents:
diff changeset
160 #undef audio_equ_row
pontscho
parents:
diff changeset
161 #endif
pontscho
parents:
diff changeset
162
pontscho
parents:
diff changeset
163 { NULL, NULL, 0, 0, 0, 0, NULL }
pontscho
parents:
diff changeset
164 };
pontscho
parents:
diff changeset
165
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
166 char * gfgets( char * str, int size, FILE * f )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
167 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
168 char * s = fgets( str,size,f );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
169 char c;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
170 if ( s )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
171 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
172 c=s[ strlen( s ) - 1 ]; if ( c == '\n' || c == '\r' ) s[ strlen( s ) - 1 ]=0;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
173 c=s[ strlen( s ) - 1 ]; if ( c == '\n' || c == '\r' ) s[ strlen( s ) - 1 ]=0;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
174 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
175 return s;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
176 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
177
6770
pontscho
parents:
diff changeset
178 int cfg_read( void )
pontscho
parents:
diff changeset
179 {
pontscho
parents:
diff changeset
180 char * cfg = get_path( "gui.conf" );
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
181 FILE * f;
6770
pontscho
parents:
diff changeset
182
7283
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
183 #ifdef USE_SETLOCALE
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
184 setlocale( LC_ALL,"C" );
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
185 #endif
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
186
6770
pontscho
parents:
diff changeset
187 // -- read configuration
pontscho
parents:
diff changeset
188 mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[cfg] read config file: %s\n",cfg );
8168
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
189 gui_conf=m_config_new(
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
190 #ifndef NEW_CONFIG
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
191 play_tree_new()
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
192 #endif
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
193 );
6770
pontscho
parents:
diff changeset
194 m_config_register_options( gui_conf,gui_opts );
pontscho
parents:
diff changeset
195 if ( m_config_parse_config_file( gui_conf,cfg ) < 0 )
pontscho
parents:
diff changeset
196 {
pontscho
parents:
diff changeset
197 mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[cfg] config file read error ...\n" );
7538
c7b61f316edf - add "start in fullscreen" function
pontscho
parents: 7526
diff changeset
198 // exit( 1 );
6770
pontscho
parents:
diff changeset
199 }
pontscho
parents:
diff changeset
200 free( cfg );
pontscho
parents:
diff changeset
201
pontscho
parents:
diff changeset
202 // -- read pl
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
203 cfg=get_path( "gui.pl" );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
204 if ( (f=fopen( cfg,"rt" )) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
205 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
206 while ( !feof( f ) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
207 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
208 char tmp[512]; plItem * item;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
209 if ( gfgets( tmp,512,f ) == NULL ) continue;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
210 item=calloc( 1,sizeof( plItem ) );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
211 item->path=strdup( tmp );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
212 gfgets( tmp,512,f );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
213 item->name=strdup( tmp );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
214 gtkSet( gtkAddPlItem,0,(void*)item );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
215 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
216 fclose( f );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
217 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
218 free( cfg );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
219
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
220 //-- read previously visited urls
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
221 cfg=get_path( "gui.url" );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
222 if ( (f=fopen( cfg,"rt" )) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
223 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
224 while ( !feof( f ) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
225 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
226 char tmp[512]; URLItem * item;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
227 if ( gfgets( tmp,512,f ) == NULL ) continue;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
228 item=calloc( 1,sizeof( URLItem ) );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
229 item->url=strdup( tmp );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
230 gtkSet( gtkAddURLItem,0,(void*)item );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
231 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
232 fclose( f );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
233 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
234 free( cfg );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
235
9055
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
236 // -- reade file loader history
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
237 cfg=get_path( "gui.history" );
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
238 if ( (f=fopen( cfg,"rt+" )) )
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
239 {
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
240 int i = 0;
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
241 while ( !feof( f ) )
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
242 {
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
243 char tmp[512];
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
244 if ( gfgets( tmp,512,f ) == NULL ) continue;
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
245 fsHistory[i++]=gstrdup( tmp );
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
246 }
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
247 fclose( f );
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
248 }
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
249 free( cfg );
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
250
7283
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
251 #ifdef USE_SETLOCALE
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
252 setlocale( LC_ALL,"" );
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
253 #endif
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
254
6770
pontscho
parents:
diff changeset
255 return 0;
pontscho
parents:
diff changeset
256 }
pontscho
parents:
diff changeset
257
pontscho
parents:
diff changeset
258 int cfg_write( void )
pontscho
parents:
diff changeset
259 {
pontscho
parents:
diff changeset
260 char * cfg = get_path( "gui.conf" );
pontscho
parents:
diff changeset
261 FILE * f;
pontscho
parents:
diff changeset
262 int i;
pontscho
parents:
diff changeset
263
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
264 #ifdef USE_SETLOCALE
7283
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
265 setlocale( LC_ALL,"C" );
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
266 #endif
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
267
6770
pontscho
parents:
diff changeset
268 // -- save configuration
pontscho
parents:
diff changeset
269 if ( (f=fopen( cfg,"wt+" )) )
pontscho
parents:
diff changeset
270 {
pontscho
parents:
diff changeset
271 for ( i=0;gui_opts[i].name;i++ )
pontscho
parents:
diff changeset
272 {
8168
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
273 #ifdef NEW_CONFIG
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
274 char* v = m_option_print(&gui_opts[i],gui_opts[i].p);
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
275 if(v) {
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
276 fprintf( f,"%s = \"%s\"\n",gui_opts[i].name, v);
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
277 free(v);
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
278 } else if((int)v == -1)
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
279 mp_msg(MSGT_GPLAYER,MSGL_WARN,"Unable to save the %s option\n");
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
280 #else
6770
pontscho
parents:
diff changeset
281 switch ( gui_opts[i].type )
pontscho
parents:
diff changeset
282 {
pontscho
parents:
diff changeset
283 case CONF_TYPE_INT:
7283
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
284 case CONF_TYPE_FLAG: fprintf( f,"%s = %d\n",gui_opts[i].name,*( (int *)gui_opts[i].p ) ); break;
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
285 case CONF_TYPE_FLOAT: fprintf( f,"%s = %f\n",gui_opts[i].name,*( (float *)gui_opts[i].p ) ); break;
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6770
diff changeset
286 case CONF_TYPE_STRING:
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6770
diff changeset
287 {
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6770
diff changeset
288 char * tmp = *( (char **)gui_opts[i].p );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6770
diff changeset
289 if ( tmp && tmp[0] ) fprintf( f,"%s = \"%s\"\n",gui_opts[i].name,tmp );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6770
diff changeset
290 break;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6770
diff changeset
291 }
7526
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
292 case CONF_TYPE_STRING_LIST:
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
293 {
7706
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
294 char ** tmp = *( (char ***)gui_opts[i].p );
7526
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
295 if ( tmp && tmp[0] && tmp[0][0] ) fprintf( f,"%s = \"%s\"\n",gui_opts[i].name,tmp[0] );
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
296 break;
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
297 }
6770
pontscho
parents:
diff changeset
298 }
8168
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
299 #endif
6770
pontscho
parents:
diff changeset
300 }
pontscho
parents:
diff changeset
301 fclose( f );
pontscho
parents:
diff changeset
302 }
pontscho
parents:
diff changeset
303 free( cfg );
pontscho
parents:
diff changeset
304
pontscho
parents:
diff changeset
305 // -- save playlist
pontscho
parents:
diff changeset
306 cfg=get_path( "gui.pl" );
pontscho
parents:
diff changeset
307 if ( (f=fopen( cfg,"wt+" )) )
pontscho
parents:
diff changeset
308 {
pontscho
parents:
diff changeset
309 plCurrent=plList;
pontscho
parents:
diff changeset
310 while ( plCurrent )
pontscho
parents:
diff changeset
311 {
pontscho
parents:
diff changeset
312 if ( plCurrent->path && plCurrent->name )
pontscho
parents:
diff changeset
313 {
pontscho
parents:
diff changeset
314 fprintf( f,"%s\n",plCurrent->path );
pontscho
parents:
diff changeset
315 fprintf( f,"%s\n",plCurrent->name );
pontscho
parents:
diff changeset
316 }
pontscho
parents:
diff changeset
317 plCurrent=plCurrent->next;
pontscho
parents:
diff changeset
318 }
pontscho
parents:
diff changeset
319 fclose( f );
pontscho
parents:
diff changeset
320 }
pontscho
parents:
diff changeset
321 free( cfg );
pontscho
parents:
diff changeset
322
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
323 // -- save URL's
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
324 cfg=get_path( "gui.url" );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
325 if ( (f=fopen( cfg,"wt+" )) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
326 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
327 while ( URLList )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
328 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
329 if ( URLList->url ) fprintf( f,"%s\n",URLList->url );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
330 URLList=URLList->next;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
331 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
332 fclose( f );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
333 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
334 free( cfg );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
335
9055
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
336 // -- save file loader history
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
337 cfg=get_path( "gui.history" );
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
338 if ( (f=fopen( cfg,"wt+" )) )
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
339 {
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
340 int i = 0;
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
341 // while ( fsHistory[i] != NULL )
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
342 for ( i=0;i < 5; i++)
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
343 if( fsHistory[i] ) fprintf( f,"%s\n",fsHistory[i] );
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
344 fclose( f );
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
345 }
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
346 free( cfg );
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8974
diff changeset
347
7283
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
348 #ifdef USE_SETLOCALE
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
349 setlocale( LC_ALL,"" );
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
350 #endif
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
351
6770
pontscho
parents:
diff changeset
352 return 0;
pontscho
parents:
diff changeset
353 }
pontscho
parents:
diff changeset
354