linux/drivers/media/rc
Sean Young de142c3241 media: lirc: implement reading scancode
This implements LIRC_MODE_SCANCODE reading from the lirc device. The
scancode can be read from the input device too, but with this interface
you get the rc protocol, keycode, toggle and repeat status in addition
to just the scancode.

int main()
{
	int fd, mode, rc;
	fd = open("/dev/lirc0", O_RDWR);

	mode = LIRC_MODE_SCANCODE;
	if (ioctl(fd, LIRC_SET_REC_MODE, &mode)) {
		// kernel too old or lirc does not support transmit
	}
	struct lirc_scancode scancode;
	while (read(fd, &scancode, sizeof(scancode)) == sizeof(scancode)) {
		printf("protocol:%d scancode:0x%x toggle:%d repeat:%d\n",
			scancode.rc_proto, scancode.scancode,
			!!(scancode.flags & LIRC_SCANCODE_FLAG_TOGGLE),
			!!(scancode.flags & LIRC_SCANCODE_FLAG_REPEAT));
	}
	close(fd);
}

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-12-14 10:35:20 -05:00
..
img-ir media: img-ir-hw: fix one kernel-doc comment 2017-11-27 10:09:03 -05:00
keymaps media: rc keymaps: add SPDX identifiers to the code I wrote 2017-12-11 07:42:54 -05:00
ati_remote.c [media] media: rc: constify usb_device_id 2017-10-04 15:06:09 -03:00
ene_ir.c media: rc: Convert timers to use timer_setup() 2017-10-31 06:31:44 -04:00
ene_ir.h [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
fintek-cir.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
fintek-cir.h [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
gpio-ir-recv.c [media] media: rc: fix gpio-ir-receiver build failure 2017-10-05 10:16:21 -03:00
gpio-ir-tx.c media: rc: gpio-ir-tx: use ktime accessor functions 2017-08-31 05:35:54 -04:00
igorplugusb.c media: rc: Convert timers to use timer_setup() 2017-10-31 06:31:44 -04:00
iguanair.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
imon.c media: imon: don't use kernel-doc "/**" markups 2017-11-27 10:35:35 -05:00
ir-hix5hd2.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
ir-jvc-decoder.c media: lirc: use the correct carrier for scancode transmit 2017-12-14 10:35:15 -05:00
ir-lirc-codec.c media: lirc: implement reading scancode 2017-12-14 10:35:20 -05:00
ir-mce_kbd-decoder.c media: lirc: implement reading scancode 2017-12-14 10:35:20 -05:00
ir-nec-decoder.c media: lirc: use the correct carrier for scancode transmit 2017-12-14 10:35:15 -05:00
ir-rc5-decoder.c media: lirc: use the correct carrier for scancode transmit 2017-12-14 10:35:15 -05:00
ir-rc6-decoder.c media: lirc: use the correct carrier for scancode transmit 2017-12-14 10:35:15 -05:00
ir-rx51.c [media] ir-rx51: port to rc-core 2017-01-30 14:25:04 -02:00
ir-sanyo-decoder.c media: lirc: use the correct carrier for scancode transmit 2017-12-14 10:35:15 -05:00
ir-sharp-decoder.c media: lirc: use the correct carrier for scancode transmit 2017-12-14 10:35:15 -05:00
ir-sony-decoder.c media: lirc: use the correct carrier for scancode transmit 2017-12-14 10:35:15 -05:00
ir-spi.c media: rc-core: rename input_name to device_name 2017-08-20 09:43:52 -04:00
ir-xmp-decoder.c media: rc: fix kernel-doc parameter names 2017-11-30 04:18:52 -05:00
ite-cir.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
ite-cir.h [media] media: Drop FSF's postal address from the source code files 2017-01-27 11:38:09 -02:00
Kconfig media: lirc: lirc interface should not be a raw decoder 2017-12-14 10:35:16 -05:00
lirc_dev.c media: lirc: implement reading scancode 2017-12-14 10:35:20 -05:00
Makefile media: lirc: lirc interface should not be a raw decoder 2017-12-14 10:35:16 -05:00
mceusb.c media: rc: mceusb: add support for 15f4:0135 2017-10-31 06:35:32 -04:00
meson-ir.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
mtk-cir.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
nuvoton-cir.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
nuvoton-cir.h media: rc: nuvoton: remove rudimentary transmit functionality 2017-08-20 09:47:57 -04:00
pwm-ir-tx.c media: rc: pwm-ir-tx: add new driver 2017-08-20 09:46:18 -04:00
rc-core-priv.h media: lirc: implement reading scancode 2017-12-14 10:35:20 -05:00
rc-ir-raw.c media: lirc: lirc interface should not be a raw decoder 2017-12-14 10:35:16 -05:00
rc-loopback.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
rc-main.c media: lirc: implement reading scancode 2017-12-14 10:35:20 -05:00
redrat3.c [media] media: rc: constify usb_device_id 2017-10-04 15:06:09 -03:00
serial_ir.c media: serial_ir: Convert timers to use timer_setup() 2017-10-27 17:38:54 +02:00
sir_ir.c media: rc: sir_ir: detect presence of port 2017-11-15 08:57:34 -05:00
st_rc.c media: drivers: remove "/**" from non-kernel-doc comments 2017-11-30 04:19:03 -05:00
streamzap.c media: drivers: remove "/**" from non-kernel-doc comments 2017-11-30 04:19:03 -05:00
sunxi-cir.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
tango-ir.c media: rc: Add driver for tango HW IR decoder 2017-10-11 12:41:08 -04:00
ttusbir.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
winbond-cir.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00
zx-irdec.c media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_* 2017-08-20 10:02:48 -04:00