|
|
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: /* Memory configuration */
72: typedef enum
73: {
74: MEMORY_SIZE_512Kb,
75: MEMORY_SIZE_1Mb,
76: MEMORY_SIZE_2Mb,
77: MEMORY_SIZE_4Mb
78: } MEMORY_SIZE;
79:
80: typedef struct
81: {
82: MEMORY_SIZE nMemorySize;
1.1.1.4 root 83: char szMemoryCaptureFileName[FILENAME_MAX];
1.1.1.3 root 84: } CNF_MEMORY;
85:
86:
87: /* Joystick configuration */
88: typedef struct
89: {
90: BOOL bCursorEmulation;
91: BOOL bEnableAutoFire;
92: } JOYSTICK;
93:
94: typedef struct
95: {
96: JOYSTICK Joy[2];
97: } CNF_JOYSTICKS;
98:
99:
100: /* Discimage 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: {
111: BOOL bAutoInsertDiscB;
1.1.1.6 ! root 112: WRITEPROTECTION nWriteProtection;
1.1.1.4 root 113: char szDiscImageDirectory[FILENAME_MAX];
1.1.1.3 root 114: } CNF_DISCIMAGE;
115:
116:
117: /* Hard discs configuration */
118: #define MAX_HARDDRIVES 1
119: #define DRIVELIST_TO_DRIVE_INDEX(DriveList) (DriveList+1)
120:
121: typedef enum
122: {
123: DRIVELIST_NONE,
124: DRIVELIST_C,
125: DRIVELIST_CD,
126: DRIVELIST_CDE,
127: DRIVELIST_CDEF
128: } DRIVELIST;
129:
130: typedef enum
131: {
132: DRIVE_C,
133: DRIVE_D,
134: DRIVE_E,
135: DRIVE_F
136: } DRIVELETTER;
137:
138: typedef struct
139: {
140: int nDriveList;
141: BOOL bBootFromHardDisc;
142: int nHardDiscDir;
143: BOOL bUseHardDiscDirectories;
144: BOOL bUseHardDiscImage;
1.1.1.4 root 145: char szHardDiscDirectories[MAX_HARDDRIVES][FILENAME_MAX];
146: char szHardDiscImage[FILENAME_MAX];
1.1.1.3 root 147: } CNF_HARDDISC;
148:
149:
150: /* Screen configuration */
151: typedef struct
152: {
153: BOOL bFullScreen;
154: BOOL bFrameSkip;
1.1.1.5 root 155: BOOL bAllowOverscan;
156: BOOL bInterleavedScreen;
1.1.1.3 root 157: int ChosenDisplayMode;
1.1.1.5 root 158: BOOL bUseHighRes;
159: BOOL bUseExtVdiResolutions;
160: int nVdiResolution;
161: int nVdiColors;
1.1.1.3 root 162: BOOL bCaptureChange;
163: int nFramesPerSecond;
164: } CNF_SCREEN;
165:
166:
167: /* Printer configuration */
168: typedef struct
169: {
170: BOOL bEnablePrinting;
171: BOOL bPrintToFile;
1.1.1.4 root 172: char szPrintToFileName[FILENAME_MAX];
1.1.1.3 root 173: } CNF_PRINTER;
174:
175:
1.1.1.4 root 176: /* Midi configuration */
177: typedef struct
178: {
179: BOOL bEnableMidi;
180: char szMidiOutFileName[FILENAME_MAX];
181: } CNF_MIDI;
182:
183:
1.1.1.3 root 184: /* Dialog System */
185: typedef enum
186: {
187: MINMAXSPEED_MIN,
188: MINMAXSPEED_1,
189: MINMAXSPEED_2,
190: MINMAXSPEED_3,
191: MINMAXSPEED_MAX
192: } MINMAXSPEED_TYPE;
193:
1.1.1.6 ! root 194: typedef enum
! 195: {
! 196: MACHINE_ST,
! 197: MACHINE_STE
! 198: } MACHINETYPE;
! 199:
1.1.1.3 root 200: typedef struct
201: {
202: int nCpuLevel;
1.1.1.6 ! root 203: int nCpuFreq;
1.1.1.3 root 204: BOOL bCompatibleCpu;
1.1.1.6 ! root 205: /*BOOL bAddressSpace24;*/
! 206: MACHINETYPE nMachineType;
1.1.1.3 root 207: BOOL bBlitter; /* TRUE if blitter is enabled */
1.1.1.6 ! root 208: BOOL bRealTimeClock;
1.1.1.4 root 209: BOOL bPatchTimerD;
210: BOOL bSlowFDC; /* TRUE to slow down FDC emulation */
1.1.1.3 root 211: MINMAXSPEED_TYPE nMinMaxSpeed;
212: } CNF_SYSTEM;
213:
214:
215: /* State of system is stored in this structure */
216: /* On reset, variables are copied into system globals and used. */
217: typedef struct
218: {
219: /* Configure */
1.1.1.6 ! root 220: CNF_LOG Log;
1.1.1.3 root 221: CNF_SCREEN Screen;
222: CNF_JOYSTICKS Joysticks;
223: CNF_KEYBOARD Keyboard;
224: CNF_SOUND Sound;
225: CNF_MEMORY Memory;
226: CNF_DISCIMAGE DiscImage;
227: CNF_HARDDISC HardDisc;
1.1.1.5 root 228: CNF_ROM Rom;
1.1.1.3 root 229: CNF_RS232 RS232;
230: CNF_PRINTER Printer;
1.1.1.4 root 231: CNF_MIDI Midi;
1.1.1.3 root 232: CNF_SYSTEM System;
233: } CNF_PARAMS;
234:
235:
1.1 root 236: extern BOOL bFirstTimeInstall;
1.1.1.3 root 237: extern CNF_PARAMS ConfigureParams;
1.1.1.4 root 238: extern char sConfigFileName[FILENAME_MAX];
1.1 root 239:
1.1.1.2 root 240: extern void Configuration_SetDefault(void);
1.1.1.5 root 241: extern void Configuration_WorkOnDetails(BOOL bReset);
1.1.1.6 ! root 242: extern void Configuration_Load(const char *psFileName);
1.1.1.3 root 243: extern void Configuration_Save(void);
244:
245: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.