7 const microseconds_t Nec1Renderer::repeatData[repeatLength] = { 9024, 2256, 564, 65535 };
8 const IrSequence Nec1Renderer::repeat(repeatData, repeatLength,
false);
14 uint32_t sum = 9024 + 4512 + 564;
15 introData[i] = 9024; i++;
16 introData[i] = 4512; i++;
17 lsbByte(introData, i, sum, D);
18 lsbByte(introData, i, sum, S);
19 lsbByte(introData, i, sum, F);
20 lsbByte(introData, i, sum, 255-F);
21 introData[i] = 564; i++;
24 return new IrSignal(*introPtr, repeat, emptyIrSequence, frequency);
27 void Nec1Renderer::lsbByte(
microseconds_t *intro,
unsigned int& i, uint32_t& sum,
unsigned int X) {
28 for (
unsigned int index = 0; index < 8; index++) {
29 process(intro, i, sum, X & 1);
34 void inline Nec1Renderer::process(
microseconds_t *intro,
unsigned int& i, uint32_t& sum,
unsigned int data) {
36 intro[i++] = data ? 1692 : 564;
37 sum += data ? 564+1692 : 564+564;
static const IrSequence emptyIrSequence
uint16_t microseconds_t
Type for durations in micro seconds.
This class models an IR signal with intro-, repeat-, and ending sequences.
This class consists of a vector of durations.
static const IrSignal * newIrSignal(unsigned int D, unsigned int S, unsigned int F)
Generates am IrSignal from the NEC1 parameters.