aboutsummaryrefslogtreecommitdiff
path: root/include/input.h
diff options
context:
space:
mode:
authorSimon Glass2015-10-18 21:17:25 -0600
committerSimon Glass2015-11-19 20:13:40 -0700
commit0b186c0825f710a937578dc7d2ffbe125ddee7a3 (patch)
treee1534b8250ca061850e2ef0fad72dabb91025ef3 /include/input.h
parent3a85e4362aa830c0beb2b0253c0e70102b42f066 (diff)
input: Allow repeat filtering to be disabled
Generally the input library handles processing of a list of scanned keys. Repeated keys need to be generated based on a timer in this case, since all that is provided is a list of keys current depressed. Keyboards which do their own scanning will resend codes when they want to inject a repeating key. Provide a function which tells the input library to accept repeating keys and not to try to second-guess the caller. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'include/input.h')
-rw-r--r--include/input.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/input.h b/include/input.h
index 9942d6f77d5..e56f5000906 100644
--- a/include/input.h
+++ b/include/input.h
@@ -57,6 +57,7 @@ struct input_config {
* unknown
*/
int (*read_keys)(struct input_config *config);
+ bool allow_repeats; /* Don't filter out repeats */
unsigned int next_repeat_ms; /* Next time we repeat a key */
unsigned int repeat_delay_ms; /* Time before autorepeat starts */
unsigned int repeat_rate_ms; /* Autorepeat rate in ms */
@@ -143,6 +144,24 @@ void input_set_delays(struct input_config *config, int repeat_delay_ms,
int repeat_rate_ms);
/**
+ * Tell the input layer whether to allow the caller to determine repeats
+ *
+ * Generally the input library handles processing of a list of scanned keys.
+ * Repeated keys need to be generated based on a timer in this case, since all
+ * that is provided is a list of keys current depressed.
+ *
+ * Keyboards which do their own scanning will resend codes when they want to
+ * inject a repeating key. This function can be called at start-up to select
+ * this behaviour.
+ *
+ * @param config Input state
+ * @param allow_repeats true to repeat depressed keys every time
+ * input_send_keycodes() is called, false to do normal
+ * keyboard repeat processing with a timer.
+ */
+void input_allow_repeats(struct input_config *config, bool allow_repeats);
+
+/**
* Set up the key map tables
*
* This must be called after input_init() or keycode decoding will not work.