public SCP_EXTN GetExtended()

in ScpControl/ScpProxy.cs [30:104]


        public SCP_EXTN GetExtended(uint dwUserIndex)
        {
            ScpHidReport inputReport;
            var extended = default(SCP_EXTN);

            try
            {
                inputReport = _packetCache[(DsPadId) dwUserIndex];
            }
            catch (KeyNotFoundException)
            {
                return extended;
            }

            switch (inputReport.Model)
            {
                case DsModel.None:
                    break;
                case DsModel.DS3:
                    // translate and wrap button/axis information
                    extended = new SCP_EXTN
                    {
                        SCP_UP = inputReport[Ds3Axis.Up].Pressure,
                        SCP_RIGHT = inputReport[Ds3Axis.Right].Pressure,
                        SCP_DOWN = inputReport[Ds3Axis.Down].Pressure,
                        SCP_LEFT = inputReport[Ds3Axis.Left].Pressure,
                        SCP_LX = inputReport[Ds3Axis.Lx].Axis,
                        SCP_LY = -inputReport[Ds3Axis.Ly].Axis,
                        SCP_L1 = inputReport[Ds3Axis.L1].Pressure,
                        SCP_L2 = inputReport[Ds3Axis.L2].Pressure,
                        SCP_L3 = inputReport[Ds3Button.L3].Pressure,
                        SCP_RX = inputReport[Ds3Axis.Rx].Axis,
                        SCP_RY = -inputReport[Ds3Axis.Ry].Axis,
                        SCP_R1 = inputReport[Ds3Axis.R1].Pressure,
                        SCP_R2 = inputReport[Ds3Axis.R2].Pressure,
                        SCP_R3 = inputReport[Ds3Button.R3].Pressure,
                        SCP_T = inputReport[Ds3Axis.Triangle].Pressure,
                        SCP_C = inputReport[Ds3Axis.Circle].Pressure,
                        SCP_X = inputReport[Ds3Axis.Cross].Pressure,
                        SCP_S = inputReport[Ds3Axis.Square].Pressure,
                        SCP_SELECT = inputReport[Ds3Button.Select].Pressure,
                        SCP_START = inputReport[Ds3Button.Start].Pressure,
                        SCP_PS = inputReport[Ds3Button.Ps].Pressure
                    };
                    break;
                case DsModel.DS4:
                    extended = new SCP_EXTN
                    {
                        SCP_UP = inputReport[Ds4Button.Up].Pressure,
                        SCP_RIGHT = inputReport[Ds4Button.Right].Pressure,
                        SCP_DOWN = inputReport[Ds4Button.Down].Pressure,
                        SCP_LEFT = inputReport[Ds4Button.Left].Pressure,
                        SCP_LX = inputReport[Ds4Axis.Lx].Value,
                        SCP_LY = inputReport[Ds4Axis.Ly].Value,
                        SCP_L1 = inputReport[Ds4Button.L1].Pressure,
                        SCP_L2 = inputReport[Ds4Axis.L2].Pressure,
                        SCP_L3 = inputReport[Ds4Button.L3].Pressure,
                        SCP_RX = inputReport[Ds4Axis.Rx].Value,
                        SCP_RY = inputReport[Ds4Axis.Ry].Value,
                        SCP_R1 = inputReport[Ds4Button.R1].Pressure,
                        SCP_R2 = inputReport[Ds4Axis.R2].Pressure,
                        SCP_R3 = inputReport[Ds4Button.R3].Pressure,
                        SCP_T = inputReport[Ds4Button.Triangle].Pressure,
                        SCP_C = inputReport[Ds4Button.Circle].Pressure,
                        SCP_X = inputReport[Ds4Button.Cross].Pressure,
                        SCP_S = inputReport[Ds4Button.Square].Pressure,
                        SCP_SELECT = inputReport[Ds4Button.Share].Pressure,
                        SCP_START = inputReport[Ds4Button.Options].Pressure,
                        SCP_PS = inputReport[Ds4Button.Ps].Pressure
                    };
                    break;
            }

            return extended;
        }