0001
0002
0003
0004
0005
0006 #ifndef _LINUX_LIRC_H
0007 #define _LINUX_LIRC_H
0008
0009 #include <linux/types.h>
0010 #include <linux/ioctl.h>
0011
0012 #define PULSE_BIT 0x01000000
0013 #define PULSE_MASK 0x00FFFFFF
0014
0015 #define LIRC_MODE2_SPACE 0x00000000
0016 #define LIRC_MODE2_PULSE 0x01000000
0017 #define LIRC_MODE2_FREQUENCY 0x02000000
0018 #define LIRC_MODE2_TIMEOUT 0x03000000
0019 #define LIRC_MODE2_OVERFLOW 0x04000000
0020
0021 #define LIRC_VALUE_MASK 0x00FFFFFF
0022 #define LIRC_MODE2_MASK 0xFF000000
0023
0024 #define LIRC_SPACE(val) (((val) & LIRC_VALUE_MASK) | LIRC_MODE2_SPACE)
0025 #define LIRC_PULSE(val) (((val) & LIRC_VALUE_MASK) | LIRC_MODE2_PULSE)
0026 #define LIRC_FREQUENCY(val) (((val) & LIRC_VALUE_MASK) | LIRC_MODE2_FREQUENCY)
0027 #define LIRC_TIMEOUT(val) (((val) & LIRC_VALUE_MASK) | LIRC_MODE2_TIMEOUT)
0028 #define LIRC_OVERFLOW(val) (((val) & LIRC_VALUE_MASK) | LIRC_MODE2_OVERFLOW)
0029
0030 #define LIRC_VALUE(val) ((val)&LIRC_VALUE_MASK)
0031 #define LIRC_MODE2(val) ((val)&LIRC_MODE2_MASK)
0032
0033 #define LIRC_IS_SPACE(val) (LIRC_MODE2(val) == LIRC_MODE2_SPACE)
0034 #define LIRC_IS_PULSE(val) (LIRC_MODE2(val) == LIRC_MODE2_PULSE)
0035 #define LIRC_IS_FREQUENCY(val) (LIRC_MODE2(val) == LIRC_MODE2_FREQUENCY)
0036 #define LIRC_IS_TIMEOUT(val) (LIRC_MODE2(val) == LIRC_MODE2_TIMEOUT)
0037 #define LIRC_IS_OVERFLOW(val) (LIRC_MODE2(val) == LIRC_MODE2_OVERFLOW)
0038
0039
0040 #define lirc_t int
0041
0042
0043
0044 #define LIRC_MODE2SEND(x) (x)
0045 #define LIRC_SEND2MODE(x) (x)
0046 #define LIRC_MODE2REC(x) ((x) << 16)
0047 #define LIRC_REC2MODE(x) ((x) >> 16)
0048
0049 #define LIRC_MODE_RAW 0x00000001
0050 #define LIRC_MODE_PULSE 0x00000002
0051 #define LIRC_MODE_MODE2 0x00000004
0052 #define LIRC_MODE_SCANCODE 0x00000008
0053 #define LIRC_MODE_LIRCCODE 0x00000010
0054
0055
0056 #define LIRC_CAN_SEND_RAW LIRC_MODE2SEND(LIRC_MODE_RAW)
0057 #define LIRC_CAN_SEND_PULSE LIRC_MODE2SEND(LIRC_MODE_PULSE)
0058 #define LIRC_CAN_SEND_MODE2 LIRC_MODE2SEND(LIRC_MODE_MODE2)
0059 #define LIRC_CAN_SEND_LIRCCODE LIRC_MODE2SEND(LIRC_MODE_LIRCCODE)
0060
0061 #define LIRC_CAN_SEND_MASK 0x0000003f
0062
0063 #define LIRC_CAN_SET_SEND_CARRIER 0x00000100
0064 #define LIRC_CAN_SET_SEND_DUTY_CYCLE 0x00000200
0065 #define LIRC_CAN_SET_TRANSMITTER_MASK 0x00000400
0066
0067 #define LIRC_CAN_REC_RAW LIRC_MODE2REC(LIRC_MODE_RAW)
0068 #define LIRC_CAN_REC_PULSE LIRC_MODE2REC(LIRC_MODE_PULSE)
0069 #define LIRC_CAN_REC_MODE2 LIRC_MODE2REC(LIRC_MODE_MODE2)
0070 #define LIRC_CAN_REC_SCANCODE LIRC_MODE2REC(LIRC_MODE_SCANCODE)
0071 #define LIRC_CAN_REC_LIRCCODE LIRC_MODE2REC(LIRC_MODE_LIRCCODE)
0072
0073 #define LIRC_CAN_REC_MASK LIRC_MODE2REC(LIRC_CAN_SEND_MASK)
0074
0075 #define LIRC_CAN_SET_REC_CARRIER (LIRC_CAN_SET_SEND_CARRIER << 16)
0076
0077 #define LIRC_CAN_SET_REC_CARRIER_RANGE 0x80000000
0078 #define LIRC_CAN_GET_REC_RESOLUTION 0x20000000
0079 #define LIRC_CAN_SET_REC_TIMEOUT 0x10000000
0080
0081 #define LIRC_CAN_MEASURE_CARRIER 0x02000000
0082 #define LIRC_CAN_USE_WIDEBAND_RECEIVER 0x04000000
0083
0084 #define LIRC_CAN_SEND(x) ((x)&LIRC_CAN_SEND_MASK)
0085 #define LIRC_CAN_REC(x) ((x)&LIRC_CAN_REC_MASK)
0086
0087
0088
0089
0090
0091 #define LIRC_CAN_SET_REC_FILTER 0
0092 #define LIRC_CAN_NOTIFY_DECODE 0
0093
0094
0095
0096 #define LIRC_GET_FEATURES _IOR('i', 0x00000000, __u32)
0097
0098 #define LIRC_GET_SEND_MODE _IOR('i', 0x00000001, __u32)
0099 #define LIRC_GET_REC_MODE _IOR('i', 0x00000002, __u32)
0100 #define LIRC_GET_REC_RESOLUTION _IOR('i', 0x00000007, __u32)
0101
0102 #define LIRC_GET_MIN_TIMEOUT _IOR('i', 0x00000008, __u32)
0103 #define LIRC_GET_MAX_TIMEOUT _IOR('i', 0x00000009, __u32)
0104
0105
0106 #define LIRC_GET_LENGTH _IOR('i', 0x0000000f, __u32)
0107
0108 #define LIRC_SET_SEND_MODE _IOW('i', 0x00000011, __u32)
0109 #define LIRC_SET_REC_MODE _IOW('i', 0x00000012, __u32)
0110
0111 #define LIRC_SET_SEND_CARRIER _IOW('i', 0x00000013, __u32)
0112 #define LIRC_SET_REC_CARRIER _IOW('i', 0x00000014, __u32)
0113 #define LIRC_SET_SEND_DUTY_CYCLE _IOW('i', 0x00000015, __u32)
0114 #define LIRC_SET_TRANSMITTER_MASK _IOW('i', 0x00000017, __u32)
0115
0116
0117
0118
0119
0120
0121 #define LIRC_SET_REC_TIMEOUT _IOW('i', 0x00000018, __u32)
0122
0123
0124 #define LIRC_SET_REC_TIMEOUT_REPORTS _IOW('i', 0x00000019, __u32)
0125
0126
0127
0128
0129
0130 #define LIRC_SET_MEASURE_CARRIER_MODE _IOW('i', 0x0000001d, __u32)
0131
0132
0133
0134
0135
0136 #define LIRC_SET_REC_CARRIER_RANGE _IOW('i', 0x0000001f, __u32)
0137
0138 #define LIRC_SET_WIDEBAND_RECEIVER _IOW('i', 0x00000023, __u32)
0139
0140
0141
0142
0143
0144 #define LIRC_GET_REC_TIMEOUT _IOR('i', 0x00000024, __u32)
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159 struct lirc_scancode {
0160 __u64 timestamp;
0161 __u16 flags;
0162 __u16 rc_proto;
0163 __u32 keycode;
0164 __u64 scancode;
0165 };
0166
0167
0168 #define LIRC_SCANCODE_FLAG_TOGGLE 1
0169
0170 #define LIRC_SCANCODE_FLAG_REPEAT 2
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205 enum rc_proto {
0206 RC_PROTO_UNKNOWN = 0,
0207 RC_PROTO_OTHER = 1,
0208 RC_PROTO_RC5 = 2,
0209 RC_PROTO_RC5X_20 = 3,
0210 RC_PROTO_RC5_SZ = 4,
0211 RC_PROTO_JVC = 5,
0212 RC_PROTO_SONY12 = 6,
0213 RC_PROTO_SONY15 = 7,
0214 RC_PROTO_SONY20 = 8,
0215 RC_PROTO_NEC = 9,
0216 RC_PROTO_NECX = 10,
0217 RC_PROTO_NEC32 = 11,
0218 RC_PROTO_SANYO = 12,
0219 RC_PROTO_MCIR2_KBD = 13,
0220 RC_PROTO_MCIR2_MSE = 14,
0221 RC_PROTO_RC6_0 = 15,
0222 RC_PROTO_RC6_6A_20 = 16,
0223 RC_PROTO_RC6_6A_24 = 17,
0224 RC_PROTO_RC6_6A_32 = 18,
0225 RC_PROTO_RC6_MCE = 19,
0226 RC_PROTO_SHARP = 20,
0227 RC_PROTO_XMP = 21,
0228 RC_PROTO_CEC = 22,
0229 RC_PROTO_IMON = 23,
0230 RC_PROTO_RCMM12 = 24,
0231 RC_PROTO_RCMM24 = 25,
0232 RC_PROTO_RCMM32 = 26,
0233 RC_PROTO_XBOX_DVD = 27,
0234 RC_PROTO_MAX = RC_PROTO_XBOX_DVD,
0235 };
0236
0237 #endif