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

#import <Cocoa/Cocoa.h>
#import <Foundation/Foundation.h>
#include "./KeyCodeMap_internal.h"

// DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT
// This file is generated by flutter/flutter@dev/tools/gen_keycodes/bin/gen_keycodes.dart and
// should not be edited directly.
//
// Edit the template dev/tools/gen_keycodes/data/keyboard_map_macos_cc.tmpl instead.
// See dev/tools/gen_keycodes/README.md for more information.

/**
 * Mask for the 32-bit value portion of the key code.
 *
 * This is used by platform-specific code to generate Flutter key codes.
 */
const uint64_t kValueMask = 0x000FFFFFFFF;

/**
 * Mask for the platform prefix portion of the key code.
 *
 * This is used by platform-specific code to generate Flutter key codes.
 */
const uint64_t kPlatformMask = 0x0FF00000000;

/**
 * The code prefix for keys which have a Unicode representation.
 *
 * This is used by platform-specific code to generate Flutter key codes.
 */
const uint64_t kUnicodePlane = 0x00000000000;

/**
 * Mask for the auto-generated bit portion of the key code.
 *
 * This is used by platform-specific code to generate new Flutter key codes for
 * keys which are not recognized.
 */
const uint64_t kAutogeneratedMask = 0x10000000000;

/**
 * Mask for the synonym pseudo-keys generated for keys which appear in more than
 * one place on the keyboard.
 *
 * IDs in this range are used to represent keys which appear in multiple places
 * on the keyboard, such as the SHIFT, ALT, CTRL, and numeric keypad keys. These
 * key codes will never be generated by the key event system, but may be used in
 * key maps to represent the union of all the keys of each type in order to
 * match them.
 *
 * To look up the synonyms that are defined, look in the [synonyms] map.
 */
const uint64_t kSynonymMask = 0x20000000000;

/**
 * The code prefix for keys which do not have a Unicode representation.
 *
 * This is used by platform-specific code to generate Flutter key codes using
 * HID Usage codes.
 */
const uint64_t kHidPlane = 0x00100000000;

const NSDictionary* keyCodeToPhysicalKey = @{
  @0x00000000 : @0x00070004,  // keyA
  @0x0000000b : @0x00070005,  // keyB
  @0x00000008 : @0x00070006,  // keyC
  @0x00000002 : @0x00070007,  // keyD
  @0x0000000e : @0x00070008,  // keyE
  @0x00000003 : @0x00070009,  // keyF
  @0x00000005 : @0x0007000a,  // keyG
  @0x00000004 : @0x0007000b,  // keyH
  @0x00000022 : @0x0007000c,  // keyI
  @0x00000026 : @0x0007000d,  // keyJ
  @0x00000028 : @0x0007000e,  // keyK
  @0x00000025 : @0x0007000f,  // keyL
  @0x0000002e : @0x00070010,  // keyM
  @0x0000002d : @0x00070011,  // keyN
  @0x0000001f : @0x00070012,  // keyO
  @0x00000023 : @0x00070013,  // keyP
  @0x0000000c : @0x00070014,  // keyQ
  @0x0000000f : @0x00070015,  // keyR
  @0x00000001 : @0x00070016,  // keyS
  @0x00000011 : @0x00070017,  // keyT
  @0x00000020 : @0x00070018,  // keyU
  @0x00000009 : @0x00070019,  // keyV
  @0x0000000d : @0x0007001a,  // keyW
  @0x00000007 : @0x0007001b,  // keyX
  @0x00000010 : @0x0007001c,  // keyY
  @0x00000006 : @0x0007001d,  // keyZ
  @0x00000012 : @0x0007001e,  // digit1
  @0x00000013 : @0x0007001f,  // digit2
  @0x00000014 : @0x00070020,  // digit3
  @0x00000015 : @0x00070021,  // digit4
  @0x00000017 : @0x00070022,  // digit5
  @0x00000016 : @0x00070023,  // digit6
  @0x0000001a : @0x00070024,  // digit7
  @0x0000001c : @0x00070025,  // digit8
  @0x00000019 : @0x00070026,  // digit9
  @0x0000001d : @0x00070027,  // digit0
  @0x00000024 : @0x00070028,  // enter
  @0x00000035 : @0x00070029,  // escape
  @0x00000033 : @0x0007002a,  // backspace
  @0x00000030 : @0x0007002b,  // tab
  @0x00000031 : @0x0007002c,  // space
  @0x0000001b : @0x0007002d,  // minus
  @0x00000018 : @0x0007002e,  // equal
  @0x00000021 : @0x0007002f,  // bracketLeft
  @0x0000001e : @0x00070030,  // bracketRight
  @0x0000002a : @0x00070031,  // backslash
  @0x00000029 : @0x00070033,  // semicolon
  @0x00000027 : @0x00070034,  // quote
  @0x00000032 : @0x00070035,  // backquote
  @0x0000002b : @0x00070036,  // comma
  @0x0000002f : @0x00070037,  // period
  @0x0000002c : @0x00070038,  // slash
  @0x00000039 : @0x00070039,  // capsLock
  @0x0000007a : @0x0007003a,  // f1
  @0x00000078 : @0x0007003b,  // f2
  @0x00000063 : @0x0007003c,  // f3
  @0x00000076 : @0x0007003d,  // f4
  @0x00000060 : @0x0007003e,  // f5
  @0x00000061 : @0x0007003f,  // f6
  @0x00000062 : @0x00070040,  // f7
  @0x00000064 : @0x00070041,  // f8
  @0x00000065 : @0x00070042,  // f9
  @0x0000006d : @0x00070043,  // f10
  @0x00000067 : @0x00070044,  // f11
  @0x0000006f : @0x00070045,  // f12
  @0x00000072 : @0x00070049,  // insert
  @0x00000073 : @0x0007004a,  // home
  @0x00000074 : @0x0007004b,  // pageUp
  @0x00000075 : @0x0007004c,  // delete
  @0x00000077 : @0x0007004d,  // end
  @0x00000079 : @0x0007004e,  // pageDown
  @0x0000007c : @0x0007004f,  // arrowRight
  @0x0000007b : @0x00070050,  // arrowLeft
  @0x0000007d : @0x00070051,  // arrowDown
  @0x0000007e : @0x00070052,  // arrowUp
  @0x00000047 : @0x00070053,  // numLock
  @0x0000004b : @0x00070054,  // numpadDivide
  @0x00000043 : @0x00070055,  // numpadMultiply
  @0x0000004e : @0x00070056,  // numpadSubtract
  @0x00000045 : @0x00070057,  // numpadAdd
  @0x0000004c : @0x00070058,  // numpadEnter
  @0x00000053 : @0x00070059,  // numpad1
  @0x00000054 : @0x0007005a,  // numpad2
  @0x00000055 : @0x0007005b,  // numpad3
  @0x00000056 : @0x0007005c,  // numpad4
  @0x00000057 : @0x0007005d,  // numpad5
  @0x00000058 : @0x0007005e,  // numpad6
  @0x00000059 : @0x0007005f,  // numpad7
  @0x0000005b : @0x00070060,  // numpad8
  @0x0000005c : @0x00070061,  // numpad9
  @0x00000052 : @0x00070062,  // numpad0
  @0x00000041 : @0x00070063,  // numpadDecimal
  @0x0000000a : @0x00070064,  // intlBackslash
  @0x0000006e : @0x00070065,  // contextMenu
  @0x00000051 : @0x00070067,  // numpadEqual
  @0x00000069 : @0x00070068,  // f13
  @0x0000006b : @0x00070069,  // f14
  @0x00000071 : @0x0007006a,  // f15
  @0x0000006a : @0x0007006b,  // f16
  @0x00000040 : @0x0007006c,  // f17
  @0x0000004f : @0x0007006d,  // f18
  @0x00000050 : @0x0007006e,  // f19
  @0x0000005a : @0x0007006f,  // f20
  @0x0000004a : @0x0007007f,  // audioVolumeMute
  @0x00000048 : @0x00070080,  // audioVolumeUp
  @0x00000049 : @0x00070081,  // audioVolumeDown
  @0x0000005f : @0x00070085,  // numpadComma
  @0x0000005e : @0x00070087,  // intlRo
  @0x0000005d : @0x00070089,  // intlYen
  @0x00000068 : @0x00070090,  // lang1
  @0x00000066 : @0x00070091,  // lang2
  @0x0000003b : @0x000700e0,  // controlLeft
  @0x00000038 : @0x000700e1,  // shiftLeft
  @0x0000003a : @0x000700e2,  // altLeft
  @0x00000037 : @0x000700e3,  // metaLeft
  @0x0000003e : @0x000700e4,  // controlRight
  @0x0000003c : @0x000700e5,  // shiftRight
  @0x0000003d : @0x000700e6,  // altRight
  @0x00000036 : @0x000700e7,  // metaRight
  @0x0000003f : @0x00000012,  // fn
};

