• Mauro Carvalho Chehab's avatar
    V4L/DVB: ir-nec-decoder: Reimplement the entire decoder · 2f16f631
    Mauro Carvalho Chehab authored
    Thanks to Andy Walls <awalls@md.metrocast.net> for pointing me his
    code, that gave me some ideas to better implement it.
    
    After some work with saa7134 bits, I found a way to catch both IRQ
    edge pulses. By enabling it, the NEC decoder can now take both
    pulse and spaces into account, making it more precise.
    
    Instead of the old strategy of handling the events all at once,
    this code implements a state machine. Due to that, it handles
    individual pulse or space events, validating them against the
    protocol, producing a much more reliable decoding.
    
    With the new implementation, the protocol trailer bits are properly
    handled, making possible for the repeat key to work.
    
    Also, the code is now capable of handling both NEC and NEC extended
    IR devices. With NEC, it produces a 16 bits code, while with NEC
    extended, a 24 bits code is returned.
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    2f16f631
ir-nec-decoder.c 9.88 KB