OSDN Git Service

[VM][UI][Qt] General : Merge upstream 2015-08-01.
[csp-qt/common_source_project-fm7.git] / source / src / config.h
1 /*
2         Skelton for retropc emulator
3
4         Author : Takeda.Toshiya
5         Date   : 2006.08.18 -
6
7         [ config ]
8 */
9
10 #ifndef _CONFIG_H_
11 #define _CONFIG_H_
12
13 # if defined(_USE_AGAR) || defined(_USE_SDL)
14 #include <sys/param.h>
15 #include <agar/core.h>
16 #ifndef _MAX_PATH
17  #define _MAX_PATH AG_PATHNAME_MAX
18 #endif
19 # elif defined(_USE_QT)
20 #include <sys/param.h>
21 #include <QtCore/QFile>
22 #include <QtCore/QFileInfo>
23
24 #ifndef _MAX_PATH
25  #define _MAX_PATH 2048
26 #endif
27 #endif
28 #include "vm/vm.h"
29 #include "fileio.h"
30
31 // LOG COMMAND
32 #define EMU_LOG_CPU1        0x00000001
33 #define EMU_LOG_CPU2        0x00000002
34 #define EMU_LOG_CPU3        0x00000004
35 #define EMU_LOG_CPU4        0x00000008
36 #define EMU_LOG_FLOPPY      0x00000010
37 #define EMU_LOG_CMT         0x00000020
38 #define EMU_LOG_QD          0x00000040
39 #define EMU_LOG_CART        0x00000080
40 #define EMU_LOG_BINARY      0x00000100
41 #define EMU_LOG_LASERDISC   0x00000200
42 #define EMU_LOG_DISPLAY     0x00001000
43 #define EMU_LOG_SOUND       0x00002000
44 #define EMU_LOG_KEYBOARD    0x00004000
45 #define EMU_LOG_IO          0x00008000
46 #define EMU_LOG_MEMORY      0x00010000
47 #define EMU_LOG_USR1        0x00020000
48 #define EMU_LOG_USR2        0x00040000
49 #define EMU_LOG_USR3        0x00080000
50 #define EMU_LOG_USR4        0x00100000
51 #define EMU_LOG_USR5        0x00200000
52 #define EMU_LOG_USR6        0x00400000
53 #define EMU_LOG_USR7        0x00800000
54 #define EMU_LOG_USR8        0x01000000
55 #define EMU_LOG_USR9        0x02000000
56 #define EMU_LOG_USR10       0x04000000
57 #define EMU_LOG_GUI         0x08000000
58 #define EMU_LOG_DEBUG       0x10000000
59 #define EMU_LOG_INFO        0x20000000
60 #define EMU_LOG_WARNING     0x40000000
61 #define EMU_LOG_GENERAL     0x80000000
62
63 #define MAX_HISTORY     8
64
65 #if defined(USE_CART2)
66 #define MAX_CART        2
67 #elif defined(USE_CART1)
68 #define MAX_CART        1
69 #endif
70
71 #if defined(USE_FD8)
72 #define MAX_FD          8
73 #elif defined(USE_FD7)
74 #define MAX_FD          7
75 #elif defined(USE_FD6)
76 #define MAX_FD          6
77 #elif defined(USE_FD5)
78 #define MAX_FD          5
79 #elif defined(USE_FD4)
80 #define MAX_FD          4
81 #elif defined(USE_FD3)
82 #define MAX_FD          3
83 #elif defined(USE_FD2)
84 #define MAX_FD          2
85 #elif defined(USE_FD1)
86 #define MAX_FD          1
87 #endif
88
89 #if defined(USE_QD2)
90 #define MAX_QD          2
91 #elif defined(USE_QD1)
92 #define MAX_QD          1
93 #endif
94
95 #if defined(USE_BINARY_FILE2)
96 #define MAX_BINARY      2
97 #elif defined(USE_BINARY_FILE1)
98 #define MAX_BINARY      1
99 #endif
100
101 #ifdef __cplusplus
102 void init_config();
103 void load_config();
104 void save_config();
105 void save_config_state(void *f);
106 bool load_config_state(void *f);
107 #endif
108
109 typedef struct {
110         // control
111 #ifdef USE_BOOT_MODE
112         int boot_mode;
113 #endif
114 #ifdef USE_CPU_TYPE
115         int cpu_type;
116 #endif
117         int cpu_power;
118 #ifdef USE_DIPSWITCH
119         uint32 dipswitch;
120 #endif
121 #ifdef USE_DEVICE_TYPE
122         int device_type;
123 #endif
124 #ifdef USE_DRIVE_TYPE
125         int drive_type;
126 #endif
127 #ifdef USE_FD1
128         bool ignore_crc[16];
129         //bool fdd_hack_fast_transfer[16];
130 #endif
131 #ifdef USE_TAPE
132         bool tape_sound;
133         bool wave_shaper;
134         bool direct_load_mzt;
135         bool baud_high;
136 #endif
137         
138         // recent files
139 #ifdef USE_CART1
140         _TCHAR initial_cart_dir[_MAX_PATH];
141         _TCHAR recent_cart_path[MAX_CART][MAX_HISTORY][_MAX_PATH];
142 #endif
143 #ifdef USE_FD1
144         _TCHAR initial_disk_dir[_MAX_PATH];
145         _TCHAR recent_disk_path[MAX_FD][MAX_HISTORY][_MAX_PATH];
146 #endif
147 #ifdef USE_QD1
148         _TCHAR initial_quickdisk_dir[_MAX_PATH];
149         _TCHAR recent_quickdisk_path[MAX_QD][MAX_HISTORY][_MAX_PATH];
150 #endif
151 #ifdef USE_TAPE
152         _TCHAR initial_tape_dir[_MAX_PATH];
153         _TCHAR recent_tape_path[MAX_HISTORY][_MAX_PATH];
154 #endif
155 #ifdef USE_LASER_DISC
156         _TCHAR initial_laser_disc_dir[_MAX_PATH];
157         _TCHAR recent_laser_disc_path[MAX_HISTORY][_MAX_PATH];
158 #endif
159 #ifdef USE_BINARY_FILE1
160         _TCHAR initial_binary_dir[_MAX_PATH];
161         _TCHAR recent_binary_path[MAX_BINARY][MAX_HISTORY][_MAX_PATH];
162 #endif
163 #ifdef USE_SCREEN_ROTATE
164         bool rotate_type; // FIXME: wanna support +90deg, +180deg and +270deg
165 #endif
166         
167         // screen
168         int window_mode;
169 #ifdef _WIN32
170         bool use_d3d9;
171         bool wait_vsync;
172 #endif
173         int stretch_type;
174 #ifdef USE_MONITOR_TYPE
175         int monitor_type;
176 #endif
177 #ifdef USE_CRT_FILTER
178         BOOL crt_filter;
179 #endif
180 #ifdef USE_SCANLINE
181         bool scan_line;
182 #endif
183         // sound
184         int sound_frequency;
185         int sound_latency;
186         
187         int general_sound_level;
188 #ifdef USE_MULTIPLE_SOUNDCARDS
189         int sound_device_level[USE_MULTIPLE_SOUNDCARDS];
190 #endif
191         bool multiple_speakers; // Effext if multiple sound boards : TRUE = not monoral.
192 #if defined(USE_QT)
193         bool use_opengl_scanline;
194         bool opengl_scanline_vert;
195         bool opengl_scanline_horiz;
196         
197         bool use_opengl_filters;
198         int opengl_filter_num;
199 #endif  
200 #ifdef USE_SOUND_DEVICE_TYPE
201         int sound_device_type;
202 #endif
203         _TCHAR fmgen_dll_path[_MAX_PATH];
204         
205         // input
206 #ifdef _WIN32
207         bool use_direct_input;
208         bool disable_dwm;
209 #endif
210         bool swap_joy_buttons;
211 } config_t;
212
213 extern config_t config;
214
215 #if defined(_USE_AGAR) || defined(_USE_QT)
216
217 # include <string>
218
219 extern bool WritePrivateProfileString(char *lpAppName, char *lpKeyName, char *Value, FILEIO *lpFileName);
220 extern bool WritePrivateProfileInt(char *lpAppName, char *lpKeyName, int Value, FILEIO *lpFileName);
221 extern BOOL WritePrivateProfileBool(char *lpAppName, char *lpKeyName, bool Value, FILEIO *lpFileName);
222 extern std::string GetPrivateProfileStr(char *lpAppName, char *lpKeyName, FILEIO *lpFileName);
223 extern void GetPrivateProfileString(char *section, char *key, char *defaultstr, char *str, int max_len, FILEIO *p);
224 extern int GetPrivateProfileInt(char *lpAppName, char *lpKeyName, int nDefault, FILEIO *lpFileName);
225 extern bool GetPrivateProfileBool(char *lpAppName, char *lpKeyName, bool bDefault, FILEIO *lpFileName);
226
227 #endif
228
229 #endif
230