annotate gui/cfg.c @ 25661:293aeec83153

Replace the persistent CODECS_FLAG_SELECTED by a local "stringset" with an almost-trivial implementation. This allows making the builtin codec structs const, and it also makes clearer that this "selected" status is not used outside the init functions.
author reimar
date Sat, 12 Jan 2008 14:05:46 +0000
parents 76f5d8892c04
children 11faea7ffe9b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
2 #include <stdlib.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
3 #include <stdio.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
4 #include <string.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
5
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
6 #include "config.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
7 #include "mp_msg.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
8 #include "help_mp.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
9 #include "mixer.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
10 #include "mplayer.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
11 #include "m_config.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
12 #include "m_option.h"
24242
76f5d8892c04 Clean up the way get_path is handled: Compile get_path.c to an object to link
diego
parents: 24153
diff changeset
13 #include "get_path.h"
24149
35fcce39b121 Remove redundant extern variable declarations, include proper headers instead.
diego
parents: 23795
diff changeset
14 #include "libvo/sub.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
15 #include "libvo/video_out.h"
24149
35fcce39b121 Remove redundant extern variable declarations, include proper headers instead.
diego
parents: 23795
diff changeset
16 #include "stream/stream.h"
35fcce39b121 Remove redundant extern variable declarations, include proper headers instead.
diego
parents: 23795
diff changeset
17 #include "libmpdemux/demuxer.h"
24153
0bbfebce0583 Remove redundant extern declarations, #include the right headers instead.
diego
parents: 24149
diff changeset
18 #include "libass/ass.h"
0bbfebce0583 Remove redundant extern declarations, #include the right headers instead.
diego
parents: 24149
diff changeset
19 #include "libass/ass_mp.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
20
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
21 #include "cfg.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
22 #include "app.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
23 #include "interface.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
24 #include "mplayer/play.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
25
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
26 // --- params
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
27
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
28 int gtkEnableAudioEqualizer = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
29
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
30 int gtkVfPP = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
31 #ifdef USE_LIBAVCODEC
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
32 int gtkVfLAVC = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
33 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
34
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
35 int gtkAONorm = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
36 int gtkAOSurround = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
37 int gtkAOExtraStereo = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
38 float gtkAOExtraStereoMul = 1.0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
39 #ifdef USE_OSS_AUDIO
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
40 char * gtkAOOSSMixer;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
41 char * gtkAOOSSMixerChannel;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
42 char * gtkAOOSSDevice;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
43 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
44 #if defined(HAVE_ALSA9) || defined (HAVE_ALSA1X)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
45 char * gtkAOALSAMixer;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
46 char * gtkAOALSAMixerChannel;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
47 char * gtkAOALSADevice;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
48 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
49 #ifdef HAVE_SDL
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
50 char * gtkAOSDLDriver;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
51 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
52 #ifdef USE_ESD
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
53 char * gtkAOESDDevice;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
54 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
55
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
56 int gtkCacheOn = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
57 int gtkCacheSize = 2048;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
58
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
59 int gtkAutoSyncOn = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
60 int gtkAutoSync = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
61
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
62 #ifdef HAVE_DXR3
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
63 char * gtkDXR3Device;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
64 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
65
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
66 int gtkSubDumpMPSub = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
67 int gtkSubDumpSrt = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
68
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
69 int gtkLoadFullscreen = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
70 int gtkShowVideoWindow = 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
71 int gtkEnablePlayBar = 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
72
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
73 int gui_save_pos = 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
74 int gui_main_pos_x = -2;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
75 int gui_main_pos_y = -2;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
76 int gui_sub_pos_x = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
77 int gui_sub_pos_y = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
78
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
79 #ifdef USE_ASS
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
80 gtkASS_t gtkASS;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
81 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
82 // ---
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
83
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
84 extern int stop_xscreensaver;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
85 extern int m_config_parse_config_file(m_config_t* config, char *conffile);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
86
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
87 static m_config_t * gui_conf;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
88 static m_option_t gui_opts[] =
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
89 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
90 { "enable_audio_equ",&gtkEnableAudioEqualizer,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
91
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
92 { "vo_driver",&video_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
93 { "vo_panscan",&vo_panscan,CONF_TYPE_FLOAT,CONF_RANGE,0.0,1.0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
94 { "vo_doublebuffering",&vo_doublebuffering,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
95 { "vo_direct_render",&vo_directrendering,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
96 #ifdef HAVE_DXR3
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
97 { "vo_dxr3_device",&gtkDXR3Device,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
98 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
99
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
100 { "v_framedrop",&frame_dropping,CONF_TYPE_INT,CONF_RANGE,0,2,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
101 { "v_flip",&flip,CONF_TYPE_INT,CONF_RANGE,-1,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
102 { "v_ni",&force_ni,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
103 { "v_idx",&index_mode,CONF_TYPE_INT,CONF_RANGE,-1,2,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
104 { "v_vfm",&video_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
105 { "a_afm",&audio_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
106
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
107 { "vf_pp",&gtkVfPP,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
108 { "vf_autoq",&auto_quality,CONF_TYPE_INT,CONF_RANGE,0,100,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
109 #ifdef USE_LIBAVCODEC
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
110 { "vf_lavc",&gtkVfLAVC,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
111 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
112
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
113 { "ao_driver",&audio_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
114 { "ao_volnorm",&gtkAONorm,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
115 { "softvol",&soft_vol,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
116 { "ao_surround",&gtkAOSurround,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
117 { "ao_extra_stereo",&gtkAOExtraStereo,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
118 { "ao_extra_stereo_coefficient",&gtkAOExtraStereoMul,CONF_TYPE_FLOAT,CONF_RANGE,-10,10,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
119 #ifdef USE_OSS_AUDIO
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
120 { "ao_oss_mixer",&gtkAOOSSMixer,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
121 { "ao_oss_mixer_channel",&gtkAOOSSMixerChannel,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
122 { "ao_oss_device",&gtkAOOSSDevice,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
123 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
124 #if defined(HAVE_ALSA9) || defined (HAVE_ALSA1X)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
125 { "ao_alsa_mixer",&gtkAOALSAMixer,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
126 { "ao_alsa_mixer_channel",&gtkAOALSAMixerChannel,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
127 { "ao_alsa_device",&gtkAOALSADevice,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
128 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
129 #ifdef HAVE_SDL
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
130 { "ao_sdl_subdriver",&gtkAOSDLDriver,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
131 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
132 #ifdef USE_ESD
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
133 { "ao_esd_device",&gtkAOESDDevice,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
134 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
135
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
136 { "dvd_device",&dvd_device,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
137 { "cdrom_device",&cdrom_device,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
138
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
139 { "osd_level",&osd_level,CONF_TYPE_INT,CONF_RANGE,0,3,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
140 { "sub_auto_load",&sub_auto,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
141 { "sub_unicode",&sub_unicode,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
142 #ifdef USE_ASS
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
143 { "ass_enabled",&ass_enabled,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
144 { "ass_use_margins",&ass_use_margins,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
145 { "ass_top_margin",&ass_top_margin,CONF_TYPE_INT,CONF_RANGE,0,512,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
146 { "ass_bottom_margin",&ass_bottom_margin,CONF_TYPE_INT,CONF_RANGE,0,512,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
147 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
148 { "sub_pos",&sub_pos,CONF_TYPE_INT,CONF_RANGE,0,200,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
149 { "sub_overlap",&suboverlap_enabled,CONF_TYPE_FLAG,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
150 #ifdef USE_ICONV
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
151 { "sub_cp",&sub_cp,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
152 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
153 { "font_factor",&font_factor,CONF_TYPE_FLOAT,CONF_RANGE,0.0,10.0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
154 { "font_name",&font_name,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
155 #ifdef HAVE_FREETYPE
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
156 { "font_encoding",&subtitle_font_encoding,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
157 { "font_text_scale",&text_font_scale_factor,CONF_TYPE_FLOAT,CONF_RANGE,0,100,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
158 { "font_osd_scale",&osd_font_scale_factor,CONF_TYPE_FLOAT,CONF_RANGE,0,100,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
159 { "font_blur",&subtitle_font_radius,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
160 { "font_outline",&subtitle_font_thickness,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
161 { "font_autoscale",&subtitle_autoscale,CONF_TYPE_INT,CONF_RANGE,0,3,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
162 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
163
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
164 { "cache",&gtkCacheOn,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
165 { "cache_size",&gtkCacheSize,CONF_TYPE_INT,CONF_RANGE,-1,65535,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
166
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
167 { "playbar",&gtkEnablePlayBar,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
168 { "load_fullscreen",&gtkLoadFullscreen,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
169 { "show_videowin", &gtkShowVideoWindow,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
170 { "stopxscreensaver",&stop_xscreensaver,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
171
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
172 { "autosync",&gtkAutoSyncOn,CONF_TYPE_FLAG,0,0,1,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
173 { "autosync_size",&gtkAutoSync,CONF_TYPE_INT,CONF_RANGE,0,10000,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
174
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
175 { "gui_skin",&skinName,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
176
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
177 { "gui_save_pos", &gui_save_pos, CONF_TYPE_FLAG,0,0,1,NULL},
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
178 { "gui_main_pos_x", &gui_main_pos_x, CONF_TYPE_INT,0,0,0,NULL},
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
179 { "gui_main_pos_y", &gui_main_pos_y, CONF_TYPE_INT,0,0,0,NULL},
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
180 { "gui_video_out_pos_x", &gui_sub_pos_x, CONF_TYPE_INT,0,0,0,NULL},
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
181 { "gui_video_out_pos_y", &gui_sub_pos_y, CONF_TYPE_INT,0,0,0,NULL},
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
182
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
183 { "equ_channel_1",&gtkEquChannel1,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
184 { "equ_channel_2",&gtkEquChannel2,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
185 { "equ_channel_3",&gtkEquChannel3,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
186 { "equ_channel_4",&gtkEquChannel4,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
187 { "equ_channel_5",&gtkEquChannel5,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
188 { "equ_channel_6",&gtkEquChannel6,CONF_TYPE_STRING,0,0,0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
189
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
190 #if 1
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
191 #define audio_equ_row( i,j ) { "equ_band_"#i#j,&gtkEquChannels[i][j],CONF_TYPE_FLOAT,CONF_RANGE,-15.0,15.0,NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
192 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 )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
193 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 )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
194 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 )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
195 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 )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
196 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 )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
197 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 )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
198 #undef audio_equ_row
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
199 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
200
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
201 { NULL, NULL, 0, 0, 0, 0, NULL }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
202 };
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
203
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
204 char * gfgets( char * str, int size, FILE * f )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
205 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
206 char * s = fgets( str,size,f );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
207 char c;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
208 if ( s )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
209 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
210 c=s[ strlen( s ) - 1 ]; if ( c == '\n' || c == '\r' ) s[ strlen( s ) - 1 ]=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
211 c=s[ strlen( s ) - 1 ]; if ( c == '\n' || c == '\r' ) s[ strlen( s ) - 1 ]=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
212 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
213 return s;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
214 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
215
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
216 int cfg_read( void )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
217 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
218 char * cfg = get_path( "gui.conf" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
219 FILE * f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
220
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
221 // -- read configuration
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
222 mp_msg( MSGT_GPLAYER,MSGL_V,"[cfg] reading config file: %s\n",cfg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
223 gui_conf=m_config_new();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
224 m_config_register_options( gui_conf,gui_opts );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
225 if ( m_config_parse_config_file( gui_conf,cfg ) < 0 )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
226 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
227 mp_msg( MSGT_GPLAYER,MSGL_FATAL,MSGTR_ConfigFileError );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
228 // exit( 1 );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
229 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
230 free( cfg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
231
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
232 // -- read pl
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
233 cfg=get_path( "gui.pl" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
234 if ( (f=fopen( cfg,"rt" )) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
235 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
236 while ( !feof( f ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
237 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
238 char tmp[512]; plItem * item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
239 if ( gfgets( tmp,512,f ) == NULL ) continue;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
240 item=calloc( 1,sizeof( plItem ) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
241 item->path=strdup( tmp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
242 gfgets( tmp,512,f );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
243 item->name=strdup( tmp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
244 gtkSet( gtkAddPlItem,0,(void*)item );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
245 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
246 fclose( f );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
247 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
248 free( cfg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
249
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
250 //-- read previously visited urls
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
251 cfg=get_path( "gui.url" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
252 if ( (f=fopen( cfg,"rt" )) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
253 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
254 while ( !feof( f ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
255 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
256 char tmp[512]; URLItem * item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
257 if ( gfgets( tmp,512,f ) == NULL ) continue;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
258 item=calloc( 1,sizeof( URLItem ) );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
259 item->url=strdup( tmp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
260 gtkSet( gtkAddURLItem,0,(void*)item );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
261 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
262 fclose( f );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
263 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
264 free( cfg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
265
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
266 // -- reade file loader history
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
267 cfg=get_path( "gui.history" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
268 if ( (f=fopen( cfg,"rt+" )) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
269 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
270 int i = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
271 while ( !feof( f ) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
272 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
273 char tmp[512];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
274 if ( gfgets( tmp,512,f ) == NULL ) continue;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
275 fsHistory[i++]=gstrdup( tmp );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
276 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
277 fclose( f );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
278 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
279 free( cfg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
280
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
281 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
282 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
283
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
284 int cfg_write( void )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
285 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
286 char * cfg = get_path( "gui.conf" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
287 FILE * f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
288 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
289
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
290 // -- save configuration
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
291 if ( (f=fopen( cfg,"wt+" )) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
292 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
293 for ( i=0;gui_opts[i].name;i++ )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
294 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
295 char* v = m_option_print(&gui_opts[i],gui_opts[i].p);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
296 if(v) {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
297 fprintf( f,"%s = \"%s\"\n",gui_opts[i].name, v);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
298 free(v);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
299 } else if((int)v == -1)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
300 mp_msg(MSGT_GPLAYER,MSGL_WARN,MSGTR_UnableToSaveOption, gui_opts[i].name);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
301 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
302 fclose( f );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
303 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
304 free( cfg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
305
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
306 // -- save playlist
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
307 cfg=get_path( "gui.pl" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
308 if ( (f=fopen( cfg,"wt+" )) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
309 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
310 plCurrent=plList;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
311 while ( plCurrent )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
312 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
313 if ( plCurrent->path && plCurrent->name )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
314 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
315 fprintf( f,"%s\n",plCurrent->path );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
316 fprintf( f,"%s\n",plCurrent->name );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
317 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
318 plCurrent=plCurrent->next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
319 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
320 fclose( f );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
321 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
322 free( cfg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
323
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
324 // -- save URL's
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
325 cfg=get_path( "gui.url" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
326 if ( (f=fopen( cfg,"wt+" )) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
327 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
328 while ( URLList )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
329 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
330 if ( URLList->url ) fprintf( f,"%s\n",URLList->url );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
331 URLList=URLList->next;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
332 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
333 fclose( f );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
334 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
335 free( cfg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
336
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
337 // -- save file loader history
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
338 cfg=get_path( "gui.history" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
339 if ( (f=fopen( cfg,"wt+" )) )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
340 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
341 int i = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
342 // while ( fsHistory[i] != NULL )
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
343 for ( i=0;i < 5; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
344 if( fsHistory[i] ) fprintf( f,"%s\n",fsHistory[i] );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
345 fclose( f );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
346 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
347 free( cfg );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
348
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
349 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
350 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
351