Open Broadcaster Software
Free, open source software for live streaming and recording
input.h
Go to the documentation of this file.
1 /******************************************************************************
2  Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
3 
4  This program is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program. If not, see <http://www.gnu.org/licenses/>.
16 ******************************************************************************/
17 
18 #pragma once
19 
20 /* TODO: incomplete/may not be necessary */
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 #define KBC_ESCAPE 0x0
27 #define KBC_1 0x1
28 #define KBC_2 0x2
29 #define KBC_3 0x3
30 #define KBC_4 0x4
31 #define KBC_5 0x5
32 #define KBC_6 0x6
33 #define KBC_7 0x7
34 #define KBC_8 0x8
35 #define KBC_9 0x9
36 #define KBC_0 0xA
37 #define KBC_MINUS 0xB
38 #define KBC_EQUALS 0xC
39 #define KBC_BACK 0xD
40 #define KBC_TAB 0xE
41 #define KBC_Q 0xF
42 #define KBC_W 0x10
43 #define KBC_E 0x11
44 #define KBC_R 0x12
45 #define KBC_T 0x13
46 #define KBC_Y 0x14
47 #define KBC_U 0x15
48 #define KBC_I 0x16
49 #define KBC_O 0x17
50 #define KBC_P 0x18
51 #define KBC_LBRACKET 0x19
52 #define KBC_RBRACKET 0x1A
53 #define KBC_RETURN 0x1B
54 #define KBC_LCONTROL 0x1C
55 #define KBC_A 0x1D
56 #define KBC_S 0x1E
57 #define KBC_D 0x1F
58 #define KBC_F 0x20
59 #define KBC_G 0x21
60 #define KBC_H 0x22
61 #define KBC_J 0x23
62 #define KBC_K 0x24
63 #define KBC_L 0x25
64 #define KBC_SEMICOLON 0x26
65 #define KBC_APOSTROPHE 0x27
66 #define KBC_TILDE 0x28
67 #define KBC_LSHIFT 0x29
68 #define KBC_BACKSLASH 0x2A
69 #define KBC_Z 0x2B
70 #define KBC_X 0x2C
71 #define KBC_C 0x2D
72 #define KBC_V 0x2E
73 #define KBC_B 0x2F
74 #define KBC_N 0x30
75 #define KBC_M 0x31
76 #define KBC_COMMA 0x32
77 #define KBC_PERIOD 0x33
78 #define KBC_SLASH 0x34
79 #define KBC_RSHIFT 0x35
80 #define KBC_MULTIPLY 0x36
81 #define KBC_LALT 0x37
82 #define KBC_SPACE 0x38
83 #define KBC_CAPSLOCK 0x39
84 #define KBC_F1 0x3A
85 #define KBC_F2 0x3B
86 #define KBC_F3 0x3C
87 #define KBC_F4 0x3D
88 #define KBC_F5 0x3E
89 #define KBC_F6 0x3F
90 #define KBC_F7 0x40
91 #define KBC_F8 0x41
92 #define KBC_F9 0x42
93 #define KBC_F10 0x43
94 #define KBC_NUMLOCK 0x44
95 #define KBC_SCROLLLOCK 0x45
96 #define KBC_NUMPAD7 0x46
97 #define KBC_NUMPAD8 0x47
98 #define KBC_NUMPAD9 0x48
99 #define KBC_SUBTRACT 0x49
100 #define KBC_NUMPAD4 0x4A
101 #define KBC_NUMPAD5 0x4B
102 #define KBC_NUMPAD6 0x4C
103 #define KBC_ADD 0x4D
104 #define KBC_NUMPAD1 0x4E
105 #define KBC_NUMPAD2 0x4F
106 #define KBC_NUMPAD3 0x50
107 #define KBC_NUMPAD0 0x51
108 #define KBC_DECIMAL 0x52
109 #define KBC_F11 0x53
110 #define KBC_F12 0x54
111 #define KBC_NUMPADENTER 0x55
112 #define KBC_RCONTROL 0x56
113 #define KBC_DIVIDE 0x57
114 #define KBC_SYSRQ 0x58
115 #define KBC_RALT 0x59
116 #define KBC_PAUSE 0x5A
117 #define KBC_HOME 0x5B
118 #define KBC_UP 0x5C
119 #define KBC_PAGEDOWN 0x5D
120 #define KBC_LEFT 0x5E
121 #define KBC_RIGHT 0x5F
122 #define KBC_END 0x60
123 #define KBC_DOWN 0x61
124 #define KBC_PAGEUP 0x62
125 #define KBC_INSERT 0x63
126 #define KBC_DELETE 0x64
127 
128 #define MOUSE_LEFTBUTTON 0x65
129 #define MOUSE_MIDDLEBUTTON 0x66
130 #define MOUSE_RIGHTBUTTON 0x67
131 #define MOUSE_WHEEL 0x68
132 #define MOUSE_MOVE 0x69
133 
134 #define KBC_CONTROL 0xFFFFFFFE
135 #define KBC_ALT 0xFFFFFFFD
136 #define KBC_SHIFT 0xFFFFFFFC
137 
138 #define STATE_LBUTTONDOWN (1 << 0)
139 #define STATE_RBUTTONDOWN (1 << 1)
140 #define STATE_MBUTTONDOWN (1 << 2)
141 #define STATE_X4BUTTONDOWN (1 << 3)
142 #define STATE_X5BUTTONDOWN (1 << 4)
143 
144 /* wrapped opaque data types */
145 struct input_subsystem;
146 typedef struct input_subsystem input_t;
147 
148 EXPORT int input_getbuttonstate(input_t *input, uint32_t button);
149 
150 #ifdef __cplusplus
151 }
152 #endif
input_getbuttonstate
EXPORT int input_getbuttonstate(input_t *input, uint32_t button)
EXPORT
#define EXPORT
Definition: c99defs.h:37
input_t
struct input_subsystem input_t
Definition: input.h:146