示例#1
0
        public void JoyAxis(HID_USAGES parAxis, Int32 parValue, uint parDSid)
        {
            if (parAxis != 0)
            {
                //bunch of offset correction nonsense, may need reevaluation
                //Seems to be very close, Constant offset of 0.5 seems to be present
                //Also Scaled values cannot get within 64 of vJoy limits
                //this gives pratical limits of (64-32704)
                int JoyValue = (int)((parValue + 1) * AXIS_SCALE) - AXIS_SCALE_OFFSET;

                switch (parAxis)
                {
                    case HID_USAGES.HID_USAGE_X:
                        joyReport[parDSid - 1].AxisX = JoyValue;
                        break;
                    case HID_USAGES.HID_USAGE_Y:
                        joyReport[parDSid - 1].AxisY = JoyValue;
                        break;
                    case HID_USAGES.HID_USAGE_Z:
                        joyReport[parDSid - 1].AxisZ = JoyValue;
                        break;
                    case HID_USAGES.HID_USAGE_RX:
                        joyReport[parDSid - 1].AxisXRot = JoyValue;
                        break;
                    case HID_USAGES.HID_USAGE_RY:
                        joyReport[parDSid - 1].AxisYRot = JoyValue;
                        break;
                    case HID_USAGES.HID_USAGE_RZ:
                        joyReport[parDSid - 1].AxisZRot = JoyValue;
                        break;
                    case HID_USAGES.HID_USAGE_SL0:
                        joyReport[parDSid - 1].Slider = JoyValue;
                        break;
                    case HID_USAGES.HID_USAGE_SL1:
                        joyReport[parDSid - 1].Dial = JoyValue;
                        break;
                }
            }
        }
示例#2
0
 protected int GetValue(ref vJoy.JoystickState joyReport, HID_USAGES hid)
 {
     switch (hid)
     {
         case HID_USAGES.HID_USAGE_X:
             return joyReport.AxisX;
         case HID_USAGES.HID_USAGE_Y:
             return joyReport.AxisY;
         case HID_USAGES.HID_USAGE_Z:
             return joyReport.AxisZ;
         case HID_USAGES.HID_USAGE_RX:
             return joyReport.AxisXRot;
         case HID_USAGES.HID_USAGE_RY:
             return joyReport.AxisYRot;
         case HID_USAGES.HID_USAGE_RZ:
             return joyReport.AxisZRot;
         case HID_USAGES.HID_USAGE_SL0:
             return joyReport.Slider;
         case HID_USAGES.HID_USAGE_SL1:
             return joyReport.Dial;
         default:
             return 0;
     }
 }
示例#3
0
 protected void AssignAxis(ref HID_USAGES parSourceAxis, string parTargetAxis)
 {
     switch (parTargetAxis)
     {
         case "AX":
             {
                 m_EnabledAxis[0] = true;
                 parSourceAxis = HID_USAGES.HID_USAGE_X;
             }
             break;
         case "AY":
             {
                 m_EnabledAxis[1] = true;
                 parSourceAxis = HID_USAGES.HID_USAGE_Y;
             }
             break;
         case "AZ":
             {
                 m_EnabledAxis[2] = true;
                 parSourceAxis = HID_USAGES.HID_USAGE_Z;
             }
             break;
         case "ARX":
             {
                 m_EnabledAxis[3] = true;
                 parSourceAxis = HID_USAGES.HID_USAGE_RX;
             }
             break;
         case "ARY":
             {
                 m_EnabledAxis[4] = true;
                 parSourceAxis = HID_USAGES.HID_USAGE_RY;
             }
             break;
         case "ARZ":
             {
                 m_EnabledAxis[5] = true;
                 parSourceAxis = HID_USAGES.HID_USAGE_RZ;
             }
             break;
         case "ASL0":
             {
                 m_EnabledAxis[6] = true;
                 parSourceAxis = HID_USAGES.HID_USAGE_SL0;
             }
             break;
         case "ASL1":
             {
                 m_EnabledAxis[7] = true;
                 parSourceAxis = HID_USAGES.HID_USAGE_SL1;
             }
             break;
     }
 }
示例#4
0
 public virtual int AxisMinValue(HID_USAGES hidusage)
 {
     return -AXISLIMIT;
 }
示例#5
0
文件: Wrapper.cs 项目: shauleiz/vJoy
 public bool GetVJDAxisMin(UInt32 rID, HID_USAGES Axis, ref long Min) { return _GetVJDAxisMin(rID, (uint)Axis, ref Min); }
示例#6
0
文件: Wrapper.cs 项目: shauleiz/vJoy
 public bool GetVJDAxisExist(UInt32 rID, HID_USAGES Axis)
 {
     UInt32 res = _GetVJDAxisExist(rID, (uint)Axis);
     if (res == 1)
         return true;
     else
         return false;
 }
