|
|
1.1 root 1: /*
1.1.1.3 root 2: Hatari - configuration.h
3:
4: This file is distributed under the GNU Public License, version 2 or at
5: your option any later version. Read the file gpl.txt for details.
1.1 root 6: */
7:
1.1.1.3 root 8: #ifndef HATARI_CONFIGURATION_H
9: #define HATARI_CONFIGURATION_H
10:
11:
1.1.1.6 root 12: /* Logging */
13: typedef struct
14: {
15: char sLogFileName[FILENAME_MAX];
16: int nTextLogLevel;
17: int nAlertDlgLogLevel;
18: } CNF_LOG;
19:
20:
1.1.1.5 root 21: /* ROM (TOS + cartridge) configuration */
1.1.1.3 root 22: typedef struct
23: {
1.1.1.5 root 24: char szTosImageFileName[FILENAME_MAX];
25: char szCartridgeImageFileName[FILENAME_MAX];
26: } CNF_ROM;
1.1.1.3 root 27:
28:
29: /* Sound configuration */
30: typedef enum
31: {
32: PLAYBACK_LOW,
33: PLAYBACK_MEDIUM,
34: PLAYBACK_HIGH
35: } SOUND_QUALITIY;
36:
37: typedef struct
38: {
39: BOOL bEnableSound;
40: SOUND_QUALITIY nPlaybackQuality;
1.1.1.4 root 41: char szYMCaptureFileName[FILENAME_MAX];
1.1.1.3 root 42: } CNF_SOUND;
43:
44:
45:
1.1.1.4 root 46: /* RS232 configuration */
1.1.1.3 root 47: typedef struct
48: {
49: BOOL bEnableRS232;
1.1.1.4 root 50: char szOutFileName[FILENAME_MAX];
51: char szInFileName[FILENAME_MAX];
1.1.1.3 root 52: } CNF_RS232;
53:
54:
55: /* Dialog Keyboard */
56: typedef enum
57: {
58: KEYMAP_SYMBOLIC, /* Use keymapping with symbolic (ASCII) key codes */
59: KEYMAP_SCANCODE, /* Use keymapping with PC keyboard scancodes */
60: KEYMAP_LOADED /* Use keymapping with a map configuration file */
61: } KEYMAPTYPE;
62:
63: typedef struct
64: {
65: BOOL bDisableKeyRepeat;
66: KEYMAPTYPE nKeymapType;
1.1.1.4 root 67: char szMappingFileName[FILENAME_MAX];
1.1.1.3 root 68: } CNF_KEYBOARD;
69:
70:
71: typedef struct
72: {
1.1.1.7 ! root 73: int nMemorySize;
1.1.1.4 root 74: char szMemoryCaptureFileName[FILENAME_MAX];
1.1.1.3 root 75: } CNF_MEMORY;
76:
77:
78: /* Joystick configuration */
1.1.1.7 ! root 79: typedef enum
! 80: {
! 81: JOYSTICK_DISABLED,
! 82: JOYSTICK_REALSTICK,
! 83: JOYSTICK_KEYBOARD
! 84: } JOYSTICKMODE;
! 85:
1.1.1.3 root 86: typedef struct
87: {
1.1.1.7 ! root 88: JOYSTICKMODE nJoystickMode;
1.1.1.3 root 89: BOOL bEnableAutoFire;
1.1.1.7 ! root 90: int nJoyId;
! 91: int nKeyCodeUp, nKeyCodeDown, nKeyCodeLeft, nKeyCodeRight, nKeyCodeFire;
1.1.1.3 root 92: } JOYSTICK;
93:
94: typedef struct
95: {
1.1.1.7 ! root 96: JOYSTICK Joy[6];
1.1.1.3 root 97: } CNF_JOYSTICKS;
98:
99:
1.1.1.7 ! root 100: /* Disk image configuration */
1.1.1.6 root 101:
102: typedef enum
103: {
104: WRITEPROT_OFF,
105: WRITEPROT_ON,
106: WRITEPROT_AUTO
107: } WRITEPROTECTION;
108:
1.1.1.3 root 109: typedef struct
110: {
1.1.1.7 ! root 111: BOOL bAutoInsertDiskB;
1.1.1.6 root 112: WRITEPROTECTION nWriteProtection;
1.1.1.7 ! root 113: char szDiskImageDirectory[FILENAME_MAX];
! 114: } CNF_DISKIMAGE;
1.1.1.3 root 115:
116:
1.1.1.7 ! root 117: /* Hard drives configuration */
1.1.1.3 root 118: #define MAX_HARDDRIVES 1
119:
120: typedef enum
121: {
122: DRIVE_C,
123: DRIVE_D,
124: DRIVE_E,
125: DRIVE_F
126: } DRIVELETTER;
127:
128: typedef struct
129: {
1.1.1.7 ! root 130: BOOL bBootFromHardDisk;
! 131: int nHardDiskDir;
! 132: BOOL bUseHardDiskDirectories;
! 133: BOOL bUseHardDiskImage;
! 134: char szHardDiskDirectories[MAX_HARDDRIVES][FILENAME_MAX];
! 135: char szHardDiskImage[FILENAME_MAX];
! 136: } CNF_HARDDISK;
1.1.1.3 root 137:
138:
139: /* Screen configuration */
140: typedef struct
141: {
142: BOOL bFullScreen;
143: BOOL bFrameSkip;
1.1.1.5 root 144: BOOL bAllowOverscan;
145: BOOL bInterleavedScreen;
1.1.1.3 root 146: int ChosenDisplayMode;
1.1.1.5 root 147: BOOL bUseHighRes;
148: BOOL bUseExtVdiResolutions;
149: int nVdiResolution;
150: int nVdiColors;
1.1.1.3 root 151: BOOL bCaptureChange;
152: int nFramesPerSecond;
153: } CNF_SCREEN;
154:
155:
156: /* Printer configuration */
157: typedef struct
158: {
159: BOOL bEnablePrinting;
160: BOOL bPrintToFile;
1.1.1.4 root 161: char szPrintToFileName[FILENAME_MAX];
1.1.1.3 root 162: } CNF_PRINTER;
163:
164:
1.1.1.4 root 165: /* Midi configuration */
166: typedef struct
167: {
168: BOOL bEnableMidi;
169: char szMidiOutFileName[FILENAME_MAX];
170: } CNF_MIDI;
171:
172:
1.1.1.3 root 173: /* Dialog System */
174: typedef enum
175: {
176: MINMAXSPEED_MIN,
177: MINMAXSPEED_1,
178: MINMAXSPEED_2,
179: MINMAXSPEED_3,
180: MINMAXSPEED_MAX
181: } MINMAXSPEED_TYPE;
182:
1.1.1.6 root 183: typedef enum
184: {
185: MACHINE_ST,
186: MACHINE_STE
187: } MACHINETYPE;
188:
1.1.1.3 root 189: typedef struct
190: {
191: int nCpuLevel;
1.1.1.6 root 192: int nCpuFreq;
1.1.1.3 root 193: BOOL bCompatibleCpu;
1.1.1.6 root 194: /*BOOL bAddressSpace24;*/
195: MACHINETYPE nMachineType;
1.1.1.3 root 196: BOOL bBlitter; /* TRUE if blitter is enabled */
1.1.1.6 root 197: BOOL bRealTimeClock;
1.1.1.4 root 198: BOOL bPatchTimerD;
199: BOOL bSlowFDC; /* TRUE to slow down FDC emulation */
1.1.1.3 root 200: MINMAXSPEED_TYPE nMinMaxSpeed;
201: } CNF_SYSTEM;
202:
203:
204: /* State of system is stored in this structure */
205: /* On reset, variables are copied into system globals and used. */
206: typedef struct
207: {
208: /* Configure */
1.1.1.6 root 209: CNF_LOG Log;
1.1.1.3 root 210: CNF_SCREEN Screen;
211: CNF_JOYSTICKS Joysticks;
212: CNF_KEYBOARD Keyboard;
213: CNF_SOUND Sound;
214: CNF_MEMORY Memory;
1.1.1.7 ! root 215: CNF_DISKIMAGE DiskImage;
! 216: CNF_HARDDISK HardDisk;
1.1.1.5 root 217: CNF_ROM Rom;
1.1.1.3 root 218: CNF_RS232 RS232;
219: CNF_PRINTER Printer;
1.1.1.4 root 220: CNF_MIDI Midi;
1.1.1.3 root 221: CNF_SYSTEM System;
222: } CNF_PARAMS;
223:
224:
1.1 root 225: extern BOOL bFirstTimeInstall;
1.1.1.3 root 226: extern CNF_PARAMS ConfigureParams;
1.1.1.4 root 227: extern char sConfigFileName[FILENAME_MAX];
1.1 root 228:
1.1.1.2 root 229: extern void Configuration_SetDefault(void);
1.1.1.5 root 230: extern void Configuration_WorkOnDetails(BOOL bReset);
1.1.1.6 root 231: extern void Configuration_Load(const char *psFileName);
1.1.1.3 root 232: extern void Configuration_Save(void);
233:
234: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.