1
2
3
4
5
6#ifndef _LINUX_LIRC_H
7#define _LINUX_LIRC_H
8
9#include <linux/types.h>
10#include <linux/ioctl.h>
11
12#define PULSE_BIT 0x01000000
13#define PULSE_MASK 0x00FFFFFF
14
15#define LIRC_MODE2_SPACE 0x00000000
16#define LIRC_MODE2_PULSE 0x01000000
17#define LIRC_MODE2_FREQUENCY 0x02000000
18#define LIRC_MODE2_TIMEOUT 0x03000000
19
20#define LIRC_VALUE_MASK 0x00FFFFFF
21#define LIRC_MODE2_MASK 0xFF000000
22
23#define LIRC_SPACE(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_SPACE)
24#define LIRC_PULSE(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_PULSE)
25#define LIRC_FREQUENCY(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_FREQUENCY)
26#define LIRC_TIMEOUT(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_TIMEOUT)
27
28#define LIRC_VALUE(val) ((val)&LIRC_VALUE_MASK)
29#define LIRC_MODE2(val) ((val)&LIRC_MODE2_MASK)
30
31#define LIRC_IS_SPACE(val) (LIRC_MODE2(val) == LIRC_MODE2_SPACE)
32#define LIRC_IS_PULSE(val) (LIRC_MODE2(val) == LIRC_MODE2_PULSE)
33#define LIRC_IS_FREQUENCY(val) (LIRC_MODE2(val) == LIRC_MODE2_FREQUENCY)
34#define LIRC_IS_TIMEOUT(val) (LIRC_MODE2(val) == LIRC_MODE2_TIMEOUT)
35
36
37#define lirc_t int
38
39
40
41#define LIRC_MODE2SEND(x) (x)
42#define LIRC_SEND2MODE(x) (x)
43#define LIRC_MODE2REC(x) ((x) << 16)
44#define LIRC_REC2MODE(x) ((x) >> 16)
45
46#define LIRC_MODE_RAW 0x00000001
47#define LIRC_MODE_PULSE 0x00000002
48#define LIRC_MODE_MODE2 0x00000004
49#define LIRC_MODE_SCANCODE 0x00000008
50#define LIRC_MODE_LIRCCODE 0x00000010
51
52
53#define LIRC_CAN_SEND_RAW LIRC_MODE2SEND(LIRC_MODE_RAW)
54#define LIRC_CAN_SEND_PULSE LIRC_MODE2SEND(LIRC_MODE_PULSE)
55#define LIRC_CAN_SEND_MODE2 LIRC_MODE2SEND(LIRC_MODE_MODE2)
56#define LIRC_CAN_SEND_LIRCCODE LIRC_MODE2SEND(LIRC_MODE_LIRCCODE)
57
58#define LIRC_CAN_SEND_MASK 0x0000003f
59
60#define LIRC_CAN_SET_SEND_CARRIER 0x00000100
61#define LIRC_CAN_SET_SEND_DUTY_CYCLE 0x00000200
62#define LIRC_CAN_SET_TRANSMITTER_MASK 0x00000400
63
64#define LIRC_CAN_REC_RAW LIRC_MODE2REC(LIRC_MODE_RAW)
65#define LIRC_CAN_REC_PULSE LIRC_MODE2REC(LIRC_MODE_PULSE)
66#define LIRC_CAN_REC_MODE2 LIRC_MODE2REC(LIRC_MODE_MODE2)
67#define LIRC_CAN_REC_SCANCODE LIRC_MODE2REC(LIRC_MODE_SCANCODE)
68#define LIRC_CAN_REC_LIRCCODE LIRC_MODE2REC(LIRC_MODE_LIRCCODE)
69
70#define LIRC_CAN_REC_MASK LIRC_MODE2REC(LIRC_CAN_SEND_MASK)
71
72#define LIRC_CAN_SET_REC_CARRIER (LIRC_CAN_SET_SEND_CARRIER << 16)
73#define LIRC_CAN_SET_REC_DUTY_CYCLE (LIRC_CAN_SET_SEND_DUTY_CYCLE << 16)
74
75#define LIRC_CAN_SET_REC_DUTY_CYCLE_RANGE 0x40000000
76#define LIRC_CAN_SET_REC_CARRIER_RANGE 0x80000000
77#define LIRC_CAN_GET_REC_RESOLUTION 0x20000000
78#define LIRC_CAN_SET_REC_TIMEOUT 0x10000000
79#define LIRC_CAN_SET_REC_FILTER 0x08000000
80
81#define LIRC_CAN_MEASURE_CARRIER 0x02000000
82#define LIRC_CAN_USE_WIDEBAND_RECEIVER 0x04000000
83
84#define LIRC_CAN_SEND(x) ((x)&LIRC_CAN_SEND_MASK)
85#define LIRC_CAN_REC(x) ((x)&LIRC_CAN_REC_MASK)
86
87#define LIRC_CAN_NOTIFY_DECODE 0x01000000
88
89
90
91#define LIRC_GET_FEATURES _IOR('i', 0x00000000, __u32)
92
93#define LIRC_GET_SEND_MODE _IOR('i', 0x00000001, __u32)
94#define LIRC_GET_REC_MODE _IOR('i', 0x00000002, __u32)
95#define LIRC_GET_REC_RESOLUTION _IOR('i', 0x00000007, __u32)
96
97#define LIRC_GET_MIN_TIMEOUT _IOR('i', 0x00000008, __u32)
98#define LIRC_GET_MAX_TIMEOUT _IOR('i', 0x00000009, __u32)
99
100
101#define LIRC_GET_LENGTH _IOR('i', 0x0000000f, __u32)
102
103#define LIRC_SET_SEND_MODE _IOW('i', 0x00000011, __u32)
104#define LIRC_SET_REC_MODE _IOW('i', 0x00000012, __u32)
105
106#define LIRC_SET_SEND_CARRIER _IOW('i', 0x00000013, __u32)
107#define LIRC_SET_REC_CARRIER _IOW('i', 0x00000014, __u32)
108#define LIRC_SET_SEND_DUTY_CYCLE _IOW('i', 0x00000015, __u32)
109#define LIRC_SET_TRANSMITTER_MASK _IOW('i', 0x00000017, __u32)
110
111
112
113
114
115
116#define LIRC_SET_REC_TIMEOUT _IOW('i', 0x00000018, __u32)
117
118
119#define LIRC_SET_REC_TIMEOUT_REPORTS _IOW('i', 0x00000019, __u32)
120
121
122
123
124
125#define LIRC_SET_MEASURE_CARRIER_MODE _IOW('i', 0x0000001d, __u32)
126
127
128
129
130
131#define LIRC_SET_REC_CARRIER_RANGE _IOW('i', 0x0000001f, __u32)
132
133#define LIRC_SET_WIDEBAND_RECEIVER _IOW('i', 0x00000023, __u32)
134
135
136
137
138
139#define LIRC_GET_REC_TIMEOUT _IOR('i', 0x00000024, __u32)
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154struct lirc_scancode {
155 __u64 timestamp;
156 __u16 flags;
157 __u16 rc_proto;
158 __u32 keycode;
159 __u64 scancode;
160};
161
162
163#define LIRC_SCANCODE_FLAG_TOGGLE 1
164
165#define LIRC_SCANCODE_FLAG_REPEAT 2
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200enum rc_proto {
201 RC_PROTO_UNKNOWN = 0,
202 RC_PROTO_OTHER = 1,
203 RC_PROTO_RC5 = 2,
204 RC_PROTO_RC5X_20 = 3,
205 RC_PROTO_RC5_SZ = 4,
206 RC_PROTO_JVC = 5,
207 RC_PROTO_SONY12 = 6,
208 RC_PROTO_SONY15 = 7,
209 RC_PROTO_SONY20 = 8,
210 RC_PROTO_NEC = 9,
211 RC_PROTO_NECX = 10,
212 RC_PROTO_NEC32 = 11,
213 RC_PROTO_SANYO = 12,
214 RC_PROTO_MCIR2_KBD = 13,
215 RC_PROTO_MCIR2_MSE = 14,
216 RC_PROTO_RC6_0 = 15,
217 RC_PROTO_RC6_6A_20 = 16,
218 RC_PROTO_RC6_6A_24 = 17,
219 RC_PROTO_RC6_6A_32 = 18,
220 RC_PROTO_RC6_MCE = 19,
221 RC_PROTO_SHARP = 20,
222 RC_PROTO_XMP = 21,
223 RC_PROTO_CEC = 22,
224 RC_PROTO_IMON = 23,
225 RC_PROTO_RCMM12 = 24,
226 RC_PROTO_RCMM24 = 25,
227 RC_PROTO_RCMM32 = 26,
228 RC_PROTO_XBOX_DVD = 27,
229 RC_PROTO_MAX = RC_PROTO_XBOX_DVD,
230};
231
232#endif
233