comparison gui/cfg.c @ 33179:218edd8fc782

Cosmetic: Format to MPlayer coding style. Additionally: remove needless includes, group and sort includes, group and sort variables, rename gtkAOFakeSurround declaration gtkAOSurround, add #ifdefs to variable declarations, group statements by adding or removing new lines to ease reading, move assignments outside conditions, add parentheses, avoid mixing declaration and code, revise comments and add new ones.
author ib
date Fri, 15 Apr 2011 14:30:58 +0000
parents 6e22bcc85ac5
children 422e5d306d44
comparison
equal deleted inserted replaced
33178:cdfb3ba2967f 33179:218edd8fc782
18 18
19 #include <stdlib.h> 19 #include <stdlib.h>
20 #include <stdio.h> 20 #include <stdio.h>
21 #include <string.h> 21 #include <string.h>
22 22
23 #include "cfg.h"
24 #include "interface.h"
25
23 #include "config.h" 26 #include "config.h"
24 #include "sub/ass_mp.h" 27 #include "help_mp.h"
28 #include "libmpcodecs/vd.h"
29 #include "libvo/video_out.h"
30 #include "libvo/x11_common.h"
31 #include "m_config.h"
32 #include "m_option.h"
33 #include "mixer.h"
25 #include "mp_msg.h" 34 #include "mp_msg.h"
26 #include "help_mp.h"
27 #include "mixer.h"
28 #include "mpcommon.h" 35 #include "mpcommon.h"
29 #include "mplayer.h" 36 #include "mplayer.h"
30 #include "m_config.h"
31 #include "m_option.h"
32 #include "parser-cfg.h" 37 #include "parser-cfg.h"
33 #include "path.h" 38 #include "path.h"
34 #include "libmpcodecs/vd.h" 39 #include "sub/font_load.h"
35 #include "sub/sub.h" 40 #include "sub/sub.h"
36 #include "libvo/video_out.h" 41
37 #include "libvo/x11_common.h" 42 int gtkEnableAudioEqualizer = 0;
38 #include "stream/stream.h" 43
39 #include "libmpdemux/demuxer.h" 44 int gtkVfPP = 0;
40 #include "sub/font_load.h" 45 int gtkVfLAVC = 0;
41 46
42 #include "cfg.h" 47 int gtkAONorm = 0;
43 #include "app.h" 48 int gtkAOSurround = 0;
44 #include "interface.h" 49 int gtkAOExtraStereo = 0;
45 #include "mplayer/gmplayer.h" 50 float gtkAOExtraStereoMul = 1.0;
46 #include "mplayer/play.h"
47
48 // --- params
49
50 int gtkEnableAudioEqualizer = 0;
51
52 int gtkVfPP = 0;
53 int gtkVfLAVC = 0;
54
55 int gtkAONorm = 0;
56 int gtkAOSurround = 0;
57 int gtkAOExtraStereo = 0;
58 float gtkAOExtraStereoMul = 1.0;
59 #ifdef CONFIG_OSS_AUDIO 51 #ifdef CONFIG_OSS_AUDIO
60 char * gtkAOOSSMixer; 52 char *gtkAOOSSMixer;
61 char * gtkAOOSSMixerChannel; 53 char *gtkAOOSSMixerChannel;
62 char * gtkAOOSSDevice; 54 char *gtkAOOSSDevice;
63 #endif 55 #endif
64 #ifdef CONFIG_ALSA 56 #ifdef CONFIG_ALSA
65 char * gtkAOALSAMixer; 57 char *gtkAOALSAMixer;
66 char * gtkAOALSAMixerChannel; 58 char *gtkAOALSAMixerChannel;
67 char * gtkAOALSADevice; 59 char *gtkAOALSADevice;
68 #endif 60 #endif
69 #ifdef CONFIG_SDL 61 #ifdef CONFIG_SDL
70 char * gtkAOSDLDriver; 62 char *gtkAOSDLDriver;
71 #endif 63 #endif
72 #ifdef CONFIG_ESD 64 #ifdef CONFIG_ESD
73 char * gtkAOESDDevice; 65 char *gtkAOESDDevice;
74 #endif 66 #endif
75 67
76 int gtkCacheOn = 0; 68 int gtkCacheOn = 0;
77 int gtkCacheSize = 2048; 69 int gtkCacheSize = 2048;
78 70
79 int gtkAutoSyncOn = 0; 71 int gtkAutoSyncOn = 0;
80 int gtkAutoSync = 0; 72 int gtkAutoSync = 0;
81 73
82 #ifdef CONFIG_DXR3 74 #ifdef CONFIG_DXR3
83 char * gtkDXR3Device; 75 char *gtkDXR3Device;
84 #endif 76 #endif
85 77
86 int gtkSubDumpMPSub = 0; 78 int gtkSubDumpMPSub = 0;
87 int gtkSubDumpSrt = 0; 79 int gtkSubDumpSrt = 0;
88 80
89 int gtkLoadFullscreen = 0; 81 int gtkLoadFullscreen = 0;
90 int gtkShowVideoWindow = 1; 82 int gtkShowVideoWindow = 1;
91 int gtkEnablePlayBar = 1; 83 int gtkEnablePlayBar = 1;
92 84
93 int gui_save_pos = 1; 85 int gui_save_pos = 1;
94 int gui_main_pos_x = -2; 86 int gui_main_pos_x = -2;
95 int gui_main_pos_y = -2; 87 int gui_main_pos_y = -2;
96 int gui_sub_pos_x = -1; 88 int gui_sub_pos_x = -1;
97 int gui_sub_pos_y = -1; 89 int gui_sub_pos_y = -1;
98 90
99 #ifdef CONFIG_ASS 91 #ifdef CONFIG_ASS
100 gtkASS_t gtkASS; 92 gtkASS_t gtkASS;
101 #endif 93 #endif
102 // --- 94
103 95 static m_config_t *gui_conf;
104 static m_config_t * gui_conf; 96
105 static const m_option_t gui_opts[] = 97 // NOTE TO MYSELF: Do we really need all/any non-gtkOptions, i.e. override mplayer's ones?
98 static const m_option_t gui_opts[] = {
99 { "enable_audio_equ", &gtkEnableAudioEqualizer, CONF_TYPE_FLAG, 0, 0, 1, NULL },
100
101 { "vo_driver", &video_driver_list, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL },
102 { "vo_panscan", &vo_panscan, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL },
103 { "vo_doublebuffering", &vo_doublebuffering, CONF_TYPE_FLAG, 0, 0, 1, NULL },
104 { "vo_direct_render", &vo_directrendering, CONF_TYPE_FLAG, 0, 0, 1, NULL },
105 #ifdef CONFIG_DXR3
106 { "vo_dxr3_device", &gtkDXR3Device, CONF_TYPE_STRING, 0, 0, 0, NULL },
107 #endif
108
109 { "v_framedrop", &frame_dropping, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL },
110 { "v_flip", &flip, CONF_TYPE_INT, CONF_RANGE, -1, 1, NULL },
111 { "v_ni", &force_ni, CONF_TYPE_FLAG, 0, 0, 1, NULL },
112 { "v_idx", &index_mode, CONF_TYPE_INT, CONF_RANGE, -1, 2, NULL },
113 { "v_vfm", &video_fm_list, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL },
114 { "a_afm", &audio_fm_list, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL },
115
116 { "vf_pp", &gtkVfPP, CONF_TYPE_FLAG, 0, 0, 1, NULL },
117 { "vf_autoq", &auto_quality, CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL },
118 { "vf_lavc", &gtkVfLAVC, CONF_TYPE_FLAG, 0, 0, 1, NULL },
119
120 { "ao_driver", &audio_driver_list, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL },
121 { "ao_volnorm", &gtkAONorm, CONF_TYPE_FLAG, 0, 0, 1, NULL },
122 { "softvol", &soft_vol, CONF_TYPE_FLAG, 0, 0, 1, NULL },
123 { "ao_surround", &gtkAOSurround, CONF_TYPE_FLAG, 0, 0, 1, NULL },
124 { "ao_extra_stereo", &gtkAOExtraStereo, CONF_TYPE_FLAG, 0, 0, 1, NULL },
125 { "ao_extra_stereo_coefficient", &gtkAOExtraStereoMul, CONF_TYPE_FLOAT, CONF_RANGE, -10, 10, NULL },
126 #ifdef CONFIG_OSS_AUDIO
127 { "ao_oss_mixer", &gtkAOOSSMixer, CONF_TYPE_STRING, 0, 0, 0, NULL },
128 { "ao_oss_mixer_channel", &gtkAOOSSMixerChannel, CONF_TYPE_STRING, 0, 0, 0, NULL },
129 { "ao_oss_device", &gtkAOOSSDevice, CONF_TYPE_STRING, 0, 0, 0, NULL },
130 #endif
131 #ifdef CONFIG_ALSA
132 { "ao_alsa_mixer", &gtkAOALSAMixer, CONF_TYPE_STRING, 0, 0, 0, NULL },
133 { "ao_alsa_mixer_channel", &gtkAOALSAMixerChannel, CONF_TYPE_STRING, 0, 0, 0, NULL },
134 { "ao_alsa_device", &gtkAOALSADevice, CONF_TYPE_STRING, 0, 0, 0, NULL },
135 #endif
136 #ifdef CONFIG_SDL
137 { "ao_sdl_subdriver", &gtkAOSDLDriver, CONF_TYPE_STRING, 0, 0, 0, NULL },
138 #endif
139 #ifdef CONFIG_ESD
140 { "ao_esd_device", &gtkAOESDDevice, CONF_TYPE_STRING, 0, 0, 0, NULL },
141 #endif
142
143 { "dvd_device", &dvd_device, CONF_TYPE_STRING, 0, 0, 0, NULL },
144 { "cdrom_device", &cdrom_device, CONF_TYPE_STRING, 0, 0, 0, NULL },
145
146 { "osd_level", &osd_level, CONF_TYPE_INT, CONF_RANGE, 0, 3, NULL },
147 { "sub_auto_load", &sub_auto, CONF_TYPE_FLAG, 0, 0, 1, NULL },
148 { "sub_unicode", &sub_unicode, CONF_TYPE_FLAG, 0, 0, 1, NULL },
149 #ifdef CONFIG_ASS
150 { "ass_enabled", &ass_enabled, CONF_TYPE_FLAG, 0, 0, 1, NULL },
151 { "ass_use_margins", &ass_use_margins, CONF_TYPE_FLAG, 0, 0, 1, NULL },
152 { "ass_top_margin", &ass_top_margin, CONF_TYPE_INT, CONF_RANGE, 0, 512, NULL },
153 { "ass_bottom_margin", &ass_bottom_margin, CONF_TYPE_INT, CONF_RANGE, 0, 512, NULL },
154 #endif
155 { "sub_pos", &sub_pos, CONF_TYPE_INT, CONF_RANGE, 0, 200, NULL },
156 { "sub_overlap", &suboverlap_enabled, CONF_TYPE_FLAG, 0, 0, 0, NULL },
157 #ifdef CONFIG_ICONV
158 { "sub_cp", &sub_cp, CONF_TYPE_STRING, 0, 0, 0, NULL },
159 #endif
160 { "font_factor", &font_factor, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 10.0, NULL },
161 { "font_name", &font_name, CONF_TYPE_STRING, 0, 0, 0, NULL },
162 #ifdef CONFIG_FREETYPE
163 { "font_encoding", &subtitle_font_encoding, CONF_TYPE_STRING, 0, 0, 0, NULL },
164 { "font_text_scale", &text_font_scale_factor, CONF_TYPE_FLOAT, CONF_RANGE, 0, 100, NULL },
165 { "font_osd_scale", &osd_font_scale_factor, CONF_TYPE_FLOAT, CONF_RANGE, 0, 100, NULL },
166 { "font_blur", &subtitle_font_radius, CONF_TYPE_FLOAT, CONF_RANGE, 0, 8, NULL },
167 { "font_outline", &subtitle_font_thickness, CONF_TYPE_FLOAT, CONF_RANGE, 0, 8, NULL },
168 { "font_autoscale", &subtitle_autoscale, CONF_TYPE_INT, CONF_RANGE, 0, 3, NULL },
169 #endif
170
171 { "cache", &gtkCacheOn, CONF_TYPE_FLAG, 0, 0, 1, NULL },
172 { "cache_size", &gtkCacheSize, CONF_TYPE_INT, CONF_RANGE, -1, 65535, NULL },
173
174 { "playbar", &gtkEnablePlayBar, CONF_TYPE_FLAG, 0, 0, 1, NULL },
175 { "load_fullscreen", &gtkLoadFullscreen, CONF_TYPE_FLAG, 0, 0, 1, NULL },
176 { "show_videowin", &gtkShowVideoWindow, CONF_TYPE_FLAG, 0, 0, 1, NULL },
177 { "stopxscreensaver", &stop_xscreensaver, CONF_TYPE_FLAG, 0, 0, 1, NULL },
178
179 { "autosync", &gtkAutoSyncOn, CONF_TYPE_FLAG, 0, 0, 1, NULL },
180 { "autosync_size", &gtkAutoSync, CONF_TYPE_INT, CONF_RANGE, 0, 10000, NULL },
181
182 { "gui_skin", &skinName, CONF_TYPE_STRING, 0, 0, 0, NULL },
183
184 { "gui_save_pos", &gui_save_pos, CONF_TYPE_FLAG, 0, 0, 1, NULL },
185 { "gui_main_pos_x", &gui_main_pos_x, CONF_TYPE_INT, 0, 0, 0, NULL },
186 { "gui_main_pos_y", &gui_main_pos_y, CONF_TYPE_INT, 0, 0, 0, NULL },
187 { "gui_video_out_pos_x", &gui_sub_pos_x, CONF_TYPE_INT, 0, 0, 0, NULL },
188 { "gui_video_out_pos_y", &gui_sub_pos_y, CONF_TYPE_INT, 0, 0, 0, NULL },
189
190 { "equ_channel_1", &gtkEquChannel1, CONF_TYPE_STRING, 0, 0, 0, NULL },
191 { "equ_channel_2", &gtkEquChannel2, CONF_TYPE_STRING, 0, 0, 0, NULL },
192 { "equ_channel_3", &gtkEquChannel3, CONF_TYPE_STRING, 0, 0, 0, NULL },
193 { "equ_channel_4", &gtkEquChannel4, CONF_TYPE_STRING, 0, 0, 0, NULL },
194 { "equ_channel_5", &gtkEquChannel5, CONF_TYPE_STRING, 0, 0, 0, NULL },
195 { "equ_channel_6", &gtkEquChannel6, CONF_TYPE_STRING, 0, 0, 0, NULL },
196
197 #define audio_equ_row(i, j) { "equ_band_" # i # j, &gtkEquChannels[i][j], CONF_TYPE_FLOAT, CONF_RANGE, -15.0, 15.0, NULL },
198 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)
199 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)
200 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)
201 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)
202 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)
203 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)
204 #undef audio_equ_row
205
206 { NULL, NULL, 0, 0, 0, 0, NULL }
207 };
208
209 static char *gfgets(char *str, int size, FILE *f)
106 { 210 {
107 { "enable_audio_equ",&gtkEnableAudioEqualizer,CONF_TYPE_FLAG,0,0,1,NULL }, 211 char *s, c;
108 212
109 { "vo_driver",&video_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL }, 213 s = fgets(str, size, f);
110 { "vo_panscan",&vo_panscan,CONF_TYPE_FLOAT,CONF_RANGE,0.0,1.0,NULL }, 214
111 { "vo_doublebuffering",&vo_doublebuffering,CONF_TYPE_FLAG,0,0,1,NULL }, 215 if (s) {
112 { "vo_direct_render",&vo_directrendering,CONF_TYPE_FLAG,0,0,1,NULL }, 216 c = s[strlen(s) - 1];
113 #ifdef CONFIG_DXR3 217
114 { "vo_dxr3_device",&gtkDXR3Device,CONF_TYPE_STRING,0,0,0,NULL }, 218 if (c == '\n' || c == '\r')
115 #endif 219 s[strlen(s) - 1] = 0;
116 220
117 { "v_framedrop",&frame_dropping,CONF_TYPE_INT,CONF_RANGE,0,2,NULL }, 221 c = s[strlen(s) - 1];
118 { "v_flip",&flip,CONF_TYPE_INT,CONF_RANGE,-1,1,NULL }, 222
119 { "v_ni",&force_ni,CONF_TYPE_FLAG,0,0,1,NULL }, 223 if (c == '\n' || c == '\r')
120 { "v_idx",&index_mode,CONF_TYPE_INT,CONF_RANGE,-1,2,NULL }, 224 s[strlen(s) - 1] = 0;
121 { "v_vfm",&video_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL }, 225 }
122 { "a_afm",&audio_fm_list,CONF_TYPE_STRING_LIST,0,0,0,NULL }, 226
123 227 return s;
124 { "vf_pp",&gtkVfPP,CONF_TYPE_FLAG,0,0,1,NULL }, 228 }
125 { "vf_autoq",&auto_quality,CONF_TYPE_INT,CONF_RANGE,0,100,NULL }, 229
126 { "vf_lavc",&gtkVfLAVC,CONF_TYPE_FLAG,0,0,1,NULL }, 230 int cfg_read(void)
127
128 { "ao_driver",&audio_driver_list,CONF_TYPE_STRING_LIST,0,0,0,NULL },
129 { "ao_volnorm",&gtkAONorm,CONF_TYPE_FLAG,0,0,1,NULL },
130 { "softvol",&soft_vol,CONF_TYPE_FLAG,0,0,1,NULL },
131 { "ao_surround",&gtkAOSurround,CONF_TYPE_FLAG,0,0,1,NULL },
132 { "ao_extra_stereo",&gtkAOExtraStereo,CONF_TYPE_FLAG,0,0,1,NULL },
133 { "ao_extra_stereo_coefficient",&gtkAOExtraStereoMul,CONF_TYPE_FLOAT,CONF_RANGE,-10,10,NULL },
134 #ifdef CONFIG_OSS_AUDIO
135 { "ao_oss_mixer",&gtkAOOSSMixer,CONF_TYPE_STRING,0,0,0,NULL },
136 { "ao_oss_mixer_channel",&gtkAOOSSMixerChannel,CONF_TYPE_STRING,0,0,0,NULL },
137 { "ao_oss_device",&gtkAOOSSDevice,CONF_TYPE_STRING,0,0,0,NULL },
138 #endif
139 #ifdef CONFIG_ALSA
140 { "ao_alsa_mixer",&gtkAOALSAMixer,CONF_TYPE_STRING,0,0,0,NULL },
141 { "ao_alsa_mixer_channel",&gtkAOALSAMixerChannel,CONF_TYPE_STRING,0,0,0,NULL },
142 { "ao_alsa_device",&gtkAOALSADevice,CONF_TYPE_STRING,0,0,0,NULL },
143 #endif
144 #ifdef CONFIG_SDL
145 { "ao_sdl_subdriver",&gtkAOSDLDriver,CONF_TYPE_STRING,0,0,0,NULL },
146 #endif
147 #ifdef CONFIG_ESD
148 { "ao_esd_device",&gtkAOESDDevice,CONF_TYPE_STRING,0,0,0,NULL },
149 #endif
150
151 { "dvd_device",&dvd_device,CONF_TYPE_STRING,0,0,0,NULL },
152 { "cdrom_device",&cdrom_device,CONF_TYPE_STRING,0,0,0,NULL },
153
154 { "osd_level",&osd_level,CONF_TYPE_INT,CONF_RANGE,0,3,NULL },
155 { "sub_auto_load",&sub_auto,CONF_TYPE_FLAG,0,0,1,NULL },
156 { "sub_unicode",&sub_unicode,CONF_TYPE_FLAG,0,0,1,NULL },
157 #ifdef CONFIG_ASS
158 { "ass_enabled",&ass_enabled,CONF_TYPE_FLAG,0,0,1,NULL },
159 { "ass_use_margins",&ass_use_margins,CONF_TYPE_FLAG,0,0,1,NULL },
160 { "ass_top_margin",&ass_top_margin,CONF_TYPE_INT,CONF_RANGE,0,512,NULL },
161 { "ass_bottom_margin",&ass_bottom_margin,CONF_TYPE_INT,CONF_RANGE,0,512,NULL },
162 #endif
163 { "sub_pos",&sub_pos,CONF_TYPE_INT,CONF_RANGE,0,200,NULL },
164 { "sub_overlap",&suboverlap_enabled,CONF_TYPE_FLAG,0,0,0,NULL },
165 #ifdef CONFIG_ICONV
166 { "sub_cp",&sub_cp,CONF_TYPE_STRING,0,0,0,NULL },
167 #endif
168 { "font_factor",&font_factor,CONF_TYPE_FLOAT,CONF_RANGE,0.0,10.0,NULL },
169 { "font_name",&font_name,CONF_TYPE_STRING,0,0,0,NULL },
170 #ifdef CONFIG_FREETYPE
171 { "font_encoding",&subtitle_font_encoding,CONF_TYPE_STRING,0,0,0,NULL },
172 { "font_text_scale",&text_font_scale_factor,CONF_TYPE_FLOAT,CONF_RANGE,0,100,NULL },
173 { "font_osd_scale",&osd_font_scale_factor,CONF_TYPE_FLOAT,CONF_RANGE,0,100,NULL },
174 { "font_blur",&subtitle_font_radius,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL },
175 { "font_outline",&subtitle_font_thickness,CONF_TYPE_FLOAT,CONF_RANGE,0,8,NULL },
176 { "font_autoscale",&subtitle_autoscale,CONF_TYPE_INT,CONF_RANGE,0,3,NULL },
177 #endif
178
179 { "cache",&gtkCacheOn,CONF_TYPE_FLAG,0,0,1,NULL },
180 { "cache_size",&gtkCacheSize,CONF_TYPE_INT,CONF_RANGE,-1,65535,NULL },
181
182 { "playbar",&gtkEnablePlayBar,CONF_TYPE_FLAG,0,0,1,NULL },
183 { "load_fullscreen",&gtkLoadFullscreen,CONF_TYPE_FLAG,0,0,1,NULL },
184 { "show_videowin", &gtkShowVideoWindow,CONF_TYPE_FLAG,0,0,1,NULL },
185 { "stopxscreensaver",&stop_xscreensaver,CONF_TYPE_FLAG,0,0,1,NULL },
186
187 { "autosync",&gtkAutoSyncOn,CONF_TYPE_FLAG,0,0,1,NULL },
188 { "autosync_size",&gtkAutoSync,CONF_TYPE_INT,CONF_RANGE,0,10000,NULL },
189
190 { "gui_skin",&skinName,CONF_TYPE_STRING,0,0,0,NULL },
191
192 { "gui_save_pos", &gui_save_pos, CONF_TYPE_FLAG,0,0,1,NULL},
193 { "gui_main_pos_x", &gui_main_pos_x, CONF_TYPE_INT,0,0,0,NULL},
194 { "gui_main_pos_y", &gui_main_pos_y, CONF_TYPE_INT,0,0,0,NULL},
195 { "gui_video_out_pos_x", &gui_sub_pos_x, CONF_TYPE_INT,0,0,0,NULL},
196 { "gui_video_out_pos_y", &gui_sub_pos_y, CONF_TYPE_INT,0,0,0,NULL},
197
198 { "equ_channel_1",&gtkEquChannel1,CONF_TYPE_STRING,0,0,0,NULL },
199 { "equ_channel_2",&gtkEquChannel2,CONF_TYPE_STRING,0,0,0,NULL },
200 { "equ_channel_3",&gtkEquChannel3,CONF_TYPE_STRING,0,0,0,NULL },
201 { "equ_channel_4",&gtkEquChannel4,CONF_TYPE_STRING,0,0,0,NULL },
202 { "equ_channel_5",&gtkEquChannel5,CONF_TYPE_STRING,0,0,0,NULL },
203 { "equ_channel_6",&gtkEquChannel6,CONF_TYPE_STRING,0,0,0,NULL },
204
205 #define audio_equ_row( i,j ) { "equ_band_"#i#j,&gtkEquChannels[i][j],CONF_TYPE_FLOAT,CONF_RANGE,-15.0,15.0,NULL },
206 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 )
207 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 )
208 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 )
209 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 )
210 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 )
211 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 )
212 #undef audio_equ_row
213
214 { NULL, NULL, 0, 0, 0, 0, NULL }
215 };
216
217 static char * gfgets( char * str, int size, FILE * f )
218 { 231 {
219 char * s = fgets( str,size,f ); 232 char *cfg;
220 char c; 233 FILE *f;
221 if ( s ) 234
222 { 235 // configuration
223 c=s[ strlen( s ) - 1 ]; if ( c == '\n' || c == '\r' ) s[ strlen( s ) - 1 ]=0; 236
224 c=s[ strlen( s ) - 1 ]; if ( c == '\n' || c == '\r' ) s[ strlen( s ) - 1 ]=0; 237 cfg = get_path("gui.conf");
225 } 238
226 return s; 239 mp_msg(MSGT_GPLAYER, MSGL_V, "[cfg] reading config file: %s\n", cfg);
240
241 gui_conf = m_config_new();
242 m_config_register_options(gui_conf, gui_opts);
243
244 if (!disable_gui_conf && (m_config_parse_config_file(gui_conf, cfg) < 0)) {
245 mp_msg(MSGT_GPLAYER, MSGL_FATAL, MSGTR_ConfigFileError);
246 // exit(1);
247 }
248
249 free(cfg);
250
251 // playlist
252
253 cfg = get_path("gui.pl");
254 f = fopen(cfg, "rt");
255
256 if (f) {
257 while (!feof(f)) {
258 char tmp[512];
259 plItem *item;
260
261 if (gfgets(tmp, 512, f) == NULL)
262 continue;
263
264 item = calloc(1, sizeof(plItem));
265 item->path = strdup(tmp);
266 gfgets(tmp, 512, f);
267 item->name = strdup(tmp);
268 gtkSet(gtkAddPlItem, 0, (void *)item);
269 }
270
271 fclose(f);
272 }
273
274 free(cfg);
275
276 // URL list
277
278 cfg = get_path("gui.url");
279 f = fopen(cfg, "rt");
280
281 if (f) {
282 while (!feof(f)) {
283 char tmp[512];
284 URLItem *item;
285
286 if (gfgets(tmp, 512, f) == NULL)
287 continue;
288
289 item = calloc(1, sizeof(URLItem));
290 item->url = strdup(tmp);
291 gtkSet(gtkAddURLItem, 0, (void *)item);
292 }
293
294 fclose(f);
295 }
296
297 free(cfg);
298
299 // directory history
300
301 cfg = get_path("gui.history");
302 f = fopen(cfg, "rt+");
303
304 if (f) {
305 int i = 0;
306
307 while (!feof(f)) {
308 char tmp[512];
309
310 if (gfgets(tmp, 512, f) == NULL)
311 continue;
312
313 fsHistory[i++] = gstrdup(tmp);
314 }
315
316 fclose(f);
317 }
318
319 free(cfg);
320
321 return 0;
227 } 322 }
228 323
229 int cfg_read( void ) 324 int cfg_write(void)
230 { 325 {
231 char * cfg = get_path( "gui.conf" ); 326 char *cfg;
232 FILE * f; 327 FILE *f;
233 328 int i;
234 // -- read configuration 329
235 mp_msg( MSGT_GPLAYER,MSGL_V,"[cfg] reading config file: %s\n",cfg ); 330 // configuration
236 gui_conf=m_config_new(); 331
237 m_config_register_options( gui_conf,gui_opts ); 332 cfg = get_path("gui.conf");
238 if ( !disable_gui_conf && m_config_parse_config_file( gui_conf,cfg ) < 0 ) 333 f = fopen(cfg, "wt+");
239 { 334
240 mp_msg( MSGT_GPLAYER,MSGL_FATAL,MSGTR_ConfigFileError ); 335 if (f) {
241 // exit( 1 ); 336 for (i = 0; gui_opts[i].name; i++) {
242 } 337 char *v = m_option_print(&gui_opts[i], gui_opts[i].p);
243 free( cfg ); 338
244 339 if (v == (char *)-1) {
245 // -- read pl 340 mp_msg(MSGT_GPLAYER, MSGL_WARN, MSGTR_UnableToSaveOption, gui_opts[i].name);
246 cfg=get_path( "gui.pl" ); 341 v = NULL;
247 if ( (f=fopen( cfg,"rt" )) ) 342 }
248 { 343
249 while ( !feof( f ) ) 344 if (v) {
250 { 345 fprintf(f, "%s = \"%s\"\n", gui_opts[i].name, v);
251 char tmp[512]; plItem * item; 346 free(v);
252 if ( gfgets( tmp,512,f ) == NULL ) continue; 347 }
253 item=calloc( 1,sizeof( plItem ) ); 348 }
254 item->path=strdup( tmp ); 349
255 gfgets( tmp,512,f ); 350 fclose(f);
256 item->name=strdup( tmp ); 351 }
257 gtkSet( gtkAddPlItem,0,(void*)item ); 352
258 } 353 free(cfg);
259 fclose( f ); 354
260 } 355 // playlist
261 free( cfg ); 356
262 357 cfg = get_path("gui.pl");
263 //-- read previously visited urls 358 f = fopen(cfg, "wt+");
264 cfg=get_path( "gui.url" ); 359
265 if ( (f=fopen( cfg,"rt" )) ) 360 if (f) {
266 { 361 plCurrent = plList;
267 while ( !feof( f ) ) 362
268 { 363 while (plCurrent) {
269 char tmp[512]; URLItem * item; 364 if (plCurrent->path && plCurrent->name) {
270 if ( gfgets( tmp,512,f ) == NULL ) continue; 365 fprintf(f, "%s\n", plCurrent->path);
271 item=calloc( 1,sizeof( URLItem ) ); 366 fprintf(f, "%s\n", plCurrent->name);
272 item->url=strdup( tmp ); 367 }
273 gtkSet( gtkAddURLItem,0,(void*)item ); 368
274 } 369 plCurrent = plCurrent->next;
275 fclose( f ); 370 }
276 } 371
277 free( cfg ); 372 fclose(f);
278 373 }
279 // -- reade file loader history 374
280 cfg=get_path( "gui.history" ); 375 free(cfg);
281 if ( (f=fopen( cfg,"rt+" )) ) 376
282 { 377 // URL list
283 int i = 0; 378
284 while ( !feof( f ) ) 379 cfg = get_path("gui.url");
285 { 380 f = fopen(cfg, "wt+");
286 char tmp[512]; 381
287 if ( gfgets( tmp,512,f ) == NULL ) continue; 382 if (f) {
288 fsHistory[i++]=gstrdup( tmp ); 383 while (URLList) {
289 } 384 if (URLList->url)
290 fclose( f ); 385 fprintf(f, "%s\n", URLList->url);
291 } 386
292 free( cfg ); 387 URLList = URLList->next;
293 388 }
294 return 0; 389
390 fclose(f);
391 }
392
393 free(cfg);
394
395 // directory history
396
397 cfg = get_path("gui.history");
398 f = fopen(cfg, "wt+");
399
400 if (f) {
401 int i = 0;
402
403 // while (fsHistory[i] != NULL)
404 for (i = 0; i < 5; i++)
405 if (fsHistory[i])
406 fprintf(f, "%s\n", fsHistory[i]);
407
408 fclose(f);
409 }
410
411 free(cfg);
412
413 return 0;
295 } 414 }
296
297 int cfg_write( void )
298 {
299 char * cfg = get_path( "gui.conf" );
300 FILE * f;
301 int i;
302
303 // -- save configuration
304 if ( (f=fopen( cfg,"wt+" )) )
305 {
306 for ( i=0;gui_opts[i].name;i++ )
307 {
308 char* v = m_option_print(&gui_opts[i],gui_opts[i].p);
309 if(v == (char *)-1) {
310 mp_msg(MSGT_GPLAYER,MSGL_WARN,MSGTR_UnableToSaveOption, gui_opts[i].name);
311 v = NULL;
312 }
313 if(v) {
314 fprintf( f,"%s = \"%s\"\n",gui_opts[i].name, v);
315 free(v);
316 }
317 }
318 fclose( f );
319 }
320 free( cfg );
321
322 // -- save playlist
323 cfg=get_path( "gui.pl" );
324 if ( (f=fopen( cfg,"wt+" )) )
325 {
326 plCurrent=plList;
327 while ( plCurrent )
328 {
329 if ( plCurrent->path && plCurrent->name )
330 {
331 fprintf( f,"%s\n",plCurrent->path );
332 fprintf( f,"%s\n",plCurrent->name );
333 }
334 plCurrent=plCurrent->next;
335 }
336 fclose( f );
337 }
338 free( cfg );
339
340 // -- save URL's
341 cfg=get_path( "gui.url" );
342 if ( (f=fopen( cfg,"wt+" )) )
343 {
344 while ( URLList )
345 {
346 if ( URLList->url ) fprintf( f,"%s\n",URLList->url );
347 URLList=URLList->next;
348 }
349 fclose( f );
350 }
351 free( cfg );
352
353 // -- save file loader history
354 cfg=get_path( "gui.history" );
355 if ( (f=fopen( cfg,"wt+" )) )
356 {
357 int i = 0;
358 // while ( fsHistory[i] != NULL )
359 for ( i=0;i < 5; i++)
360 if( fsHistory[i] ) fprintf( f,"%s\n",fsHistory[i] );
361 fclose( f );
362 }
363 free( cfg );
364
365 return 0;
366 }