2 using System.Collections.Generic;
\r
5 using WindowsKey = System.Windows.Forms.Keys;
\r
6 using SlimDXKey = SlimDX.DirectInput.Key;
\r
7 using SharpDXKey = SharpDX.DirectInput.Key;
\r
11 public class DeviceConstantConverter
\r
14 /// DIK (SharpDX.DirectInput.Key) から SlimDX.DirectInput.Key への変換表。
\r
16 public static readonly Dictionary<SharpDXKey, SlimDXKey> DIKtoKey = new Dictionary<SharpDXKey, SlimDXKey>() {
\r
18 { SharpDXKey.Unknown, SlimDXKey.Unknown },
\r
19 { SharpDXKey.Escape, SlimDXKey.Escape },
\r
20 { SharpDXKey.D1, SlimDXKey.D1 },
\r
21 { SharpDXKey.D2, SlimDXKey.D2 },
\r
22 { SharpDXKey.D3, SlimDXKey.D3 },
\r
23 { SharpDXKey.D4, SlimDXKey.D4 },
\r
24 { SharpDXKey.D5, SlimDXKey.D5 },
\r
25 { SharpDXKey.D6, SlimDXKey.D6 },
\r
26 { SharpDXKey.D7, SlimDXKey.D7 },
\r
27 { SharpDXKey.D8, SlimDXKey.D8 },
\r
28 { SharpDXKey.D9, SlimDXKey.D9 },
\r
29 { SharpDXKey.D0, SlimDXKey.D0 },
\r
30 { SharpDXKey.Minus, SlimDXKey.Minus },
\r
31 { SharpDXKey.Equals, SlimDXKey.Equals },
\r
32 { SharpDXKey.Back, SlimDXKey.Backspace },
\r
33 { SharpDXKey.Tab, SlimDXKey.Tab },
\r
34 { SharpDXKey.Q, SlimDXKey.Q },
\r
35 { SharpDXKey.W, SlimDXKey.W },
\r
36 { SharpDXKey.E, SlimDXKey.E },
\r
37 { SharpDXKey.R, SlimDXKey.R },
\r
38 { SharpDXKey.T, SlimDXKey.T },
\r
39 { SharpDXKey.Y, SlimDXKey.Y },
\r
40 { SharpDXKey.U, SlimDXKey.U },
\r
41 { SharpDXKey.I, SlimDXKey.I },
\r
42 { SharpDXKey.O, SlimDXKey.O },
\r
43 { SharpDXKey.P, SlimDXKey.P },
\r
44 { SharpDXKey.LeftBracket, SlimDXKey.LeftBracket },
\r
45 { SharpDXKey.RightBracket, SlimDXKey.RightBracket },
\r
46 { SharpDXKey.Return, SlimDXKey.Return },
\r
47 { SharpDXKey.LeftControl, SlimDXKey.LeftControl },
\r
48 { SharpDXKey.A, SlimDXKey.A },
\r
49 { SharpDXKey.S, SlimDXKey.S },
\r
50 { SharpDXKey.D, SlimDXKey.D },
\r
51 { SharpDXKey.F, SlimDXKey.F },
\r
52 { SharpDXKey.G, SlimDXKey.G },
\r
53 { SharpDXKey.H, SlimDXKey.H },
\r
54 { SharpDXKey.J, SlimDXKey.J },
\r
55 { SharpDXKey.K, SlimDXKey.K },
\r
56 { SharpDXKey.L, SlimDXKey.L },
\r
57 { SharpDXKey.Semicolon, SlimDXKey.Semicolon },
\r
58 { SharpDXKey.Apostrophe, SlimDXKey.Apostrophe },
\r
59 { SharpDXKey.Grave, SlimDXKey.Grave },
\r
60 { SharpDXKey.LeftShift, SlimDXKey.LeftShift },
\r
61 { SharpDXKey.Backslash, SlimDXKey.Backslash },
\r
62 { SharpDXKey.Z, SlimDXKey.Z },
\r
63 { SharpDXKey.X, SlimDXKey.X },
\r
64 { SharpDXKey.C, SlimDXKey.C },
\r
65 { SharpDXKey.V, SlimDXKey.V },
\r
66 { SharpDXKey.B, SlimDXKey.B },
\r
67 { SharpDXKey.N, SlimDXKey.N },
\r
68 { SharpDXKey.M, SlimDXKey.M },
\r
69 { SharpDXKey.Comma, SlimDXKey.Comma },
\r
70 { SharpDXKey.Period, SlimDXKey.Period },
\r
71 { SharpDXKey.Slash, SlimDXKey.Slash },
\r
72 { SharpDXKey.RightShift, SlimDXKey.RightShift },
\r
73 { SharpDXKey.Multiply, SlimDXKey.NumberPadStar },
\r
74 { SharpDXKey.LeftAlt, SlimDXKey.LeftAlt },
\r
75 { SharpDXKey.Space, SlimDXKey.Space },
\r
76 { SharpDXKey.Capital, SlimDXKey.CapsLock },
\r
77 { SharpDXKey.F1, SlimDXKey.F1 },
\r
78 { SharpDXKey.F2, SlimDXKey.F2 },
\r
79 { SharpDXKey.F3, SlimDXKey.F3 },
\r
80 { SharpDXKey.F4, SlimDXKey.F4 },
\r
81 { SharpDXKey.F5, SlimDXKey.F5 },
\r
82 { SharpDXKey.F6, SlimDXKey.F6 },
\r
83 { SharpDXKey.F7, SlimDXKey.F7 },
\r
84 { SharpDXKey.F8, SlimDXKey.F8 },
\r
85 { SharpDXKey.F9, SlimDXKey.F9 },
\r
86 { SharpDXKey.F10, SlimDXKey.F10 },
\r
87 { SharpDXKey.NumberLock, SlimDXKey.NumberLock },
\r
88 { SharpDXKey.ScrollLock, SlimDXKey.ScrollLock },
\r
89 { SharpDXKey.NumberPad7, SlimDXKey.NumberPad7 },
\r
90 { SharpDXKey.NumberPad8, SlimDXKey.NumberPad8 },
\r
91 { SharpDXKey.NumberPad9, SlimDXKey.NumberPad9 },
\r
92 { SharpDXKey.Subtract, SlimDXKey.NumberPadMinus },
\r
93 { SharpDXKey.NumberPad4, SlimDXKey.NumberPad4 },
\r
94 { SharpDXKey.NumberPad5, SlimDXKey.NumberPad5 },
\r
95 { SharpDXKey.NumberPad6, SlimDXKey.NumberPad6 },
\r
96 { SharpDXKey.Add, SlimDXKey.NumberPadPlus },
\r
97 { SharpDXKey.NumberPad1, SlimDXKey.NumberPad1 },
\r
98 { SharpDXKey.NumberPad2, SlimDXKey.NumberPad2 },
\r
99 { SharpDXKey.NumberPad3, SlimDXKey.NumberPad3 },
\r
100 { SharpDXKey.NumberPad0, SlimDXKey.NumberPad0 },
\r
101 { SharpDXKey.Decimal, SlimDXKey.NumberPadPeriod },
\r
102 { SharpDXKey.Oem102, SlimDXKey.Oem102 },
\r
103 { SharpDXKey.F11, SlimDXKey.F11 },
\r
104 { SharpDXKey.F12, SlimDXKey.F12 },
\r
105 { SharpDXKey.F13, SlimDXKey.F13 },
\r
106 { SharpDXKey.F14, SlimDXKey.F14 },
\r
107 { SharpDXKey.F15, SlimDXKey.F15 },
\r
108 { SharpDXKey.Kana, SlimDXKey.Kana },
\r
109 { SharpDXKey.AbntC1, SlimDXKey.AbntC1 },
\r
110 { SharpDXKey.Convert, SlimDXKey.Convert },
\r
111 { SharpDXKey.NoConvert, SlimDXKey.NoConvert },
\r
112 { SharpDXKey.Yen, SlimDXKey.Yen },
\r
113 { SharpDXKey.AbntC2, SlimDXKey.AbntC2 },
\r
114 { SharpDXKey.NumberPadEquals, SlimDXKey.NumberPadEquals },
\r
115 { SharpDXKey.PreviousTrack, SlimDXKey.PreviousTrack },
\r
116 { SharpDXKey.AT, SlimDXKey.AT },
\r
117 { SharpDXKey.Colon, SlimDXKey.Colon },
\r
118 { SharpDXKey.Underline, SlimDXKey.Underline },
\r
119 { SharpDXKey.Kanji, SlimDXKey.Kanji },
\r
120 { SharpDXKey.Stop, SlimDXKey.Stop },
\r
121 { SharpDXKey.AX, SlimDXKey.AX },
\r
122 { SharpDXKey.Unlabeled, SlimDXKey.Unlabeled },
\r
123 { SharpDXKey.NextTrack, SlimDXKey.NextTrack },
\r
124 { SharpDXKey.NumberPadEnter, SlimDXKey.NumberPadEnter },
\r
125 { SharpDXKey.RightControl, SlimDXKey.RightControl },
\r
126 { SharpDXKey.Mute, SlimDXKey.Mute },
\r
127 { SharpDXKey.Calculator, SlimDXKey.Calculator },
\r
128 { SharpDXKey.PlayPause, SlimDXKey.PlayPause },
\r
129 { SharpDXKey.MediaStop, SlimDXKey.MediaStop },
\r
130 { SharpDXKey.VolumeDown, SlimDXKey.VolumeDown },
\r
131 { SharpDXKey.VolumeUp, SlimDXKey.VolumeUp },
\r
132 { SharpDXKey.WebHome, SlimDXKey.WebHome },
\r
133 { SharpDXKey.PrintScreen, SlimDXKey.PrintScreen },
\r
134 { SharpDXKey.RightAlt, SlimDXKey.RightAlt },
\r
135 { SharpDXKey.Pause, SlimDXKey.Pause },
\r
136 { SharpDXKey.Home, SlimDXKey.Home },
\r
137 { SharpDXKey.Up, SlimDXKey.UpArrow },
\r
138 { SharpDXKey.PageUp, SlimDXKey.PageUp },
\r
139 { SharpDXKey.Left, SlimDXKey.LeftArrow },
\r
140 { SharpDXKey.Right, SlimDXKey.RightArrow },
\r
141 { SharpDXKey.End, SlimDXKey.End },
\r
142 { SharpDXKey.Down, SlimDXKey.DownArrow },
\r
143 { SharpDXKey.PageDown, SlimDXKey.PageDown },
\r
144 { SharpDXKey.Insert, SlimDXKey.Insert },
\r
145 { SharpDXKey.Delete, SlimDXKey.Delete },
\r
146 { SharpDXKey.LeftWindowsKey, SlimDXKey.LeftWindowsKey },
\r
147 { SharpDXKey.RightWindowsKey, SlimDXKey.RightWindowsKey },
\r
148 { SharpDXKey.Applications, SlimDXKey.Applications },
\r
149 { SharpDXKey.Power, SlimDXKey.Power },
\r
150 { SharpDXKey.Sleep, SlimDXKey.Sleep },
\r
151 { SharpDXKey.Wake, SlimDXKey.Wake },
\r
152 { SharpDXKey.WebSearch, SlimDXKey.WebSearch },
\r
153 { SharpDXKey.WebFavorites, SlimDXKey.WebFavorites },
\r
154 { SharpDXKey.WebRefresh, SlimDXKey.WebRefresh },
\r
155 { SharpDXKey.WebStop, SlimDXKey.WebStop },
\r
156 { SharpDXKey.WebForward, SlimDXKey.WebForward },
\r
157 { SharpDXKey.WebBack, SlimDXKey.WebBack },
\r
158 { SharpDXKey.MyComputer, SlimDXKey.MyComputer },
\r
159 { SharpDXKey.Mail, SlimDXKey.Mail },
\r
160 { SharpDXKey.MediaSelect, SlimDXKey.MediaSelect },
\r
165 /// SlimDX.DirectInput.Key から System.Windows.Form.Keys への変換表。
\r
167 public static readonly Dictionary<SlimDXKey, WindowsKey> KeyToKeys = new Dictionary<SlimDXKey, WindowsKey>() {
\r
169 { SlimDXKey.D0, WindowsKey.D0 },
\r
170 { SlimDXKey.D1, WindowsKey.D1 },
\r
171 { SlimDXKey.D2, WindowsKey.D2 },
\r
172 { SlimDXKey.D3, WindowsKey.D3 },
\r
173 { SlimDXKey.D4, WindowsKey.D4 },
\r
174 { SlimDXKey.D5, WindowsKey.D5 },
\r
175 { SlimDXKey.D6, WindowsKey.D6 },
\r
176 { SlimDXKey.D7, WindowsKey.D7 },
\r
177 { SlimDXKey.D8, WindowsKey.D8 },
\r
178 { SlimDXKey.D9, WindowsKey.D9 },
\r
179 { SlimDXKey.A, WindowsKey.A },
\r
180 { SlimDXKey.B, WindowsKey.B },
\r
181 { SlimDXKey.C, WindowsKey.C },
\r
182 { SlimDXKey.D, WindowsKey.D },
\r
183 { SlimDXKey.E, WindowsKey.E },
\r
184 { SlimDXKey.F, WindowsKey.F },
\r
185 { SlimDXKey.G, WindowsKey.G },
\r
186 { SlimDXKey.H, WindowsKey.H },
\r
187 { SlimDXKey.I, WindowsKey.I },
\r
188 { SlimDXKey.J, WindowsKey.J },
\r
189 { SlimDXKey.K, WindowsKey.K },
\r
190 { SlimDXKey.L, WindowsKey.L },
\r
191 { SlimDXKey.M, WindowsKey.M },
\r
192 { SlimDXKey.N, WindowsKey.N },
\r
193 { SlimDXKey.O, WindowsKey.O },
\r
194 { SlimDXKey.P, WindowsKey.P },
\r
195 { SlimDXKey.Q, WindowsKey.Q },
\r
196 { SlimDXKey.R, WindowsKey.R },
\r
197 { SlimDXKey.S, WindowsKey.S },
\r
198 { SlimDXKey.T, WindowsKey.T },
\r
199 { SlimDXKey.U, WindowsKey.U },
\r
200 { SlimDXKey.V, WindowsKey.V },
\r
201 { SlimDXKey.W, WindowsKey.W },
\r
202 { SlimDXKey.X, WindowsKey.X },
\r
203 { SlimDXKey.Y, WindowsKey.Y },
\r
204 { SlimDXKey.Z, WindowsKey.Z },
\r
205 //{ SlimDXKey.AbntC1, WindowsKey.A },
\r
206 //{ SlimDXKey.AbntC2, WindowsKey.A },
\r
207 { SlimDXKey.Apostrophe, WindowsKey.OemQuotes },
\r
208 { SlimDXKey.Applications, WindowsKey.Apps },
\r
209 { SlimDXKey.AT, WindowsKey.Oem3 }, // OemTilde と同値
\r
210 //{ SlimDXKey.AX, WindowsKey.A }, // OemAX (225) は未定義
\r
211 { SlimDXKey.Backspace, WindowsKey.Back },
\r
212 { SlimDXKey.Backslash, WindowsKey.OemBackslash },
\r
213 //{ SlimDXKey.Calculator, WindowsKey.A },
\r
214 { SlimDXKey.CapsLock, WindowsKey.CapsLock },
\r
215 { SlimDXKey.Colon, WindowsKey.Oem1 },
\r
216 { SlimDXKey.Comma, WindowsKey.Oemcomma },
\r
217 { SlimDXKey.Convert, WindowsKey.IMEConvert },
\r
218 { SlimDXKey.Delete, WindowsKey.Delete },
\r
219 { SlimDXKey.DownArrow, WindowsKey.Down },
\r
220 { SlimDXKey.End, WindowsKey.End },
\r
221 { SlimDXKey.Equals, WindowsKey.A }, // ?
\r
222 { SlimDXKey.Escape, WindowsKey.Escape },
\r
223 { SlimDXKey.F1, WindowsKey.F1 },
\r
224 { SlimDXKey.F2, WindowsKey.F2 },
\r
225 { SlimDXKey.F3, WindowsKey.F3 },
\r
226 { SlimDXKey.F4, WindowsKey.F4 },
\r
227 { SlimDXKey.F5, WindowsKey.F5 },
\r
228 { SlimDXKey.F6, WindowsKey.F6 },
\r
229 { SlimDXKey.F7, WindowsKey.F7 },
\r
230 { SlimDXKey.F8, WindowsKey.F8 },
\r
231 { SlimDXKey.F9, WindowsKey.F9 },
\r
232 { SlimDXKey.F10, WindowsKey.F10 },
\r
233 { SlimDXKey.F11, WindowsKey.F11 },
\r
234 { SlimDXKey.F12, WindowsKey.F12 },
\r
235 { SlimDXKey.F13, WindowsKey.F13 },
\r
236 { SlimDXKey.F14, WindowsKey.F14 },
\r
237 { SlimDXKey.F15, WindowsKey.F15 },
\r
238 { SlimDXKey.Grave, WindowsKey.A }, // ?
\r
239 { SlimDXKey.Home, WindowsKey.Home },
\r
240 { SlimDXKey.Insert, WindowsKey.Insert },
\r
241 { SlimDXKey.Kana, WindowsKey.KanaMode },
\r
242 { SlimDXKey.Kanji, WindowsKey.KanjiMode },
\r
243 { SlimDXKey.LeftBracket, WindowsKey.Oem4 },
\r
244 { SlimDXKey.LeftControl, WindowsKey.LControlKey },
\r
245 { SlimDXKey.LeftArrow, WindowsKey.Left },
\r
246 { SlimDXKey.LeftAlt, WindowsKey.LMenu },
\r
247 { SlimDXKey.LeftShift, WindowsKey.LShiftKey },
\r
248 { SlimDXKey.LeftWindowsKey, WindowsKey.LWin },
\r
249 { SlimDXKey.Mail, WindowsKey.LaunchMail },
\r
250 { SlimDXKey.MediaSelect, WindowsKey.SelectMedia },
\r
251 { SlimDXKey.MediaStop, WindowsKey.MediaStop },
\r
252 { SlimDXKey.Minus, WindowsKey.OemMinus },
\r
253 { SlimDXKey.Mute, WindowsKey.VolumeMute },
\r
254 { SlimDXKey.MyComputer, WindowsKey.A }, // ?
\r
255 { SlimDXKey.NextTrack, WindowsKey.MediaNextTrack },
\r
256 { SlimDXKey.NoConvert, WindowsKey.IMENonconvert },
\r
257 { SlimDXKey.NumberLock, WindowsKey.NumLock },
\r
258 { SlimDXKey.NumberPad0, WindowsKey.NumPad0 },
\r
259 { SlimDXKey.NumberPad1, WindowsKey.NumPad1 },
\r
260 { SlimDXKey.NumberPad2, WindowsKey.NumPad2 },
\r
261 { SlimDXKey.NumberPad3, WindowsKey.NumPad3 },
\r
262 { SlimDXKey.NumberPad4, WindowsKey.NumPad4 },
\r
263 { SlimDXKey.NumberPad5, WindowsKey.NumPad5 },
\r
264 { SlimDXKey.NumberPad6, WindowsKey.NumPad6 },
\r
265 { SlimDXKey.NumberPad7, WindowsKey.NumPad7 },
\r
266 { SlimDXKey.NumberPad8, WindowsKey.NumPad8 },
\r
267 { SlimDXKey.NumberPad9, WindowsKey.NumPad9 },
\r
268 { SlimDXKey.NumberPadComma, WindowsKey.Separator },
\r
269 { SlimDXKey.NumberPadEnter, WindowsKey.A }, // ?
\r
270 { SlimDXKey.NumberPadEquals, WindowsKey.A }, // ?
\r
271 { SlimDXKey.NumberPadMinus, WindowsKey.Subtract },
\r
272 { SlimDXKey.NumberPadPeriod, WindowsKey.Decimal },
\r
273 { SlimDXKey.NumberPadPlus, WindowsKey.Add },
\r
274 { SlimDXKey.NumberPadSlash, WindowsKey.Divide },
\r
275 { SlimDXKey.NumberPadStar, WindowsKey.Multiply },
\r
276 { SlimDXKey.Oem102, WindowsKey.Oem102 },
\r
277 { SlimDXKey.PageDown, WindowsKey.PageDown },
\r
278 { SlimDXKey.PageUp, WindowsKey.PageUp },
\r
279 { SlimDXKey.Pause, WindowsKey.Pause },
\r
280 { SlimDXKey.Period, WindowsKey.OemPeriod },
\r
281 { SlimDXKey.PlayPause, WindowsKey.MediaPlayPause },
\r
282 { SlimDXKey.Power, WindowsKey.A }, // ?
\r
283 { SlimDXKey.PreviousTrack, WindowsKey.MediaPreviousTrack },
\r
284 { SlimDXKey.RightBracket, WindowsKey.Oem6 },
\r
285 { SlimDXKey.RightControl, WindowsKey.RControlKey },
\r
286 { SlimDXKey.Return, WindowsKey.Return },
\r
287 { SlimDXKey.RightArrow, WindowsKey.Right },
\r
288 { SlimDXKey.RightAlt, WindowsKey.RMenu },
\r
289 { SlimDXKey.RightShift, WindowsKey.A }, // ?
\r
290 { SlimDXKey.RightWindowsKey, WindowsKey.RWin },
\r
291 { SlimDXKey.ScrollLock, WindowsKey.Scroll },
\r
292 { SlimDXKey.Semicolon, WindowsKey.Oemplus }, // OemSemicolon じゃなくて?
\r
293 { SlimDXKey.Slash, WindowsKey.Oem2 },
\r
294 { SlimDXKey.Sleep, WindowsKey.Sleep },
\r
295 { SlimDXKey.Space, WindowsKey.Space },
\r
296 { SlimDXKey.Stop, WindowsKey.MediaStop },
\r
297 { SlimDXKey.PrintScreen, WindowsKey.PrintScreen },
\r
298 { SlimDXKey.Tab, WindowsKey.Tab },
\r
299 { SlimDXKey.Underline, WindowsKey.Oem102 },
\r
300 //{ SlimDXKey.Unlabeled, WindowsKey.A }, // ?
\r
301 { SlimDXKey.UpArrow, WindowsKey.Up },
\r
302 { SlimDXKey.VolumeDown, WindowsKey.VolumeDown },
\r
303 { SlimDXKey.VolumeUp, WindowsKey.VolumeUp },
\r
304 { SlimDXKey.Wake, WindowsKey.A }, // ?
\r
305 { SlimDXKey.WebBack, WindowsKey.BrowserBack },
\r
306 { SlimDXKey.WebFavorites, WindowsKey.BrowserFavorites },
\r
307 { SlimDXKey.WebForward, WindowsKey.BrowserForward },
\r
308 { SlimDXKey.WebHome, WindowsKey.BrowserHome },
\r
309 { SlimDXKey.WebRefresh, WindowsKey.BrowserRefresh },
\r
310 { SlimDXKey.WebSearch, WindowsKey.BrowserSearch },
\r
311 { SlimDXKey.WebStop, WindowsKey.BrowserStop },
\r
312 { SlimDXKey.Yen, WindowsKey.OemBackslash },
\r