1 /* settings.h: Handling configuration settings
2    Copyright (c) 2001-2003 Philip Kendall
3 
4    This program is free software; you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation; either version 2 of the License, or
7    (at your option) any later version.
8 
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13 
14    You should have received a copy of the GNU General Public License along
15    with this program; if not, write to the Free Software Foundation, Inc.,
16    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 
18    Author contact information:
19 
20    E-mail: philip-fuse@shadowmagic.org.uk
21 
22 */
23 
24 /* This file is autogenerated from settings.dat by settings-header.pl.
25    Do not edit unless you know what will happen! */
26 
27 #ifndef FUSE_SETTINGS_H
28 #define FUSE_SETTINGS_H
29 
30 #include <config.h>
31 
32 #include <sys/types.h>
33 
34 typedef struct settings_info {
35 
36    int accelerate_loader;
37    int aspect_hint;
38    int auto_load;
39    int autosave_settings;
40    int beta128;
41    int beta128_48boot;
42   char *betadisk_file;
43    int bw_tv;
44    int competition_code;
45    int competition_mode;
46    int confirm_actions;
47   char *dck_file;
48   char *debugger_command;
49    int detect_loader;
50    int disciple;
51   char *discipledisk_file;
52    int disk_ask_merge;
53   char *disk_try_merge;
54    int divide_enabled;
55   char *divide_master_file;
56   char *divide_slave_file;
57    int divide_wp;
58    int doublescan_mode;
59    int drive_40_max_track;
60    int drive_80_max_track;
61   char *drive_beta128a_type;
62   char *drive_beta128b_type;
63   char *drive_beta128c_type;
64   char *drive_beta128d_type;
65   char *drive_disciple1_type;
66   char *drive_disciple2_type;
67   char *drive_opus1_type;
68   char *drive_opus2_type;
69   char *drive_plus3a_type;
70   char *drive_plus3b_type;
71   char *drive_plusd1_type;
72   char *drive_plusd2_type;
73    int embed_snapshot;
74    int emulation_speed;
75    int fastload;
76    int fb_mode;
77    int frame_rate;
78    int full_screen;
79    int fuller;
80   char *if2_file;
81    int interface1;
82    int interface2;
83    int issue2;
84    int joy_kempston;
85    int joy_prompt;
86   char *joystick_1;
87    int joystick_1_fire_1;
88    int joystick_1_fire_10;
89    int joystick_1_fire_11;
90    int joystick_1_fire_12;
91    int joystick_1_fire_13;
92    int joystick_1_fire_14;
93    int joystick_1_fire_15;
94    int joystick_1_fire_2;
95    int joystick_1_fire_3;
96    int joystick_1_fire_4;
97    int joystick_1_fire_5;
98    int joystick_1_fire_6;
99    int joystick_1_fire_7;
100    int joystick_1_fire_8;
101    int joystick_1_fire_9;
102    int joystick_1_output;
103   char *joystick_2;
104    int joystick_2_fire_1;
105    int joystick_2_fire_10;
106    int joystick_2_fire_11;
107    int joystick_2_fire_12;
108    int joystick_2_fire_13;
109    int joystick_2_fire_14;
110    int joystick_2_fire_15;
111    int joystick_2_fire_2;
112    int joystick_2_fire_3;
113    int joystick_2_fire_4;
114    int joystick_2_fire_5;
115    int joystick_2_fire_6;
116    int joystick_2_fire_7;
117    int joystick_2_fire_8;
118    int joystick_2_fire_9;
119    int joystick_2_output;
120    int joystick_keyboard_down;
121    int joystick_keyboard_fire;
122    int joystick_keyboard_left;
123    int joystick_keyboard_output;
124    int joystick_keyboard_right;
125    int joystick_keyboard_up;
126    int kempston_mouse;
127    int late_timings;
128   char *mdr_file;
129   char *mdr_file2;
130   char *mdr_file3;
131   char *mdr_file4;
132   char *mdr_file5;
133   char *mdr_file6;
134   char *mdr_file7;
135   char *mdr_file8;
136    int mdr_len;
137    int mdr_random_len;
138    int melodik;
139    int mouse_swap_buttons;
140   char *movie_compr;
141   char *movie_start;
142    int movie_stop_after_rzx;
143    int opus;
144   char *opusdisk_file;
145    int pal_tv2x;
146   char *playback_file;
147    int plus3_detect_speedlock;
148   char *plus3disk_file;
149    int plusd;
150   char *plusddisk_file;
151    int printer;
152   char *printer_graphics_filename;
153   char *printer_text_filename;
154    int raw_s_net;
155   char *record_file;
156   char *rom_128_0;
157   char *rom_128_1;
158   char *rom_16;
159   char *rom_48;
160   char *rom_beta128;
161   char *rom_disciple;
162   char *rom_interface_i;
163   char *rom_opus;
164   char *rom_pentagon1024_0;
165   char *rom_pentagon1024_1;
166   char *rom_pentagon1024_2;
167   char *rom_pentagon1024_3;
168   char *rom_pentagon512_0;
169   char *rom_pentagon512_1;
170   char *rom_pentagon512_2;
171   char *rom_pentagon512_3;
172   char *rom_pentagon_0;
173   char *rom_pentagon_1;
174   char *rom_pentagon_2;
175   char *rom_plus2_0;
176   char *rom_plus2_1;
177   char *rom_plus2a_0;
178   char *rom_plus2a_1;
179   char *rom_plus2a_2;
180   char *rom_plus2a_3;
181   char *rom_plus3_0;
182   char *rom_plus3_1;
183   char *rom_plus3_2;
184   char *rom_plus3_3;
185   char *rom_plus3e_0;
186   char *rom_plus3e_1;
187   char *rom_plus3e_2;
188   char *rom_plus3e_3;
189   char *rom_plusd;
190   char *rom_scorpion_0;
191   char *rom_scorpion_1;
192   char *rom_scorpion_2;
193   char *rom_scorpion_3;
194   char *rom_spec_se_0;
195   char *rom_spec_se_1;
196   char *rom_speccyboot;
197   char *rom_tc2048;
198   char *rom_tc2068_0;
199   char *rom_tc2068_1;
200   char *rom_ts2068_0;
201   char *rom_ts2068_1;
202    int rs232_handshake;
203   char *rs232_rx;
204   char *rs232_tx;
205    int rzx_autosaves;
206    int rzx_compression;
207    int simpleide_active;
208   char *simpleide_master_file;
209   char *simpleide_slave_file;
210    int slt_traps;
211   char *snapshot;
212   char *snet;
213    int sound;
214   char *sound_device;
215    int sound_force_8bit;
216    int sound_freq;
217    int sound_load;
218   char *speaker_type;
219    int speccyboot;
220   char *speccyboot_tap;
221    int specdrum;
222    int spectranet;
223    int spectranet_disable;
224   char *start_machine;
225   char *start_scaler_mode;
226    int statusbar;
227   char *stereo_ay;
228    int strict_aspect_hint;
229   char *svga_modes;
230   char *tape_file;
231    int tape_traps;
232    int unittests;
233    int volume_ay;
234    int volume_beeper;
235    int volume_specdrum;
236    int writable_roms;
237    int zxatasp_active;
238   char *zxatasp_master_file;
239   char *zxatasp_slave_file;
240    int zxatasp_upload;
241    int zxatasp_wp;
242    int zxcf_active;
243   char *zxcf_pri_file;
244    int zxcf_upload;
245    int zxprinter;
246 
247   int show_help;
248   int show_version;
249 
250 } settings_info;
251 
252 extern settings_info settings_current;
253 extern settings_info settings_default;
254 
255 int settings_init( int *first_arg, int argc, char **argv );
256 void settings_defaults( settings_info *settings );
257 void settings_copy( settings_info *dest, settings_info *src );
258 
259 #define SETTINGS_ROM_COUNT 30
260 char **settings_get_rom_setting( settings_info *settings, size_t which );
261 
262 void settings_set_string( char **string_setting, const char *value );
263 
264 int settings_free( settings_info *settings );
265 
266 int settings_write_config( settings_info *settings );
267 
268 int settings_end( void );
269 
270 #endif				/* #ifndef FUSE_SETTINGS_H */
271