annotate gui/win32/wincfg.c @ 34390:9082a0976655

Remove options cdrom_device and dvd_device from the Win32 GUI. Windows determines these devices by directly checking all drives for type CDROM (and may handle even multiple of them).
author ib
date Sat, 31 Dec 2011 13:15:30 +0000
parents 280b461a6676
children f744357e94bd
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"
33557
71ec25d1da10 Fix compilation after r33644.
ib
parents: 33297
diff changeset
37 #include "gui/ui/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
33297
9a7b0dab3d95 Fix compilation error with Win32 GUI.
ib
parents: 32068
diff changeset
59 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 { "osd_level", &osd_level, CONF_TYPE_INT, CONF_RANGE, 0, 3, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
74 { "cache", &gtkCacheOn, CONF_TYPE_FLAG, 0, 0, 1, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
75 { "cache_size", &gtkCacheSize, CONF_TYPE_INT, CONF_RANGE, -1, 65535, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
76 { "autosync", &gtkAutoSyncOn, CONF_TYPE_FLAG, 0, 0, 1, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
77 { "autosync_size", &gtkAutoSync, CONF_TYPE_INT, CONF_RANGE, 0, 10000, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
78 { "gui_skin", &skinName, CONF_TYPE_STRING, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
79 { "gui_main_pos_x", &gui_main_pos_x, CONF_TYPE_INT, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
80 { "gui_main_pos_y", &gui_main_pos_y, CONF_TYPE_INT, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
81 { "gui_sub_pos_x", &gui_sub_pos_x, CONF_TYPE_INT, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
82 { "gui_sub_pos_y", &gui_sub_pos_y, CONF_TYPE_INT, 0, 0, 0, NULL },
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
83 { "sub_window", &sub_window, CONF_TYPE_FLAG, 0, 0, 1, NULL},
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
84 { "console", &console, CONF_TYPE_FLAG, 0, 0, 1, NULL},
34085
cc1808245016 Make idle mode default in Win32 GUI.
ib
parents: 33566
diff changeset
85 { "idle", &player_idle_mode, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
86 { NULL, NULL, 0, 0, 0, 0, NULL }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
87 };
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
88
33566
b2dad0a365ea Add cfg_gui_include also for win32 GUI.
reimar
parents: 33557
diff changeset
89 int cfg_gui_include(m_option_t *conf, const char *filename)
b2dad0a365ea Add cfg_gui_include also for win32 GUI.
reimar
parents: 33557
diff changeset
90 {
b2dad0a365ea Add cfg_gui_include also for win32 GUI.
reimar
parents: 33557
diff changeset
91 (void)conf;
b2dad0a365ea Add cfg_gui_include also for win32 GUI.
reimar
parents: 33557
diff changeset
92
34193
95f91c9bcc9f Add missing parameter to Win32 GUI's call to m_config_parse_config_file().
ib
parents: 34085
diff changeset
93 return m_config_parse_config_file(gui_conf, filename, 0);
33566
b2dad0a365ea Add cfg_gui_include also for win32 GUI.
reimar
parents: 33557
diff changeset
94 }
b2dad0a365ea Add cfg_gui_include also for win32 GUI.
reimar
parents: 33557
diff changeset
95
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
96 int cfg_read(void)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
97 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
98 char *cfg = get_path("gui.conf");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
99
34085
cc1808245016 Make idle mode default in Win32 GUI.
ib
parents: 33566
diff changeset
100 player_idle_mode = 1; // GUI is in idle mode by default
cc1808245016 Make idle mode default in Win32 GUI.
ib
parents: 33566
diff changeset
101
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
102 /* read configuration */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
103 mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] [cfg] reading config file: %s\n", cfg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
104 gui_conf = m_config_new();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
105 m_config_register_options(gui_conf, gui_opts);
34194
280b461a6676 Add missing parameter to Win32 GUI's call to m_config_parse_config_file().
ib
parents: 34193
diff changeset
106 if (m_config_parse_config_file(gui_conf, cfg, 1) < 0)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
107 mp_msg(MSGT_GPLAYER, MSGL_FATAL, MSGTR_ConfigFileError);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
108 free(cfg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
109 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
110 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
111
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
112 int cfg_write(void)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
113 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
114 char *cfg = get_path("gui.conf");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
115 FILE *f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
116 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
117
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
118 /* save configuration */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
119 if ((f = fopen(cfg, "wt+")))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
120 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
121 for (i=0; gui_opts[i].name; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
122 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
123 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
124 if(v == (char *)-1) {
363e217ce9fd Win32 gui has the same m_option_print error handling bug
reimar
parents: 23123
diff changeset
125 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
126 v = NULL;
363e217ce9fd Win32 gui has the same m_option_print error handling bug
reimar
parents: 23123
diff changeset
127 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
128 if(v)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
129 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
130 fprintf(f, "%s = \"%s\"\n", gui_opts[i].name, v);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
131 free(v);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
132 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
133 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
134 fclose(f);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
135 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
136 free(cfg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
137 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
138 }