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: Sean Young <sean@xxxxxxxx> --- utils/ir-ctl/bpf_encoder.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/utils/ir-ctl/bpf_encoder.c b/utils/ir-ctl/bpf_encoder.c index 886f046f..2bc7b541 100644 --- a/utils/ir-ctl/bpf_encoder.c +++ b/utils/ir-ctl/bpf_encoder.c @@ -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) -- 2.44.0