const NSDictionary* keyCodeToLogicalKey = @{
  @0x00000033 : @0x0000000008,  // Backspace
  @0x00000035 : @0x000000001b,  // Escape
  @0x00000075 : @0x000000007f,  // Delete
  @0x00000039 : @0x0000000104,  // CapsLock
  @0x0000003f : @0x0000000106,  // Fn
  @0x00000047 : @0x000000010a,  // NumLock
  @0x0000007d : @0x0000000301,  // ArrowDown
  @0x0000007b : @0x0000000302,  // ArrowLeft
  @0x0000007c : @0x0000000303,  // ArrowRight
  @0x0000007e : @0x0000000304,  // ArrowUp
  @0x00000077 : @0x0000000305,  // End
  @0x00000073 : @0x0000000306,  // Home
  @0x00000079 : @0x0000000307,  // PageDown
  @0x00000074 : @0x0000000308,  // PageUp
  @0x00000072 : @0x0000000407,  // Insert
  @0x0000006e : @0x0000000505,  // ContextMenu
  @0x0000007a : @0x0000000801,  // F1
  @0x00000078 : @0x0000000802,  // F2
  @0x00000063 : @0x0000000803,  // F3
  @0x00000076 : @0x0000000804,  // F4
  @0x00000060 : @0x0000000805,  // F5
  @0x00000061 : @0x0000000806,  // F6
  @0x00000062 : @0x0000000807,  // F7
  @0x00000064 : @0x0000000808,  // F8
  @0x00000065 : @0x0000000809,  // F9
  @0x0000006d : @0x000000080a,  // F10
  @0x00000067 : @0x000000080b,  // F11
  @0x0000006f : @0x000000080c,  // F12
  @0x00000069 : @0x000000080d,  // F13
  @0x0000006b : @0x000000080e,  // F14
  @0x00000071 : @0x000000080f,  // F15
  @0x0000006a : @0x0000000810,  // F16
  @0x00000040 : @0x0000000811,  // F17
  @0x0000004f : @0x0000000812,  // F18
  @0x00000050 : @0x0000000813,  // F19
  @0x0000005a : @0x0000000814,  // F20
  @0x00000049 : @0x0000000a0f,  // AudioVolumeDown
  @0x00000048 : @0x0000000a10,  // AudioVolumeUp
  @0x0000004a : @0x0000000a11,  // AudioVolumeMute
  @0x0000005e : @0x0100070087,  // IntlRo
  @0x0000005d : @0x0100070089,  // IntlYen
  @0x00000068 : @0x0100070090,  // Lang1
  @0x00000066 : @0x0100070091,  // Lang2
  @0x0000004c : @0x020000000d,  // NumpadEnter
  @0x00000043 : @0x020000002a,  // NumpadMultiply
  @0x00000045 : @0x020000002b,  // NumpadAdd
  @0x0000005f : @0x020000002c,  // NumpadComma
  @0x0000004e : @0x020000002d,  // NumpadSubtract
  @0x00000041 : @0x020000002e,  // NumpadDecimal
  @0x0000004b : @0x020000002f,  // NumpadDivide
  @0x00000052 : @0x0200000030,  // Numpad0
  @0x00000053 : @0x0200000031,  // Numpad1
  @0x00000054 : @0x0200000032,  // Numpad2
  @0x00000055 : @0x0200000033,  // Numpad3
  @0x00000056 : @0x0200000034,  // Numpad4
  @0x00000057 : @0x0200000035,  // Numpad5
  @0x00000058 : @0x0200000036,  // Numpad6
  @0x00000059 : @0x0200000037,  // Numpad7
  @0x0000005b : @0x0200000038,  // Numpad8
  @0x0000005c : @0x0200000039,  // Numpad9
  @0x00000051 : @0x020000003d,  // NumpadEqual
  @0x0000003a : @0x0300000102,  // AltLeft
  @0x0000003b : @0x0300000105,  // ControlLeft
  @0x00000037 : @0x0300000109,  // MetaLeft
  @0x00000038 : @0x030000010d,  // ShiftLeft
  @0x0000003d : @0x0400000102,  // AltRight
  @0x0000003e : @0x0400000105,  // ControlRight
  @0x00000036 : @0x0400000109,  // MetaRight
  @0x0000003c : @0x040000010d,  // ShiftRight
};

const NSDictionary* keyCodeToModifierFlag = @{
  @0x00000038 : @(kModifierFlagShiftLeft),
  @0x0000003c : @(kModifierFlagShiftRight),
  @0x0000003b : @(kModifierFlagControlLeft),
  @0x0000003e : @(kModifierFlagControlRight),
  @0x0000003a : @(kModifierFlagAltLeft),
  @0x0000003d : @(kModifierFlagAltRight),
  @0x00000037 : @(kModifierFlagMetaLeft),
  @0x00000036 : @(kModifierFlagMetaRight),
};

const NSDictionary* modifierFlagToKeyCode = @{
  @(kModifierFlagShiftLeft) : @0x00000038,
  @(kModifierFlagShiftRight) : @0x0000003c,
  @(kModifierFlagControlLeft) : @0x0000003b,
  @(kModifierFlagControlRight) : @0x0000003e,
  @(kModifierFlagAltLeft) : @0x0000003a,
  @(kModifierFlagAltRight) : @0x0000003d,
  @(kModifierFlagMetaLeft) : @0x00000037,
  @(kModifierFlagMetaRight) : @0x00000036,
};

const uint64_t kCapsLockPhysicalKey = 0x00070039;
const uint64_t kCapsLockLogicalKey = 0x00000104;
