input: Allow updating of keyboard LEDs
Add a function which returns a new keyboard LED value when the LEDs need updating. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
ba42034267
commit
3b5f6f5001
@ -275,6 +275,7 @@ static struct input_key_xlate *process_modifier(struct input_config *config,
|
||||
if (config->flags & FLAG_SCROLL_LOCK)
|
||||
leds |= INPUT_LED_SCROLL;
|
||||
config->leds = leds;
|
||||
config->leds_changed = flip;
|
||||
}
|
||||
}
|
||||
|
||||
@ -586,6 +587,14 @@ void input_allow_repeats(struct input_config *config, bool allow_repeats)
|
||||
config->allow_repeats = allow_repeats;
|
||||
}
|
||||
|
||||
int input_leds_changed(struct input_config *config)
|
||||
{
|
||||
if (config->leds_changed)
|
||||
return config->leds;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int input_add_tables(struct input_config *config, bool german)
|
||||
{
|
||||
struct kbd_entry *entry;
|
||||
|
@ -43,7 +43,8 @@ struct input_config {
|
||||
/* Which modifiers are active (1 bit for each MOD_... value) */
|
||||
uchar modifiers;
|
||||
uchar flags; /* active state keys (FLAGS_...) */
|
||||
uchar leds; /* active LEDS (INPUT_LED_...) */
|
||||
uchar leds; /* active LEDs (INPUT_LED_...) */
|
||||
uchar leds_changed; /* LEDs that just changed */
|
||||
uchar num_tables; /* number of modifier tables */
|
||||
int prev_keycodes[INPUT_BUFFER_LEN]; /* keys held last time */
|
||||
int num_prev_keycodes; /* number of prev keys */
|
||||
@ -161,6 +162,17 @@ void input_set_delays(struct input_config *config, int repeat_delay_ms,
|
||||
*/
|
||||
void input_allow_repeats(struct input_config *config, bool allow_repeats);
|
||||
|
||||
/**
|
||||
* Check if keyboard LEDs need to be updated
|
||||
*
|
||||
* This can be called after input_tstc() to see if keyboard LEDs need
|
||||
* updating.
|
||||
*
|
||||
* @param config Input state
|
||||
* @return -1 if no LEDs need updating, other value if they do
|
||||
*/
|
||||
int input_leds_changed(struct input_config *config);
|
||||
|
||||
/**
|
||||
* Set up the key map tables
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user