Commit: 53e1c753a0c77a7eebb712375d64ef77ccb84098
Parent: 4b3f85871321d9c84887db18243c4e4fdbc16e2c
Author: Archie Pusaka <apusaka@chromium.org>
Committer: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: 2020-09-05 01:34:48
Tree: 8670d9adc74488eb644edb37ad223edb31fda61d

avrcp: Implement Press/Hold/Release method for MediaPlayer1 This allows us to send any passthrough command, complete with the support to hold down the key. Using Press() will automatically release the key, while using Hold() will keep the key held until an explicit call to Release() is received. This doesn't allow us to hold multiple keys simultaneously, since according to the AV/C Panel Subunit Specification, part 9.4, when the target receive a pressed command without receiving a release command of the previous key, it will be treated as if the release command is sent but not received. Previously, the rewind and fast_forward keys are unique in terms that they are treated as holdable keys, this patch preserves that behavior of calling Rewind() and FastForward(). A rewind event which is reported via the new Press() method will automatically be released instead.

Diffstat

M profiles/audio/avctp.c | 54 ++++++++++++++++++++++++++++++++++++- - - - - - - - - - - - - - - - - -
M profiles/audio/avctp.h | 5 ++++-
M profiles/audio/avrcp.c | 62 ++++++++++++++++++++++++++++++++++++++++- - - - - - - - -
M profiles/audio/control.c | 22 +++++++++++- - - - - - - - - - -
M profiles/audio/player.c | 66 ++++++++++++++++++++++++++++++++++++++++
M profiles/audio/player.h | 33 +++++++++++++++++++- - - - - - - - - - - - - -

6 files changed, 189 insertions(+), 53 deletions(-)

View Full Diff | Patch