Beispiel #1
0
            //* ────────────-_______________________*
            //* constructor & destructor ───────────────────────*

            //* -----------------------------------------------------------------------*
            /// <summary>コンストラクタ。</summary>
            ///
            /// <param name="input">レガシ ゲーム コントローラ入力制御・管理クラス。</param>
            /// <param name="idDevice">デバイスのインスタンスGUID。</param>
            /// <param name="hWnd">ウィンドウ ハンドル</param>
            /// <param name="buttonStateList">ボタンの入力状態一覧。</param>
            public CPrivateMembers(
                CInputLegacy input, Guid idDevice, IntPtr hWnd, List <SInputState> buttonStateList)
            {
                device               = new Device(idDevice);
                this.input           = input;
                this.hWnd            = hWnd;
                this.buttonStateList = buttonStateList;
                capsReport           =
                    device.DeviceInformation.createCapsReport() + device.Caps.createCapsReport();
                device.SetDataFormat(DeviceDataFormat.Joystick);
            }
        //* -----------------------------------------------------------------------*
        /// <summary>
        /// レガシ ゲーム コントローラの自動認識・入力制御・管理クラスを生成します。
        /// </summary>
        ///
        /// <returns>
        /// レガシ ゲーム コントローラの自動認識・入力制御・管理クラス。
        /// </returns>
        private CInputCollection createLegacyInstance()
        {
            CInputCollection collection = CInputLegacy.createDetector(playerNumber);

            collection.changedChildCount += (sender, count) =>
            {
                if (count > 0)
                {
                    CInputLegacy input = ((CInputCollection)sender).getInstance <CInputLegacy>();
                    input.assignList = legacyAssign;
                    input.useForAxis = legacyAxisAssign;
                }
            };
            return(collection);
        }