public bool SetLed(Bluetooth.Colors color) { //set the LED's values into the write buffer writeBuffer[2] = (byte)((int)color >> 16); writeBuffer[3] = (byte)((int)color >> 8); writeBuffer[4] = (byte)(color); try { //Transfer the bytes to the controller writePipe.TransferData(writeBuffer, 0, writeBuffer.Length); } catch (Exception) { return false; } return true; }
static void DeviceConnectedEvent(USBH_Device device) { //Check if device is a PS3 Controller if (device.VENDOR_ID != PS3Controller.PS3_VENDOR_ID || device.PRODUCT_ID != PS3Controller.PS3_PRODUCT_ID) { if (device.TYPE == USBH_DeviceType.Hub) WriteSerial("Hub Connected"); else if (device.PRODUCT_ID == Bluetooth.CSR_PRODUCT_ID && device.VENDOR_ID == Bluetooth.CSR_VENDOR_ID)//Check if it is the bluetooth dongle { WriteSerial("Bluetooth Dongle Connected"); BT = new Bluetooth(device); } else if (device.VENDOR_ID == PS3Move.PS3MOVE_VENDOR_ID && device.PRODUCT_ID == PS3Move.PS3MOVE_PRODUCT_ID) { WriteSerial("PS3 Move Controller Connected"); Move = new PS3Move(device); } else if (device.VENDOR_ID == PS3Navigation.PS3NAVIGATION_VENDOR_ID && device.PRODUCT_ID == PS3Navigation.PS3NAVIGATION_PRODUCT_ID) { WriteSerial("PS3 Navigation Controller Connected"); Navigation = new PS3Navigation(device); } else WriteSerial("Unknown Device Connected"); return; } if (PS3Connected == PS3Max)//Check if the maximum number of controller is exceeded { WriteSerial(PS3Max + " Controllers are already connected"); return; } PS3[PS3Connected] = new PS3Controller(device);//Connect the PS3 Controller PS3Device[PS3Connected] = device;//Store the device see "DeviceDisconnectedEvent" PS3SetLED(PS3Connected);//Set the specific LED on runThread[PS3Connected] = true;//Start the loop WriteSerial("PS3 Controller: " + (PS3Connected + 1) + " - Connected"); PS3Connected++; }