annotate gui/win32/wincfg.c @ 32945:15aecb36f23e

Cosmetic: Rename appResetStruct() appInitStruct(). After the old appInitStruct() got renamed, the more appropriate name 'appInitStruct' can be used now for the function that does initialization.
author ib
date Sun, 06 Mar 2011 12:21:52 +0000
parents ab6ac5b156ca
children 9a7b0dab3d95
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1 /*
23079
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
2 * MPlayer GUI for Win32
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
3 * Copyright (C) 2003 Sascha Sommer <saschasommer@freenet.de>
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
4 * Copyright (C) 2006 Erik Augustson <erik_27can@yahoo.com>
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
5 * Copyright (C) 2006 Gianluigi Tiesi <sherpya@netfarm.it>
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
6 *
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
7 * This file is part of MPlayer.
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
8 *
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
9 * MPlayer is free software; you can redistribute it and/or modify
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
10 * it under the terms of the GNU General Public License as published by
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
12 * (at your option) any later version.
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
13 *
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
14 * MPlayer is distributed in the hope that it will be useful,
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
17 * GNU General Public License for more details.
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
18 *
26457
9ba6d4487292 Use standard GPL header.
diego
parents: 26372
diff changeset
19 * You should have received a copy of the GNU General Public License along
9ba6d4487292 Use standard GPL header.
diego
parents: 26372
diff changeset
20 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
9ba6d4487292 Use standard GPL header.
diego
parents: 26372
diff changeset
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23079
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
22 */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
23
26193
609236ad27f4 more header / declaration cleanups; fixes a lot of warnings as well as a preempt to removal of redundant wincfg.h.
vayne
parents: 25713
diff changeset
24 #include <windows.h>
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
25 #include <stdlib.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
26 #include <string.h>
30901
76a13038105e Rename get_path.[ch] --> path.[ch].
diego
parents: 30558
diff changeset
27 #include "path.h"
23123
21e29d5932c5 header / declarations cleanup, also fixes broken compilation.
vayne
parents: 23091
diff changeset
28 #include "mplayer.h"
23091
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
29 #include "mp_msg.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
30 #include "help_mp.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
31 #include "m_config.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
32 #include "m_option.h"
32020
6c48f42a9c75 Replace m_config_parse_config_file() forward declaration by proper #include.
diego
parents: 31327
diff changeset
33 #include "parser-cfg.h"
23091
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
34 #include "libvo/video_out.h"
32068
ab6ac5b156ca Replace proc_priority extern declaration by osdep/priority.h #include.
diego
parents: 32020
diff changeset
35 #include "osdep/priority.h"
23091
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
36 #include "mixer.h"
30558
71acebef19ec Fix win32 gui compilation.
reimar
parents: 28051
diff changeset
37 #include "gui/mplayer/gmplayer.h"
26372
76413880bfad Update include paths to account for build system changes.
diego
parents: 26193
diff changeset
38 #include "gui/interface.h"
26193
609236ad27f4 more header / declaration cleanups; fixes a lot of warnings as well as a preempt to removal of redundant wincfg.h.
vayne
parents: 25713
diff changeset
39 #include "gui.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
40
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
41 /* params */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
42 int gtkAONorm = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
43 int gtkAOExtraStereo = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
44 float gtkAOExtraStereoMul = 1.0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
45 int gtkCacheOn = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
46 int gtkCacheSize = 2048;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
47 int gtkAutoSyncOn = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
48 int gtkAutoSync = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
49
31326
2aaeaee2dd5a Fix sub_window default.
reimar
parents: 30901
diff changeset
50 int sub_window = 1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
51 int console = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
52
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
53 int gui_save_pos = 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
54 int gui_main_pos_x = -2;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
55 int gui_main_pos_y = -2;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
56 int gui_sub_pos_x = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
57 int gui_sub_pos_y = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
58
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
59 static m_config_t *gui_conf;
25713
0fe20154a883 gui_opts should be const for win32 gui as well (why, oh why, was all
reimar
parents: 25712
diff changeset
60 static const m_option_t gui_opts[] =
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
61 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
62 { "priority", &proc_priority, CONF_TYPE_STRING, 0, 0, 0, NULL},
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
63 { "vo_driver", &video_driver_list, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
64 { "v_framedrop", &frame_dropping, CONF_TYPE_INT, CONF_RANGE, 0, 2, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
65 { "vo_doublebuffering", &vo_doublebuffering, CONF_TYPE_FLAG, 0, 0, 1, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
66 { "vo_direct_render", &vo_directrendering, CONF_TYPE_FLAG, 0, 0, 1, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
67 { "ao_driver", &audio_driver_list, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
68 { "ao_volnorm", &gtkAONorm, CONF_TYPE_FLAG, 0, 0, 1, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
69 { "softvol", &soft_vol, CONF_TYPE_FLAG, 0, 0, 1, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
70 { "ao_extra_stereo", &gtkAOExtraStereo, CONF_TYPE_FLAG, 0, 0, 1, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
71 { "ao_extra_stereo_coefficient", &gtkAOExtraStereoMul, CONF_TYPE_FLOAT, CONF_RANGE, -10, 10, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
72 { "delay", &audio_delay, CONF_TYPE_FLOAT, CONF_RANGE, -100.0, 100.0, NULL},
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
73 { "dvd_device", &dvd_device, CONF_TYPE_STRING, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
74 { "cdrom_device", &cdrom_device, CONF_TYPE_STRING, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
75 { "osd_level", &osd_level, CONF_TYPE_INT, CONF_RANGE, 0, 3, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
76 { "cache", &gtkCacheOn, CONF_TYPE_FLAG, 0, 0, 1, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
77 { "cache_size", &gtkCacheSize, CONF_TYPE_INT, CONF_RANGE, -1, 65535, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
78 { "autosync", &gtkAutoSyncOn, CONF_TYPE_FLAG, 0, 0, 1, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
79 { "autosync_size", &gtkAutoSync, CONF_TYPE_INT, CONF_RANGE, 0, 10000, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
80 { "gui_skin", &skinName, CONF_TYPE_STRING, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
81 { "gui_main_pos_x", &gui_main_pos_x, CONF_TYPE_INT, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
82 { "gui_main_pos_y", &gui_main_pos_y, CONF_TYPE_INT, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
83 { "gui_sub_pos_x", &gui_sub_pos_x, CONF_TYPE_INT, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
84 { "gui_sub_pos_y", &gui_sub_pos_y, CONF_TYPE_INT, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
85 { "sub_window", &sub_window, CONF_TYPE_FLAG, 0, 0, 1, NULL},
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
86 { "console", &console, CONF_TYPE_FLAG, 0, 0, 1, NULL},
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
87 { NULL, NULL, 0, 0, 0, 0, NULL }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
88 };
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
89
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
90 int cfg_read(void)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
91 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
92 char *cfg = get_path("gui.conf");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
93
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
94 /* read configuration */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
95 mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] [cfg] reading config file: %s\n", cfg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
96 gui_conf = m_config_new();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
97 m_config_register_options(gui_conf, gui_opts);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
98 if (m_config_parse_config_file(gui_conf, cfg) < 0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
99 mp_msg(MSGT_GPLAYER, MSGL_FATAL, MSGTR_ConfigFileError);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
100 free(cfg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
101 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
102 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
103
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
104 int cfg_write(void)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
105 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
106 char *cfg = get_path("gui.conf");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
107 FILE *f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
108 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
109
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
110 /* save configuration */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
111 if ((f = fopen(cfg, "wt+")))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
112 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
113 for (i=0; gui_opts[i].name; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
114 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
115 char *v = m_option_print(&gui_opts[i], gui_opts[i].p);
25712
363e217ce9fd Win32 gui has the same m_option_print error handling bug
reimar
parents: 23123
diff changeset
116 if(v == (char *)-1) {
363e217ce9fd Win32 gui has the same m_option_print error handling bug
reimar
parents: 23123
diff changeset
117 mp_msg(MSGT_GPLAYER, MSGL_WARN, MSGTR_UnableToSaveOption, gui_opts[i].name);
363e217ce9fd Win32 gui has the same m_option_print error handling bug
reimar
parents: 23123
diff changeset
118 v = NULL;
363e217ce9fd Win32 gui has the same m_option_print error handling bug
reimar
parents: 23123
diff changeset
119 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
120 if(v)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
121 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
122 fprintf(f, "%s = \"%s\"\n", gui_opts[i].name, v);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
123 free(v);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
124 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
125 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
126 fclose(f);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
127 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
128 free(cfg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
129 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
130 }