Beispiel #1
0
    public static DIJOYSTATE2ENGINES LogiGetStateUnity(int index)
    {
        DIJOYSTATE2ENGINES ret = new DIJOYSTATE2ENGINES();

        ret.rglSlider  = new int[2];
        ret.rgdwPOV    = new uint[4];
        ret.rgbButtons = new byte[128];
        ret.rglVSlider = new int[2];
        ret.rglASlider = new int[2];
        ret.rglFSlider = new int[2];

        //int size = Marshal.SizeOf(ret); // 272 Bytes

        IntPtr buffer;

        try
        {
            buffer = LogiGetStateENGINES(index);             //YC added
            ret    = (DIJOYSTATE2ENGINES)Marshal.PtrToStructure(buffer, typeof(DIJOYSTATE2ENGINES));

            Marshal.FreeCoTaskMem(buffer);              //YC added
            buffer = IntPtr.Zero;                       //YC added
        }
        catch (System.ArgumentException)
        {
            Debug.Log("Exception catched");
        }

        return(ret);
    }
Beispiel #2
0
    public static float LogiSteeringGetAngle(int index)
    {
        DIJOYSTATE2ENGINES state = LogiGetStateCSharp(index);

        LogitechGSDK.LogiControllerPropertiesData properties = new LogitechGSDK.LogiControllerPropertiesData();
        LogitechGSDK.LogiGetCurrentControllerProperties(index, ref properties);
        float angle = (float)state.lX / 65536 * properties.wheelRange;

        return(angle);
    }
Beispiel #3
0
    public static DIJOYSTATE2ENGINES LogiGetStateCSharp(int index)
    {
        DIJOYSTATE2ENGINES ret = new DIJOYSTATE2ENGINES();

        ret.rglSlider  = new int[2];
        ret.rgdwPOV    = new uint[4];
        ret.rgbButtons = new byte[128];
        ret.rglVSlider = new int[2];
        ret.rglASlider = new int[2];
        ret.rglFSlider = new int[2];
        try
        {
            ret = (DIJOYSTATE2ENGINES)Marshal.PtrToStructure(LogiGetStateENGINES(index), typeof(DIJOYSTATE2ENGINES));
        }
        catch (System.ArgumentException)
        {
        }
        return(ret);
    }
Beispiel #4
0
 public static DIJOYSTATE2ENGINES LogiGetStateUnity(int index)
 {
     DIJOYSTATE2ENGINES ret = new DIJOYSTATE2ENGINES();
     ret.rglSlider = new int[2];
     ret.rgdwPOV = new uint[4];
     ret.rgbButtons = new byte[128];
     ret.rglVSlider = new int[2];
     ret.rglASlider = new int[2];
     ret.rglFSlider = new int[2];
     try
     {
         ret = (DIJOYSTATE2ENGINES)Marshal.PtrToStructure(LogiGetStateENGINES(index), typeof(DIJOYSTATE2ENGINES));
     }
     catch (System.ArgumentException)
     {
         Debug.Log("Exception catched");
     }
         return ret;
 }