+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-using WindowsKey = System.Windows.Forms.Keys;\r
-using SlimDXKey = SlimDX.DirectInput.Key;\r
-using SharpDXKey = SharpDX.DirectInput.Key;\r
-\r
-namespace FDK\r
-{\r
- public class DeviceConstantConverter\r
- {\r
- /// <returns>\r
- /// 対応する値がなければ SlimDX.DirectInput.Unknown を返す。\r
- /// </returns>\r
- public static SlimDXKey DIKtoKey( SharpDXKey key )\r
- {\r
- if( _DIKtoKey.ContainsKey( key ) )\r
- {\r
- return _DIKtoKey[ key ];\r
- }\r
- else\r
- {\r
- return SlimDXKey.Unknown;\r
- }\r
- }\r
-\r
- /// <returns>\r
- /// 対応する値がなければ System.Windows.Forms.Keys.None を返す。\r
- /// </returns>\r
- public static WindowsKey KeyToKeys( SlimDXKey key )\r
- {\r
- if( _KeyToKeys.ContainsKey( key ) )\r
- {\r
- return _KeyToKeys[ key ];\r
- }\r
- else\r
- {\r
- return WindowsKey.None;\r
- }\r
- }\r
-\r
-\r
- /// <summary>\r
- /// DIK (SharpDX.DirectInput.Key) から SlimDX.DirectInput.Key への変換表。\r
- /// </summary>\r
- private static readonly Dictionary<SharpDXKey, SlimDXKey> _DIKtoKey = new Dictionary<SharpDXKey, SlimDXKey>() {\r
- #region [ *** ]\r
- { SharpDXKey.Unknown, SlimDXKey.Unknown },\r
- { SharpDXKey.Escape, SlimDXKey.Escape },\r
- { SharpDXKey.D1, SlimDXKey.D1 },\r
- { SharpDXKey.D2, SlimDXKey.D2 },\r
- { SharpDXKey.D3, SlimDXKey.D3 },\r
- { SharpDXKey.D4, SlimDXKey.D4 },\r
- { SharpDXKey.D5, SlimDXKey.D5 },\r
- { SharpDXKey.D6, SlimDXKey.D6 },\r
- { SharpDXKey.D7, SlimDXKey.D7 },\r
- { SharpDXKey.D8, SlimDXKey.D8 },\r
- { SharpDXKey.D9, SlimDXKey.D9 },\r
- { SharpDXKey.D0, SlimDXKey.D0 },\r
- { SharpDXKey.Minus, SlimDXKey.Minus },\r
- { SharpDXKey.Equals, SlimDXKey.Equals },\r
- { SharpDXKey.Back, SlimDXKey.Backspace },\r
- { SharpDXKey.Tab, SlimDXKey.Tab },\r
- { SharpDXKey.Q, SlimDXKey.Q },\r
- { SharpDXKey.W, SlimDXKey.W },\r
- { SharpDXKey.E, SlimDXKey.E },\r
- { SharpDXKey.R, SlimDXKey.R },\r
- { SharpDXKey.T, SlimDXKey.T },\r
- { SharpDXKey.Y, SlimDXKey.Y },\r
- { SharpDXKey.U, SlimDXKey.U },\r
- { SharpDXKey.I, SlimDXKey.I },\r
- { SharpDXKey.O, SlimDXKey.O },\r
- { SharpDXKey.P, SlimDXKey.P },\r
- { SharpDXKey.LeftBracket, SlimDXKey.LeftBracket },\r
- { SharpDXKey.RightBracket, SlimDXKey.RightBracket },\r
- { SharpDXKey.Return, SlimDXKey.Return },\r
- { SharpDXKey.LeftControl, SlimDXKey.LeftControl },\r
- { SharpDXKey.A, SlimDXKey.A },\r
- { SharpDXKey.S, SlimDXKey.S },\r
- { SharpDXKey.D, SlimDXKey.D },\r
- { SharpDXKey.F, SlimDXKey.F },\r
- { SharpDXKey.G, SlimDXKey.G },\r
- { SharpDXKey.H, SlimDXKey.H },\r
- { SharpDXKey.J, SlimDXKey.J },\r
- { SharpDXKey.K, SlimDXKey.K },\r
- { SharpDXKey.L, SlimDXKey.L },\r
- { SharpDXKey.Semicolon, SlimDXKey.Semicolon },\r
- { SharpDXKey.Apostrophe, SlimDXKey.Apostrophe },\r
- { SharpDXKey.Grave, SlimDXKey.Grave },\r
- { SharpDXKey.LeftShift, SlimDXKey.LeftShift },\r
- { SharpDXKey.Backslash, SlimDXKey.Backslash },\r
- { SharpDXKey.Z, SlimDXKey.Z },\r
- { SharpDXKey.X, SlimDXKey.X },\r
- { SharpDXKey.C, SlimDXKey.C },\r
- { SharpDXKey.V, SlimDXKey.V },\r
- { SharpDXKey.B, SlimDXKey.B },\r
- { SharpDXKey.N, SlimDXKey.N },\r
- { SharpDXKey.M, SlimDXKey.M },\r
- { SharpDXKey.Comma, SlimDXKey.Comma },\r
- { SharpDXKey.Period, SlimDXKey.Period },\r
- { SharpDXKey.Slash, SlimDXKey.Slash },\r
- { SharpDXKey.RightShift, SlimDXKey.RightShift },\r
- { SharpDXKey.Multiply, SlimDXKey.NumberPadStar },\r
- { SharpDXKey.LeftAlt, SlimDXKey.LeftAlt },\r
- { SharpDXKey.Space, SlimDXKey.Space },\r
- { SharpDXKey.Capital, SlimDXKey.CapsLock },\r
- { SharpDXKey.F1, SlimDXKey.F1 },\r
- { SharpDXKey.F2, SlimDXKey.F2 },\r
- { SharpDXKey.F3, SlimDXKey.F3 },\r
- { SharpDXKey.F4, SlimDXKey.F4 },\r
- { SharpDXKey.F5, SlimDXKey.F5 },\r
- { SharpDXKey.F6, SlimDXKey.F6 },\r
- { SharpDXKey.F7, SlimDXKey.F7 },\r
- { SharpDXKey.F8, SlimDXKey.F8 },\r
- { SharpDXKey.F9, SlimDXKey.F9 },\r
- { SharpDXKey.F10, SlimDXKey.F10 },\r
- { SharpDXKey.NumberLock, SlimDXKey.NumberLock },\r
- { SharpDXKey.ScrollLock, SlimDXKey.ScrollLock },\r
- { SharpDXKey.NumberPad7, SlimDXKey.NumberPad7 },\r
- { SharpDXKey.NumberPad8, SlimDXKey.NumberPad8 },\r
- { SharpDXKey.NumberPad9, SlimDXKey.NumberPad9 },\r
- { SharpDXKey.Subtract, SlimDXKey.NumberPadMinus },\r
- { SharpDXKey.NumberPad4, SlimDXKey.NumberPad4 },\r
- { SharpDXKey.NumberPad5, SlimDXKey.NumberPad5 },\r
- { SharpDXKey.NumberPad6, SlimDXKey.NumberPad6 },\r
- { SharpDXKey.Add, SlimDXKey.NumberPadPlus },\r
- { SharpDXKey.NumberPad1, SlimDXKey.NumberPad1 },\r
- { SharpDXKey.NumberPad2, SlimDXKey.NumberPad2 },\r
- { SharpDXKey.NumberPad3, SlimDXKey.NumberPad3 },\r
- { SharpDXKey.NumberPad0, SlimDXKey.NumberPad0 },\r
- { SharpDXKey.Decimal, SlimDXKey.NumberPadPeriod },\r
- { SharpDXKey.Oem102, SlimDXKey.Oem102 },\r
- { SharpDXKey.F11, SlimDXKey.F11 },\r
- { SharpDXKey.F12, SlimDXKey.F12 },\r
- { SharpDXKey.F13, SlimDXKey.F13 },\r
- { SharpDXKey.F14, SlimDXKey.F14 },\r
- { SharpDXKey.F15, SlimDXKey.F15 },\r
- { SharpDXKey.Kana, SlimDXKey.Kana },\r
- { SharpDXKey.AbntC1, SlimDXKey.AbntC1 },\r
- { SharpDXKey.Convert, SlimDXKey.Convert },\r
- { SharpDXKey.NoConvert, SlimDXKey.NoConvert },\r
- { SharpDXKey.Yen, SlimDXKey.Yen },\r
- { SharpDXKey.AbntC2, SlimDXKey.AbntC2 },\r
- { SharpDXKey.NumberPadEquals, SlimDXKey.NumberPadEquals },\r
- { SharpDXKey.PreviousTrack, SlimDXKey.PreviousTrack },\r
- { SharpDXKey.AT, SlimDXKey.AT },\r
- { SharpDXKey.Colon, SlimDXKey.Colon },\r
- { SharpDXKey.Underline, SlimDXKey.Underline },\r
- { SharpDXKey.Kanji, SlimDXKey.Kanji },\r
- { SharpDXKey.Stop, SlimDXKey.Stop },\r
- { SharpDXKey.AX, SlimDXKey.AX },\r
- { SharpDXKey.Unlabeled, SlimDXKey.Unlabeled },\r
- { SharpDXKey.NextTrack, SlimDXKey.NextTrack },\r
- { SharpDXKey.NumberPadEnter, SlimDXKey.NumberPadEnter },\r
- { SharpDXKey.RightControl, SlimDXKey.RightControl },\r
- { SharpDXKey.Mute, SlimDXKey.Mute },\r
- { SharpDXKey.Calculator, SlimDXKey.Calculator },\r
- { SharpDXKey.PlayPause, SlimDXKey.PlayPause },\r
- { SharpDXKey.MediaStop, SlimDXKey.MediaStop },\r
- { SharpDXKey.VolumeDown, SlimDXKey.VolumeDown },\r
- { SharpDXKey.VolumeUp, SlimDXKey.VolumeUp },\r
- { SharpDXKey.WebHome, SlimDXKey.WebHome },\r
- { SharpDXKey.PrintScreen, SlimDXKey.PrintScreen },\r
- { SharpDXKey.RightAlt, SlimDXKey.RightAlt },\r
- { SharpDXKey.Pause, SlimDXKey.Pause },\r
- { SharpDXKey.Home, SlimDXKey.Home },\r
- { SharpDXKey.Up, SlimDXKey.UpArrow },\r
- { SharpDXKey.PageUp, SlimDXKey.PageUp },\r
- { SharpDXKey.Left, SlimDXKey.LeftArrow },\r
- { SharpDXKey.Right, SlimDXKey.RightArrow },\r
- { SharpDXKey.End, SlimDXKey.End },\r
- { SharpDXKey.Down, SlimDXKey.DownArrow },\r
- { SharpDXKey.PageDown, SlimDXKey.PageDown },\r
- { SharpDXKey.Insert, SlimDXKey.Insert },\r
- { SharpDXKey.Delete, SlimDXKey.Delete },\r
- { SharpDXKey.LeftWindowsKey, SlimDXKey.LeftWindowsKey },\r
- { SharpDXKey.RightWindowsKey, SlimDXKey.RightWindowsKey },\r
- { SharpDXKey.Applications, SlimDXKey.Applications },\r
- { SharpDXKey.Power, SlimDXKey.Power },\r
- { SharpDXKey.Sleep, SlimDXKey.Sleep },\r
- { SharpDXKey.Wake, SlimDXKey.Wake },\r
- { SharpDXKey.WebSearch, SlimDXKey.WebSearch },\r
- { SharpDXKey.WebFavorites, SlimDXKey.WebFavorites },\r
- { SharpDXKey.WebRefresh, SlimDXKey.WebRefresh },\r
- { SharpDXKey.WebStop, SlimDXKey.WebStop },\r
- { SharpDXKey.WebForward, SlimDXKey.WebForward },\r
- { SharpDXKey.WebBack, SlimDXKey.WebBack },\r
- { SharpDXKey.MyComputer, SlimDXKey.MyComputer },\r
- { SharpDXKey.Mail, SlimDXKey.Mail },\r
- { SharpDXKey.MediaSelect, SlimDXKey.MediaSelect },\r
- #endregion\r
- };\r
-\r
- /// <summary>\r
- /// SlimDX.DirectInput.Key から System.Windows.Form.Keys への変換表。\r
- /// </summary>\r
- private static readonly Dictionary<SlimDXKey, WindowsKey> _KeyToKeys = new Dictionary<SlimDXKey, WindowsKey>() {\r
- #region [ *** ]\r
- { SlimDXKey.D0, WindowsKey.D0 },\r
- { SlimDXKey.D1, WindowsKey.D1 },\r
- { SlimDXKey.D2, WindowsKey.D2 },\r
- { SlimDXKey.D3, WindowsKey.D3 },\r
- { SlimDXKey.D4, WindowsKey.D4 },\r
- { SlimDXKey.D5, WindowsKey.D5 },\r
- { SlimDXKey.D6, WindowsKey.D6 },\r
- { SlimDXKey.D7, WindowsKey.D7 },\r
- { SlimDXKey.D8, WindowsKey.D8 },\r
- { SlimDXKey.D9, WindowsKey.D9 },\r
- { SlimDXKey.A, WindowsKey.A },\r
- { SlimDXKey.B, WindowsKey.B },\r
- { SlimDXKey.C, WindowsKey.C },\r
- { SlimDXKey.D, WindowsKey.D },\r
- { SlimDXKey.E, WindowsKey.E },\r
- { SlimDXKey.F, WindowsKey.F },\r
- { SlimDXKey.G, WindowsKey.G },\r
- { SlimDXKey.H, WindowsKey.H },\r
- { SlimDXKey.I, WindowsKey.I },\r
- { SlimDXKey.J, WindowsKey.J },\r
- { SlimDXKey.K, WindowsKey.K },\r
- { SlimDXKey.L, WindowsKey.L },\r
- { SlimDXKey.M, WindowsKey.M },\r
- { SlimDXKey.N, WindowsKey.N },\r
- { SlimDXKey.O, WindowsKey.O },\r
- { SlimDXKey.P, WindowsKey.P },\r
- { SlimDXKey.Q, WindowsKey.Q },\r
- { SlimDXKey.R, WindowsKey.R },\r
- { SlimDXKey.S, WindowsKey.S },\r
- { SlimDXKey.T, WindowsKey.T },\r
- { SlimDXKey.U, WindowsKey.U },\r
- { SlimDXKey.V, WindowsKey.V },\r
- { SlimDXKey.W, WindowsKey.W },\r
- { SlimDXKey.X, WindowsKey.X },\r
- { SlimDXKey.Y, WindowsKey.Y },\r
- { SlimDXKey.Z, WindowsKey.Z },\r
- //{ SlimDXKey.AbntC1, WindowsKey.A },\r
- //{ SlimDXKey.AbntC2, WindowsKey.A },\r
- { SlimDXKey.Apostrophe, WindowsKey.OemQuotes },\r
- { SlimDXKey.Applications, WindowsKey.Apps },\r
- { SlimDXKey.AT, WindowsKey.Oem3 }, // OemTilde と同値\r
- //{ SlimDXKey.AX, WindowsKey.A }, // OemAX (225) は未定義\r
- { SlimDXKey.Backspace, WindowsKey.Back },\r
- { SlimDXKey.Backslash, WindowsKey.OemBackslash },\r
- //{ SlimDXKey.Calculator, WindowsKey.A },\r
- { SlimDXKey.CapsLock, WindowsKey.CapsLock },\r
- { SlimDXKey.Colon, WindowsKey.Oem1 },\r
- { SlimDXKey.Comma, WindowsKey.Oemcomma },\r
- { SlimDXKey.Convert, WindowsKey.IMEConvert },\r
- { SlimDXKey.Delete, WindowsKey.Delete },\r
- { SlimDXKey.DownArrow, WindowsKey.Down },\r
- { SlimDXKey.End, WindowsKey.End },\r
- { SlimDXKey.Equals, WindowsKey.A }, // ?\r
- { SlimDXKey.Escape, WindowsKey.Escape },\r
- { SlimDXKey.F1, WindowsKey.F1 },\r
- { SlimDXKey.F2, WindowsKey.F2 },\r
- { SlimDXKey.F3, WindowsKey.F3 },\r
- { SlimDXKey.F4, WindowsKey.F4 },\r
- { SlimDXKey.F5, WindowsKey.F5 },\r
- { SlimDXKey.F6, WindowsKey.F6 },\r
- { SlimDXKey.F7, WindowsKey.F7 },\r
- { SlimDXKey.F8, WindowsKey.F8 },\r
- { SlimDXKey.F9, WindowsKey.F9 },\r
- { SlimDXKey.F10, WindowsKey.F10 },\r
- { SlimDXKey.F11, WindowsKey.F11 },\r
- { SlimDXKey.F12, WindowsKey.F12 },\r
- { SlimDXKey.F13, WindowsKey.F13 },\r
- { SlimDXKey.F14, WindowsKey.F14 },\r
- { SlimDXKey.F15, WindowsKey.F15 },\r
- { SlimDXKey.Grave, WindowsKey.A }, // ?\r
- { SlimDXKey.Home, WindowsKey.Home },\r
- { SlimDXKey.Insert, WindowsKey.Insert },\r
- { SlimDXKey.Kana, WindowsKey.KanaMode },\r
- { SlimDXKey.Kanji, WindowsKey.KanjiMode },\r
- { SlimDXKey.LeftBracket, WindowsKey.Oem4 },\r
- { SlimDXKey.LeftControl, WindowsKey.LControlKey },\r
- { SlimDXKey.LeftArrow, WindowsKey.Left },\r
- { SlimDXKey.LeftAlt, WindowsKey.LMenu },\r
- { SlimDXKey.LeftShift, WindowsKey.LShiftKey },\r
- { SlimDXKey.LeftWindowsKey, WindowsKey.LWin },\r
- { SlimDXKey.Mail, WindowsKey.LaunchMail },\r
- { SlimDXKey.MediaSelect, WindowsKey.SelectMedia },\r
- { SlimDXKey.MediaStop, WindowsKey.MediaStop },\r
- { SlimDXKey.Minus, WindowsKey.OemMinus },\r
- { SlimDXKey.Mute, WindowsKey.VolumeMute },\r
- { SlimDXKey.MyComputer, WindowsKey.A }, // ?\r
- { SlimDXKey.NextTrack, WindowsKey.MediaNextTrack },\r
- { SlimDXKey.NoConvert, WindowsKey.IMENonconvert },\r
- { SlimDXKey.NumberLock, WindowsKey.NumLock },\r
- { SlimDXKey.NumberPad0, WindowsKey.NumPad0 },\r
- { SlimDXKey.NumberPad1, WindowsKey.NumPad1 },\r
- { SlimDXKey.NumberPad2, WindowsKey.NumPad2 },\r
- { SlimDXKey.NumberPad3, WindowsKey.NumPad3 },\r
- { SlimDXKey.NumberPad4, WindowsKey.NumPad4 },\r
- { SlimDXKey.NumberPad5, WindowsKey.NumPad5 },\r
- { SlimDXKey.NumberPad6, WindowsKey.NumPad6 },\r
- { SlimDXKey.NumberPad7, WindowsKey.NumPad7 },\r
- { SlimDXKey.NumberPad8, WindowsKey.NumPad8 },\r
- { SlimDXKey.NumberPad9, WindowsKey.NumPad9 },\r
- { SlimDXKey.NumberPadComma, WindowsKey.Separator },\r
- { SlimDXKey.NumberPadEnter, WindowsKey.A }, // ?\r
- { SlimDXKey.NumberPadEquals, WindowsKey.A }, // ?\r
- { SlimDXKey.NumberPadMinus, WindowsKey.Subtract },\r
- { SlimDXKey.NumberPadPeriod, WindowsKey.Decimal },\r
- { SlimDXKey.NumberPadPlus, WindowsKey.Add },\r
- { SlimDXKey.NumberPadSlash, WindowsKey.Divide },\r
- { SlimDXKey.NumberPadStar, WindowsKey.Multiply },\r
- { SlimDXKey.Oem102, WindowsKey.Oem102 },\r
- { SlimDXKey.PageDown, WindowsKey.PageDown },\r
- { SlimDXKey.PageUp, WindowsKey.PageUp },\r
- { SlimDXKey.Pause, WindowsKey.Pause },\r
- { SlimDXKey.Period, WindowsKey.OemPeriod },\r
- { SlimDXKey.PlayPause, WindowsKey.MediaPlayPause },\r
- { SlimDXKey.Power, WindowsKey.A }, // ?\r
- { SlimDXKey.PreviousTrack, WindowsKey.MediaPreviousTrack },\r
- { SlimDXKey.RightBracket, WindowsKey.Oem6 },\r
- { SlimDXKey.RightControl, WindowsKey.RControlKey },\r
- { SlimDXKey.Return, WindowsKey.Return },\r
- { SlimDXKey.RightArrow, WindowsKey.Right },\r
- { SlimDXKey.RightAlt, WindowsKey.RMenu },\r
- { SlimDXKey.RightShift, WindowsKey.A }, // ?\r
- { SlimDXKey.RightWindowsKey, WindowsKey.RWin },\r
- { SlimDXKey.ScrollLock, WindowsKey.Scroll },\r
- { SlimDXKey.Semicolon, WindowsKey.Oemplus }, // OemSemicolon じゃなくて?\r
- { SlimDXKey.Slash, WindowsKey.Oem2 },\r
- { SlimDXKey.Sleep, WindowsKey.Sleep },\r
- { SlimDXKey.Space, WindowsKey.Space },\r
- { SlimDXKey.Stop, WindowsKey.MediaStop },\r
- { SlimDXKey.PrintScreen, WindowsKey.PrintScreen },\r
- { SlimDXKey.Tab, WindowsKey.Tab },\r
- { SlimDXKey.Underline, WindowsKey.Oem102 },\r
- //{ SlimDXKey.Unlabeled, WindowsKey.A }, // ?\r
- { SlimDXKey.UpArrow, WindowsKey.Up },\r
- { SlimDXKey.VolumeDown, WindowsKey.VolumeDown },\r
- { SlimDXKey.VolumeUp, WindowsKey.VolumeUp },\r
- { SlimDXKey.Wake, WindowsKey.A }, // ?\r
- { SlimDXKey.WebBack, WindowsKey.BrowserBack },\r
- { SlimDXKey.WebFavorites, WindowsKey.BrowserFavorites },\r
- { SlimDXKey.WebForward, WindowsKey.BrowserForward },\r
- { SlimDXKey.WebHome, WindowsKey.BrowserHome },\r
- { SlimDXKey.WebRefresh, WindowsKey.BrowserRefresh },\r
- { SlimDXKey.WebSearch, WindowsKey.BrowserSearch },\r
- { SlimDXKey.WebStop, WindowsKey.BrowserStop },\r
- { SlimDXKey.Yen, WindowsKey.OemBackslash },\r
- #endregion\r
- };\r
- }\r
-}\r