public Nunchuk(byte[] rawData) { wiimote = new Wiimote(rawData); accelerometer = new Accelerometer(); joystick = new Joystick(); C = Z = false; Update(rawData); }
// TODO: Address the issue that made this change necessary. // Most likely will be in a performance & memory optimization refactor. public Wiimote(byte[] rawData, Wiimote calibration) { buttons = new CoreButtons(); accelerometer = new Accelerometer(); irSensor = new IR(); SetCalibration(calibration); Update(rawData); }
public WiiDrums(Wiimote wm) { this = new WiiDrums(); wiimote = wm; #if DEBUG DebugLastData = new byte[] { 0 }; #endif Joy.Calibrate(Calibrations.Defaults.WiiGuitarDefault.Joy); }
public void Update(byte[] data) { int offset = Utils.GetExtensionOffset((InputReport)data[0]); if (offset > 0) { rimRight = (data[offset] & 0x08) == 0; centerRight = (data[offset] & 0x10) == 0; rimLeft = (data[offset] & 0x20) == 0; centerLeft = (data[offset] & 0x40) == 0; } wiimote = new Wiimote(data, wiimote); }
public void Update(byte[] data) { int offset = Utils.GetExtensionOffset((InputReport)data[0]); if (offset > 0) { // Buttons A = (data[offset + 5] & 0x10) == 0; B = (data[offset + 5] & 0x40) == 0; X = (data[offset + 5] & 0x08) == 0; Y = (data[offset + 5] & 0x20) == 0; LFull = (data[offset + 4] & 0x20) == 0; // Until the Click RFull = (data[offset + 4] & 0x02) == 0; // Until the Click ZL = (data[offset + 5] & 0x80) == 0; ZR = (data[offset + 5] & 0x04) == 0; Plus = (data[offset + 4] & 0x04) == 0; Minus = (data[offset + 4] & 0x10) == 0; Home = (data[offset + 4] & 0x08) == 0; // Dpad Up = (data[offset + 5] & 0x01) == 0; Down = (data[offset + 4] & 0x40) == 0; Left = (data[offset + 5] & 0x02) == 0; Right = (data[offset + 4] & 0x80) == 0; // Joysticks LJoy.rawX = (byte)(data[offset] & 0x3F); LJoy.rawY = (byte)(data[offset + 1] & 0x3F); RJoy.rawX = (byte)(data[offset + 2] >> 7 | (data[offset + 1] & 0xC0) >> 5 | (data[offset] & 0xC0) >> 3); RJoy.rawY = (byte)(data[offset + 2] & 0x1F); // Triggers L.rawValue = (byte)(((data[offset + 2] & 0x60) >> 2) | (data[offset + 3] >> 5)); R.rawValue = (byte)(data[offset + 3] & 0x1F); L.full = LFull; R.full = RFull; // Normalize LJoy.Normalize(); RJoy.Normalize(); L.Normalize(); R.Normalize(); } wiimote = new Wiimote(data, wiimote); }
public void Update(byte[] data) { int offset = Utils.GetExtensionOffset((InputReport)data[0]); if (offset > 0) { // Buttons A = (data[offset + 5] & 0x10) == 0; B = (data[offset + 5] & 0x40) == 0; X = (data[offset + 5] & 0x08) == 0; Y = (data[offset + 5] & 0x20) == 0; L = (data[offset + 4] & 0x20) == 0; R = (data[offset + 4] & 0x02) == 0; ZL = (data[offset + 5] & 0x80) == 0; ZR = (data[offset + 5] & 0x04) == 0; Plus = (data[offset + 4] & 0x04) == 0; Minus = (data[offset + 4] & 0x10) == 0; Home = (data[offset + 4] & 0x08) == 0; // Dpad Up = (data[offset + 5] & 0x01) == 0; Down = (data[offset + 4] & 0x40) == 0; Left = (data[offset + 5] & 0x02) == 0; Right = (data[offset + 4] & 0x80) == 0; // Joysticks LJoy.rawX = (byte)(data[offset] & 0x3F); LJoy.rawY = (byte)(data[offset + 1] & 0x3F); RJoy.rawX = (byte)(data[offset + 2] >> 7 | (data[offset + 1] & 0xC0) >> 5 | (data[offset] & 0xC0) >> 3); RJoy.rawY = (byte)(data[offset + 2] & 0x1F); // Normalize LJoy.Normalize(); RJoy.Normalize(); } // Simply calling the Update(data) method doesn't seem to be working. // the button data will get updated correctly but when stepping over this // statement in debug mode the button data is all set to its default values. wiimote = new Wiimote(data, wiimote); }
public WiiGuitar(Wiimote wm) { this = new WiiGuitar(); wiimote = wm; CALIB_Whammy_Min = 0xFF; CALIB_Whammy_Max = 0; CALIB_Enable_TouchStrip = false; oldTouchStripValue = WGT_TOUCH_STRIP_None; IsGH3SetYet = false; IsGH3 = false; CALIB_Tilt_Neutral = 0; CALIB_Tilt_TiltedREEEE = (float)(Math.PI / 2); #if DEBUG DebugLastData = new byte[] { 0 }; #endif Joy.Calibrate(Calibrations.Defaults.WiiGuitarDefault.Joy); }
public void Update(byte[] data) { int offset = Utils.GetExtensionOffset((InputReport)data[0]); if (offset > 0) { // Buttons C = (data[offset + 5] & 0x02) == 0; Z = (data[offset + 5] & 0x01) == 0; // Joystick joystick.rawX = data[offset]; joystick.rawY = data[offset + 1]; // Accelerometer accelerometer.Parse(data, offset + 2); // Normalize joystick.Normalize(); accelerometer.Normalize(); } wiimote = new Wiimote(data, wiimote); }
public ClassicControllerPro(Wiimote wm) { this = new ClassicControllerPro(); wiimote = wm; }
public bool T1, T2, T3, T4, T5; // Touch Frets public void Update(byte[] data) { // http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Guitar_Hero_(Wii)_Guitars // Byte 0: bits 0-5 = joy X // Byte 1: bits 0-5 = joy Y // Byte 2: bits 0-4 = touch // Byte 3: bits 0-4 = whammy // Byte 4: bit 2 = Plus, bit 4 = Minus, bit 6 = Strum Down // Byte 5: bit 0 = Strum Up, bit 3 = yellow // bit 4 = green, bit 5 = blue // bit 6 = red, bit 7 = orange int offset = Utils.GetExtensionOffset((InputReport)data[0]); if (offset > 0) { joystick.rawX = data[offset] & 0x3F; joystick.rawY = data[offset + 1] & 0x3F; touchBar = (byte)(data[offset + 2] & 0x1F); whammyBar.rawValue = (byte)(data[offset + 3] & 0x1F); Plus = (data[offset + 4] & 0x04) == 0; Minus = (data[offset + 4] & 0x10) == 0; StrumDown = (data[offset + 4] & 0x40) == 0; StrumUp = (data[offset + 5] & 0x01) == 0; Yellow = (data[offset + 5] & 0x08) == 0; Green = (data[offset + 5] & 0x10) == 0; Blue = (data[offset + 5] & 0x20) == 0; Red = (data[offset + 5] & 0x40) == 0; Orange = (data[offset + 5] & 0x80) == 0; switch (touchBar) { default: case 0x0F: T1 = T2 = T3 = T4 = T5 = false; break; case 0x04: T1 = true; T2 = T3 = T4 = T5 = false; break; case 0x07: T1 = T2 = true; T3 = T4 = T5 = false; break; case 0x0A: T2 = true; T1 = T3 = T4 = T5 = false; break; case 0x0C: case 0x0D: T2 = T3 = true; T1 = T4 = T5 = false; break; case 0x12: case 0x13: T3 = true; T1 = T2 = T4 = T5 = false; break; case 0x14: case 0x15: T3 = T4 = true; T1 = T2 = T5 = false; break; case 0x17: case 0x18: T4 = true; T1 = T2 = T3 = T5 = false; break; case 0x1A: T4 = T5 = true; T1 = T2 = T3 = false; break; case 0x1F: T5 = true; T1 = T2 = T3 = T4 = false; break; } joystick.Normalize(); whammyBar.Normalize(); whammyBar.full = whammyBar.rawValue >= whammyBar.max; } wiimote = new Wiimote(data, wiimote); }
public Nunchuk(Wiimote wm) { this = new Nunchuk(); wiimote = wm; }