2009-04-23 11:53:36

by Scott Talbot

[permalink] [raw]
Subject: [PATCH] Fix sending AVRCP button released passthrough messages

Set the high bit in the op value for the button released event rather
than clearing the entire field.
---
audio/control.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/audio/control.c b/audio/control.c
index e0451e7..5cc4a31 100644
--- a/audio/control.c
+++ b/audio/control.c
@@ -937,7 +937,7 @@ static int avctp_send_passthrough(struct control *control, uint8_t op)

/* Button release */
avctp->transaction = transaction++;
- operands[0] &= 0x80;
+ operands[0] |= 0x80;

return write(sk, buf, sizeof(buf));
}
--
1.6.0.6



2009-04-23 12:42:07

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] Fix sending AVRCP button released passthrough messages

Hi Scott,

On Thu, Apr 23, 2009, Scott Talbot wrote:
>Set the high bit in the op value for the button released event rather
>than clearing the entire field.
>---
> audio/control.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
>diff --git a/audio/control.c b/audio/control.c
>index e0451e7..5cc4a31 100644
>--- a/audio/control.c
>+++ b/audio/control.c
>@@ -937,7 +937,7 @@ static int avctp_send_passthrough(struct control *control, uint8_t op)
>
> /* Button release */
> avctp->transaction = transaction++;
>- operands[0] &= 0x80;
>+ operands[0] |= 0x80;
>
> return write(sk, buf, sizeof(buf));
> }

Yeah, stupid mistake by me (though headsets I tested with didn't seem to
mind this). Thanks for catching it! The patch is now pushed upstream.

Johan