Mercurial > mplayer.hg
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 |
rev | line source |
---|---|
6770 | 1 |
2 #include <stdlib.h> | |
3 #include <stdio.h> | |
4 #include <string.h> | |
5 | |
6 #include "../config.h" | |
7 #include "../mp_msg.h" | |
8 #include "../mplayer.h" | |
9 #include "../cfgparser.h" | |
10 | |
7019 | 11 #ifdef USE_SETLOCALE |
12 #include <locale.h> | |
13 #endif | |
14 | |
6770 | 15 #include "../../libvo/video_out.h" |
16 | |
17 #include "cfg.h" | |
6797
06d29dbdf20d
upsz, sorry, i forgott this :) (skin name saving:)
pontscho
parents:
6794
diff
changeset
|
18 #include "app.h" |
6770 | 19 #include "interface.h" |
20 #include "mplayer/play.h" | |
21 | |
22 // --- params | |
23 | |
24 int gtkEnableAudioEqualizer = 0; | |
25 | |
7009 | 26 int gtkVopPP = 0; |
8043 | 27 #ifdef USE_LIBAVCODEC |
28 int gtkVopLAVC = 0; | |
29 #endif | |
30 #ifdef USE_LIBFAME | |
31 int gtkVopFAME = 0; | |
32 #endif | |
7009 | 33 |
6770 | 34 int gtkAONorm = 0; |
35 int gtkAOSurround = 0; | |
36 int gtkAOExtraStereo = 0; | |
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 | 39 char * gtkAOOSSMixer; |
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 | 45 |
8284 | 46 int gtkCacheOn = 0; |
47 int gtkCacheSize = 2048; | |
48 | |
8311 | 49 int gtkAutoSyncOn = 0; |
50 int gtkAutoSync = 0; | |
51 | |
7706 | 52 #ifdef HAVE_DXR3 |
53 char * gtkDXR3Device; | |
54 #endif | |
55 | |
6770 | 56 int gtkSubDumpMPSub = 0; |
57 int gtkSubDumpSrt = 0; | |
58 | |
7538 | 59 int gtkLoadFullscreen = 0; |
9202 | 60 int gtkShowVideoWindow = 1; |
8974 | 61 int gtkEnablePlayBar = 1; |
7538 | 62 |
6770 | 63 // --- |
64 | |
65 extern char * get_path( char * filename ); | |
66 extern int flip; | |
67 extern int frame_dropping; | |
8308 | 68 extern int stop_xscreensaver; |
6770 | 69 |
70 static m_config_t * gui_conf; | |
71 static config_t gui_opts[] = | |
72 { | |
73 { "enable_audio_equ",>kEnableAudioEqualizer,CONF_TYPE_FLAG,0,0,1,NULL }, | |
74 | |
7582 | 75 { "vo_driver",&video_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL }, |
6770 | 76 { "vo_panscan",&vo_panscan,CONF_TYPE_FLOAT,CONF_RANGE,0.0,1.0,NULL }, |
77 { "vo_doublebuffering",&vo_doublebuffering,CONF_TYPE_FLAG,0,0,1,NULL }, | |
7019 | 78 { "vo_direct_render",&vo_directrendering,CONF_TYPE_FLAG,0,0,1,NULL }, |
7706 | 79 #ifdef HAVE_DXR3 |
80 { "vo_dxr3_device",>kDXR3Device,CONF_TYPE_STRING,0,0,0,NULL }, | |
81 #endif | |
6770 | 82 |
7019 | 83 { "v_framedrop",&frame_dropping,CONF_TYPE_INT,CONF_RANGE,0,2,NULL }, |
7139 | 84 { "v_flip",&flip,CONF_TYPE_INT,CONF_RANGE,-1,1,NULL }, |
7019 | 85 { "v_ni",&force_ni,CONF_TYPE_FLAG,0,0,1,NULL }, |
86 { "v_idx",&index_mode,CONF_TYPE_INT,CONF_RANGE,-1,2,NULL }, | |
7526 | 87 { "v_vfm",&video_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL }, |
88 { "a_afm",&audio_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL }, | |
7009 | 89 |
90 { "vf_pp",>kVopPP,CONF_TYPE_FLAG,0,0,1,NULL }, | |
7019 | 91 { "vf_autoq",&auto_quality,CONF_TYPE_INT,CONF_RANGE,0,100,NULL }, |
8043 | 92 #ifdef USE_LIBAVCODEC |
7009 | 93 { "vf_lavc",>kVopLAVC,CONF_TYPE_FLAG,0,0,1,NULL }, |
8043 | 94 #endif |
95 #ifdef USE_LIBFAME | |
7009 | 96 { "vf_fame",>kVopFAME,CONF_TYPE_FLAG,0,0,1,NULL }, |
8043 | 97 #endif |
6770 | 98 |
7582 | 99 { "ao_driver",&audio_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL }, |
6770 | 100 { "ao_volnorm",>kAONorm,CONF_TYPE_FLAG,0,0,1,NULL }, |
101 { "ao_surround",>kAOSurround,CONF_TYPE_FLAG,0,0,1,NULL }, | |
102 { "ao_extra_stereo",>kAOExtraStereo,CONF_TYPE_FLAG,0,0,1,NULL }, | |
103 { "ao_extra_stereo_coefficient",>kAOExtraStereoMul,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 | 105 { "ao_oss_mixer",>kAOOSSMixer,CONF_TYPE_STRING,0,0,0,NULL }, |
106 { "ao_oss_device",>kAOOSSDevice,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",>kAOSDLDriver,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 | 114 |
8886 | 115 { "osd_level",&osd_level,CONF_TYPE_INT,CONF_RANGE,0,3,NULL }, |
7019 | 116 { "sub_auto_load",&sub_auto,CONF_TYPE_FLAG,0,0,1,NULL }, |
117 { "sub_unicode",&sub_unicode,CONF_TYPE_FLAG,0,0,1,NULL }, | |
118 { "sub_pos",&sub_pos,CONF_TYPE_INT,CONF_RANGE,0,200,NULL }, | |
8717 | 119 { "sub_overlap",&suboverlap_enabled,CONF_TYPE_FLAG,0,0,0,NULL }, |
9056 | 120 { "sub_cp",&sub_cp,CONF_TYPE_STRING,0,0,0,NULL }, |
7019 | 121 { "font_factor",&font_factor,CONF_TYPE_FLOAT,CONF_RANGE,0.0,10.0,NULL }, |
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 | 124 { "font_encoding",&subtitle_font_encoding,CONF_TYPE_STRING,0,0,0,NULL }, |
125 { "font_text_scale",&text_font_scale_factor,CONF_TYPE_FLOAT,CONF_RANGE,0,100,NULL }, | |
126 { "font_osd_scale",&osd_font_scale_factor,CONF_TYPE_FLOAT,CONF_RANGE,0,100,NULL }, | |
7526 | 127 { "font_blur",&subtitle_font_radius,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL }, |
7139 | 128 { "font_outline",&subtitle_font_thickness,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL }, |
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 | 131 |
8311 | 132 { "cache",>kCacheOn,CONF_TYPE_FLAG,0,0,1,NULL }, |
8284 | 133 { "cache_size",>kCacheSize,CONF_TYPE_INT,CONF_RANGE,-1,65535,NULL }, |
8973 | 134 |
135 { "playbar",>kEnablePlayBar,CONF_TYPE_FLAG,0,0,1,NULL }, | |
7538 | 136 { "load_fullscreen",>kLoadFullscreen,CONF_TYPE_FLAG,0,0,1,NULL }, |
9202 | 137 { "show_videowin", >kShowVideoWindow,CONF_TYPE_FLAG,0,0,1,NULL }, |
8308 | 138 { "stopxscreensaver",&stop_xscreensaver,CONF_TYPE_FLAG,0,0,1,NULL }, |
8311 | 139 |
140 { "autosync",>kAutoSyncOn,CONF_TYPE_FLAG,0,0,1,NULL }, | |
141 { "autosync_size",>kAutoSync,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 | 144 |
145 { "equ_channel_1",>kEquChannel1,CONF_TYPE_STRING,0,0,0,NULL }, | |
146 { "equ_channel_2",>kEquChannel2,CONF_TYPE_STRING,0,0,0,NULL }, | |
147 { "equ_channel_3",>kEquChannel3,CONF_TYPE_STRING,0,0,0,NULL }, | |
148 { "equ_channel_4",>kEquChannel4,CONF_TYPE_STRING,0,0,0,NULL }, | |
149 { "equ_channel_5",>kEquChannel5,CONF_TYPE_STRING,0,0,0,NULL }, | |
150 { "equ_channel_6",>kEquChannel6,CONF_TYPE_STRING,0,0,0,NULL }, | |
151 | |
152 #if 1 | |
6840 | 153 #define audio_equ_row( i,j ) { "equ_band_"#i#j,>kEquChannels[i][j],CONF_TYPE_FLOAT,CONF_RANGE,-15.0,15.0,NULL }, |
6770 | 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 ) |
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 ) | |
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 ) | |
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 ) | |
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 ) | |
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 ) | |
160 #undef audio_equ_row | |
161 #endif | |
162 | |
163 { NULL, NULL, 0, 0, 0, 0, NULL } | |
164 }; | |
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 | 178 int cfg_read( void ) |
179 { | |
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 | 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 | 187 // -- read configuration |
188 mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[cfg] read config file: %s\n",cfg ); | |
8168 | 189 gui_conf=m_config_new( |
190 #ifndef NEW_CONFIG | |
191 play_tree_new() | |
192 #endif | |
193 ); | |
6770 | 194 m_config_register_options( gui_conf,gui_opts ); |
195 if ( m_config_parse_config_file( gui_conf,cfg ) < 0 ) | |
196 { | |
197 mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[cfg] config file read error ...\n" ); | |
7538 | 198 // exit( 1 ); |
6770 | 199 } |
200 free( cfg ); | |
201 | |
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 | 236 // -- reade file loader history |
237 cfg=get_path( "gui.history" ); | |
238 if ( (f=fopen( cfg,"rt+" )) ) | |
239 { | |
240 int i = 0; | |
241 while ( !feof( f ) ) | |
242 { | |
243 char tmp[512]; | |
244 if ( gfgets( tmp,512,f ) == NULL ) continue; | |
245 fsHistory[i++]=gstrdup( tmp ); | |
246 } | |
247 fclose( f ); | |
248 } | |
249 free( cfg ); | |
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 | 255 return 0; |
256 } | |
257 | |
258 int cfg_write( void ) | |
259 { | |
260 char * cfg = get_path( "gui.conf" ); | |
261 FILE * f; | |
262 int i; | |
263 | |
7019 | 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 | 266 #endif |
267 | |
6770 | 268 // -- save configuration |
269 if ( (f=fopen( cfg,"wt+" )) ) | |
270 { | |
271 for ( i=0;gui_opts[i].name;i++ ) | |
272 { | |
8168 | 273 #ifdef NEW_CONFIG |
274 char* v = m_option_print(&gui_opts[i],gui_opts[i].p); | |
275 if(v) { | |
276 fprintf( f,"%s = \"%s\"\n",gui_opts[i].name, v); | |
277 free(v); | |
278 } else if((int)v == -1) | |
279 mp_msg(MSGT_GPLAYER,MSGL_WARN,"Unable to save the %s option\n"); | |
280 #else | |
6770 | 281 switch ( gui_opts[i].type ) |
282 { | |
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 | 286 case CONF_TYPE_STRING: |
287 { | |
288 char * tmp = *( (char **)gui_opts[i].p ); | |
289 if ( tmp && tmp[0] ) fprintf( f,"%s = \"%s\"\n",gui_opts[i].name,tmp ); | |
290 break; | |
291 } | |
7526 | 292 case CONF_TYPE_STRING_LIST: |
293 { | |
7706 | 294 char ** tmp = *( (char ***)gui_opts[i].p ); |
7526 | 295 if ( tmp && tmp[0] && tmp[0][0] ) fprintf( f,"%s = \"%s\"\n",gui_opts[i].name,tmp[0] ); |
296 break; | |
297 } | |
6770 | 298 } |
8168 | 299 #endif |
6770 | 300 } |
301 fclose( f ); | |
302 } | |
303 free( cfg ); | |
304 | |
305 // -- save playlist | |
306 cfg=get_path( "gui.pl" ); | |
307 if ( (f=fopen( cfg,"wt+" )) ) | |
308 { | |
309 plCurrent=plList; | |
310 while ( plCurrent ) | |
311 { | |
312 if ( plCurrent->path && plCurrent->name ) | |
313 { | |
314 fprintf( f,"%s\n",plCurrent->path ); | |
315 fprintf( f,"%s\n",plCurrent->name ); | |
316 } | |
317 plCurrent=plCurrent->next; | |
318 } | |
319 fclose( f ); | |
320 } | |
321 free( cfg ); | |
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 | 336 // -- save file loader history |
337 cfg=get_path( "gui.history" ); | |
338 if ( (f=fopen( cfg,"wt+" )) ) | |
339 { | |
340 int i = 0; | |
341 // while ( fsHistory[i] != NULL ) | |
342 for ( i=0;i < 5; i++) | |
343 if( fsHistory[i] ) fprintf( f,"%s\n",fsHistory[i] ); | |
344 fclose( f ); | |
345 } | |
346 free( cfg ); | |
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 | 352 return 0; |
353 } | |
354 |