Skip to content
Snippets Groups Projects
Commit 3944af31 authored by Sean Young's avatar Sean Young
Browse files

ir-ctl: fix encoding pulse_length bpf encoder


Transmitting pulse_length is broken and never worked. The most common
user of this protocol is Sony, which already has its own encoder.

Signed-off-by: default avatarSean Young <sean@mess.org>
parent 9b21a192
No related branches found
No related tags found
No related merge requests found
......@@ -61,24 +61,25 @@ static void encode_pulse_length(struct keymap *map, uint32_t scancode, int *buf,
if (keymap_param(map, "reverse", 0)) {
for (i = 0; i < bits; i++) {
if (scancode & (1 << i))
buf[len++] = keymap_param(map, "bit_1_space", 1625);
buf[len++] = keymap_param(map, "bit_1_pulse", 1625);
else
buf[len++] = keymap_param(map, "bit_0_space", 375);
buf[len++] = keymap_param(map, "bit_0_pulse", 375);
buf[len++] = keymap_param(map, "bit_pulse", 625);
buf[len++] = keymap_param(map, "bit_space", 625);
}
} else {
for (i = bits - 1; i >= 0; i--) {
if (scancode & (1 << i))
buf[len++] = keymap_param(map, "bit_1_space", 1625);
buf[len++] = keymap_param(map, "bit_1_pulse", 1625);
else
buf[len++] = keymap_param(map, "bit_0_space", 375);
buf[len++] = keymap_param(map, "bit_0_pulse", 375);
buf[len++] = keymap_param(map, "bit_pulse", 625);
buf[len++] = keymap_param(map, "bit_space", 625);
}
}
*length = len;
/* drop trailing space */
*length = len - 1;
}
static void manchester_advance_space(int *buf, int *len, unsigned length)
......@@ -121,8 +122,8 @@ static void encode_manchester(struct keymap *map, uint32_t scancode, int *buf, i
}
}
/* drop any trailing pulse */
*length = (len % 2) ? len : len + 1;
/* drop any trailing space */
*length = (len % 2) ? len : len + 1;
}
bool encode_bpf_protocol(struct keymap *map, uint32_t scancode, int *buf, int *length)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment