// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include <lib/hid/hid.h>

// clang-format off
const keychar_t qwerty_map[] = {
    // 0x00
    {}, {}, {}, {},
    // 0x04
    {'a', 'A'}, {'b', 'B'}, {'c', 'C'}, {'d', 'D'},
    // 0x08
    {'e', 'E'}, {'f', 'F'}, {'g', 'G'}, {'h', 'H'},
    // 0x0c
    {'i', 'I'}, {'j', 'J'}, {'k', 'K'}, {'l', 'L'},
    // 0x10
    {'m', 'M'}, {'n', 'N'}, {'o', 'O'}, {'p', 'P'},
    // 0x14
    {'q', 'Q'}, {'r', 'R'}, {'s', 'S'}, {'t', 'T'},
    // 0x18
    {'u', 'U'}, {'v', 'V'}, {'w', 'W'}, {'x', 'X'},
    // 0x1c
    {'y', 'Y'}, {'z', 'Z'}, {'1', '!'}, {'2', '@'},
    // 0x20
    {'3', '#'}, {'4', '$'}, {'5', '%'}, {'6', '^'},
    // 0x24
    {'7', '&'}, {'8', '*'}, {'9', '('}, {'0', ')'},
    // 0x28
    {}, {}, {}, {},
    // 0x2c
    {' ', ' '}, {'-', '_'}, {'=','+'}, {'[', '{'},
    // 0x30
    {']', '}'}, {'\\', '|'}, {}, {';', ':'},
    // 0x34
    {'\'', '"'}, {'`', '~'}, {',', '<'}, {'.', '>'},
    // 0x38
    {'/', '?'}, {}, {}, {},
    // 0x3c
    {}, {}, {}, {},
    // 0x40
    {}, {}, {}, {},
    // 0x44
    {}, {}, {}, {},
    // 0x48
    {}, {}, {}, {},
    // 0x4c
    {}, {}, {}, {},
    // 0x50
    {}, {}, {}, {},
    // 0x54
    {'/', 0}, {'*', 0}, {'-', 0}, {'+', 0},
    // 0x58
    {}, {'1', 0}, {'2', 0},  {'3', 0},
    // 0x5c
    {'4', 0}, {'5', 0}, {'6', 0}, {'7', 0},
    // 0x60
    {'8', 0}, {'9', 0}, {'0', 0}, {'.', 0},
};

const keychar_t dvorak_map[] = {
    // 0x00
    {}, {}, {}, {},
    // 0x04
    {'a', 'A'}, {'x', 'X'}, {'j', 'J'}, {'e', 'E'},
    // 0x08
    {'.', '>'}, {'u', 'U'}, {'i', 'I'}, {'d', 'D'},
    // 0x0c
    {'c', 'C'}, {'h', 'H'}, {'t', 'T'}, {'n', 'N'},
    // 0x10
    {'m', 'M'}, {'b', 'B'}, {'r', 'R'}, {'l', 'L'},
    // 0x14
    {'\'', '"'}, {'p', 'P'}, {'o', 'O'}, {'y', 'Y'},
    // 0x18
    {'g', 'G'}, {'k', 'K'}, {',', '<'}, {'q', 'Q'},
    // 0x1c
    {'f', 'F'}, {';', ':'}, {'1', '!'}, {'2', '@'},
    // 0x20
    {'3', '#'}, {'4', '$'}, {'5', '%'}, {'6', '^'},
    // 0x24
    {'7', '&'}, {'8', '*'}, {'9', '('}, {'0', ')'},
    // 0x28
    {}, {}, {}, {},
    // 0x2c
    {' ', ' '}, {'[', '{'}, {']','}'}, {'/', '?'},
    // 0x30
    {'=', '+'}, {'\\', '|'}, {}, {'s', 'S'},
    // 0x34
    {'-', '_'}, {'`', '~'}, {'w', 'W'}, {'v', 'V'},
    // 0x38
    {'z', 'Z'}, {}, {}, {},
    // 0x3c
    {}, {}, {}, {},
    // 0x40
    {}, {}, {}, {},
    // 0x44
    {}, {}, {}, {},
    // 0x48
    {}, {}, {}, {},
    // 0x4c
    {}, {}, {}, {},
    // 0x50
    {}, {}, {}, {},
    // 0x54
    {'/', 0}, {'*', 0}, {'-', 0}, {'+', 0},
    // 0x58
    {}, {'1', 0}, {'2', 0},  {'3', 0},
    // 0x5c
    {'4', 0}, {'5', 0}, {'6', 0}, {'7', 0},
    // 0x60
    {'8', 0}, {'9', 0}, {'0', 0}, {'.', 0},
};
// clang-format on
