From dadec19ecedb9cea0e082ded3ee40bb417d81866 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Tue, 20 Jan 2015 13:18:26 +0200 Subject: [PATCH] audio/avctp: Don't repeat key presses The kernel will take care of repeat event until the key is released so it is not necessary to generate a new press event. --- profiles/audio/avctp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/profiles/audio/avctp.c b/profiles/audio/avctp.c index 728273db1..d92f30460 100644 --- a/profiles/audio/avctp.c +++ b/profiles/audio/avctp.c @@ -337,15 +337,19 @@ static void handle_press(struct avctp *session, uint16_t op) g_source_remove(session->key.timer); /* Only auto release if keys are different */ - if (session->key.op != op) - send_key(session->uinput, session->key.op, 0); + if (session->key.op == op) + goto done; + + send_key(session->uinput, session->key.op, 0); } session->key.op = op; - session->key.timer = g_timeout_add_seconds(AVC_PRESS_TIMEOUT, - auto_release, session); send_key(session->uinput, op, 1); + +done: + session->key.timer = g_timeout_add_seconds(AVC_PRESS_TIMEOUT, + auto_release, session); } static void handle_release(struct avctp *session, uint16_t op) -- 2.47.3