4 #include "pirprotocol.h"
5 #include "pirrx51hardware.h"
8 // The "NEC" Protocol is, more or less, followed by the majority of
9 // remotes defined in the LIRC config files, which means it is probably
10 // followed by most of the remotes out there.
12 // Remotes using this protocol seem to use a frequency of 38000 Hz, lead off
13 // each command with a signal that should be unique to the manufacturer,
14 // and mostly define 0s and 1s by the length of time between pulses...
17 class NECProtocol: public PIRProtocol
20 // An NEC protocol will always have differing times for "zero" and "one".
21 // Also, all protocols have some space set between commands. However,
22 // some protocols specify a fixed delay between the end of one
23 // command and the start of the next, and others specify each command be
24 // started at a precise interval (so the spacing between the end of one
25 // and the start of another may vary).
33 unsigned int gapSpace,
55 void setRepeatNeedsHeader(
58 void setFullHeadlessRepeat(
62 void startSendingCommand(
63 unsigned int threadableID,
67 // First, define what is used to represent 0 and 1:
68 unsigned int zeroPulse;
69 unsigned int zeroSpace;
70 unsigned int onePulse;
71 unsigned int oneSpace;
73 // A tailing on-request, not followed by a specific off time:
74 unsigned int trailerPulse;
77 // Each remote key has a unique command sequence:
78 // KeyCommandMap commands;
80 // Some administrative data that most NEC Protocol remotes have:
81 unsigned int headerPulse;
82 unsigned int headerSpace;
85 // More administrative data wrapped around the actual command:
86 CommandSequence preData;
87 CommandSequence postData;
89 // A pulse that means "repeat the last command":
90 unsigned int repeatPulse;
91 unsigned int repeatSpace;
93 bool repeatNeedsHeader; // Put the header ahead of the repeat pulse
94 bool fullHeadlessRepeat; // Repeat full command but without header
96 int generateStandardCommand(
97 const CommandSequence &bits,
98 PIRRX51Hardware &device);
100 int generateHeadlessCommand(
101 const CommandSequence &bits,
102 PIRRX51Hardware &device);
104 int generateRepeatCommand(
105 PIRRX51Hardware &device);
108 const CommandSequence &bits,
109 PIRRX51Hardware &device);
112 #endif // NECPROTOCOL_H