annotate Gui/cfg.c @ 8635:81dbd28ef7c0

these patches let ,,oldstyle'' and freetype subtitle renderers live together happily. if an oldstyle subtitle (font.desc) is found, it will be used. otherwise mplayer will choose subfont.ttf, if freetype was detected during ./configure. (also you can use -font /path/to/font.desc and -font /path/to/foobar.ttf too) patch-set by Wojtek Kaniewski <wojtekka@bydg.pdi.net>
author arpi
date Sun, 29 Dec 2002 14:59:23 +0000
parents 54eac4cf587c
children a88f827ec563
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 gtkAONoSound = 0;
pontscho
parents:
diff changeset
35 int gtkAONorm = 0;
pontscho
parents:
diff changeset
36 int gtkAOSurround = 0;
pontscho
parents:
diff changeset
37 int gtkAOExtraStereo = 0;
pontscho
parents:
diff changeset
38 float gtkAOExtraStereoMul = 1.0;
8600
54eac4cf587c Lots of functions and variables specific to OSS audio are used without
arpi
parents: 8311
diff changeset
39 #ifdef USE_OSS_AUDIO
6770
pontscho
parents:
diff changeset
40 char * gtkAOOSSMixer;
pontscho
parents:
diff changeset
41 char * gtkAOOSSDevice;
8600
54eac4cf587c Lots of functions and variables specific to OSS audio are used without
arpi
parents: 8311
diff changeset
42 #endif
6770
pontscho
parents:
diff changeset
43
8284
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8276
diff changeset
44 int gtkCacheOn = 0;
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8276
diff changeset
45 int gtkCacheSize = 2048;
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8276
diff changeset
46
8311
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
47 int gtkAutoSyncOn = 0;
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
48 int gtkAutoSync = 0;
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
49
7706
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
50 #ifdef HAVE_DXR3
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
51 char * gtkDXR3Device;
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
52 #endif
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
53
6770
pontscho
parents:
diff changeset
54 int gtkSubDumpMPSub = 0;
pontscho
parents:
diff changeset
55 int gtkSubDumpSrt = 0;
pontscho
parents:
diff changeset
56
7538
c7b61f316edf - add "start in fullscreen" function
pontscho
parents: 7526
diff changeset
57 int gtkLoadFullscreen = 0;
c7b61f316edf - add "start in fullscreen" function
pontscho
parents: 7526
diff changeset
58
6770
pontscho
parents:
diff changeset
59 // ---
pontscho
parents:
diff changeset
60
pontscho
parents:
diff changeset
61 extern char * get_path( char * filename );
pontscho
parents:
diff changeset
62 extern int flip;
pontscho
parents:
diff changeset
63 extern int frame_dropping;
8308
6ea0feac9d42 add stop_xscreensaver
pontscho
parents: 8284
diff changeset
64 extern int stop_xscreensaver;
6770
pontscho
parents:
diff changeset
65
pontscho
parents:
diff changeset
66 static m_config_t * gui_conf;
pontscho
parents:
diff changeset
67 static config_t gui_opts[] =
pontscho
parents:
diff changeset
68 {
pontscho
parents:
diff changeset
69 { "enable_audio_equ",&gtkEnableAudioEqualizer,CONF_TYPE_FLAG,0,0,1,NULL },
pontscho
parents:
diff changeset
70
7582
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
71 { "vo_driver",&video_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
6770
pontscho
parents:
diff changeset
72 { "vo_panscan",&vo_panscan,CONF_TYPE_FLOAT,CONF_RANGE,0.0,1.0,NULL },
pontscho
parents:
diff changeset
73 { "vo_doublebuffering",&vo_doublebuffering,CONF_TYPE_FLAG,0,0,1,NULL },
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
74 { "vo_direct_render",&vo_directrendering,CONF_TYPE_FLAG,0,0,1,NULL },
7706
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
75 #ifdef HAVE_DXR3
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
76 { "vo_dxr3_device",&gtkDXR3Device,CONF_TYPE_STRING,0,0,0,NULL },
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
77 #endif
6770
pontscho
parents:
diff changeset
78
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
79 { "v_framedrop",&frame_dropping,CONF_TYPE_INT,CONF_RANGE,0,2,NULL },
7139
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7092
diff changeset
80 { "v_flip",&flip,CONF_TYPE_INT,CONF_RANGE,-1,1,NULL },
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
81 { "v_ni",&force_ni,CONF_TYPE_FLAG,0,0,1,NULL },
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
82 { "v_idx",&index_mode,CONF_TYPE_INT,CONF_RANGE,-1,2,NULL },
7526
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
83 { "v_vfm",&video_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
84 { "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
85
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6912
diff changeset
86 { "vf_pp",&gtkVopPP,CONF_TYPE_FLAG,0,0,1,NULL },
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
87 { "vf_autoq",&auto_quality,CONF_TYPE_INT,CONF_RANGE,0,100,NULL },
8043
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
88 #ifdef USE_LIBAVCODEC
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6912
diff changeset
89 { "vf_lavc",&gtkVopLAVC,CONF_TYPE_FLAG,0,0,1,NULL },
8043
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
90 #endif
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
91 #ifdef USE_LIBFAME
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6912
diff changeset
92 { "vf_fame",&gtkVopFAME,CONF_TYPE_FLAG,0,0,1,NULL },
8043
e5dda05f9aab cleanup
pontscho
parents: 7706
diff changeset
93 #endif
6770
pontscho
parents:
diff changeset
94
7582
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
95 { "ao_driver",&audio_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
6770
pontscho
parents:
diff changeset
96 { "ao_nosound",&gtkAONoSound,CONF_TYPE_FLAG,0,0,1,NULL },
pontscho
parents:
diff changeset
97 { "ao_volnorm",&gtkAONorm,CONF_TYPE_FLAG,0,0,1,NULL },
pontscho
parents:
diff changeset
98 { "ao_surround",&gtkAOSurround,CONF_TYPE_FLAG,0,0,1,NULL },
pontscho
parents:
diff changeset
99 { "ao_extra_stereo",&gtkAOExtraStereo,CONF_TYPE_FLAG,0,0,1,NULL },
pontscho
parents:
diff changeset
100 { "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
101 #ifdef USE_OSS_AUDIO
6770
pontscho
parents:
diff changeset
102 { "ao_oss_mixer",&gtkAOOSSMixer,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
103 { "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
104 #endif
6770
pontscho
parents:
diff changeset
105
pontscho
parents:
diff changeset
106 { "osd_level",&osd_level,CONF_TYPE_INT,CONF_RANGE,0,2,NULL },
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
107 { "sub_auto_load",&sub_auto,CONF_TYPE_FLAG,0,0,1,NULL },
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
108 { "sub_unicode",&sub_unicode,CONF_TYPE_FLAG,0,0,1,NULL },
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
109 { "sub_pos",&sub_pos,CONF_TYPE_INT,CONF_RANGE,0,200,NULL },
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
110 { "font_factor",&font_factor,CONF_TYPE_FLOAT,CONF_RANGE,0.0,10.0,NULL },
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
111 { "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
112 #ifdef HAVE_FREETYPE
7139
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7092
diff changeset
113 { "font_encoding",&subtitle_font_encoding,CONF_TYPE_STRING,0,0,0,NULL },
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7092
diff changeset
114 { "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
115 { "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
116 { "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
117 { "font_outline",&subtitle_font_thickness,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL },
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7092
diff changeset
118 { "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
119 #endif
7526
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
120
8311
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
121 { "cache",&gtkCacheOn,CONF_TYPE_FLAG,0,0,1,NULL },
8284
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8276
diff changeset
122 { "cache_size",&gtkCacheSize,CONF_TYPE_INT,CONF_RANGE,-1,65535,NULL },
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8276
diff changeset
123
7538
c7b61f316edf - add "start in fullscreen" function
pontscho
parents: 7526
diff changeset
124 { "load_fullscreen",&gtkLoadFullscreen,CONF_TYPE_FLAG,0,0,1,NULL },
8308
6ea0feac9d42 add stop_xscreensaver
pontscho
parents: 8284
diff changeset
125 { "stopxscreensaver",&stop_xscreensaver,CONF_TYPE_FLAG,0,0,1,NULL },
8311
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
126
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
127 { "autosync",&gtkAutoSyncOn,CONF_TYPE_FLAG,0,0,1,NULL },
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8308
diff changeset
128 { "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
129
06d29dbdf20d upsz, sorry, i forgott this :) (skin name saving:)
pontscho
parents: 6794
diff changeset
130 { "gui_skin",&skinName,CONF_TYPE_STRING,0,0,0,NULL },
6770
pontscho
parents:
diff changeset
131
pontscho
parents:
diff changeset
132 { "equ_channel_1",&gtkEquChannel1,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
133 { "equ_channel_2",&gtkEquChannel2,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
134 { "equ_channel_3",&gtkEquChannel3,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
135 { "equ_channel_4",&gtkEquChannel4,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
136 { "equ_channel_5",&gtkEquChannel5,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
137 { "equ_channel_6",&gtkEquChannel6,CONF_TYPE_STRING,0,0,0,NULL },
pontscho
parents:
diff changeset
138
pontscho
parents:
diff changeset
139 #if 1
6840
ed02bae611d5 - some cosmetic change in preferences
pontscho
parents: 6797
diff changeset
140 #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
141 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
142 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
143 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
144 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
145 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
146 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
147 #undef audio_equ_row
pontscho
parents:
diff changeset
148 #endif
pontscho
parents:
diff changeset
149
pontscho
parents:
diff changeset
150 { NULL, NULL, 0, 0, 0, 0, NULL }
pontscho
parents:
diff changeset
151 };
pontscho
parents:
diff changeset
152
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
153 char * gfgets( char * str, int size, FILE * f )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
154 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
155 char * s = fgets( str,size,f );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
156 char c;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
157 if ( s )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
158 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
159 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
160 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
161 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
162 return s;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
163 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
164
6770
pontscho
parents:
diff changeset
165 int cfg_read( void )
pontscho
parents:
diff changeset
166 {
pontscho
parents:
diff changeset
167 char * cfg = get_path( "gui.conf" );
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
168 FILE * f;
6770
pontscho
parents:
diff changeset
169
7283
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
170 #ifdef USE_SETLOCALE
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
171 setlocale( LC_ALL,"C" );
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
172 #endif
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
173
6770
pontscho
parents:
diff changeset
174 // -- read configuration
pontscho
parents:
diff changeset
175 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
176 gui_conf=m_config_new(
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
177 #ifndef NEW_CONFIG
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
178 play_tree_new()
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
179 #endif
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
180 );
6770
pontscho
parents:
diff changeset
181 m_config_register_options( gui_conf,gui_opts );
pontscho
parents:
diff changeset
182 if ( m_config_parse_config_file( gui_conf,cfg ) < 0 )
pontscho
parents:
diff changeset
183 {
pontscho
parents:
diff changeset
184 mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[cfg] config file read error ...\n" );
7538
c7b61f316edf - add "start in fullscreen" function
pontscho
parents: 7526
diff changeset
185 // exit( 1 );
6770
pontscho
parents:
diff changeset
186 }
pontscho
parents:
diff changeset
187 free( cfg );
pontscho
parents:
diff changeset
188
pontscho
parents:
diff changeset
189 // -- read pl
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
190 cfg=get_path( "gui.pl" );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
191 if ( (f=fopen( cfg,"rt" )) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
192 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
193 while ( !feof( f ) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
194 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
195 char tmp[512]; plItem * item;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
196 if ( gfgets( tmp,512,f ) == NULL ) continue;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
197 item=calloc( 1,sizeof( plItem ) );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
198 item->path=strdup( tmp );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
199 gfgets( tmp,512,f );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
200 item->name=strdup( tmp );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
201 gtkSet( gtkAddPlItem,0,(void*)item );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
202 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
203 fclose( f );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
204 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
205 free( cfg );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
206
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
207 //-- read previously visited urls
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
208 cfg=get_path( "gui.url" );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
209 if ( (f=fopen( cfg,"rt" )) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
210 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
211 while ( !feof( f ) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
212 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
213 char tmp[512]; URLItem * item;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
214 if ( gfgets( tmp,512,f ) == NULL ) continue;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
215 item=calloc( 1,sizeof( URLItem ) );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
216 item->url=strdup( tmp );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
217 gtkSet( gtkAddURLItem,0,(void*)item );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
218 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
219 fclose( f );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
220 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
221 free( cfg );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
222
7283
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
223 #ifdef USE_SETLOCALE
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
224 setlocale( LC_ALL,"" );
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
225 #endif
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
226
6770
pontscho
parents:
diff changeset
227 return 0;
pontscho
parents:
diff changeset
228 }
pontscho
parents:
diff changeset
229
pontscho
parents:
diff changeset
230 int cfg_write( void )
pontscho
parents:
diff changeset
231 {
pontscho
parents:
diff changeset
232 char * cfg = get_path( "gui.conf" );
pontscho
parents:
diff changeset
233 FILE * f;
pontscho
parents:
diff changeset
234 int i;
pontscho
parents:
diff changeset
235
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
236 #ifdef USE_SETLOCALE
7283
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
237 setlocale( LC_ALL,"C" );
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
238 #endif
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
239
6770
pontscho
parents:
diff changeset
240 // -- save configuration
pontscho
parents:
diff changeset
241 if ( (f=fopen( cfg,"wt+" )) )
pontscho
parents:
diff changeset
242 {
pontscho
parents:
diff changeset
243 for ( i=0;gui_opts[i].name;i++ )
pontscho
parents:
diff changeset
244 {
8168
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
245 #ifdef NEW_CONFIG
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
246 char* v = m_option_print(&gui_opts[i],gui_opts[i].p);
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
247 if(v) {
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
248 fprintf( f,"%s = \"%s\"\n",gui_opts[i].name, v);
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
249 free(v);
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
250 } else if((int)v == -1)
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
251 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
252 #else
6770
pontscho
parents:
diff changeset
253 switch ( gui_opts[i].type )
pontscho
parents:
diff changeset
254 {
pontscho
parents:
diff changeset
255 case CONF_TYPE_INT:
7283
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
256 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
257 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
258 case CONF_TYPE_STRING:
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6770
diff changeset
259 {
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6770
diff changeset
260 char * tmp = *( (char **)gui_opts[i].p );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6770
diff changeset
261 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
262 break;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6770
diff changeset
263 }
7526
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
264 case CONF_TYPE_STRING_LIST:
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
265 {
7706
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
266 char ** tmp = *( (char ***)gui_opts[i].p );
7526
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
267 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
268 break;
e3ca9e707857 - fix new afm/vfm support
pontscho
parents: 7283
diff changeset
269 }
6770
pontscho
parents:
diff changeset
270 }
8168
ff6a98628e6c Fix the Gui with NEW_CONFIG
albeu
parents: 8043
diff changeset
271 #endif
6770
pontscho
parents:
diff changeset
272 }
pontscho
parents:
diff changeset
273 fclose( f );
pontscho
parents:
diff changeset
274 }
pontscho
parents:
diff changeset
275 free( cfg );
pontscho
parents:
diff changeset
276
pontscho
parents:
diff changeset
277 // -- save playlist
pontscho
parents:
diff changeset
278 cfg=get_path( "gui.pl" );
pontscho
parents:
diff changeset
279 if ( (f=fopen( cfg,"wt+" )) )
pontscho
parents:
diff changeset
280 {
pontscho
parents:
diff changeset
281 plCurrent=plList;
pontscho
parents:
diff changeset
282 while ( plCurrent )
pontscho
parents:
diff changeset
283 {
pontscho
parents:
diff changeset
284 if ( plCurrent->path && plCurrent->name )
pontscho
parents:
diff changeset
285 {
pontscho
parents:
diff changeset
286 fprintf( f,"%s\n",plCurrent->path );
pontscho
parents:
diff changeset
287 fprintf( f,"%s\n",plCurrent->name );
pontscho
parents:
diff changeset
288 }
pontscho
parents:
diff changeset
289 plCurrent=plCurrent->next;
pontscho
parents:
diff changeset
290 }
pontscho
parents:
diff changeset
291 fclose( f );
pontscho
parents:
diff changeset
292 }
pontscho
parents:
diff changeset
293 free( cfg );
pontscho
parents:
diff changeset
294
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
295 // -- save URL's
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
296 cfg=get_path( "gui.url" );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
297 if ( (f=fopen( cfg,"wt+" )) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
298 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
299 while ( URLList )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
300 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
301 if ( URLList->url ) fprintf( f,"%s\n",URLList->url );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
302 URLList=URLList->next;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
303 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
304 fclose( f );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
305 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
306 free( cfg );
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
307
7283
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
308 #ifdef USE_SETLOCALE
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
309 setlocale( LC_ALL,"" );
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
310 #endif
5fa6eb7b0f1a - add fuckin locale fix from Dietrich Clau <dc2@clauss.dyndns.org>
pontscho
parents: 7265
diff changeset
311
6770
pontscho
parents:
diff changeset
312 return 0;
pontscho
parents:
diff changeset
313 }
pontscho
parents:
diff changeset
314