public static unsafe void Poll() { while (true) { for (int i = 0; i < Controllers.Count; i++) { IUSBController controller = (IUSBController)Controllers.Item[i]; //tada controller?.Poll(controller); } for (int i = 0; i < Devices.Count; i++) { USBDevice device = (USBDevice)Devices.Item[i]; if (device.State == USBDeviceState.CONFIGURED) { device.Driver?.Poll(device); } } MultiTasking.Tasking.CurrentTask.CurrentThread.Sleep(0, 100); } }
/// <summary> /// Poll queue heads /// </summary> /// <param name="controller"></param> public static void Poll(IUSBController controller) { UHCIController uhciController = (UHCIController)controller; for (int i = 0; i < MAX_HEADS; i++) { if (uhciController.QueueHeadPool[i].Transfer != null) { int address = (int)uhciController.QueueHeadPool; address += sizeof(UHCIQueueHead) * i; ProcessHead(uhciController, (UHCIQueueHead *)(address)); } } }
public DelcomV2Light(IUSBController controller) { _controller = controller; }
private static void ChangeColour(IUSBController controller, byte[] controlBytes, LightColour colour) { controlBytes[2] = (byte)colour; controller.HidSetFeature(controlBytes); }
private static void ChangeColour(IUSBController controller, byte[] controlBytes, LightColour colour) { controlBytes[2] = (byte)colour; controller.HidSetFeature(controlBytes); }
public static void RegisterController(IUSBController controller) { Controllers.Add(controller); }