]> Shamusworld >> Repos - apple2/blob - src/settings.h
e97dcdf1de44666f959add5542b8b3b1ef15b99a
[apple2] / src / settings.h
1 //
2 // SETTINGS.H: Header file
3 //
4
5 #ifndef __SETTINGS_H__
6 #define __SETTINGS_H__
7
8 // MAX_PATH isn't defined in stdlib.h on *nix, so we do it here...
9 #ifdef __GCCUNIX__
10 #include <limits.h>
11 #define MAX_PATH                _POSIX_PATH_MAX
12 #else
13 #include <stdlib.h>                                                             // for MAX_PATH on MinGW/Darwin
14 // Win64 kludge
15 #ifndef MAX_PATH
16 #define MAX_PATH                _MAX_PATH               // Ugh.
17 #endif
18 #endif
19 #include <stdint.h>
20
21 // Settings struct
22
23 struct Settings
24 {
25         bool useJoystick;
26         int32_t joyport;                        // Joystick port
27         bool hardwareTypeNTSC;          // Set to false for PAL
28         bool fullscreen;
29         bool useOpenGL;
30         uint32_t glFilter;
31         uint32_t frameSkip;
32         uint32_t renderType;
33         bool autoStateSaving;           // Auto-state loading/saving on entry/exit
34
35         // Window settings
36
37         int winX;
38         int winY;
39
40         // Keybindings in order of U, D, L, R, C, B, A, Op, Pa, 0-9, #, *
41
42         uint16_t p1KeyBindings[21];
43         uint16_t p2KeyBindings[21];
44
45         // Paths
46
47         char BIOSPath[MAX_PATH];
48         char disksPath[MAX_PATH];
49         char hdPath[MAX_PATH];
50         char autoStatePath[MAX_PATH];
51 };
52
53 // Render types
54
55 //enum { RT_NORMAL = 0, RT_TV = 1 };
56
57 // Exported functions
58
59 void LoadSettings(void);
60 void SaveSettings(void);
61
62 // Exported variables
63
64 extern Settings settings;
65
66 #endif  // __SETTINGS_H__
67