|
|
1.1 root 1: /*
2: * UAE - The Un*x Amiga Emulator
3: *
4: * Joystick, mouse and keyboard emulation prototypes and definitions
5: *
6: * Copyright 1995 Bernd Schmidt
7: * Copyright 2001-2002 Toni Wilen
8: */
9:
10:
1.1.1.2 root 11: #define IDTYPE_JOYSTICK 0
12: #define IDTYPE_MOUSE 1
13: #define IDTYPE_KEYBOARD 2
14:
15: struct inputdevice_functions {
16: int (*init)(void);
17: void (*close)(void);
1.1.1.3 root 18: int (*acquire)(unsigned int,int);
19: void (*unacquire)(unsigned int);
1.1.1.2 root 20: void (*read)(void);
1.1.1.5 ! root 21: int (*get_num)(void);
! 22: const char *(*get_name)(unsigned int);
! 23: int (*get_widget_num)(unsigned int);
1.1.1.3 root 24: int (*get_widget_type)(unsigned int,unsigned int,char*,uae_u32*);
25: int (*get_widget_first)(unsigned int,int);
1.1.1.2 root 26: };
27: extern struct inputdevice_functions inputdevicefunc_joystick;
28: extern struct inputdevice_functions inputdevicefunc_mouse;
29: extern struct inputdevice_functions inputdevicefunc_keyboard;
30: extern int pause_emulation;
31:
32: struct uae_input_device_kbr_default {
33: int scancode;
34: int event;
35: };
36:
37: #define IDEV_WIDGET_NONE 0
38: #define IDEV_WIDGET_BUTTON 1
39: #define IDEV_WIDGET_AXIS 2
40: #define IDEV_WIDGET_KEY 3
41:
42: #define IDEV_MAPPED_AUTOFIRE_POSSIBLE 1
43: #define IDEV_MAPPED_AUTOFIRE_SET 2
44:
45: #define ID_BUTTON_OFFSET 0
46: #define ID_BUTTON_TOTAL 32
47: #define ID_AXIS_OFFSET 32
48: #define ID_AXIS_TOTAL 32
49:
50: extern int inputdevice_iterate (int devnum, int num, char *name, int *af);
51: extern int inputdevice_set_mapping (int devnum, int num, char *name, char *custom, int af, int sub);
52: extern int inputdevice_get_mapped_name (int devnum, int num, int *pflags, char *name, char *custom, int sub);
53: extern void inputdevice_copyconfig (struct uae_prefs *src, struct uae_prefs *dst);
54: extern void inputdevice_copy_single_config (struct uae_prefs *p, int src, int dst, int devnum);
55: extern void inputdevice_swap_ports (struct uae_prefs *p, int devnum);
56: extern void inputdevice_config_change (void);
57: extern int inputdevice_config_change_test (void);
58: extern int inputdevice_get_device_index (int devnum);
59: extern char *inputdevice_get_device_name (int type, int devnum);
60: extern int inputdevice_get_device_status (int devnum);
61: extern void inputdevice_set_device_status (int devnum, int enabled);
62: extern int inputdevice_get_device_total (int type);
63: extern int inputdevice_get_widget_num (int devnum);
64: extern int inputdevice_get_widget_type (int devnum, int num, char *name);
65:
66: extern void input_get_default_mouse (struct uae_input_device *uid);
67: extern void input_get_default_joystick (struct uae_input_device *uid);
68:
69: #define DEFEVENT(A, B, C, D, E, F) INPUTEVENT_ ## A,
70: enum inputevents {
71: INPUTEVENT_ZERO,
72: #include "inputevents.def"
73: INPUTEVENT_END
74: };
75: #undef DEFEVENT
76:
77: extern void handle_cd32_joystick_cia (uae_u8, uae_u8);
78: extern uae_u8 handle_parport_joystick (int port, uae_u8 pra, uae_u8 dra);
79: extern uae_u8 handle_joystick_buttons (uae_u8);
80: extern int getbuttonstate (int joy, int button);
81: extern int getjoystate (int joy);
82:
1.1 root 83: extern int needmousehack (void);
84: extern int mousehack_alive (void);
1.1.1.2 root 85: extern int mousehack_allowed (void);
86:
1.1.1.3 root 87: extern void toggle_fullscreen (void);
88:
1.1.1.2 root 89: extern void setmousebuttonstateall (int mouse, uae_u32 buttonbits, uae_u32 buttonmask);
90: extern void setjoybuttonstateall (int joy, uae_u32 buttonbits, uae_u32 buttonmask);
91: extern void setjoybuttonstate (int joy, int button, int state);
92: extern void setmousebuttonstate (int mouse, int button, int state);
93: extern void setjoystickstate (int joy, int axle, int state, int max);
94: void setmousestate (int mouse, int axis, int data, int isabs);
95: extern void inputdevice_updateconfig (struct uae_prefs *prefs);
96:
97: extern int inputdevice_translatekeycode (int keyboard, int scancode, int state);
98: extern void inputdevice_setkeytranslation (struct uae_input_device_kbr_default *trans);
99: extern void handle_input_event (int nr, int state, int max, int autofire);
100: extern void inputdevice_do_keyboard (int code, int state);
1.1.1.4 root 101: extern void inputdevice_release_all_keys (void);
1.1 root 102:
103: extern uae_u16 potgo_value;
104: extern uae_u16 POTGOR (void);
105: extern void POTGO (uae_u16 v);
106: extern uae_u16 POT0DAT (void);
107: extern uae_u16 POT1DAT (void);
108: extern void JOYTEST (uae_u16 v);
109: extern uae_u16 JOY0DAT (void);
110: extern uae_u16 JOY1DAT (void);
1.1.1.2 root 111:
112: extern void inputdevice_vsync (void);
113: extern void inputdevice_hsync (void);
114: extern void inputdevice_reset (void);
115:
116: extern void write_inputdevice_config (struct uae_prefs *p, FILE *f);
117: extern void read_inputdevice_config (struct uae_prefs *p, char *option, char *value);
118: extern void reset_inputdevice_config (struct uae_prefs *pr);
119:
120: extern void inputdevice_init (void);
121: extern void inputdevice_close (void);
122: extern void inputdevice_default_prefs (struct uae_prefs *p);
123:
124: extern void inputdevice_acquire (void);
125: extern void inputdevice_unacquire (void);
126:
127: extern void indicator_leds (int num, int state);
128:
129: extern void warpmode (int mode);
130: extern void pausemode (int mode);
131:
132: extern void inputdevice_add_inputcode (int code, int state);
133: extern void inputdevice_handle_inputcode (void);
134:
135: #define JSEM_KBDLAYOUT 0
136: #define JSEM_JOYS 100
137: #define JSEM_MICE 200
138: #define JSEM_END 300
139: #define JSEM_DECODEVAL(port,p) ((port) == 0 ? (p)->jport0 : (p)->jport1)
140: #define JSEM_ISNUMPAD(port,p) (jsem_iskbdjoy(port,p) == JSEM_KBDLAYOUT)
141: #define JSEM_ISCURSOR(port,p) (jsem_iskbdjoy(port,p) == JSEM_KBDLAYOUT + 1)
142: #define JSEM_ISSOMEWHEREELSE(port,p) (jsem_iskbdjoy(port,p) == JSEM_KBDLAYOUT + 2)
143: #define JSEM_ISXARCADE1(port,p) (jsem_iskbdjoy(port,p) == JSEM_KBDLAYOUT + 3)
144: #define JSEM_ISXARCADE2(port,p) (jsem_iskbdjoy(port,p) == JSEM_KBDLAYOUT + 4)
145: #define JSEM_LASTKBD 5
146: #define JSEM_ISANYKBD(port,p) (jsem_iskbdjoy(port,p) >= JSEM_KBDLAYOUT && jsem_iskbdjoy(port,p) < JSEM_KBDLAYOUT + JSEM_LASTKBD)
147: extern int compatibility_device[2];
148:
149: extern int jsem_isjoy (int port, struct uae_prefs *p);
150: extern int jsem_ismouse (int port, struct uae_prefs *p);
151: extern int jsem_iskbdjoy (int port, struct uae_prefs *p);
152:
153: extern int inputdevice_uaelib (char*, char*);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.