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