-/*\r
- Skelton for retropc emulator\r
-\r
- Author : Takeda.Toshiya\r
- Date : 2006.08.18 -\r
-\r
- [ config ]\r
-*/\r
-\r
-#ifndef _CONFIG_H_\r
-#define _CONFIG_H_\r
-\r
-#include <tchar.h>\r
-#include "vm/vm.h"\r
-\r
-#define MAX_HISTORY 8\r
-\r
-#if defined(USE_CART2)\r
-#define MAX_CART 2\r
-#elif defined(USE_CART1)\r
-#define MAX_CART 1\r
-#endif\r
-\r
-#if defined(USE_FD8)\r
-#define MAX_FD 8\r
-#elif defined(USE_FD7)\r
-#define MAX_FD 7\r
-#elif defined(USE_FD6)\r
-#define MAX_FD 6\r
-#elif defined(USE_FD5)\r
-#define MAX_FD 5\r
-#elif defined(USE_FD4)\r
-#define MAX_FD 4\r
-#elif defined(USE_FD3)\r
-#define MAX_FD 3\r
-#elif defined(USE_FD2)\r
-#define MAX_FD 2\r
-#elif defined(USE_FD1)\r
-#define MAX_FD 1\r
-#endif\r
-\r
-#if defined(USE_QD2)\r
-#define MAX_QD 2\r
-#elif defined(USE_QD1)\r
-#define MAX_QD 1\r
-#endif\r
-\r
-#if defined(USE_BINARY_FILE2)\r
-#define MAX_BINARY 2\r
-#elif defined(USE_BINARY_FILE1)\r
-#define MAX_BINARY 1\r
-#endif\r
-\r
-void init_config();\r
-void load_config();\r
-void save_config();\r
-void save_config_state(void *f);\r
-bool load_config_state(void *f);\r
-\r
-typedef struct {\r
- // control\r
-#ifdef USE_BOOT_MODE\r
- int boot_mode;\r
-#endif\r
-#ifdef USE_CPU_TYPE\r
- int cpu_type;\r
-#endif\r
- int cpu_power;\r
-#ifdef USE_DIPSWITCH\r
- uint32 dipswitch;\r
-#endif\r
-#ifdef USE_DEVICE_TYPE\r
- int device_type;\r
-#endif\r
-#ifdef USE_FD1\r
- bool ignore_crc;\r
-#endif\r
-#ifdef USE_TAPE\r
- bool wave_shaper;\r
- bool direct_load_mzt;\r
-#endif\r
- \r
- // recent files\r
-#ifdef USE_CART1\r
- _TCHAR initial_cart_dir[_MAX_PATH];\r
- _TCHAR recent_cart_path[MAX_CART][MAX_HISTORY][_MAX_PATH];\r
-#endif\r
-#ifdef USE_FD1\r
- _TCHAR initial_disk_dir[_MAX_PATH];\r
- _TCHAR recent_disk_path[MAX_FD][MAX_HISTORY][_MAX_PATH];\r
-#endif\r
-#ifdef USE_QD1\r
- _TCHAR initial_quickdisk_dir[_MAX_PATH];\r
- _TCHAR recent_quickdisk_path[MAX_QD][MAX_HISTORY][_MAX_PATH];\r
-#endif\r
-#ifdef USE_TAPE\r
- _TCHAR initial_tape_dir[_MAX_PATH];\r
- _TCHAR recent_tape_path[MAX_HISTORY][_MAX_PATH];\r
-#endif\r
-#ifdef USE_LASER_DISC\r
- _TCHAR initial_laser_disc_dir[_MAX_PATH];\r
- _TCHAR recent_laser_disc_path[MAX_HISTORY][_MAX_PATH];\r
-#endif\r
-#ifdef USE_BINARY_FILE1\r
- _TCHAR initial_binary_dir[_MAX_PATH];\r
- _TCHAR recent_binary_path[MAX_BINARY][MAX_HISTORY][_MAX_PATH];\r
-#endif\r
- \r
- // screen\r
- int window_mode;\r
- bool use_d3d9;\r
- bool wait_vsync;\r
- int stretch_type;\r
-#ifdef USE_MONITOR_TYPE\r
- int monitor_type;\r
-#endif\r
-#ifdef USE_CRT_FILTER\r
- bool crt_filter;\r
-#endif\r
-#ifdef USE_SCANLINE\r
- bool scan_line;\r
-#endif\r
- \r
- // sound\r
- int sound_frequency;\r
- int sound_latency;\r
-#ifdef USE_SOUND_DEVICE_TYPE\r
- int sound_device_type;\r
-#endif\r
- _TCHAR fmgen_dll_path[_MAX_PATH];\r
-} config_t;\r
-\r
-extern config_t config;\r
-\r
-#endif\r
-\r
+/*
+ Skelton for retropc emulator
+
+ Author : Takeda.Toshiya
+ Date : 2006.08.18 -
+
+ [ config ]
+*/
+
+#ifndef _CONFIG_H_
+#define _CONFIG_H_
+
+# if defined(_USE_AGAR) || defined(_USE_SDL)
+#include <sys/param.h>
+#include <agar/core.h>
+#ifndef _MAX_PATH
+ #define _MAX_PATH AG_PATHNAME_MAX
+#endif
+# elif defined(_USE_QT)
+#include <sys/param.h>
+#include <QtCore/QFile>
+#include <QtCore/QFileInfo>
+
+#ifndef _MAX_PATH
+ #define _MAX_PATH 2048
+#endif
+#endif
+#include "vm/vm.h"
+#include "fileio.h"
+
+
+#define MAX_HISTORY 8
+
+#if defined(USE_CART2)
+#define MAX_CART 2
+#elif defined(USE_CART1)
+#define MAX_CART 1
+#endif
+
+#if defined(USE_FD8)
+#define MAX_FD 8
+#elif defined(USE_FD7)
+#define MAX_FD 7
+#elif defined(USE_FD6)
+#define MAX_FD 6
+#elif defined(USE_FD5)
+#define MAX_FD 5
+#elif defined(USE_FD4)
+#define MAX_FD 4
+#elif defined(USE_FD3)
+#define MAX_FD 3
+#elif defined(USE_FD2)
+#define MAX_FD 2
+#elif defined(USE_FD1)
+#define MAX_FD 1
+#endif
+
+#if defined(USE_QD2)
+#define MAX_QD 2
+#elif defined(USE_QD1)
+#define MAX_QD 1
+#endif
+
+#if defined(USE_BINARY_FILE2)
+#define MAX_BINARY 2
+#elif defined(USE_BINARY_FILE1)
+#define MAX_BINARY 1
+#endif
+
+#ifdef __cplusplus
+void init_config();
+void load_config();
+void save_config();
+void save_config_state(void *f);
+bool load_config_state(void *f);
+#endif
+
+typedef struct {
+ // control
+#ifdef USE_BOOT_MODE
+ int boot_mode;
+#endif
+#ifdef USE_CPU_TYPE
+ int cpu_type;
+#endif
+ int cpu_power;
+#ifdef USE_DIPSWITCH
+ uint32 dipswitch;
+#endif
+#ifdef USE_DEVICE_TYPE
+ int device_type;
+#endif
+#ifdef USE_FD1
+ BOOL ignore_crc;
+#endif
+#ifdef USE_TAPE
+ BOOL wave_shaper;
+ BOOL direct_load_mzt;
+#endif
+
+ // recent files
+#ifdef USE_CART1
+ _TCHAR initial_cart_dir[_MAX_PATH];
+ _TCHAR recent_cart_path[MAX_CART][MAX_HISTORY][_MAX_PATH];
+#endif
+#ifdef USE_FD1
+ _TCHAR initial_disk_dir[_MAX_PATH];
+ _TCHAR recent_disk_path[MAX_FD][MAX_HISTORY][_MAX_PATH];
+#endif
+#ifdef USE_QD1
+ _TCHAR initial_quickdisk_dir[_MAX_PATH];
+ _TCHAR recent_quickdisk_path[MAX_QD][MAX_HISTORY][_MAX_PATH];
+#endif
+#ifdef USE_TAPE
+ _TCHAR initial_tape_dir[_MAX_PATH];
+ _TCHAR recent_tape_path[MAX_HISTORY][_MAX_PATH];
+#endif
+#ifdef USE_LASER_DISC
+ _TCHAR initial_laser_disc_dir[_MAX_PATH];
+ _TCHAR recent_laser_disc_path[MAX_HISTORY][_MAX_PATH];
+#endif
+#ifdef USE_BINARY_FILE1
+ _TCHAR initial_binary_dir[_MAX_PATH];
+ _TCHAR recent_binary_path[MAX_BINARY][MAX_HISTORY][_MAX_PATH];
+#endif
+
+ // screen
+ int window_mode;
+ BOOL use_d3d9;
+ BOOL wait_vsync;
+ int stretch_type;
+#ifdef USE_MONITOR_TYPE
+ int monitor_type;
+#endif
+#ifdef USE_CRT_FILTER
+ BOOL crt_filter;
+#endif
+#ifdef USE_SCANLINE
+ BOOL scan_line;
+#endif
+
+ // sound
+ int sound_frequency;
+ int sound_latency;
+#ifdef USE_SOUND_DEVICE_TYPE
+ int sound_device_type;
+#endif
+ _TCHAR fmgen_dll_path[_MAX_PATH];
+} config_t;
+
+extern config_t config;
+
+#if defined(_USE_AGAR) || defined(_USE_QT)
+
+# include <string>
+
+extern bool WritePrivateProfileString(char *lpAppName, char *lpKeyName, char *Value, FILEIO *lpFileName);
+extern bool WritePrivateProfileInt(char *lpAppName, char *lpKeyName, int Value, FILEIO *lpFileName);
+extern BOOL WritePrivateProfileBool(char *lpAppName, char *lpKeyName, bool Value, FILEIO *lpFileName);
+extern std::string GetPrivateProfileStr(char *lpAppName, char *lpKeyName, FILEIO *lpFileName);
+extern void GetPrivateProfileString(char *section, char *key, char *defaultstr, char *str, int max_len, FILEIO *p);
+extern int GetPrivateProfileInt(char *lpAppName, char *lpKeyName, int nDefault, FILEIO *lpFileName);
+extern bool GetPrivateProfileBool(char *lpAppName, char *lpKeyName, bool bDefault, FILEIO *lpFileName);
+
+#endif
+
+#endif
+