sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget4/translations/zh_CN/userspace-api/media/rc/rc-protosmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/zh_TW/userspace-api/media/rc/rc-protosmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/it_IT/userspace-api/media/rc/rc-protosmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/ja_JP/userspace-api/media/rc/rc-protosmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/ko_KR/userspace-api/media/rc/rc-protosmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/sp_SP/userspace-api/media/rc/rc-protosmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(hCSPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-laterh]hCSPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhN/var/lib/git/docbuild/linux/Documentation/userspace-api/media/rc/rc-protos.rsthKubhtarget)}(h!.. _Remote_controllers_Protocols:h]h}(h]h ]h"]h$]h&]refidremote-controllers-protocolsuh1hhKhhhhhhubhsection)}(hhh](htitle)}(h)Remote Controller Protocols and Scancodesh]h)Remote Controller Protocols and Scancodes}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hX IR is encoded as a series of pulses and spaces, using a protocol. These protocols can encode e.g. an address (which device should respond) and a command: what it should do. The values for these are not always consistent across different devices for a given protocol.h]hX IR is encoded as a series of pulses and spaces, using a protocol. These protocols can encode e.g. an address (which device should respond) and a command: what it should do. The values for these are not always consistent across different devices for a given protocol.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hTherefore out the output of the IR decoder is a scancode; a single u32 value. Using keymap tables this can be mapped to linux key codes.h]hTherefore out the output of the IR decoder is a scancode; a single u32 value. Using keymap tables this can be mapped to linux key codes.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXOther things can be encoded too. Some IR protocols encode a toggle bit; this is to distinguish whether the same button is being held down, or has been released and pressed again. If has been released and pressed again, the toggle bit will invert from one IR message to the next.h]hXOther things can be encoded too. Some IR protocols encode a toggle bit; this is to distinguish whether the same button is being held down, or has been released and pressed again. If has been released and pressed again, the toggle bit will invert from one IR message to the next.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hSome remotes have a pointer-type device which can used to control the mouse; some air conditioning systems can have their target temperature target set in IR.h]hSome remotes have a pointer-type device which can used to control the mouse; some air conditioning systems can have their target temperature target set in IR.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hrThe following are the protocols the kernel knows about and also lists how scancodes are encoded for each protocol.h]hrThe following are the protocols the kernel knows about and also lists how scancodes are encoded for each protocol.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hrc-5 (RC_PROTO_RC5)h]hrc-5 (RC_PROTO_RC5)}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hThis IR protocol uses manchester encoding to encode 14 bits. There is a detailed description here https://www.sbprojects.net/knowledge/ir/rc5.php.h](hbThis IR protocol uses manchester encoding to encode 14 bits. There is a detailed description here }(hj0hhhNhNubh reference)}(h/https://www.sbprojects.net/knowledge/ir/rc5.phph]h/https://www.sbprojects.net/knowledge/ir/rc5.php}(hj:hhhNhNubah}(h]h ]h"]h$]h&]refurij<uh1j8hj0ubh.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hjhhubh)}(hsThe scancode encoding is *not* consistent with the lirc daemon (lircd) rc5 protocol, or the manchester BPF decoder.h](hThe scancode encoding is }(hjShhhNhNubhemphasis)}(h*not*h]hnot}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjSubhU consistent with the lirc daemon (lircd) rc5 protocol, or the manchester BPF decoder.}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK#hjhhubhtable)}(hhh](h)}(hrc5 bits scancode mappingh]hrc5 bits scancode mapping}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjwubhtgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(hrc-5 bith]hrc-5 bit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h scancode bith]h scancode bit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h descriptionh]h description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h1h]h1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hnoneh]hnone}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hStart bit, always seth]hStart bit, always set}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hj h]h1}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjUubah}(h]h ]h"]h$]h&]uh1jhjRubj)}(hhh]h)}(h 6 (inverted)h]h 6 (inverted)}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjkubah}(h]h ]h"]h$]h&]uh1jhjRubj)}(hhh]h)}(h12nd start bit in rc5, re-used as 6th command bith]h12nd start bit in rc5, re-used as 6th command bit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hj h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hnoneh]hnone}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Toggle bith]h Toggle bit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h5h]h5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h8 to 13h]h8 to 13}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hAddressh]hAddress}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h6h]h6}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhj=ubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(hhh]h)}(h0 to 5h]h0 to 5}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjTubah}(h]h ]h"]h$]h&]uh1jhj:ubj)}(hhh]h)}(hCommandh]hCommand}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKKhjkubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjwubeh}(h]id1ah ]h"]h$]h&]uh1juhjhhhNhNubh)}(hX_There is a variant of rc5 called either rc5x or extended rc5 where there the second stop bit is the 6th command bit, but inverted. This is done so it the scancodes and encoding is compatible with existing schemes. This bit is stored in bit 6 of the scancode, inverted. This is done to keep it compatible with plain rc-5 where there are two start bits.h]hX_There is a variant of rc5 called either rc5x or extended rc5 where there the second stop bit is the 6th command bit, but inverted. This is done so it the scancodes and encoding is compatible with existing schemes. This bit is stored in bit 6 of the scancode, inverted. This is done to keep it compatible with plain rc-5 where there are two start bits.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhjhhubeh}(h]rc-5-rc-proto-rc5ah ]h"]rc-5 (rc_proto_rc5)ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hrc-5-sz (RC_PROTO_RC5_SZ)h]hrc-5-sz (RC_PROTO_RC5_SZ)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKTubh)}(hOThis is much like rc-5 but one bit longer. The scancode is encoded differently.h]hOThis is much like rc-5 but one bit longer. The scancode is encoded differently.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjhhubjv)}(hhh](h)}(hrc-5-sz bits scancode mappingh]hrc-5-sz bits scancode mapping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h rc-5-sz bitsh]h rc-5-sz bits}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h scancode bith]h scancode bit}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h descriptionh]h description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hj h]h1}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjWubah}(h]h ]h"]h$]h&]uh1jhjTubj)}(hhh]h)}(hnoneh]hnone}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchjmubah}(h]h ]h"]h$]h&]uh1jhjTubj)}(hhh]h)}(hStart bit, always seth]hStart bit, always set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehjubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hj h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h13h]h13}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Address bith]h Address bit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hj h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hnoneh]hnone}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Toggle bith]h Toggle bit}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hjBh]h6}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshj>ubah}(h]h ]h"]h$]h&]uh1jhj;ubj)}(hhh]h)}(h6 to 11h]h6 to 11}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjTubah}(h]h ]h"]h$]h&]uh1jhj;ubj)}(hhh]h)}(hAddressh]hAddress}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhjkubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hjBh]h6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0 to 5h]h0 to 5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hCommandh]hCommand}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h]id2ah ]h"]h$]h&]uh1juhjhhhNhNubeh}(h]rc-5-sz-rc-proto-rc5-szah ]h"]rc-5-sz (rc_proto_rc5_sz)ah$]h&]uh1hhhhhhhhKTubh)}(hhh](h)}(hrc-5x-20 (RC_PROTO_RC5X_20)h]hrc-5x-20 (RC_PROTO_RC5X_20)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hZThis rc-5 extended to encoded 20 bits. The is a 3555 microseconds space after the 8th bit.h]hZThis rc-5 extended to encoded 20 bits. The is a 3555 microseconds space after the 8th bit.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubjv)}(hhh](h)}(hrc-5x-20 bits scancode mappingh]hrc-5x-20 bits scancode mapping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj!ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj!ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj!ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h rc-5-sz bitsh]h rc-5-sz bits}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjHubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(h scancode bith]h scancode bit}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj_ubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(h descriptionh]h description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjvubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(hj h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hnoneh]hnone}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hStart bit, always seth]hStart bit, always set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(hj h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h14h]h14}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Address bith]h Address bit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(hj h]h1}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj0ubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(hnoneh]hnone}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjFubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(h Toggle bith]h Toggle bit}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj]ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(hjh]h5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj}ubah}(h]h ]h"]h$]h&]uh1jhjzubj)}(hhh]h)}(h16 to 20h]h16 to 20}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjzubj)}(hhh]h)}(hAddressh]hAddress}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(hjBh]h6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h8 to 13h]h8 to 13}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hAddressh]hAddress}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(hjBh]h6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0 to 5h]h0 to 5}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj-ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hCommandh]hCommand}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjDubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h]id3ah ]h"]h$]h&]uh1juhjhhhNhNubeh}(h]rc-5x-20-rc-proto-rc5x-20ah ]h"]rc-5x-20 (rc_proto_rc5x_20)ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hjvc (RC_PROTO_JVC)h]hjvc (RC_PROTO_JVC)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hhhhhKubh)}(hThe jvc protocol is much like nec, without the inverted values. It is described here https://www.sbprojects.net/knowledge/ir/jvc.php.h](hUThe jvc protocol is much like nec, without the inverted values. It is described here }(hjhhhNhNubj9)}(h/https://www.sbprojects.net/knowledge/ir/jvc.phph]h/https://www.sbprojects.net/knowledge/ir/jvc.php}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j8hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj}hhubh)}(hThe scancode is a 16 bits value, where the address is the lower 8 bits and the command the higher 8 bits; this is reversed from IR order.h]hThe scancode is a 16 bits value, where the address is the lower 8 bits and the command the higher 8 bits; this is reversed from IR order.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj}hhubeh}(h]jvc-rc-proto-jvcah ]h"]jvc (rc_proto_jvc)ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hsony-12 (RC_PROTO_SONY12)h]hsony-12 (RC_PROTO_SONY12)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hThe sony protocol is a pulse-width encoding. There are three variants, which just differ in number of bits and scancode encoding.h]hThe sony protocol is a pulse-width encoding. There are three variants, which just differ in number of bits and scancode encoding.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubjv)}(hhh](h)}(hsony-12 bits scancode mappingh]hsony-12 bits scancode mapping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h sony-12 bitsh]h sony-12 bits}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h scancode bith]h scancode bit}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj3 ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h descriptionh]h description}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJ ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(hjh]h5}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjj ubah}(h]h ]h"]h$]h&]uh1jhjg ubj)}(hhh]h)}(h16 to 20h]h16 to 20}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjg ubj)}(hhh]h)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjg ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h7h]h7}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h0 to 6h]h0 to 6}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hfunctionh]hfunction}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h]id4ah ]h"]h$]h&]uh1juhjhhhNhNubeh}(h]sony-12-rc-proto-sony12ah ]h"]sony-12 (rc_proto_sony12)ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hsony-15 (RC_PROTO_SONY15)h]hsony-15 (RC_PROTO_SONY15)}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hThe sony protocol is a pulse-width encoding. There are three variants, which just differ in number of bits and scancode encoding.h]hThe sony protocol is a pulse-width encoding. There are three variants, which just differ in number of bits and scancode encoding.}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubjv)}(hhh](h)}(hsony-12 bits scancode mappingh]hsony-12 bits scancode mapping}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj= ubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjN ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjN ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjN ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h sony-12 bitsh]h sony-12 bits}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhju ubah}(h]h ]h"]h$]h&]uh1jhjr ubj)}(hhh]h)}(h scancode bith]h scancode bit}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjr ubj)}(hhh]h)}(h descriptionh]h description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjr ubeh}(h]h ]h"]h$]h&]uh1jhjo ubj)}(hhh](j)}(hhh]h)}(h8h]h8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h16 to 23h]h16 to 23}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjo ubj)}(hhh](j)}(hhh]h)}(hj h]h7}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h0 to 6h]h0 to 6}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj' ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hfunctionh]hfunction}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj> ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjo ubeh}(h]h ]h"]h$]h&]uh1jhjN ubeh}(h]h ]h"]h$]h&]colsKuh1jhj= ubeh}(h]id5ah ]h"]h$]h&]uh1juhj hhhNhNubeh}(h]sony-15-rc-proto-sony15ah ]h"]sony-15 (rc_proto_sony15)ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hsony-20 (RC_PROTO_SONY20)h]hsony-20 (RC_PROTO_SONY20)}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw hhhhhKubh)}(hThe sony protocol is a pulse-width encoding. There are three variants, which just differ in number of bits and scancode encoding.h]hThe sony protocol is a pulse-width encoding. There are three variants, which just differ in number of bits and scancode encoding.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjw hhubjv)}(hhh](h)}(hsony-20 bits scancode mappingh]hsony-20 bits scancode mapping}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h sony-20 bitsh]h sony-20 bits}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h scancode bith]h scancode bit}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h descriptionh]h description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(hjh]h5}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h16 to 20h]h16 to 20}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj2 ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hdeviceh]hdevice}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjI ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(hj h]h7}(hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhji ubah}(h]h ]h"]h$]h&]uh1jhjf ubj)}(hhh]h)}(h0 to 7h]h0 to 7}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj ubah}(h]h ]h"]h$]h&]uh1jhjf ubj)}(hhh]h)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj ubah}(h]h ]h"]h$]h&]uh1jhjf ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(hj h]h8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h8 to 15h]h8 to 15}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h extended bitsh]h extended bits}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]colsKuh1jhj ubeh}(h]id6ah ]h"]h$]h&]uh1juhjw hhhNhNubeh}(h]sony-20-rc-proto-sony20ah ]h"]sony-20 (rc_proto_sony20)ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hnec (RC_PROTO_NEC)h]hnec (RC_PROTO_NEC)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hThe nec protocol encodes an 8 bit address and an 8 bit command. It is described here https://www.sbprojects.net/knowledge/ir/nec.php. Note that the protocol sends least significant bit first.h](hUThe nec protocol encodes an 8 bit address and an 8 bit command. It is described here }(hj- hhhNhNubj9)}(h/https://www.sbprojects.net/knowledge/ir/nec.phph]h/https://www.sbprojects.net/knowledge/ir/nec.php}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]refurij7 uh1j8hj- ubh;. Note that the protocol sends least significant bit first.}(hj- hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hAs a check, the nec protocol sends the address and command twice; the second time it is inverted. This is done for verification.h]hAs a check, the nec protocol sends the address and command twice; the second time it is inverted. This is done for verification.}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hgA plain nec IR message has 16 bits; the high 8 bits are the address and the low 8 bits are the command.h]hgA plain nec IR message has 16 bits; the high 8 bits are the address and the low 8 bits are the command.}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]nec-rc-proto-necah ]h"]nec (rc_proto_nec)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hnec-x (RC_PROTO_NECX)h]hnec-x (RC_PROTO_NECX)}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjr hhhhhM!ubh)}(hExtended nec has a 16 bit address and a 8 bit command. This is encoded as a 24 bit value as you would expect, with the lower 8 bits the command and the upper 16 bits the address.h]hExtended nec has a 16 bit address and a 8 bit command. This is encoded as a 24 bit value as you would expect, with the lower 8 bits the command and the upper 16 bits the address.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM#hjr hhubeh}(h]nec-x-rc-proto-necxah ]h"]nec-x (rc_proto_necx)ah$]h&]uh1hhhhhhhhM!ubh)}(hhh](h)}(hnec-32 (RC_PROTO_NEC32)h]hnec-32 (RC_PROTO_NEC32)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM(ubh)}(hknec-32 does not send an inverted address or an inverted command; the entire message, all 32 bits, are used.h]hknec-32 does not send an inverted address or an inverted command; the entire message, all 32 bits, are used.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM*hj hhubh)}(hFor this to be decoded correctly, the second 8 bits must not be the inverted value of the first, and also the last 8 bits must not be the inverted value of the third 8 bit value.h]hFor this to be decoded correctly, the second 8 bits must not be the inverted value of the first, and also the last 8 bits must not be the inverted value of the third 8 bit value.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM-hj hhubh)}(h-The scancode has a somewhat unusual encoding.h]h-The scancode has a somewhat unusual encoding.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM1hj hhubjv)}(hhh](h)}(hnec-32 bits scancode mappingh]hnec-32 bits scancode mapping}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM3hj ubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthK2uh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK2uh1jhj ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h nec-32 bitsh]h nec-32 bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM5hjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h scancode bith]h scancode bit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM7hjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h First 8 bitsh]h First 8 bits}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM9hj9ubah}(h]h ]h"]h$]h&]uh1jhj6ubj)}(hhh]h)}(h16 to 23h]h16 to 23}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM;hjPubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h Second 8 bitsh]h Second 8 bits}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM=hjpubah}(h]h ]h"]h$]h&]uh1jhjmubj)}(hhh]h)}(h24 to 31h]h24 to 31}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM?hjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h Third 8 bitsh]h Third 8 bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMAhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0 to 7h]h0 to 7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMChjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h Fourth 8 bitsh]h Fourth 8 bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMEhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h8 to 15h]h8 to 15}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMGhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]colsKuh1jhj ubeh}(h]id7ah ]h"]h$]h&]uh1juhj hhhNhNubeh}(h]nec-32-rc-proto-nec32ah ]h"]nec-32 (rc_proto_nec32)ah$]h&]uh1hhhhhhhhM(ubh)}(hhh](h)}(hsanyo (RC_PROTO_SANYO)h]hsanyo (RC_PROTO_SANYO)}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hhhhhMJubh)}(hThe sanyo protocol is like the nec protocol, but with 13 bits address rather than 8 bits. Both the address and the command are followed by their inverted versions, but these are not present in the scancodes.h]hThe sanyo protocol is like the nec protocol, but with 13 bits address rather than 8 bits. Both the address and the command are followed by their inverted versions, but these are not present in the scancodes.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMLhj.hhubh)}(hYBis 8 to 20 of the scancode is the 13 bits address, and the lower 8 bits are the command.h]hYBis 8 to 20 of the scancode is the 13 bits address, and the lower 8 bits are the command.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMPhj.hhubeh}(h]sanyo-rc-proto-sanyoah ]h"]sanyo (rc_proto_sanyo)ah$]h&]uh1hhhhhhhhMJubh)}(hhh](h)}(hmcir2-kbd (RC_PROTO_MCIR2_KBD)h]hmcir2-kbd (RC_PROTO_MCIR2_KBD)}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchhhhhMTubh)}(hThis protocol is generated by the Microsoft MCE keyboard for keyboard events. Refer to the ir-mce_kbd-decoder.c to see how it is encoded.h]hThis protocol is generated by the Microsoft MCE keyboard for keyboard events. Refer to the ir-mce_kbd-decoder.c to see how it is encoded.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMVhjchhubeh}(h]mcir2-kbd-rc-proto-mcir2-kbdah ]h"]mcir2-kbd (rc_proto_mcir2_kbd)ah$]h&]uh1hhhhhhhhMTubh)}(hhh](h)}(hmcir2-mse (RC_PROTO_MCIR2_MSE)h]hmcir2-mse (RC_PROTO_MCIR2_MSE)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMZubh)}(hThis protocol is generated by the Microsoft MCE keyboard for pointer events. Refer to the ir-mce_kbd-decoder.c to see how it is encoded.h]hThis protocol is generated by the Microsoft MCE keyboard for pointer events. Refer to the ir-mce_kbd-decoder.c to see how it is encoded.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM\hjhhubeh}(h]mcir2-mse-rc-proto-mcir2-mseah ]h"]mcir2-mse (rc_proto_mcir2_mse)ah$]h&]uh1hhhhhhhhMZubh)}(hhh](h)}(hrc-6-0 (RC_PROTO_RC6_0)h]hrc-6-0 (RC_PROTO_RC6_0)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM`ubh)}(hThis is the rc-6 in mode 0. rc-6 is described here https://www.sbprojects.net/knowledge/ir/rc6.php. The scancode is the exact 16 bits as in the protocol. There is also a toggle bit.h](h3This is the rc-6 in mode 0. rc-6 is described here }(hjhhhNhNubj9)}(h/https://www.sbprojects.net/knowledge/ir/rc6.phph]h/https://www.sbprojects.net/knowledge/ir/rc6.php}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j8hjubhS. The scancode is the exact 16 bits as in the protocol. There is also a toggle bit.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMbhjhhubeh}(h]rc-6-0-rc-proto-rc6-0ah ]h"]rc-6-0 (rc_proto_rc6_0)ah$]h&]uh1hhhhhhhhM`ubh)}(hhh](h)}(hrc-6-6a-20 (RC_PROTO_RC6_6A_20)h]hrc-6-6a-20 (RC_PROTO_RC6_6A_20)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMhubh)}(hThis is the rc-6 in mode 6a, 20 bits. rc-6 is described here https://www.sbprojects.net/knowledge/ir/rc6.php. The scancode is the exact 20 bits as in the protocol. There is also a toggle bit.h](h=This is the rc-6 in mode 6a, 20 bits. rc-6 is described here }(hjhhhNhNubj9)}(h/https://www.sbprojects.net/knowledge/ir/rc6.phph]h/https://www.sbprojects.net/knowledge/ir/rc6.php}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j8hjubhS. The scancode is the exact 20 bits as in the protocol. There is also a toggle bit.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMjhjhhubeh}(h]rc-6-6a-20-rc-proto-rc6-6a-20ah ]h"]rc-6-6a-20 (rc_proto_rc6_6a_20)ah$]h&]uh1hhhhhhhhMhubh)}(hhh](h)}(hrc-6-6a-24 (RC_PROTO_RC6_6A_24)h]hrc-6-6a-24 (RC_PROTO_RC6_6A_24)}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hhhhhMpubh)}(hThis is the rc-6 in mode 6a, 24 bits. rc-6 is described here https://www.sbprojects.net/knowledge/ir/rc6.php. The scancode is the exact 24 bits as in the protocol. There is also a toggle bit.h](h=This is the rc-6 in mode 6a, 24 bits. rc-6 is described here }(hj6hhhNhNubj9)}(h/https://www.sbprojects.net/knowledge/ir/rc6.phph]h/https://www.sbprojects.net/knowledge/ir/rc6.php}(hj>hhhNhNubah}(h]h ]h"]h$]h&]refurij@uh1j8hj6ubhS. The scancode is the exact 24 bits as in the protocol. There is also a toggle bit.}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMrhj%hhubeh}(h]rc-6-6a-24-rc-proto-rc6-6a-24ah ]h"]rc-6-6a-24 (rc_proto_rc6_6a_24)ah$]h&]uh1hhhhhhhhMpubh)}(hhh](h)}(hrc-6-6a-32 (RC_PROTO_RC6_6A_32)h]hrc-6-6a-32 (RC_PROTO_RC6_6A_32)}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hhhhhMxubh)}(hX This is the rc-6 in mode 6a, 32 bits. rc-6 is described here https://www.sbprojects.net/knowledge/ir/rc6.php. The upper 16 bits are the vendor, and the lower 16 bits are the vendor-specific bits. This protocol is for the non-Microsoft MCE variant (vendor != 0x800f).h](h=This is the rc-6 in mode 6a, 32 bits. rc-6 is described here }(hjphhhNhNubj9)}(h/https://www.sbprojects.net/knowledge/ir/rc6.phph]h/https://www.sbprojects.net/knowledge/ir/rc6.php}(hjxhhhNhNubah}(h]h ]h"]h$]h&]refurijzuh1j8hjpubh. The upper 16 bits are the vendor, and the lower 16 bits are the vendor-specific bits. This protocol is for the non-Microsoft MCE variant (vendor != 0x800f).}(hjphhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMzhj_hhubeh}(h]rc-6-6a-32-rc-proto-rc6-6a-32ah ]h"]rc-6-6a-32 (rc_proto_rc6_6a_32)ah$]h&]uh1hhhhhhhhMxubh)}(hhh](h)}(hrc-6-mce (RC_PROTO_RC6_MCE)h]hrc-6-mce (RC_PROTO_RC6_MCE)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hX#This is the rc-6 in mode 6a, 32 bits. The upper 16 bits are the vendor, and the lower 16 bits are the vendor-specific bits. This protocol is for the Microsoft MCE variant (vendor = 0x800f). The toggle bit in the protocol itself is ignored, and the 16th bit should be takes as the toggle bit.h]hX#This is the rc-6 in mode 6a, 32 bits. The upper 16 bits are the vendor, and the lower 16 bits are the vendor-specific bits. This protocol is for the Microsoft MCE variant (vendor = 0x800f). The toggle bit in the protocol itself is ignored, and the 16th bit should be takes as the toggle bit.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]rc-6-mce-rc-proto-rc6-mceah ]h"]rc-6-mce (rc_proto_rc6_mce)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hsharp (RC_PROTO_SHARP)h]hsharp (RC_PROTO_SHARP)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hThis is a protocol used by Sharp VCRs, is described here https://www.sbprojects.net/knowledge/ir/sharp.php. There is a very long (40ms) space between the normal and inverted values, and some IR receivers cannot decode this.h](h9This is a protocol used by Sharp VCRs, is described here }(hjhhhNhNubj9)}(h1https://www.sbprojects.net/knowledge/ir/sharp.phph]h1https://www.sbprojects.net/knowledge/ir/sharp.php}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j8hjubhu. There is a very long (40ms) space between the normal and inverted values, and some IR receivers cannot decode this.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(h}There is a 5 bit address and a 8 bit command. In the scancode the address is in bits 8 to 12, and the command in bits 0 to 7.h]h}There is a 5 bit address and a 8 bit command. In the scancode the address is in bits 8 to 12, and the command in bits 0 to 7.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]sharp-rc-proto-sharpah ]h"]sharp (rc_proto_sharp)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hxmp (RC_PROTO_XMP)h]hxmp (RC_PROTO_XMP)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hThis protocol has several versions and only version 1 is supported. Refer to the decoder (ir-xmp-decoder.c) to see how it is encoded.h]hThis protocol has several versions and only version 1 is supported. Refer to the decoder (ir-xmp-decoder.c) to see how it is encoded.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]xmp-rc-proto-xmpah ]h"]xmp (rc_proto_xmp)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hcec (RC_PROTO_CEC)h]hcec (RC_PROTO_CEC)}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hhhhhMubh)}(hThis is not an IR protocol, this is a protocol over CEC. The CEC infrastructure uses rc-core for handling CEC commands, so that they can easily be remapped.h]hThis is not an IR protocol, this is a protocol over CEC. The CEC infrastructure uses rc-core for handling CEC commands, so that they can easily be remapped.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj/hhubeh}(h]cec-rc-proto-cecah ]h"]cec (rc_proto_cec)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(himon (RC_PROTO_IMON)h]himon (RC_PROTO_IMON)}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhhhhhMubh)}(h=This protocol is used by Antec Veris/SoundGraph iMON remotes.h]h=This protocol is used by Antec Veris/SoundGraph iMON remotes.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjVhhubh)}(hThe protocol describes both button presses and pointer movements. The protocol encodes 31 bits, and the scancode is simply the 31 bits with the top bit always 0.h]hThe protocol describes both button presses and pointer movements. The protocol encodes 31 bits, and the scancode is simply the 31 bits with the top bit always 0.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjVhhubeh}(h]imon-rc-proto-imonah ]h"]imon (rc_proto_imon)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hrc-mm-12 (RC_PROTO_RCMM12)h]hrc-mm-12 (RC_PROTO_RCMM12)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hzThe rc-mm protocol is described here https://www.sbprojects.net/knowledge/ir/rcmm.php. The scancode is simply the 12 bits.h](h%The rc-mm protocol is described here }(hjhhhNhNubj9)}(h0https://www.sbprojects.net/knowledge/ir/rcmm.phph]h0https://www.sbprojects.net/knowledge/ir/rcmm.php}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j8hjubh%. The scancode is simply the 12 bits.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]rc-mm-12-rc-proto-rcmm12ah ]h"]rc-mm-12 (rc_proto_rcmm12)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hrc-mm-24 (RC_PROTO_RCMM24)h]hrc-mm-24 (RC_PROTO_RCMM24)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hzThe rc-mm protocol is described here https://www.sbprojects.net/knowledge/ir/rcmm.php. The scancode is simply the 24 bits.h](h%The rc-mm protocol is described here }(hjhhhNhNubj9)}(h0https://www.sbprojects.net/knowledge/ir/rcmm.phph]h0https://www.sbprojects.net/knowledge/ir/rcmm.php}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j8hjubh%. The scancode is simply the 24 bits.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]rc-mm-24-rc-proto-rcmm24ah ]h"]rc-mm-24 (rc_proto_rcmm24)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hrc-mm-32 (RC_PROTO_RCMM32)h]hrc-mm-32 (RC_PROTO_RCMM32)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hzThe rc-mm protocol is described here https://www.sbprojects.net/knowledge/ir/rcmm.php. The scancode is simply the 32 bits.h](h%The rc-mm protocol is described here }(hjhhhNhNubj9)}(h0https://www.sbprojects.net/knowledge/ir/rcmm.phph]h0https://www.sbprojects.net/knowledge/ir/rcmm.php}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1j8hjubh%. The scancode is simply the 32 bits.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]rc-mm-32-rc-proto-rcmm32ah ]h"]rc-mm-32 (rc_proto_rcmm32)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hxbox-dvd (RC_PROTO_XBOX_DVD)h]hxbox-dvd (RC_PROTO_XBOX_DVD)}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hhhhhMubh)}(hThis protocol is used by XBox DVD Remote, which was made for the original XBox. There is no in-kernel decoder or encoder for this protocol. The usb device decodes the protocol. There is a BPF decoder available in v4l-utils.h]hThis protocol is used by XBox DVD Remote, which was made for the original XBox. There is no in-kernel decoder or encoder for this protocol. The usb device decodes the protocol. There is a BPF decoder available in v4l-utils.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj9hhubeh}(h]xbox-dvd-rc-proto-xbox-dvdah ]h"]xbox-dvd (rc_proto_xbox_dvd)ah$]h&]uh1hhhhhhhhMubeh}(h]()remote-controller-protocols-and-scancodesheh ]h"]()remote controller protocols and scancodesremote_controllers_protocolseh$]h&]uh1hhhhhhhhKexpect_referenced_by_name}jfhsexpect_referenced_by_id}hhsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}h]hasnameids}(jfhjejbjjjjjzjwjjj j jt jq j j jo jl j j j+j(j`j]jjjjjjj"jj\jYjjjjjjj,j)jSjPjjjjjjj6j3j]jZu nametypes}(jfjejjjzjj jt j jo j j+j`jjjj"j\jjjj,jSjjjj6j]uh}(hhjbhjjjjjwjjj}j jjq j j jw jl j j jr j(j j]j.jjcjjjjjjjYj%jj_jjjjj)jjPj/jjVjjjjj3jjZj9jjwjjjpjj jjj j= j j j!j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jKsRparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]hBHyperlink target "remote-controllers-protocols" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineKuh1juba transformerN include_log] decorationNhhub.