Exemplo n.º 1
0
        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); });
            }
        }