|
|
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.5 ! root 12: /* ROM (TOS + cartridge) configuration */
1.1.1.3 root 13: typedef struct
14: {
1.1.1.5 ! root 15: char szTosImageFileName[FILENAME_MAX];
! 16: char szCartridgeImageFileName[FILENAME_MAX];
! 17: } CNF_ROM;
1.1.1.3 root 18:
19:
20: /* Sound configuration */
21: typedef enum
22: {
23: PLAYBACK_LOW,
24: PLAYBACK_MEDIUM,
25: PLAYBACK_HIGH
26: } SOUND_QUALITIY;
27:
28: typedef struct
29: {
30: BOOL bEnableSound;
31: SOUND_QUALITIY nPlaybackQuality;
1.1.1.4 root 32: char szYMCaptureFileName[FILENAME_MAX];
1.1.1.3 root 33: } CNF_SOUND;
34:
35:
36:
1.1.1.4 root 37: /* RS232 configuration */
1.1.1.3 root 38: typedef struct
39: {
40: BOOL bEnableRS232;
1.1.1.4 root 41: char szOutFileName[FILENAME_MAX];
42: char szInFileName[FILENAME_MAX];
1.1.1.3 root 43: } CNF_RS232;
44:
45:
46: /* Dialog Keyboard */
47: typedef enum
48: {
49: KEYMAP_SYMBOLIC, /* Use keymapping with symbolic (ASCII) key codes */
50: KEYMAP_SCANCODE, /* Use keymapping with PC keyboard scancodes */
51: KEYMAP_LOADED /* Use keymapping with a map configuration file */
52: } KEYMAPTYPE;
53:
54: typedef struct
55: {
56: BOOL bDisableKeyRepeat;
57: KEYMAPTYPE nKeymapType;
1.1.1.4 root 58: char szMappingFileName[FILENAME_MAX];
1.1.1.3 root 59: } CNF_KEYBOARD;
60:
61:
62: /* Memory configuration */
63: typedef enum
64: {
65: MEMORY_SIZE_512Kb,
66: MEMORY_SIZE_1Mb,
67: MEMORY_SIZE_2Mb,
68: MEMORY_SIZE_4Mb
69: } MEMORY_SIZE;
70:
71: typedef struct
72: {
73: MEMORY_SIZE nMemorySize;
1.1.1.4 root 74: char szMemoryCaptureFileName[FILENAME_MAX];
1.1.1.3 root 75: } CNF_MEMORY;
76:
77:
78: /* Joystick configuration */
79: typedef struct
80: {
81: BOOL bCursorEmulation;
82: BOOL bEnableAutoFire;
83: } JOYSTICK;
84:
85: typedef struct
86: {
87: JOYSTICK Joy[2];
88: } CNF_JOYSTICKS;
89:
90:
91: /* Discimage configuration */
92: typedef struct
93: {
94: BOOL bAutoInsertDiscB;
1.1.1.4 root 95: char szDiscImageDirectory[FILENAME_MAX];
1.1.1.3 root 96: } CNF_DISCIMAGE;
97:
98:
99: /* Hard discs configuration */
100: #define MAX_HARDDRIVES 1
101: #define DRIVELIST_TO_DRIVE_INDEX(DriveList) (DriveList+1)
102:
103: typedef enum
104: {
105: DRIVELIST_NONE,
106: DRIVELIST_C,
107: DRIVELIST_CD,
108: DRIVELIST_CDE,
109: DRIVELIST_CDEF
110: } DRIVELIST;
111:
112: typedef enum
113: {
114: DRIVE_C,
115: DRIVE_D,
116: DRIVE_E,
117: DRIVE_F
118: } DRIVELETTER;
119:
120: typedef struct
121: {
122: int nDriveList;
123: BOOL bBootFromHardDisc;
124: int nHardDiscDir;
125: BOOL bUseHardDiscDirectories;
126: BOOL bUseHardDiscImage;
1.1.1.4 root 127: char szHardDiscDirectories[MAX_HARDDRIVES][FILENAME_MAX];
128: char szHardDiscImage[FILENAME_MAX];
1.1.1.3 root 129: } CNF_HARDDISC;
130:
131:
132: /* Screen configuration */
133: typedef struct
134: {
135: BOOL bFullScreen;
136: BOOL bFrameSkip;
1.1.1.5 ! root 137: BOOL bAllowOverscan;
! 138: BOOL bInterleavedScreen;
1.1.1.3 root 139: int ChosenDisplayMode;
1.1.1.5 ! root 140: BOOL bUseHighRes;
! 141: BOOL bUseExtVdiResolutions;
! 142: int nVdiResolution;
! 143: int nVdiColors;
1.1.1.3 root 144: BOOL bCaptureChange;
145: int nFramesPerSecond;
146: } CNF_SCREEN;
147:
148:
149: /* Printer configuration */
150: typedef struct
151: {
152: BOOL bEnablePrinting;
153: BOOL bPrintToFile;
1.1.1.4 root 154: char szPrintToFileName[FILENAME_MAX];
1.1.1.3 root 155: } CNF_PRINTER;
156:
157:
1.1.1.4 root 158: /* Midi configuration */
159: typedef struct
160: {
161: BOOL bEnableMidi;
162: char szMidiOutFileName[FILENAME_MAX];
163: } CNF_MIDI;
164:
165:
1.1.1.3 root 166: /* Dialog System */
167: typedef enum
168: {
169: MINMAXSPEED_MIN,
170: MINMAXSPEED_1,
171: MINMAXSPEED_2,
172: MINMAXSPEED_3,
173: MINMAXSPEED_MAX
174: } MINMAXSPEED_TYPE;
175:
176: typedef struct
177: {
178: int nCpuLevel;
179: BOOL bCompatibleCpu;
180: BOOL bAddressSpace24;
181: BOOL bBlitter; /* TRUE if blitter is enabled */
1.1.1.4 root 182: BOOL bPatchTimerD;
183: BOOL bSlowFDC; /* TRUE to slow down FDC emulation */
1.1.1.3 root 184: MINMAXSPEED_TYPE nMinMaxSpeed;
185: } CNF_SYSTEM;
186:
187:
188: /* State of system is stored in this structure */
189: /* On reset, variables are copied into system globals and used. */
190: typedef struct
191: {
192: /* Configure */
193: CNF_SCREEN Screen;
194: CNF_JOYSTICKS Joysticks;
195: CNF_KEYBOARD Keyboard;
196: CNF_SOUND Sound;
197: CNF_MEMORY Memory;
198: CNF_DISCIMAGE DiscImage;
199: CNF_HARDDISC HardDisc;
1.1.1.5 ! root 200: CNF_ROM Rom;
1.1.1.3 root 201: CNF_RS232 RS232;
202: CNF_PRINTER Printer;
1.1.1.4 root 203: CNF_MIDI Midi;
1.1.1.3 root 204: CNF_SYSTEM System;
205: } CNF_PARAMS;
206:
207:
1.1 root 208: extern BOOL bFirstTimeInstall;
1.1.1.3 root 209: extern CNF_PARAMS ConfigureParams;
1.1.1.4 root 210: extern char sConfigFileName[FILENAME_MAX];
1.1 root 211:
1.1.1.2 root 212: extern void Configuration_SetDefault(void);
1.1.1.5 ! root 213: extern void Configuration_WorkOnDetails(BOOL bReset);
1.1.1.3 root 214: extern void Configuration_Load(void);
215: extern void Configuration_Save(void);
216:
217: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.