--- uae/src/include/options.h 2018/04/24 17:12:57 1.1.1.24 +++ uae/src/include/options.h 2018/04/24 17:14:49 1.1.1.25 @@ -9,7 +9,7 @@ #define UAEMAJOR 0 #define UAEMINOR 8 -#define UAESUBREV 24 +#define UAESUBREV 25 typedef enum { KBD_LANG_US, KBD_LANG_DK, KBD_LANG_DE, KBD_LANG_SE, KBD_LANG_FR, KBD_LANG_IT, KBD_LANG_ES } KbdLang; @@ -22,6 +22,24 @@ 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 uae_prefs { struct strlist *unknown_lines; @@ -39,8 +57,6 @@ struct uae_prefs { int start_debugger; int start_gui; - int jport0; - int jport1; KbdLang keyboard_lang; int allow_save; int emul_accuracy; @@ -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 */ @@ -153,16 +183,6 @@ extern void check_prefs_changed_cpu (voi 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 void machdep_init (void);