private List <double> UpdateAxisState(WinMMAPI.JOYINFOEX info) { List <double> axisVals = new List <double>(); if (Capabilities.axesNumber >= 1) { axisVals.Add(MakeParametric(info.xPos, Capabilities.xMin, Capabilities.xMax)); } if (Capabilities.axesNumber >= 2) { axisVals.Add(MakeParametric(info.yPos, Capabilities.yMin, Capabilities.yMax)); } if (Capabilities.axesNumber >= 3) { axisVals.Add(MakeParametric(info.rPos, Capabilities.rMin, Capabilities.rMax)); } if (Capabilities.axesNumber >= 4) { axisVals.Add(MakeParametric(info.zPos, Capabilities.zMin, Capabilities.zMax)); } if (Capabilities.axesNumber >= 5) { axisVals.Add(MakeParametric(info.uPos, Capabilities.uMin, Capabilities.uMax)); } if (Capabilities.axesNumber >= 6) { axisVals.Add(MakeParametric(info.vPos, Capabilities.vMin, Capabilities.vMax)); } return(axisVals); }
public List <bool> GetButtonStates() { WinMMAPI.JOYINFOEX info = new WinMMAPI.JOYINFOEX(); info.flags = WinMMAPI.JoyPosFlags.ReturnAll; WinMMAPI.joyGetPosEx(ID, info); return(UpdateButtonState(info)); }
public List <double> GetAxisStates() { WinMMAPI.JOYINFOEX info = new WinMMAPI.JOYINFOEX(); info.flags = WinMMAPI.JoyPosFlags.ReturnAll; WinMMAPI.joyGetPosEx(ID, info); return(UpdateAxisState(info)); }
public void StartCapture() { WinMMAPI.JOYINFOEX info = new WinMMAPI.JOYINFOEX(); info.flags = WinMMAPI.JoyPosFlags.ReturnAll; WinMMAPI.joyGetPosEx(ID, info); LastAxisPositions = UpdateAxisState(info); LastButtonStates = UpdateButtonState(info); }
private List <bool> UpdateButtonState(WinMMAPI.JOYINFOEX info) { List <bool> axisVals = new List <bool>(); for (int i = 0; i < Capabilities.buttonsNumber; i++) { int mask = (int)(Math.Pow(2, i)); if (mask == 0) { mask = 1; } axisVals.Add(((info.buttons & mask) != 0)); } return(axisVals); }