• J
    [media] rc-core support for Microsoft IR keyboard/mouse · f5f2cc64
    Jarod Wilson 提交于
    This is a custom IR protocol decoder, for the RC-6-ish protocol used by
    the Microsoft Remote Keyboard, apparently developed internally at
    Microsoft, and officially dubbed MCIR-2, per their March 2011 remote and
    transceiver requirements and specifications document, which also touches
    on this IR keyboard/mouse device.
    
    Its a standard keyboard with embedded thumb stick mouse pointer and
    mouse buttons, along with a number of media keys. The media keys are
    standard RC-6, identical to the signals from the stock MCE remotes, and
    will be handled as such. The keyboard and mouse signals will be decoded
    and delivered to the system by an input device registered specifically
    by this driver.
    
    Successfully tested with multiple mceusb-driven transceivers, as well as
    with fintek-cir and redrat3 hardware. Essentially, any raw IR hardware
    with enough sampling resolution should be able to use this decoder,
    nothing about it is at all receiver-hardware-specific.
    
    This work is inspired by lirc_mod_mce:
    
    The documentation there and code aided in understanding and decoding the
    protocol, but the bulk of the code is actually borrowed more from the
    existing in-kernel decoders than anything. I did recycle the keyboard
    keycode table, a few defines, and some of the keyboard and mouse data
    parsing bits from lirc_mod_mce though.
    
    Special thanks to James Meyer for providing the hardware, and being
    patient with me as I took forever to get around to writing this.
    
    callback routine to ensure we don't get any stuck keys, and used
    symbolic names for the keytable. Also cc'ing Florian this time, who I
    believe is the original mod-mce author...
    
    CC: Florian Demski <fdemski@users.sourceforge.net>
    Signed-off-by: NJarod Wilson <jarod@redhat.com>
    Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
    f5f2cc64
ir-raw.c 9.3 KB