OSDN Git Service

[General][Qt] Merge upstream, datarecorder with sound.
[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
32 #define MAX_HISTORY     8
33
34 #if defined(USE_CART2)
35 #define MAX_CART        2
36 #elif defined(USE_CART1)
37 #define MAX_CART        1
38 #endif
39
40 #if defined(USE_FD8)
41 #define MAX_FD          8
42 #elif defined(USE_FD7)
43 #define MAX_FD          7
44 #elif defined(USE_FD6)
45 #define MAX_FD          6
46 #elif defined(USE_FD5)
47 #define MAX_FD          5
48 #elif defined(USE_FD4)
49 #define MAX_FD          4
50 #elif defined(USE_FD3)
51 #define MAX_FD          3
52 #elif defined(USE_FD2)
53 #define MAX_FD          2
54 #elif defined(USE_FD1)
55 #define MAX_FD          1
56 #endif
57
58 #if defined(USE_QD2)
59 #define MAX_QD          2
60 #elif defined(USE_QD1)
61 #define MAX_QD          1
62 #endif
63
64 #if defined(USE_BINARY_FILE2)
65 #define MAX_BINARY      2
66 #elif defined(USE_BINARY_FILE1)
67 #define MAX_BINARY      1
68 #endif
69
70 #ifdef __cplusplus
71 void init_config();
72 void load_config();
73 void save_config();
74 void save_config_state(void *f);
75 bool load_config_state(void *f);
76 #endif
77
78 typedef struct {
79         // control
80 #ifdef USE_BOOT_MODE
81         int boot_mode;
82 #endif
83 #ifdef USE_CPU_TYPE
84         int cpu_type;
85 #endif
86         int cpu_power;
87 #ifdef USE_DIPSWITCH
88         uint32 dipswitch;
89 #endif
90 #ifdef USE_DEVICE_TYPE
91         int device_type;
92 #endif
93 #ifdef USE_DRIVE_TYPE
94         int drive_type;
95 #endif
96 #ifdef USE_FD1
97         BOOL ignore_crc;
98 #endif
99 #ifdef USE_TAPE
100         bool tape_sound;
101         BOOL wave_shaper;
102         BOOL direct_load_mzt;
103         bool baud_high;
104 #endif
105         
106         // recent files
107 #ifdef USE_CART1
108         _TCHAR initial_cart_dir[_MAX_PATH];
109         _TCHAR recent_cart_path[MAX_CART][MAX_HISTORY][_MAX_PATH];
110 #endif
111 #ifdef USE_FD1
112         _TCHAR initial_disk_dir[_MAX_PATH];
113         _TCHAR recent_disk_path[MAX_FD][MAX_HISTORY][_MAX_PATH];
114 #endif
115 #ifdef USE_QD1
116         _TCHAR initial_quickdisk_dir[_MAX_PATH];
117         _TCHAR recent_quickdisk_path[MAX_QD][MAX_HISTORY][_MAX_PATH];
118 #endif
119 #ifdef USE_TAPE
120         _TCHAR initial_tape_dir[_MAX_PATH];
121         _TCHAR recent_tape_path[MAX_HISTORY][_MAX_PATH];
122 #endif
123 #ifdef USE_LASER_DISC
124         _TCHAR initial_laser_disc_dir[_MAX_PATH];
125         _TCHAR recent_laser_disc_path[MAX_HISTORY][_MAX_PATH];
126 #endif
127 #ifdef USE_BINARY_FILE1
128         _TCHAR initial_binary_dir[_MAX_PATH];
129         _TCHAR recent_binary_path[MAX_BINARY][MAX_HISTORY][_MAX_PATH];
130 #endif
131 #ifdef USE_SCREEN_ROTATE
132         bool rotate_type; // FIXME: wanna support +90deg, +180deg and +270deg
133 #endif
134         
135         // screen
136         int window_mode;
137         BOOL use_d3d9;
138         BOOL wait_vsync;
139         int stretch_type;
140 #ifdef USE_MONITOR_TYPE
141         int monitor_type;
142 #endif
143 #ifdef USE_CRT_FILTER
144         BOOL crt_filter;
145 #endif
146 #ifdef USE_SCANLINE
147         BOOL scan_line;
148 #endif
149         //BOOL cmt_sound;
150         //int  cmt_volume;
151         // sound
152         int sound_frequency;
153         int sound_latency;
154 #ifdef USE_SOUND_DEVICE_TYPE
155         int sound_device_type;
156 #endif
157         _TCHAR fmgen_dll_path[_MAX_PATH];
158 } config_t;
159
160 extern config_t config;
161
162 #if defined(_USE_AGAR) || defined(_USE_QT)
163
164 # include <string>
165
166 extern bool WritePrivateProfileString(char *lpAppName, char *lpKeyName, char *Value, FILEIO *lpFileName);
167 extern bool WritePrivateProfileInt(char *lpAppName, char *lpKeyName, int Value, FILEIO *lpFileName);
168 extern BOOL WritePrivateProfileBool(char *lpAppName, char *lpKeyName, bool Value, FILEIO *lpFileName);
169 extern std::string GetPrivateProfileStr(char *lpAppName, char *lpKeyName, FILEIO *lpFileName);
170 extern void GetPrivateProfileString(char *section, char *key, char *defaultstr, char *str, int max_len, FILEIO *p);
171 extern int GetPrivateProfileInt(char *lpAppName, char *lpKeyName, int nDefault, FILEIO *lpFileName);
172 extern bool GetPrivateProfileBool(char *lpAppName, char *lpKeyName, bool bDefault, FILEIO *lpFileName);
173
174 #endif
175
176 #endif
177