/// <summary> /// Controllers the query. /// </summary> /// <returns>The query.</returns> /// <param name="handle">Handle.</param> /// <param name="what">What.</param> /// <param name="mem">Mem.</param> /// <param name="size">Size.</param> //--------------------------------------------------------------------------------------------- public override object ControllerQuery(int handle, SvrController.svrControllerQueryType what) { int memorySize = 0; IntPtr memory = IntPtr.Zero; object result = null; System.Type typeOfObject = null; switch (what) { case SvrController.svrControllerQueryType.kControllerBatteryRemaining: { typeOfObject = typeof(int); memorySize = System.Runtime.InteropServices.Marshal.SizeOf(typeOfObject); memory = System.Runtime.InteropServices.Marshal.AllocHGlobal(memorySize); } break; } int writtenBytes = SvrControllerQuery(handle, (int)what, memory, memorySize); if (memorySize == writtenBytes) { result = System.Runtime.InteropServices.Marshal.PtrToStructure(memory, typeOfObject); } if (memory != IntPtr.Zero) { Marshal.FreeHGlobal(memory); } return(result); }
//--------------------------------------------------------------------------------------------- public virtual object ControllerQuery(int handle, SvrController.svrControllerQueryType what) { return(null); }
/// <summary> /// Controllers the query. /// </summary> /// <returns>The query.</returns> /// <param name="handle">Handle.</param> /// <param name="what">What.</param> /// <param name="mem">Mem.</param> /// <param name="size">Size.</param> //--------------------------------------------------------------------------------------------- public object ControllerQuery(int handle, SvrController.svrControllerQueryType what) { return(plugin.ControllerQuery(handle, what)); }