示例#7
0
        public void SetAxis(int x, HID_USAGES usage)
        {
            if(!enabledAxis[usage])
                throw new Exception(string.Format("Axis {0} not enabled, enable it from VJoy config", usage));

            joystick.SetAxis(x + AxisMax, Index, usage);
            currentAxisValue[usage] = x;
        }
示例#8
0
 private void SetAxis(byte parAxisValue, HID_USAGES parTargetHID, bool parInverted, uint parDsID)
 {
     if (parInverted)
     {
         vJPad.JoyAxis(parTargetHID, SCPConstants.MAX_SCP_AXIS - parAxisValue, parDsID);
     }
     else
     {
         vJPad.JoyAxis(parTargetHID, parAxisValue, parDsID);
     }
 }
示例#9
0
 ////// Write data
 public bool SetAxis(Int32 Value, UInt32 rID, HID_USAGES Axis)
 {
     return(_SetAxis(Value, rID, Axis));
 }
示例#10
0
 public bool GetVJDAxisMin(UInt32 rID, HID_USAGES Axis, ref long Min)
 {
     return(_GetVJDAxisMin(rID, (uint)Axis, ref Min));
 }
示例#11
0
 public bool GetVJDAxisMax(UInt32 rID, HID_USAGES Axis, ref long Max)
 {
     return(_GetVJDAxisMax(rID, (uint)Axis, ref Max));
 }
示例#12
0
 private static extern bool _SetAxis(Int32 Value, UInt32 rID, HID_USAGES Axis);
示例#13
0
 public void SetAxis(HID_USAGES axisId, double v)
 {
     joy.SetAxis((int)(v * Math.Pow(2, 16)), ID, axisId);
 }
示例#14
0
 public AnalogInput(HID_USAGES _Axis, string _DisplayName)
 {
     Axis        = _Axis;
     DisplayName = _DisplayName;
 }
示例#15
0
 public AxisExtents GetAxisExtents(HID_USAGES Axis)
 {
     return(new AxisExtents(GetMinForAxis(Axis), GetMaxForAxis(Axis)));
 }
示例#16
0
 public int GetAxis(HID_USAGES usage)
 {
     return(currentAxisValue.ContainsKey(usage) ? currentAxisValue[usage] : 0);
 }
示例#17
0
文件: Wrapper.cs 项目: ShineSong/vJoy
 public bool GetVJDAxisExist(UInt32 rID, HID_USAGES Axis) { return _GetVJDAxisExist(rID, (uint)Axis); }
示例#18
0
        public void JoyAxis255(HID_USAGES parAxis, int parValue, uint parDSid)
        {
            if (parAxis != 0)
            {
                //bunch of offset correction nonsense, may need reevaluation
                //Seems to be very close, Constant offset of 0.5 seems to be present
                //Also Scaled values cannot get within 64 of vJoy limits
                //this gives pratical limits of (64-32704)
                int JoyValue = (int)((parValue + 1) * AXIS_SCALE) - AXIS_SCALE_OFFSET;

                JoyAxis(parAxis, JoyValue, parDSid);
            }
        }
示例#19
0
 public int GetAxis(HID_USAGES usage)
 {
     return currentAxisValue.ContainsKey(usage) ? currentAxisValue[usage] : 0;
 }
示例#20
0
 private void JoyAxis(HID_USAGES parAxis, int parJoyValue, uint parDSid)
 {
     switch (parAxis)
     {
         case HID_USAGES.HID_USAGE_X:
             joyReport[parDSid - 1].AxisX = parJoyValue;
             break;
         case HID_USAGES.HID_USAGE_Y:
             joyReport[parDSid - 1].AxisY = parJoyValue;
             break;
         case HID_USAGES.HID_USAGE_Z:
             joyReport[parDSid - 1].AxisZ = parJoyValue;
             break;
         case HID_USAGES.HID_USAGE_RX:
             joyReport[parDSid - 1].AxisXRot = parJoyValue;
             break;
         case HID_USAGES.HID_USAGE_RY:
             joyReport[parDSid - 1].AxisYRot = parJoyValue;
             break;
         case HID_USAGES.HID_USAGE_RZ:
             joyReport[parDSid - 1].AxisZRot = parJoyValue;
             break;
         case HID_USAGES.HID_USAGE_SL0:
             joyReport[parDSid - 1].Slider = parJoyValue;
             break;
         case HID_USAGES.HID_USAGE_SL1:
             joyReport[parDSid - 1].Dial = parJoyValue;
             break;
     }
 }
