Develop and Download Open Source Software

Browse CVS Repository

Contents of /mame32jp/mame32jp/src/input.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.6 - (show annotations) (download) (as text)
Tue May 7 00:17:30 2002 UTC (21 years, 11 months ago) by zero
Branch: MAIN
CVS Tags: ver_0_60_1, ver0_60_2, ver0_60_3, ver0_60_4, ver0_60_5, HEAD
Changes since 1.5: +6 -1 lines
File MIME type: text/x-chdr
*** empty log message ***

1 #ifndef INPUT_H
2 #define INPUT_H
3
4 typedef unsigned InputCode;
5
6 struct KeyboardInfo
7 {
8 char *name; /* OS dependant name; 0 terminates the list */
9 unsigned code; /* OS dependant code */
10 InputCode standardcode; /* CODE_xxx equivalent from list below, or CODE_OTHER if n/a */
11 };
12
13 struct JoystickInfo
14 {
15 char *name; /* OS dependant name; 0 terminates the list */
16 unsigned code; /* OS dependant code */
17 InputCode standardcode; /* CODE_xxx equivalent from list below, or CODE_OTHER if n/a */
18 };
19
20 enum
21 {
22 /* key */
23 KEYCODE_A, KEYCODE_B, KEYCODE_C, KEYCODE_D, KEYCODE_E, KEYCODE_F,
24 KEYCODE_G, KEYCODE_H, KEYCODE_I, KEYCODE_J, KEYCODE_K, KEYCODE_L,
25 KEYCODE_M, KEYCODE_N, KEYCODE_O, KEYCODE_P, KEYCODE_Q, KEYCODE_R,
26 KEYCODE_S, KEYCODE_T, KEYCODE_U, KEYCODE_V, KEYCODE_W, KEYCODE_X,
27 KEYCODE_Y, KEYCODE_Z, KEYCODE_0, KEYCODE_1, KEYCODE_2, KEYCODE_3,
28 KEYCODE_4, KEYCODE_5, KEYCODE_6, KEYCODE_7, KEYCODE_8, KEYCODE_9,
29 KEYCODE_0_PAD, KEYCODE_1_PAD, KEYCODE_2_PAD, KEYCODE_3_PAD, KEYCODE_4_PAD,
30 KEYCODE_5_PAD, KEYCODE_6_PAD, KEYCODE_7_PAD, KEYCODE_8_PAD, KEYCODE_9_PAD,
31 KEYCODE_F1, KEYCODE_F2, KEYCODE_F3, KEYCODE_F4, KEYCODE_F5,
32 KEYCODE_F6, KEYCODE_F7, KEYCODE_F8, KEYCODE_F9, KEYCODE_F10,
33 KEYCODE_F11, KEYCODE_F12,
34 KEYCODE_ESC, KEYCODE_TILDE, KEYCODE_MINUS, KEYCODE_EQUALS, KEYCODE_BACKSPACE,
35 KEYCODE_TAB, KEYCODE_OPENBRACE, KEYCODE_CLOSEBRACE, KEYCODE_ENTER, KEYCODE_COLON,
36 KEYCODE_QUOTE, KEYCODE_BACKSLASH, KEYCODE_BACKSLASH2, KEYCODE_COMMA, KEYCODE_STOP,
37 KEYCODE_SLASH, KEYCODE_SPACE, KEYCODE_INSERT, KEYCODE_DEL,
38 KEYCODE_HOME, KEYCODE_END, KEYCODE_PGUP, KEYCODE_PGDN, KEYCODE_LEFT,
39 KEYCODE_RIGHT, KEYCODE_UP, KEYCODE_DOWN,
40 KEYCODE_SLASH_PAD, KEYCODE_ASTERISK, KEYCODE_MINUS_PAD, KEYCODE_PLUS_PAD,
41 KEYCODE_DEL_PAD, KEYCODE_ENTER_PAD, KEYCODE_PRTSCR, KEYCODE_PAUSE,
42 KEYCODE_LSHIFT, KEYCODE_RSHIFT, KEYCODE_LCONTROL, KEYCODE_RCONTROL,
43 KEYCODE_LALT, KEYCODE_RALT, KEYCODE_SCRLOCK, KEYCODE_NUMLOCK, KEYCODE_CAPSLOCK,
44 KEYCODE_LWIN, KEYCODE_RWIN, KEYCODE_MENU,
45 #define __code_key_first KEYCODE_A
46 #define __code_key_last KEYCODE_MENU
47
48 /* joy */
49 JOYCODE_1_LEFT,JOYCODE_1_RIGHT,JOYCODE_1_UP,JOYCODE_1_DOWN,
50 JOYCODE_1_BUTTON1,JOYCODE_1_BUTTON2,JOYCODE_1_BUTTON3,
51 JOYCODE_1_BUTTON4,JOYCODE_1_BUTTON5,JOYCODE_1_BUTTON6,
52 JOYCODE_1_START, JOYCODE_1_SELECT,
53 JOYCODE_2_LEFT,JOYCODE_2_RIGHT,JOYCODE_2_UP,JOYCODE_2_DOWN,
54 JOYCODE_2_BUTTON1,JOYCODE_2_BUTTON2,JOYCODE_2_BUTTON3,
55 JOYCODE_2_BUTTON4,JOYCODE_2_BUTTON5,JOYCODE_2_BUTTON6,
56 JOYCODE_2_START, JOYCODE_2_SELECT,
57 JOYCODE_3_LEFT,JOYCODE_3_RIGHT,JOYCODE_3_UP,JOYCODE_3_DOWN,
58 JOYCODE_3_BUTTON1,JOYCODE_3_BUTTON2,JOYCODE_3_BUTTON3,
59 JOYCODE_3_BUTTON4,JOYCODE_3_BUTTON5,JOYCODE_3_BUTTON6,
60 JOYCODE_3_START, JOYCODE_3_SELECT,
61 JOYCODE_4_LEFT,JOYCODE_4_RIGHT,JOYCODE_4_UP,JOYCODE_4_DOWN,
62 JOYCODE_4_BUTTON1,JOYCODE_4_BUTTON2,JOYCODE_4_BUTTON3,
63 JOYCODE_4_BUTTON4,JOYCODE_4_BUTTON5,JOYCODE_4_BUTTON6,
64 JOYCODE_4_START, JOYCODE_4_SELECT,
65 JOYCODE_MOUSE_1_BUTTON1,JOYCODE_MOUSE_1_BUTTON2,JOYCODE_MOUSE_1_BUTTON3,
66 #define __code_joy_first JOYCODE_1_LEFT
67 #define __code_joy_last JOYCODE_MOUSE_1_BUTTON3
68
69 __code_max, /* Temination of standard code */
70
71 /* special */
72 CODE_NONE = 0x8000, /* no code, also marker of sequence end */
73 CODE_OTHER, /* OS code not mapped to any other code */
74 CODE_DEFAULT, /* special for input port definitions */
75 CODE_PREVIOUS, /* special for input port definitions */
76 CODE_NOT, /* operators for sequences */
77 CODE_OR /* operators for sequences */
78 };
79
80 /* Wrapper for compatibility */
81 #define KEYCODE_OTHER CODE_OTHER
82 #define JOYCODE_OTHER CODE_OTHER
83 #define KEYCODE_NONE CODE_NONE
84 #define JOYCODE_NONE CODE_NONE
85
86 /***************************************************************************/
87 /* Single code functions */
88
89 int code_init(void);
90 void code_close(void);
91
92 InputCode keyoscode_to_code(unsigned oscode);
93 InputCode joyoscode_to_code(unsigned oscode);
94 InputCode savecode_to_code(unsigned savecode);
95 unsigned code_to_savecode(InputCode code);
96
97 const char *code_name(InputCode code);
98 int code_pressed(InputCode code);
99 int code_pressed_memory(InputCode code);
100 int code_pressed_memory_repeat(InputCode code, int speed);
101 InputCode code_read_async(void);
102 INT8 code_read_hex_async(void);
103
104 /* Wrappers for compatibility */
105 #define keyboard_name code_name
106 #define keyboard_pressed code_pressed
107 #define keyboard_pressed_memory code_pressed_memory
108 #define keyboard_pressed_memory_repeat code_pressed_memory_repeat
109 #define keyboard_read_async code_read_async
110
111 /***************************************************************************/
112 /* Sequence code funtions */
113
114 /* NOTE: If you modify this value you need also to modify the SEQ_DEF declarations */
115 #define SEQ_MAX 16
116
117 typedef InputCode InputSeq[SEQ_MAX];
118
119 INLINE InputCode seq_get_1(InputSeq* a) {
120 return (*a)[0];
121 }
122
123 void seq_set_0(InputSeq* seq);
124 void seq_set_1(InputSeq* seq, InputCode code);
125 void seq_set_2(InputSeq* seq, InputCode code1, InputCode code2);
126 void seq_set_3(InputSeq* seq, InputCode code1, InputCode code2, InputCode code3);
127 void seq_copy(InputSeq* seqdst, InputSeq* seqsrc);
128 int seq_cmp(InputSeq* seq1, InputSeq* seq2);
129 void seq_name(InputSeq* seq, char* buffer, unsigned max);
130 int seq_pressed(InputSeq* seq);
131 void seq_read_async_start(void);
132 int seq_read_async(InputSeq* code, int first);
133
134 /* NOTE: It's very important that this sequence is EXACLY long SEQ_MAX */
135 #define SEQ_DEF_6(a,b,c,d,e,f) { a, b, c, d, e, f, CODE_NONE, CODE_NONE, CODE_NONE, CODE_NONE, CODE_NONE, CODE_NONE, CODE_NONE, CODE_NONE, CODE_NONE, CODE_NONE }
136 #define SEQ_DEF_5(a,b,c,d,e) SEQ_DEF_6(a,b,c,d,e,CODE_NONE)
137 #define SEQ_DEF_4(a,b,c,d) SEQ_DEF_5(a,b,c,d,CODE_NONE)
138 #define SEQ_DEF_3(a,b,c) SEQ_DEF_4(a,b,c,CODE_NONE)
139 #define SEQ_DEF_2(a,b) SEQ_DEF_3(a,b,CODE_NONE)
140 #define SEQ_DEF_1(a) SEQ_DEF_2(a,CODE_NONE)
141 #define SEQ_DEF_0 SEQ_DEF_1(CODE_NONE)
142
143 /***************************************************************************/
144 /* input_ui */
145
146 int input_ui_pressed(int code);
147 int input_ui_pressed_repeat(int code, int speed);
148
149 #endif

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26