OSDN Git Service

DeviceConstantConverter.KeyToKeys[], DeviceConstantConverter.DIKtoKey[] を実装。
[dtxmania/dtxmania.git] / FDK17プロジェクト / コード / 02.入力 / DeviceConstantConverter.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 \r
5 using WindowsKey = System.Windows.Forms.Keys;\r
6 using SlimDXKey = SlimDX.DirectInput.Key;\r
7 using SharpDXKey = SharpDX.DirectInput.Key;\r
8 \r
9 namespace FDK\r
10 {\r
11         public class DeviceConstantConverter\r
12         {\r
13                 /// <summary>\r
14                 ///             DIK (SharpDX.DirectInput.Key) から SlimDX.DirectInput.Key への変換表。\r
15                 /// </summary>\r
16                 public static readonly Dictionary<SharpDXKey, SlimDXKey> DIKtoKey = new Dictionary<SharpDXKey, SlimDXKey>() {\r
17                         #region [ *** ]\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
161                         #endregion\r
162                 };\r
163 \r
164                 /// <summary>\r
165                 ///             SlimDX.DirectInput.Key から System.Windows.Form.Keys への変換表。\r
166                 /// </summary>\r
167                 public static readonly Dictionary<SlimDXKey, WindowsKey> KeyToKeys = new Dictionary<SlimDXKey, WindowsKey>() {\r
168                         #region [ *** ]\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
313                         #endregion\r
314                 };\r
315         }\r
316 }\r