示例#21
0
 protected void SetValue(ref vJoy.JoystickState joyReport, HID_USAGES hid, int value)
 {
     switch (hid)
     {
         case HID_USAGES.HID_USAGE_X:
             joyReport.AxisX = value;
             break;
         case HID_USAGES.HID_USAGE_Y:
             joyReport.AxisY = value;
             break;
         case HID_USAGES.HID_USAGE_Z:
             joyReport.AxisZ = value;
             break;
         case HID_USAGES.HID_USAGE_RX:
             joyReport.AxisXRot = value;
             break;
         case HID_USAGES.HID_USAGE_RY:
             joyReport.AxisYRot = value;
             break;
         case HID_USAGES.HID_USAGE_RZ:
             joyReport.AxisZRot = value;
             break;
         case HID_USAGES.HID_USAGE_SL0:
             joyReport.Slider = value;
             break;
         case HID_USAGES.HID_USAGE_SL1:
             joyReport.Dial = value;
             break;
     }
 }
示例#22
0
        public void JoyAxis1023(HID_USAGES parAxis, int parValue, uint parDSid)
        {
            if (parAxis != 0)
            {
                //See above function for comment about scaling
                int JoyValue = (int)((parValue + 1) * ACCEL_SCALE) - ACCEL_SCALE_OFFSET;

                JoyAxis(parAxis, JoyValue, parDSid);
            }
        }
示例#23
0
文件: Wrapper.cs 项目: shauleiz/vJoy
 private static extern bool _SetAxis(Int32 Value, UInt32 rID, HID_USAGES Axis);
示例#24
0
 public override int AxisMinValue(HID_USAGES hidusage)
 {
     //long maxValue = 0;
     //long minValue = 0;
     //if (!minMaxAxis.ContainsKey(hidusage))
     //{
     //    _joystick.GetVJDAxisMax(_deviceid, hidusage, ref maxValue);
     //    _joystick.GetVJDAxisMin(_deviceid, hidusage, ref minValue);
     //    minMaxAxis.Add(hidusage, new int[] { (int)minValue, (int)maxValue });
     //}
     return -AXISLIMIT;
 }
示例#25
0
文件: Wrapper.cs 项目: shauleiz/vJoy
 public bool GetVJDAxisMax(UInt32 rID, HID_USAGES Axis, ref long Max) { return _GetVJDAxisMax(rID, (uint)Axis, ref Max); }
示例#26
0
 //-32767 .. 32767
 public override void SetAxis(int value, HID_USAGES axis)
 {
     lock(lockSetAxis)
     {
         try
         {
             var val = (value + AXISLIMIT) / 2;
             _joystick.SetAxis(val, _deviceid, axis);
         }
         catch {
             Debug.Print("VJoyEizikovich::SetAxis exception");
         }
     }
 }
示例#27
0
文件: Wrapper.cs 项目: shauleiz/vJoy
 ////// Write data
 public bool SetAxis(Int32 Value, UInt32 rID, HID_USAGES Axis) { return _SetAxis(Value, rID, Axis); }
示例#28
0
        public override bool Acquire()
        {
            lock (lockAcquire)
            {
                var status = _joystick.GetVJDStatus(_deviceid);
                switch (status)
                {
                    case VjdStat.VJD_STAT_OWN:
                        return true;
                    case VjdStat.VJD_STAT_FREE:
                        break;
                    case VjdStat.VJD_STAT_BUSY:
                        return false;
                    case VjdStat.VJD_STAT_MISS:
                        return false;
                    default:
                        return false;
                };

                _joystick.AcquireVJD(_deviceid);

                var axisList = new HID_USAGES[] { HID_USAGES.HID_USAGE_X, HID_USAGES.HID_USAGE_Y, HID_USAGES.HID_USAGE_RZ };
                var v = 0;
                foreach (var a in axisList)
                {
                    v = AxisMinValue(a);
                    SetAxis(0, a);
                }

                var btnNumber = _joystick.GetVJDButtonNumber(_deviceid);
                for (uint i = 0; i < btnNumber; i++)
                    _joystick.SetBtn(false, _deviceid, i);

                if (OnAcquire != null)
                    OnAcquire(this, EventArgs.Empty);

                isAcquired = true;
                return true;
            }

        }
示例#29
0
        public virtual void SetAxis(int value, HID_USAGES axis)
        {

        }
示例#30
0
 public static String VirtualName(HID_USAGES id)
 {
     JoystickOffset offset = VirtualIDs.Where(vid => vid.Value == id).FirstOrDefault().Key;
     return AllNames[offset];
 }
示例#31
0
 public void SetAxis(HID_USAGES axisId, double v)
 {
     joy.SetAxis((int)(v * Math.Pow(2, 16)), ID, axisId);
 }
示例#32
0
 int ConvertStickAxisDegreesToAxisInt(float axisDegres, HID_USAGES hid)
 {
     return(ConvertAxisRatioToAxisInt(axisDegres / joystickMaxDegrees, hid));
 }