void InitializeCallbacks() { const int dzp = 400; const int dzn = -400; names.Clear(); actions.Clear(); NumButtons = 0; // buttons first for (int i = 0; i < state.GetButtons().Length; i++) { int j = i; bool button_state = state.GetButtons()[i]; UInt32 butnameint = Convert.ToUInt32(i); string na = butnameint.ToString("X8"); ulong iD = IdGenerator.CalcOldStyleID(DIAxisInfo.Count, 0, joystick.Capabilities.PovCount, joystick.Capabilities.ButtonCount); AddItem(iD.ToString("X16") + " " + butnameint.ToString("X8"), () => state.IsPressed(j)); } // axis int c = 0; foreach (DeviceObjectInstance deviceObject in joystick.GetObjects()) { c++; if ((deviceObject.ObjectType & ObjectDeviceType.Axis) != 0) { } if (deviceObject.ObjectType == ObjectDeviceType.Axis) { } string aName = deviceObject.Name; //joystick.GetObjectPropertiesById((int)deviceObject.ObjectType) } int numa = num_axes; int numa2 = DIAxisInfo.Count(); for (int axis = 0; axis < num_axes; axis++) { } AddItem("AccelerationX+", () => state.AccelerationX >= dzp); AddItem("AccelerationX-", () => state.AccelerationX <= dzn); AddItem("AccelerationY+", () => state.AccelerationY >= dzp); AddItem("AccelerationY-", () => state.AccelerationY <= dzn); AddItem("AccelerationZ+", () => state.AccelerationZ >= dzp); AddItem("AccelerationZ-", () => state.AccelerationZ <= dzn); AddItem("AngularAccelerationX+", () => state.AngularAccelerationX >= dzp); AddItem("AngularAccelerationX-", () => state.AngularAccelerationX <= dzn); AddItem("AngularAccelerationY+", () => state.AngularAccelerationY >= dzp); AddItem("AngularAccelerationY-", () => state.AngularAccelerationY <= dzn); AddItem("AngularAccelerationZ+", () => state.AngularAccelerationZ >= dzp); AddItem("AngularAccelerationZ-", () => state.AngularAccelerationZ <= dzn); AddItem("AngularVelocityX+", () => state.AngularVelocityX >= dzp); AddItem("AngularVelocityX-", () => state.AngularVelocityX <= dzn); AddItem("AngularVelocityY+", () => state.AngularVelocityY >= dzp); AddItem("AngularVelocityY-", () => state.AngularVelocityY <= dzn); AddItem("AngularVelocityZ+", () => state.AngularVelocityZ >= dzp); AddItem("AngularVelocityZ-", () => state.AngularVelocityZ <= dzn); AddItem("ForceX+", () => state.ForceX >= dzp); AddItem("ForceX-", () => state.ForceX <= dzn); AddItem("ForceY+", () => state.ForceY >= dzp); AddItem("ForceY-", () => state.ForceY <= dzn); AddItem("ForceZ+", () => state.ForceZ >= dzp); AddItem("ForceZ-", () => state.ForceZ <= dzn); AddItem("RotationX+", () => state.RotationX >= dzp); AddItem("RotationX-", () => state.RotationX <= dzn); AddItem("RotationY+", () => state.RotationY >= dzp); AddItem("RotationY-", () => state.RotationY <= dzn); AddItem("00008003", () => state.RotationZ >= dzp); //AddItem("RotationZ+", () => state.RotationZ >= dzp); AddItem("0000c003", () => state.RotationZ <= dzn); //AddItem("RotationZ-", () => state.RotationZ <= dzn); AddItem("TorqueX+", () => state.TorqueX >= dzp); AddItem("TorqueX-", () => state.TorqueX <= dzn); AddItem("TorqueY+", () => state.TorqueY >= dzp); AddItem("TorqueY-", () => state.TorqueY <= dzn); AddItem("TorqueZ+", () => state.TorqueZ >= dzp); AddItem("TorqueZ-", () => state.TorqueZ <= dzn); AddItem("VelocityX+", () => state.VelocityX >= dzp); AddItem("VelocityX-", () => state.VelocityX <= dzn); AddItem("VelocityY+", () => state.VelocityY >= dzp); AddItem("VelocityY-", () => state.VelocityY <= dzn); AddItem("VelocityZ+", () => state.VelocityZ >= dzp); AddItem("VelocityZ-", () => state.VelocityZ <= dzn); AddItem("00008000", () => state.X >= dzp); //AddItem("X+", () => state.X >= dzp); AddItem("0000c000", () => state.X <= dzn); //AddItem("X-", () => state.X <= dzn); AddItem("00008001", () => state.Y >= dzp); //AddItem("Y+", () => state.Y >= dzp); AddItem("0000c001", () => state.Y <= dzn); //AddItem("Y-", () => state.Y <= dzn); AddItem("00008002", () => state.Z >= dzp); //AddItem("Z+", () => state.Z >= dzp); AddItem("0000c002", () => state.Z <= dzn); //AddItem("Z-", () => state.Z <= dzn); // i don't know what the "Slider"s do, so they're omitted for the moment for (int i = 0; i < state.GetButtons().Length; i++) { //int j = i; //AddItem(string.Format("B{0}", i + 1), () => state.IsPressed(j)); } for (int i = 0; i < state.GetPointOfViewControllers().Length; i++) { int j = i; AddItem(string.Format("POV{0}U", i + 1), () => { int t = state.GetPointOfViewControllers()[j]; return((t >= 0 && t <= 4500) || (t >= 31500 && t < 36000)); }); AddItem(string.Format("POV{0}D", i + 1), () => { int t = state.GetPointOfViewControllers()[j]; return(t >= 13500 && t <= 22500); }); AddItem(string.Format("POV{0}L", i + 1), () => { int t = state.GetPointOfViewControllers()[j]; return(t >= 22500 && t <= 31500); }); AddItem(string.Format("POV{0}R", i + 1), () => { int t = state.GetPointOfViewControllers()[j]; return(t >= 4500 && t <= 13500); }); } }