[media] rc-core: add trailing silence in rc-loopback tx
authorDavid Härdeman <david@hardeman.nu>
Thu, 28 Apr 2011 15:13:32 +0000 (12:13 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 20 May 2011 12:29:53 +0000 (09:29 -0300)
If an IR command is sent (using the LIRC userspace) to rc-loopback
which doesn't include a trailing space, the result is that the message
won't be completely decoded. In addition, "leftovers" from a previous
transmission can be left until the next one. Fix this by faking a long
silence after the end of TX data.

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/rc/rc-loopback.c

index 49cee61..cc846b2 100644 (file)
@@ -146,6 +146,12 @@ static int loop_tx_ir(struct rc_dev *dev, int *txbuf, u32 n)
                if (rawir.duration)
                        ir_raw_event_store_with_filter(dev, &rawir);
        }
+
+       /* Fake a silence long enough to cause us to go idle */
+       rawir.pulse = false;
+       rawir.duration = dev->timeout;
+       ir_raw_event_store_with_filter(dev, &rawir);
+
        ir_raw_event_handle(dev);
 
 out: