private void Parse(object sender, DsPacket e) { lock (this) { if (e.Detail.Pad == (DsPadId)m_SelectedPad) { if (e.Detail.State != DsState.Connected) { ResetControls(); return; } scpProxy.Remap(m_SelectedProfile, e); switch (e.Detail.Model) { case DsModel.DS3: { axLX.Value = e.Axis(Ds3Axis.LX); axLY.Value = e.Axis(Ds3Axis.LY); axRX.Value = e.Axis(Ds3Axis.RX); axRY.Value = e.Axis(Ds3Axis.RY); axL1.Value = e.Axis(Ds3Axis.L1); axR1.Value = e.Axis(Ds3Axis.R1); axL2.Value = e.Axis(Ds3Axis.L2); axR2.Value = e.Axis(Ds3Axis.R2); axL3.Value = (Byte)(e.Button(Ds3Button.L3) ? 255 : 0); axR3.Value = (Byte)(e.Button(Ds3Button.R3) ? 255 : 0); axSH.Value = (Byte)(e.Button(Ds3Button.Select) ? 255 : 0); axOP.Value = (Byte)(e.Button(Ds3Button.Start) ? 255 : 0); axT.Value = e.Axis(Ds3Axis.Triangle); axC.Value = e.Axis(Ds3Axis.Circle); axX.Value = e.Axis(Ds3Axis.Cross); axS.Value = e.Axis(Ds3Axis.Square); axU.Value = e.Axis(Ds3Axis.Up); axR.Value = e.Axis(Ds3Axis.Right); axD.Value = e.Axis(Ds3Axis.Down); axL.Value = e.Axis(Ds3Axis.Left); axPS.Value = (Byte)(e.Button(Ds3Button.PS) ? 255 : 0); } break; case DsModel.DS4: { axLX.Value = e.Axis(Ds4Axis.LX); axLY.Value = e.Axis(Ds4Axis.LY); axRX.Value = e.Axis(Ds4Axis.RX); axRY.Value = e.Axis(Ds4Axis.RY); axL2.Value = e.Axis(Ds4Axis.L2); axR2.Value = e.Axis(Ds4Axis.R2); axL1.Value = (Byte)(e.Button(Ds4Button.L1) ? 255 : 0); axR1.Value = (Byte)(e.Button(Ds4Button.R1) ? 255 : 0); axL3.Value = (Byte)(e.Button(Ds4Button.L3) ? 255 : 0); axR3.Value = (Byte)(e.Button(Ds4Button.R3) ? 255 : 0); axSH.Value = (Byte)(e.Button(Ds4Button.Share) ? 255 : 0); axOP.Value = (Byte)(e.Button(Ds4Button.Options) ? 255 : 0); axT.Value = (Byte)(e.Button(Ds4Button.Triangle) ? 255 : 0); axC.Value = (Byte)(e.Button(Ds4Button.Circle) ? 255 : 0); axX.Value = (Byte)(e.Button(Ds4Button.Cross) ? 255 : 0); axS.Value = (Byte)(e.Button(Ds4Button.Square) ? 255 : 0); axU.Value = (Byte)(e.Button(Ds4Button.Up) ? 255 : 0); axR.Value = (Byte)(e.Button(Ds4Button.Right) ? 255 : 0); axD.Value = (Byte)(e.Button(Ds4Button.Down) ? 255 : 0); axL.Value = (Byte)(e.Button(Ds4Button.Left) ? 255 : 0); axPS.Value = (Byte)(e.Button(Ds4Button.PS) ? 255 : 0); axTP.Value = (Byte)(e.Button(Ds4Button.TouchPad) ? 255 : 0); } break; } } } }
protected override void SampleDs3(DsPacket Packet) { m_Enb = Toggle(m_Enb, Packet.Button(Ds3Button.PS | Ds3Button.Start), ref m_Enabled); if (m_Enabled) { base.SampleDs3(Packet); m_LMB = Mouse (m_LMB, Packet.Button(Ds3Button.R1 ), KbmPost.MouseButtons.Left ); m_RMB = Mouse (m_RMB, Packet.Button(Ds3Button.L1 ), KbmPost.MouseButtons.Right); m_Ent = Button(m_Ent, Packet.Button(Ds3Button.Cross ), Keys.Enter, false); m_Esc = Button(m_Esc, Packet.Button(Ds3Button.Circle ), Keys.Escape, false); m_Tab = Button(m_Tab, Packet.Button(Ds3Button.Square ), Keys.Tab, false); m_Spc = Button(m_Spc, Packet.Button(Ds3Button.Triangle), Keys.Space, false); m_PgU = Button(m_PgU, Packet.Button(Ds3Button.R2 ), Keys.PageUp, true ); m_PgD = Button(m_PgD, Packet.Button(Ds3Button.L2 ), Keys.PageDown, true ); m_CuU = Button(m_CuU, Packet.Button(Ds3Button.Up ), Keys.Up, true ); m_CuD = Button(m_CuD, Packet.Button(Ds3Button.Down ), Keys.Down, true ); m_CuL = Button(m_CuL, Packet.Button(Ds3Button.Left ), Keys.Left, true ); m_CuR = Button(m_CuR, Packet.Button(Ds3Button.Right ), Keys.Right, true ); } }