|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2018 [email protected]
4: //
5:
6: #pragma once
7:
8: #include "keyboard.h"
9:
10: class LunaKeyboard : public Keyboard
11: {
12: typedef Keyboard inherited;
13: public:
14: LunaKeyboard();
15: virtual ~LunaKeyboard();
16:
17: // キーを押した
18: virtual void MakeKey(uint);
19: // キーを離した
20: virtual void BreakKey(uint);
21:
22: private:
23: // 共通キーコードから LUNA キーコードへの変換
24: uint keycode2lunakey(uint);
25:
26: // 変換テーブル
27: static const uint keycode2lunakey_table[128];
28:
29: // キー名テーブル
30: static const char * const keyname[128];
31:
32: // キーリピート用のテーブル。
33: // LUNA のキーボードはキーを押し続けてもキーボードはオートリピート
34: // しないが、wxWidgets はキーを押し続けると KEY_DOWN イベントが連続
35: // して飛んでくる。そのためすでに押されているキーについて再び
36: // KEY_DOWN が来てもこれを本体に送らないようにする。
37: uint8 reptable[128] {};
38:
39: // LUNA キーコード
40: static const uint NoKey = 0;
41: static const uint LunaKey_TAB = 0x09;
42: static const uint LunaKey_CTRL = 0x0a;
43: static const uint LunaKey_kana = 0x0b;
44: static const uint LunaKey_SHIFT_L = 0x0c;
45: static const uint LunaKey_SHIFT_R = 0x0d;
46: static const uint LunaKey_CAPS = 0x0e;
47: static const uint LunaKey_SF = 0x0f;
48:
49: static const uint LunaKey_ESC = 0x10;
50: static const uint LunaKey_BS = 0x11;
51: static const uint LunaKey_enter = 0x12;
52: static const uint LunaKey_space = 0x14;
53: static const uint LunaKey_DEL = 0x15;
54: static const uint LunaKey_XFER = 0x16;
55: static const uint LunaKey_VALID = 0x17;
56: static const uint LunaKey_PF11 = 0x18;
57: static const uint LunaKey_PF12 = 0x19;
58: static const uint LunaKey_PF13 = 0x1a;
59: static const uint LunaKey_PF14 = 0x1b;
60: static const uint LunaKey_up = 0x1c;
61: static const uint LunaKey_left = 0x1d;
62: static const uint LunaKey_right = 0x1e;
63: static const uint LunaKey_down = 0x1f;
64:
65: static const uint LunaKey_1 = 0x22;
66: static const uint LunaKey_2 = 0x23;
67: static const uint LunaKey_3 = 0x24;
68: static const uint LunaKey_4 = 0x25;
69: static const uint LunaKey_5 = 0x26;
70: static const uint LunaKey_6 = 0x27;
71: static const uint LunaKey_7 = 0x28;
72: static const uint LunaKey_8 = 0x29;
73: static const uint LunaKey_9 = 0x2a;
74: static const uint LunaKey_0 = 0x2b;
75: static const uint LunaKey_minus = 0x2c;
76: static const uint LunaKey_circum = 0x2d;
77: static const uint LunaKey_backslash = 0x2e;
78:
79: static const uint LunaKey_Q = 0x32;
80: static const uint LunaKey_W = 0x33;
81: static const uint LunaKey_E = 0x34;
82: static const uint LunaKey_R = 0x35;
83: static const uint LunaKey_T = 0x36;
84: static const uint LunaKey_Y = 0x37;
85: static const uint LunaKey_U = 0x38;
86: static const uint LunaKey_I = 0x39;
87: static const uint LunaKey_O = 0x3a;
88: static const uint LunaKey_P = 0x3b;
89: static const uint LunaKey_at = 0x3c;
90: static const uint LunaKey_bracketleft = 0x3d;
91:
92: static const uint LunaKey_A = 0x42;
93: static const uint LunaKey_S = 0x43;
94: static const uint LunaKey_D = 0x44;
95: static const uint LunaKey_F = 0x45;
96: static const uint LunaKey_G = 0x46;
97: static const uint LunaKey_H = 0x47;
98: static const uint LunaKey_J = 0x48;
99: static const uint LunaKey_K = 0x49;
100: static const uint LunaKey_L = 0x4a;
101: static const uint LunaKey_semicolon = 0x4b;
102: static const uint LunaKey_colon = 0x4c;
103: static const uint LunaKey_bracketright = 0x4d;
104:
105: static const uint LunaKey_Z = 0x52;
106: static const uint LunaKey_X = 0x53;
107: static const uint LunaKey_C = 0x54;
108: static const uint LunaKey_V = 0x55;
109: static const uint LunaKey_B = 0x56;
110: static const uint LunaKey_N = 0x57;
111: static const uint LunaKey_M = 0x58;
112: static const uint LunaKey_comma = 0x59;
113: static const uint LunaKey_period = 0x5a;
114: static const uint LunaKey_slash = 0x5b;
115: static const uint LunaKey_underscore = 0x5c;
116:
117: static const uint LunaKey_PAD_plus = 0x61;
118: static const uint LunaKey_PAD_minus = 0x62;
119: static const uint LunaKey_PAD_7 = 0x63;
120: static const uint LunaKey_PAD_8 = 0x64;
121: static const uint LunaKey_PAD_9 = 0x65;
122: static const uint LunaKey_PAD_4 = 0x66;
123: static const uint LunaKey_PAD_5 = 0x67;
124: static const uint LunaKey_PAD_6 = 0x68;
125: static const uint LunaKey_PAD_1 = 0x69;
126: static const uint LunaKey_PAD_2 = 0x6a;
127: static const uint LunaKey_PAD_3 = 0x6b;
128: static const uint LunaKey_PAD_0 = 0x6c;
129: static const uint LunaKey_PAD_decimal = 0x6d;
130: static const uint LunaKey_PAD_enter = 0x6e;
131:
132: static const uint LunaKey_F1 = 0x72;
133: static const uint LunaKey_F2 = 0x73;
134: static const uint LunaKey_F3 = 0x74;
135: static const uint LunaKey_F4 = 0x75;
136: static const uint LunaKey_F5 = 0x76;
137: static const uint LunaKey_F6 = 0x77;
138: static const uint LunaKey_F7 = 0x78;
139: static const uint LunaKey_F8 = 0x79;
140: static const uint LunaKey_F9 = 0x7a;
141: static const uint LunaKey_F10 = 0x7b;
142: static const uint LunaKey_PAD_multiply = 0x7c;
143: static const uint LunaKey_PAD_divide = 0x7d;
144: static const uint LunaKey_PAD_equal = 0x7e;
145: static const uint LunaKey_PAD_comma = 0x7f;
146: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.