/// <summary> /// Default constructor setting all calibrations to their defaults. /// </summary> public CalibrationStorage() { ProCalibration = Calibrations.Defaults.ProControllerDefault; WiimoteCalibration = Calibrations.Defaults.WiimoteDefault; NunchukCalibration = Calibrations.Defaults.NunchukDefault; ClassicCalibration = Calibrations.Defaults.ClassicControllerDefault; ClassicProCalibration = Calibrations.Defaults.ClassicControllerProDefault; }
public void ConfigureNunchuk(Nunchuk nState) { nState.joystick.rawX = (short)nState.joystick.centerX; nState.joystick.rawY = (short)nState.joystick.centerY; nState.accelerometer.rawX = (short)nState.accelerometer.centerX; nState.accelerometer.rawY = (short)nState.accelerometer.centerY; nState.accelerometer.rawZ = (short)nState.accelerometer.centerZ; State = nState; }
private Nunchuk ChangeNunBoolean(string property) { Nunchuk nun = (Nunchuk)Device.State; switch (property) { case INPUT_NAMES.NUNCHUK.C: nun.C = !nun.C; break; case INPUT_NAMES.NUNCHUK.Z: nun.Z = !nun.Z; break; } return(nun); }
/// <summary> /// Default constructor setting all calibrations to their defaults. /// </summary> public CalibrationStorage() { ProCalibration = Calibrations.Defaults.ProControllerDefault; WiimoteCalibration = Calibrations.Defaults.WiimoteDefault; NunchukCalibration = Calibrations.Defaults.NunchukDefault; ClassicCalibration = Calibrations.Defaults.ClassicControllerDefault; ClassicProCalibration = Calibrations.Defaults.ClassicControllerProDefault; GuitarCalibration = Calibrations.Defaults.GuitarDefault; GameCubeAdapterCalibration = new GameCubeAdapter(true) { port1 = Calibrations.Defaults.GameCubeControllerDefault, port2 = Calibrations.Defaults.GameCubeControllerDefault, port3 = Calibrations.Defaults.GameCubeControllerDefault, port4 = Calibrations.Defaults.GameCubeControllerDefault, }; }
/// <summary> /// Sets calibrations based on a preset. /// </summary> /// <param name="preset"></param> public void SetCalibrations(Calibrations.CalibrationPreset preset) { switch (preset) { case Calibrations.CalibrationPreset.Default: ProCalibration = Calibrations.Defaults.ProControllerDefault; WiimoteCalibration = Calibrations.Defaults.WiimoteDefault; NunchukCalibration = Calibrations.Defaults.NunchukDefault; ClassicCalibration = Calibrations.Defaults.ClassicControllerDefault; ClassicProCalibration = Calibrations.Defaults.ClassicControllerProDefault; break; case Calibrations.CalibrationPreset.Modest: ProCalibration = Calibrations.Moderate.ProControllerModest; WiimoteCalibration = Calibrations.Moderate.WiimoteModest; NunchukCalibration = Calibrations.Moderate.NunchukModest; ClassicCalibration = Calibrations.Moderate.ClassicControllerModest; ClassicProCalibration = Calibrations.Moderate.ClassicControllerProModest; break; case Calibrations.CalibrationPreset.Extra: ProCalibration = Calibrations.Extras.ProControllerExtra; WiimoteCalibration = Calibrations.Extras.WiimoteExtra; NunchukCalibration = Calibrations.Extras.NunchukExtra; ClassicCalibration = Calibrations.Extras.ClassicControllerExtra; ClassicProCalibration = Calibrations.Extras.ClassicControllerProExtra; break; case Calibrations.CalibrationPreset.Minimum: ProCalibration = Calibrations.Minimum.ProControllerMinimal; WiimoteCalibration = Calibrations.Minimum.WiimoteMinimal; NunchukCalibration = Calibrations.Minimum.NunchukMinimal; ClassicCalibration = Calibrations.Minimum.ClassicControllerMinimal; ClassicProCalibration = Calibrations.Minimum.ClassicControllerProMinimal; break; case Calibrations.CalibrationPreset.None: ProCalibration = Calibrations.None.ProControllerRaw; WiimoteCalibration = Calibrations.None.WiimoteRaw; NunchukCalibration = Calibrations.None.NunchukRaw; ClassicCalibration = Calibrations.None.ClassicControllerRaw; ClassicProCalibration = Calibrations.None.ClassicControllerProRaw; break; } }
private Nunchuk ChangeNunAnalog(string property, float value) { Nunchuk nun = (Nunchuk)Device.State; switch (property) { case INPUT_NAMES.NUNCHUK.JOY_X: nun.joystick.X = value; nun.joystick.rawX = CalculateRaw(nun.joystick.minX, nun.joystick.maxX, value); break; case INPUT_NAMES.NUNCHUK.JOY_Y: nun.joystick.Y = value; nun.joystick.rawY = CalculateRaw(nun.joystick.minY, nun.joystick.maxY, value); break; } return(nun); }
public void ChangeExtension(ControllerType type) { if (DeviceType == type) { return; } switch (type) { case ControllerType.Wiimote: if (State is IWiimoteExtension) { ConfigureWiimote(((IWiimoteExtension)State).wiimote); } else { ConfigureWiimote(new Wiimote()); } break; case ControllerType.Nunchuk: case ControllerType.NunchukB: var nState = new Nunchuk(); nState.SetCalibration(Calibrations.CalibrationPreset.Default); ConfigureNunchuk(nState); ConfigureWiimote(nState.wiimote); break; case ControllerType.ClassicController: var cState = new ClassicController(); cState.SetCalibration(Calibrations.CalibrationPreset.Default); ConfigureClassicController(cState); ConfigureWiimote(cState.wiimote); break; case ControllerType.ClassicControllerPro: var ccpState = new ClassicControllerPro(); ccpState.SetCalibration(Calibrations.CalibrationPreset.Default); ConfigureClassicControllerPro(ccpState); ConfigureWiimote(ccpState.wiimote); break; case ControllerType.Guitar: var guitar = new Guitar(); guitar.SetCalibration(Calibrations.CalibrationPreset.Default); ConfigureGuitar(guitar); ConfigureWiimote(guitar.wiimote); break; case ControllerType.TaikoDrum: var takio = new TaikoDrum(); takio.SetCalibration(Calibrations.CalibrationPreset.Default); // for wiimote ConfigureWiimote(takio.wiimote); break; default: // Invalid return; } DeviceType = type; _nextQueue.Enqueue(InputReport.Status); }
/// <summary> /// Sets calibrations based on a preset. /// </summary> /// <param name="preset"></param> public void SetCalibrations(Calibrations.CalibrationPreset preset) { switch (preset) { case Calibrations.CalibrationPreset.Default: ProCalibration = Calibrations.Defaults.ProControllerDefault; WiimoteCalibration = Calibrations.Defaults.WiimoteDefault; NunchukCalibration = Calibrations.Defaults.NunchukDefault; ClassicCalibration = Calibrations.Defaults.ClassicControllerDefault; ClassicProCalibration = Calibrations.Defaults.ClassicControllerProDefault; GuitarCalibration = Calibrations.Defaults.GuitarDefault; GameCubeAdapterCalibration = new GameCubeAdapter(true) { port1 = Calibrations.Defaults.GameCubeControllerDefault, port2 = Calibrations.Defaults.GameCubeControllerDefault, port3 = Calibrations.Defaults.GameCubeControllerDefault, port4 = Calibrations.Defaults.GameCubeControllerDefault, }; break; case Calibrations.CalibrationPreset.Modest: ProCalibration = Calibrations.Moderate.ProControllerModest; WiimoteCalibration = Calibrations.Moderate.WiimoteModest; NunchukCalibration = Calibrations.Moderate.NunchukModest; ClassicCalibration = Calibrations.Moderate.ClassicControllerModest; ClassicProCalibration = Calibrations.Moderate.ClassicControllerProModest; GuitarCalibration = Calibrations.Moderate.GuitarModest; GameCubeAdapterCalibration = new GameCubeAdapter(true) { port1 = Calibrations.Moderate.GameCubeControllerModest, port2 = Calibrations.Moderate.GameCubeControllerModest, port3 = Calibrations.Moderate.GameCubeControllerModest, port4 = Calibrations.Moderate.GameCubeControllerModest, }; break; case Calibrations.CalibrationPreset.Extra: ProCalibration = Calibrations.Extras.ProControllerExtra; WiimoteCalibration = Calibrations.Extras.WiimoteExtra; NunchukCalibration = Calibrations.Extras.NunchukExtra; ClassicCalibration = Calibrations.Extras.ClassicControllerExtra; ClassicProCalibration = Calibrations.Extras.ClassicControllerProExtra; GuitarCalibration = Calibrations.Extras.GuitarExtra; GameCubeAdapterCalibration = new GameCubeAdapter(true) { port1 = Calibrations.Extras.GameCubeControllerExtra, port2 = Calibrations.Extras.GameCubeControllerExtra, port3 = Calibrations.Extras.GameCubeControllerExtra, port4 = Calibrations.Extras.GameCubeControllerExtra, }; break; case Calibrations.CalibrationPreset.Minimum: ProCalibration = Calibrations.Minimum.ProControllerMinimal; WiimoteCalibration = Calibrations.Minimum.WiimoteMinimal; NunchukCalibration = Calibrations.Minimum.NunchukMinimal; ClassicCalibration = Calibrations.Minimum.ClassicControllerMinimal; ClassicProCalibration = Calibrations.Minimum.ClassicControllerProMinimal; GuitarCalibration = Calibrations.Minimum.GuitarMinimal; GameCubeAdapterCalibration = new GameCubeAdapter(true) { port1 = Calibrations.Minimum.GameCubeControllerMinimal, port2 = Calibrations.Minimum.GameCubeControllerMinimal, port3 = Calibrations.Minimum.GameCubeControllerMinimal, port4 = Calibrations.Minimum.GameCubeControllerMinimal, }; break; case Calibrations.CalibrationPreset.None: ProCalibration = Calibrations.None.ProControllerRaw; WiimoteCalibration = Calibrations.None.WiimoteRaw; NunchukCalibration = Calibrations.None.NunchukRaw; ClassicCalibration = Calibrations.None.ClassicControllerRaw; ClassicProCalibration = Calibrations.None.ClassicControllerProRaw; GuitarCalibration = Calibrations.None.GuitarRaw; GameCubeAdapterCalibration = new GameCubeAdapter(true) { port1 = Calibrations.None.GameCubeControllerRaw, port2 = Calibrations.None.GameCubeControllerRaw, port3 = Calibrations.None.GameCubeControllerRaw, port4 = Calibrations.None.GameCubeControllerRaw, }; break; } }
void device_StateChange(object sender, NintrollerStateEventArgs e) { // Makes the timer wait if (updateTimer != null) { updateTimer.Change(1000, UPDATE_SPEED); } if (holder == null) { return; } // float intensity = 0; // if (holder.Values.TryGetValue(Inputs.Flags.RUMBLE, out intensity)) // { // rumbleAmount = (int)intensity; RumbleStep(); // } holder.ClearAllValues(); switch (e.controllerType) { // TODO: Motion Plus Reading (not for 1st release) // TODO: Balance Board Reading (not for 1st release) // TODO: Musical Extension readings (not for 1st release) case ControllerType.ProController: #region Pro Controller ProController pro = (ProController)e.state; holder.SetValue(Inputs.ProController.A, pro.A); holder.SetValue(Inputs.ProController.B, pro.B); holder.SetValue(Inputs.ProController.X, pro.X); holder.SetValue(Inputs.ProController.Y, pro.Y); holder.SetValue(Inputs.ProController.UP, pro.Up); holder.SetValue(Inputs.ProController.DOWN, pro.Down); holder.SetValue(Inputs.ProController.LEFT, pro.Left); holder.SetValue(Inputs.ProController.RIGHT, pro.Right); holder.SetValue(Inputs.ProController.L, pro.L); holder.SetValue(Inputs.ProController.R, pro.R); holder.SetValue(Inputs.ProController.ZL, pro.ZL); holder.SetValue(Inputs.ProController.ZR, pro.ZR); holder.SetValue(Inputs.ProController.START, pro.Plus); holder.SetValue(Inputs.ProController.SELECT, pro.Minus); holder.SetValue(Inputs.ProController.HOME, pro.Home); holder.SetValue(Inputs.ProController.LS, pro.LStick); holder.SetValue(Inputs.ProController.RS, pro.RStick); holder.SetValue(Inputs.ProController.LRIGHT, pro.LJoy.X > 0 ? pro.LJoy.X : 0f); holder.SetValue(Inputs.ProController.LLEFT, pro.LJoy.X < 0 ? pro.LJoy.X * -1 : 0f); holder.SetValue(Inputs.ProController.LUP, pro.LJoy.Y > 0 ? pro.LJoy.Y : 0f); holder.SetValue(Inputs.ProController.LDOWN, pro.LJoy.Y < 0 ? pro.LJoy.Y * -1 : 0f); holder.SetValue(Inputs.ProController.RRIGHT, pro.RJoy.X > 0 ? pro.RJoy.X : 0f); holder.SetValue(Inputs.ProController.RLEFT, pro.RJoy.X < 0 ? pro.RJoy.X * -1 : 0f); holder.SetValue(Inputs.ProController.RUP, pro.RJoy.Y > 0 ? pro.RJoy.Y : 0f); holder.SetValue(Inputs.ProController.RDOWN, pro.RJoy.Y < 0 ? pro.RJoy.Y * -1 : 0f); #endregion break; case ControllerType.Wiimote: Wiimote wm = (Wiimote)e.state; SetWiimoteInputs(wm); break; case ControllerType.Nunchuk: case ControllerType.NunchukB: #region Nunchuk Nunchuk nun = (Nunchuk)e.state; SetWiimoteInputs(nun.wiimote); holder.SetValue(Inputs.Nunchuk.C, nun.C); holder.SetValue(Inputs.Nunchuk.Z, nun.Z); holder.SetValue(Inputs.Nunchuk.RIGHT, nun.joystick.X > 0 ? nun.joystick.X : 0f); holder.SetValue(Inputs.Nunchuk.LEFT, nun.joystick.X < 0 ? nun.joystick.X * -1 : 0f); holder.SetValue(Inputs.Nunchuk.UP, nun.joystick.Y > 0 ? nun.joystick.Y : 0f); holder.SetValue(Inputs.Nunchuk.DOWN, nun.joystick.Y < 0 ? nun.joystick.Y * -1 : 0f); //TODO: Nunchuk Accelerometer (not for 1st release) holder.SetValue(Inputs.Nunchuk.TILT_RIGHT, nun.accelerometer.X > 0 ? nun.accelerometer.X : 0f); holder.SetValue(Inputs.Nunchuk.TILT_LEFT, nun.accelerometer.X < 0 ? nun.accelerometer.X * -1 : 0f); holder.SetValue(Inputs.Nunchuk.TILT_UP, nun.accelerometer.Y > 0 ? nun.accelerometer.Y : 0f); holder.SetValue(Inputs.Nunchuk.TILT_DOWN, nun.accelerometer.Y < 0 ? nun.accelerometer.Y * -1 : 0f); holder.SetValue(Inputs.Nunchuk.ACC_SHAKE_X, nun.accelerometer.X > 1.15f); holder.SetValue(Inputs.Nunchuk.ACC_SHAKE_Y, nun.accelerometer.Y > 1.15f); holder.SetValue(Inputs.Nunchuk.ACC_SHAKE_Z, nun.accelerometer.Z > 1.15f); #endregion break; case ControllerType.ClassicController: #region Classic Controller ClassicController cc = (ClassicController)e.state; SetWiimoteInputs(cc.wiimote); holder.SetValue(Inputs.ClassicController.A, cc.A); holder.SetValue(Inputs.ClassicController.B, cc.B); holder.SetValue(Inputs.ClassicController.X, cc.X); holder.SetValue(Inputs.ClassicController.Y, cc.Y); holder.SetValue(Inputs.ClassicController.UP, cc.Up); holder.SetValue(Inputs.ClassicController.DOWN, cc.Down); holder.SetValue(Inputs.ClassicController.LEFT, cc.Left); holder.SetValue(Inputs.ClassicController.RIGHT, cc.Right); holder.SetValue(Inputs.ClassicController.L, cc.L.value > 0); holder.SetValue(Inputs.ClassicController.R, cc.R.value > 0); holder.SetValue(Inputs.ClassicController.ZL, cc.ZL); holder.SetValue(Inputs.ClassicController.ZR, cc.ZR); holder.SetValue(Inputs.ClassicController.START, cc.Start); holder.SetValue(Inputs.ClassicController.SELECT, cc.Select); holder.SetValue(Inputs.ClassicController.HOME, cc.Home); holder.SetValue(Inputs.ClassicController.LFULL, cc.LFull); holder.SetValue(Inputs.ClassicController.RFULL, cc.RFull); holder.SetValue(Inputs.ClassicController.LT, cc.L.value > 0.1f ? cc.L.value : 0f); holder.SetValue(Inputs.ClassicController.RT, cc.R.value > 0.1f ? cc.R.value : 0f); holder.SetValue(Inputs.ClassicController.LRIGHT, cc.LJoy.X > 0 ? cc.LJoy.X : 0f); holder.SetValue(Inputs.ClassicController.LLEFT, cc.LJoy.X < 0 ? cc.LJoy.X * -1 : 0f); holder.SetValue(Inputs.ClassicController.LUP, cc.LJoy.Y > 0 ? cc.LJoy.Y : 0f); holder.SetValue(Inputs.ClassicController.LDOWN, cc.LJoy.Y < 0 ? cc.LJoy.Y * -1 : 0f); holder.SetValue(Inputs.ClassicController.RRIGHT, cc.RJoy.X > 0 ? cc.RJoy.X : 0f); holder.SetValue(Inputs.ClassicController.RLEFT, cc.RJoy.X < 0 ? cc.RJoy.X * -1 : 0f); holder.SetValue(Inputs.ClassicController.RUP, cc.RJoy.Y > 0 ? cc.RJoy.Y : 0f); holder.SetValue(Inputs.ClassicController.RDOWN, cc.RJoy.Y < 0 ? cc.RJoy.Y * -1 : 0f); #endregion break; case ControllerType.ClassicControllerPro: #region Classic Controller Pro ClassicControllerPro ccp = (ClassicControllerPro)e.state; SetWiimoteInputs(ccp.wiimote); holder.SetValue(Inputs.ClassicControllerPro.A, ccp.A); holder.SetValue(Inputs.ClassicControllerPro.B, ccp.B); holder.SetValue(Inputs.ClassicControllerPro.X, ccp.X); holder.SetValue(Inputs.ClassicControllerPro.Y, ccp.Y); holder.SetValue(Inputs.ClassicControllerPro.UP, ccp.Up); holder.SetValue(Inputs.ClassicControllerPro.DOWN, ccp.Down); holder.SetValue(Inputs.ClassicControllerPro.LEFT, ccp.Left); holder.SetValue(Inputs.ClassicControllerPro.RIGHT, ccp.Right); holder.SetValue(Inputs.ClassicControllerPro.L, ccp.L); holder.SetValue(Inputs.ClassicControllerPro.R, ccp.R); holder.SetValue(Inputs.ClassicControllerPro.ZL, ccp.ZL); holder.SetValue(Inputs.ClassicControllerPro.ZR, ccp.ZR); holder.SetValue(Inputs.ClassicControllerPro.START, ccp.Start); holder.SetValue(Inputs.ClassicControllerPro.SELECT, ccp.Select); holder.SetValue(Inputs.ClassicControllerPro.HOME, ccp.Home); holder.SetValue(Inputs.ClassicControllerPro.LRIGHT, ccp.LJoy.X > 0 ? ccp.LJoy.X : 0f); holder.SetValue(Inputs.ClassicControllerPro.LLEFT, ccp.LJoy.X < 0 ? ccp.LJoy.X * -1 : 0f); holder.SetValue(Inputs.ClassicControllerPro.LUP, ccp.LJoy.Y > 0 ? ccp.LJoy.Y : 0f); holder.SetValue(Inputs.ClassicControllerPro.LDOWN, ccp.LJoy.Y < 0 ? ccp.LJoy.Y * -1 : 0f); holder.SetValue(Inputs.ClassicControllerPro.RRIGHT, ccp.RJoy.X > 0 ? ccp.RJoy.X : 0f); holder.SetValue(Inputs.ClassicControllerPro.RLEFT, ccp.RJoy.X < 0 ? ccp.RJoy.X * -1 : 0f); holder.SetValue(Inputs.ClassicControllerPro.RUP, ccp.RJoy.Y > 0 ? ccp.RJoy.Y : 0f); holder.SetValue(Inputs.ClassicControllerPro.RDOWN, ccp.RJoy.Y < 0 ? ccp.RJoy.Y * -1 : 0f); #endregion break; } holder.Update(); // Resumes the timer in case this method is not called withing 100ms if (updateTimer != null) { updateTimer.Change(100, UPDATE_SPEED); } }