input: keyboard: continued refactoring brain-kbd-i2c

* change to early return pattern
This commit is contained in:
Suguru Saito 2023-09-20 10:53:31 +09:00
parent 5e99d0a5b0
commit e35e599497
1 changed files with 38 additions and 40 deletions

View File

@ -89,56 +89,54 @@ static bool handle_symbol_key(struct bk_i2c_data *kbd, u8 keycode)
{
struct keymap_def *keymap = &kbd->keymaps[BK_KEY(keycode)];
if (keymap->symbol_event_code != KEY_RESERVED) {
if (kbd->symbol_states[BK_KEY(keycode)] == false) {
input_report_key(kbd->idev, keymap->normal_event_code, 0);
dev_dbg(&kbd->cli->dev,
"mode changed, normal key %02x(%02x) released\n",
BK_KEY(keycode), keymap->normal_event_code);
}
input_report_key(kbd->idev,
keymap->symbol_event_code, BK_IS_PRESSED(keycode));
kbd->symbol_states[BK_KEY(keycode)] = BK_IS_PRESSED(keycode);
dev_dbg(&kbd->cli->dev, "symbol key %02x(%02x) %s\n",
BK_KEY(keycode), keymap->symbol_event_code,
BK_IS_PRESSED(keycode) ? "pressed": "released");
return true;
} else {
if (keymap->symbol_event_code == KEY_RESERVED)
return false;
if (kbd->symbol_states[BK_KEY(keycode)] == false) {
input_report_key(kbd->idev, keymap->normal_event_code, 0);
dev_dbg(&kbd->cli->dev,
"mode changed, normal key %02x(%02x) released\n",
BK_KEY(keycode), keymap->normal_event_code);
}
input_report_key(kbd->idev,
keymap->symbol_event_code, BK_IS_PRESSED(keycode));
kbd->symbol_states[BK_KEY(keycode)] = BK_IS_PRESSED(keycode);
dev_dbg(&kbd->cli->dev, "symbol key %02x(%02x) %s\n",
BK_KEY(keycode), keymap->symbol_event_code,
BK_IS_PRESSED(keycode) ? "pressed": "released");
return true;
}
static bool handle_normal_key(struct bk_i2c_data *kbd, u8 keycode)
{
struct keymap_def *keymap = &kbd->keymaps[BK_KEY(keycode)];
if (keymap->normal_event_code != KEY_RESERVED) {
if (kbd->symbol_states[BK_KEY(keycode)] == true) {
input_report_key(kbd->idev, keymap->symbol_event_code, 0);
dev_dbg(&kbd->cli->dev,
"mode changed, symbol key %02x(%02x) released\n",
BK_KEY(keycode), keymap->symbol_event_code);
}
input_report_key(kbd->idev,
keymap->normal_event_code, BK_IS_PRESSED(keycode));
kbd->symbol_states[BK_KEY(keycode)] = false;
dev_dbg(&kbd->cli->dev, "normal key %02x(%02x) %s\n",
BK_KEY(keycode), keymap->normal_event_code,
BK_IS_PRESSED(keycode) ? "pressed": "released");
return true;
} else {
if (keymap->normal_event_code == KEY_RESERVED)
return false;
if (kbd->symbol_states[BK_KEY(keycode)] == true) {
input_report_key(kbd->idev, keymap->symbol_event_code, 0);
dev_dbg(&kbd->cli->dev,
"mode changed, symbol key %02x(%02x) released\n",
BK_KEY(keycode), keymap->symbol_event_code);
}
input_report_key(kbd->idev,
keymap->normal_event_code, BK_IS_PRESSED(keycode));
kbd->symbol_states[BK_KEY(keycode)] = false;
dev_dbg(&kbd->cli->dev, "normal key %02x(%02x) %s\n",
BK_KEY(keycode), keymap->normal_event_code,
BK_IS_PRESSED(keycode) ? "pressed": "released");
return true;
}
static bool detect_key(struct bk_i2c_data *kbd, u8 keycode)