android_kernel_xiaomi_sm7250/include/linux/keycombo.h
Daniel Rosenberg 5130e5bc3d ANDROID: input: keycombo: add keycombo, a general key combo driver.
Keycombo lets you provide a key up and key down function, and an
optional time delay for key down. The driver will call the key
down function after the specified key combo has been held for the
speicified time delay. After you release the combo, if the key down
has happened, it calls key up.

Change-Id: I6a9a94e96a8f58fadd908fd1dc7944b9102a089f
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-08-28 17:10:42 +05:30

37 lines
1.1 KiB
C

/*
* include/linux/keycombo.h - platform data structure for keycombo driver
*
* Copyright (C) 2014 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef _LINUX_KEYCOMBO_H
#define _LINUX_KEYCOMBO_H
#define KEYCOMBO_NAME "keycombo"
/*
* if key_down_fn and key_up_fn are both present, you are guaranteed that
* key_down_fn will return before key_up_fn is called, and that key_up_fn
* is called iff key_down_fn is called.
*/
struct keycombo_platform_data {
void (*key_down_fn)(void *);
void (*key_up_fn)(void *);
void *priv;
int key_down_delay; /* Time in ms */
int *keys_up;
int keys_down[]; /* 0 terminated */
};
#endif /* _LINUX_KEYCOMBO_H */