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); }
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); }
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); }
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; }