4 #include "spaceprotocol.h"
9 // The SIRC protocol is Sony's system for transmitting information via
10 // infrared light. As with the very popular "NEC" protocol, binary data is
11 // encoded by varying the amount of time each bit is held: a zero is held for
12 // a short span of time, a one lasts a little bit longer.
14 // Currently, there seem to be three types of SIRC commands; 12 bit, 15 bit,
15 // and 20 bit. In each type, it appears the last seven bits specify the
16 // command, and the rest specify the device being addressed. (The bits are
17 // passed in reverse order in the actual IR stream.)
19 // The marvelous thing about the Sony Infrared Remote Control protocol is just
20 // how simple and easy it is; just a header pulse, the command, the address,
21 // and a trailer pulse. The terrible thing about the protocol is that Sony
22 // has given up on following their own rules. Sony devices today regularly
23 // support commands from a variety of addresses, making the whole concept of
24 // the "address" kind of meaningless. :( I can see why the LIRC guys would
25 // give up and just encode the raw IR bits, rather than wade into this mess...
28 class SIRCProtocol: public SpaceProtocol
36 void startSendingCommand(
37 unsigned int threadableID,
41 int generateStandardCommand(
42 const PIRKeyBits &pkb,
43 PIRRX51Hardware &device);
46 #endif // SIRCPROTOCOL_H