Exemplo n.º 1
0
        // 生成と終了


        /// <summary>
        ///     コンストラクタ。
        ///     ゲームコントローラデバイスをRawInputに登録する。
        /// </summary>
        /// <param name="hWindow">
        ///     対象とするウィンドウのハンドル。<see cref="IntPtr.Zero"/> にすると、キーボードフォーカスに追従する。
        /// </param>
        public GameControllersHID(IntPtr hWindow, SoundTimer soundTimer)
        {
            using var _ = new LogBlock(Log.現在のメソッド名);

            this._SoundTimer = soundTimer;

            this.入力イベントリスト = new List <InputEvent>();
            this.Devices   = new Dictionary <IntPtr, GameControllerHIDProperty>();

            // 登録したいデバイスの配列(ここでは2個)。
            var devs = new RawInput.RawInputDevice[] {
                new RawInput.RawInputDevice {
                    usUsagePage = UsagePage.Generic,      // Genericページの
                    usUsage     = UsageId.GenericGamepad, // Genericゲームパッドと、
                    Flags       = RawInput.DeviceFlags.None,
                    hwndTarget  = hWindow,
                },
                new RawInput.RawInputDevice {
                    usUsagePage = UsagePage.Generic,       // Genericページの
                    usUsage     = UsageId.GenericJoystick, // Genericジョイスティック。
                    Flags       = RawInput.DeviceFlags.None,
                    hwndTarget  = hWindow,
                }
            };

            // デバイスを登録。
            RawInput.RegisterRawInputDevices(devs, devs.Length, Marshal.SizeOf <RawInput.RawInputDevice>());
        }
Exemplo n.º 2
0
        // 生成と終了


        public KeyboardHID(SoundTimer soundTimer)
        {
            using var _ = new LogBlock(Log.現在のメソッド名);

            this._SoundTimer = soundTimer;

            // 登録したいデバイスの配列(ここでは1個)。
            var devs = new RawInput.RawInputDevice[] {
                new RawInput.RawInputDevice {
                    usUsagePage = UsagePage.Generic,       // Genericページの
                    usUsage     = UsageId.GenericKeyboard, // Genericキーボード。
                    Flags       = RawInput.DeviceFlags.None,
                    hwndTarget  = IntPtr.Zero,
                },
            };

            // デバイスを登録。
            RawInput.RegisterRawInputDevices(devs, 1, Marshal.SizeOf <RawInput.RawInputDevice>());
        }