--- uae/src/include/options.h 2018/04/24 17:12:57 1.1.1.24 +++ uae/src/include/options.h 2018/04/24 17:17:05 1.1.1.26 @@ -7,10 +7,6 @@ * Copyright 1995-2001 Bernd Schmidt */ -#define UAEMAJOR 0 -#define UAEMINOR 8 -#define UAESUBREV 24 - typedef enum { KBD_LANG_US, KBD_LANG_DK, KBD_LANG_DE, KBD_LANG_SE, KBD_LANG_FR, KBD_LANG_IT, KBD_LANG_ES } KbdLang; extern long int version; @@ -22,6 +18,34 @@ struct strlist { char *str; }; +/* maximum number native input devices supported (single type) */ +#define MAX_INPUT_DEVICES 6 +/* maximum number of native input device's buttons and axles supported */ +#define MAX_INPUT_DEVICE_EVENTS 256 +/* 4 different customization settings */ +#define MAX_INPUT_SETTINGS 4 +#define MAX_INPUT_SUB_EVENT 4 +#define MAX_INPUT_SIMULTANEOUS_KEYS 4 + +struct uae_input_device { + char *name; + uae_s16 eventid[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT]; + char *custom[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT]; + uae_u16 flags[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT]; + uae_s16 extra[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SIMULTANEOUS_KEYS]; + uae_u8 enabled; +}; + +struct gfx_params { + int width; + int height; + int lores; + int linedbl; + int correct_aspect; + int xcenter; + int ycenter; +}; + struct uae_prefs { struct strlist *unknown_lines; @@ -39,8 +63,6 @@ struct uae_prefs { int start_debugger; int start_gui; - int jport0; - int jport1; KbdLang keyboard_lang; int allow_save; int emul_accuracy; @@ -58,15 +80,9 @@ struct uae_prefs { int sound_interpol; int gfx_framerate; - int gfx_width; - int gfx_height; - int gfx_lores; - int gfx_linedbl; - int gfx_correct_aspect; + struct gfx_params gfx_w, gfx_f; int gfx_afullscreen; int gfx_pfullscreen; - int gfx_xcenter; - int gfx_ycenter; int color_mode; int blits_32bit_enabled; @@ -104,6 +120,7 @@ struct uae_prefs { struct uaedev_mount_info *mountinfo; int nr_floppies; + int dfxtype[4]; /* Target specific options */ int x11_use_low_bandwidth; @@ -119,6 +136,19 @@ struct uae_prefs { int win32_automount_drives; int curses_reverse_video; + + int jport0; + int jport1; + int input_selected_setting; + int input_joymouse_multiplier; + int input_joymouse_deadzone; + int input_joystick_deadzone; + int input_joymouse_speed; + int input_autofire_framecnt; + int input_mouse_speed; + struct uae_input_device joystick_settings[MAX_INPUT_SETTINGS + 1][MAX_INPUT_DEVICES]; + struct uae_input_device mouse_settings[MAX_INPUT_SETTINGS + 1][MAX_INPUT_DEVICES]; + struct uae_input_device keyboard_settings[MAX_INPUT_SETTINGS + 1][MAX_INPUT_DEVICES]; }; /* Contains the filename of .uaerc */ @@ -146,25 +176,17 @@ extern int cfgfile_parse_option (struct extern int cfgfile_get_description (const char *filename, char *description); extern void cfgfile_show_usage (void); -extern void fixup_prefs_dimensions (struct uae_prefs *prefs); +extern void fixup_prefs_dimensions (struct gfx_params *); extern void check_prefs_changed_custom (void); extern void check_prefs_changed_cpu (void); extern void check_prefs_changed_audio (void); extern int check_prefs_changed_gfx (void); -#define JSEM_DECODEVAL(n,v) ((n) == 0 ? (v)->jport0 : (v)->jport1) -/* Determine how port n is configured */ -#define JSEM_ISJOY0(n,v) (JSEM_DECODEVAL(n,v) == 0) -#define JSEM_ISJOY1(n,v) (JSEM_DECODEVAL(n,v) == 1) -#define JSEM_ISMOUSE(n,v) (JSEM_DECODEVAL(n,v) == 2) -#define JSEM_ISNUMPAD(n,v) (JSEM_DECODEVAL(n,v) == 3) -#define JSEM_ISCURSOR(n,v) (JSEM_DECODEVAL(n,v) == 4) -#define JSEM_ISSOMEWHEREELSE(n,v) (JSEM_DECODEVAL(n,v) == 5) -extern const char *gameport_state (int n); - extern struct uae_prefs currprefs, changed_prefs; +extern struct gfx_params *curr_gfx; + extern void machdep_init (void); /* AIX doesn't think it is Unix. Neither do I. */