protected byte[] GetGCNController(GameCubeController controller) { byte[] buf = new byte[9]; buf[1] |= (byte)(controller.A ? 0x01 : 0x00); buf[1] |= (byte)(controller.B ? 0x02 : 0x00); buf[1] |= (byte)(controller.X ? 0x04 : 0x00); buf[1] |= (byte)(controller.Y ? 0x08 : 0x00); buf[1] |= (byte)(controller.Left ? 0x10 : 0x00); buf[1] |= (byte)(controller.Right ? 0x20 : 0x00); buf[1] |= (byte)(controller.Down ? 0x40 : 0x00); buf[1] |= (byte)(controller.Up ? 0x80 : 0x00); buf[2] |= (byte)(controller.Start ? 0x01 : 0x00); buf[2] |= (byte)(controller.Z ? 0x02 : 0x00); buf[2] |= (byte)(controller.R.full ? 0x04 : 0x00); buf[2] |= (byte)(controller.L.full ? 0x08 : 0x00); buf[3] = (byte)controller.joystick.rawX; buf[4] = (byte)controller.joystick.rawY; buf[5] = (byte)controller.cStick.rawX; buf[6] = (byte)controller.cStick.rawY; buf[7] = (byte)controller.L.rawValue; buf[8] = (byte)controller.R.rawValue; return(buf); }
private GameCubeAdapter ChangeGCNAnalog(string property, float value) { GameCubeAdapter gcn = (GameCubeAdapter)Device.State; GameCubeController controller = GetFromSelectedPort(gcn); switch (property) { case INPUT_NAMES.GCN_CONTROLLER.JOY_X: controller.joystick.X = value; controller.joystick.rawX = CalculateRaw(controller.joystick.minX, controller.joystick.maxX, value); break; case INPUT_NAMES.GCN_CONTROLLER.JOY_Y: controller.joystick.Y = value; controller.joystick.rawY = CalculateRaw(controller.joystick.minY, controller.joystick.maxY, value); break; case INPUT_NAMES.GCN_CONTROLLER.C_X: controller.cStick.X = value; controller.cStick.rawX = CalculateRaw(controller.cStick.minX, controller.joystick.maxX, value); break; case INPUT_NAMES.GCN_CONTROLLER.C_Y: controller.cStick.Y = value; controller.cStick.rawY = CalculateRaw(controller.cStick.minX, controller.cStick.maxX, value); break; case INPUT_NAMES.GCN_CONTROLLER.L: case INPUT_NAMES.GCN_CONTROLLER.LT: controller.L.full = value >= 0.9f; controller.L.value = value; controller.L.rawValue = (short)(value * 255); break; case INPUT_NAMES.GCN_CONTROLLER.R: case INPUT_NAMES.GCN_CONTROLLER.RT: controller.R.full = value >= 0.9f; controller.R.value = value; controller.R.rawValue = (short)(value * 255); break; } switch (comboGPortSelect.SelectedIndex) { case 1: gcn.port2 = controller; break; case 2: gcn.port3 = controller; break; case 3: gcn.port4 = controller; break; default: gcn.port1 = controller; break; } return(ApplyToSelectedPort(gcn, controller)); }
private void ChangeAnalog(object sender, RoutedPropertyChangedEventArgs <double> e) { float value = (float)Math.Round(e.NewValue, 2); string analogInput = (sender as FrameworkElement).Tag.ToString(); if (isPro) { Device.State = ChangeProAnalog("pro" + analogInput, value); } else if (isNunchuk) { Device.State = ChangeNunAnalog("n" + analogInput, value); } else if (isClassic) { Device.State = ChangeCcAnalog("cc" + analogInput, value); } else if (isClassicPro) { Device.State = ChangeCcpAnalog("ccp" + analogInput, value); } else if (isGuitar) { Device.State = ChangeGuitarAnalog("gut" + analogInput, value); } else if (isGCN) { GameCubeAdapter gcn = (GameCubeAdapter)Device.State; GameCubeController controller = GetFromSelectedPort(gcn); if (analogInput == "LX") { analogInput = "JoyX"; } if (analogInput == "LY") { analogInput = "JoyY"; } if (analogInput == "RX") { analogInput = "CX"; } if (analogInput == "RY") { analogInput = "CY"; } Device.State = ChangeGCNAnalog("gcn" + analogInput, value); } }
private GameCubeAdapter ApplyToSelectedPort(GameCubeAdapter gcn, GameCubeController controller) { switch (comboGPortSelect.SelectedIndex) { case 1: gcn.port2 = controller; break; case 2: gcn.port3 = controller; break; case 3: gcn.port4 = controller; break; default: gcn.port1 = controller; break; } return(gcn); }
private GameCubeAdapter ChangeGCNBoolean(string property) { GameCubeAdapter gcn = (GameCubeAdapter)Device.State; GameCubeController controller = GetFromSelectedPort(gcn); switch (property) { case INPUT_NAMES.GCN_CONTROLLER.A: controller.A = !controller.A; break; case INPUT_NAMES.GCN_CONTROLLER.B: controller.B = !controller.B; break; case INPUT_NAMES.GCN_CONTROLLER.X: controller.X = !controller.X; break; case INPUT_NAMES.GCN_CONTROLLER.Y: controller.Y = !controller.Y; break; case INPUT_NAMES.GCN_CONTROLLER.Z: controller.Z = !controller.Z; break; case INPUT_NAMES.GCN_CONTROLLER.UP: controller.Up = !controller.Up; break; case INPUT_NAMES.GCN_CONTROLLER.DOWN: controller.Down = !controller.Down; break; case INPUT_NAMES.GCN_CONTROLLER.LEFT: controller.Left = !controller.Left; break; case INPUT_NAMES.GCN_CONTROLLER.RIGHT: controller.Right = !controller.Right; break; case INPUT_NAMES.GCN_CONTROLLER.START: controller.Start = !controller.Start; break; } switch (comboGPortSelect.SelectedIndex) { case 1: gcn.port2 = controller; break; case 2: gcn.port3 = controller; break; case 3: gcn.port4 = controller; break; default: gcn.port1 = controller; break; } return(ApplyToSelectedPort(gcn, controller)); }
private bool GetActivePort(out GameCubeController controller) { switch (_activePort) { default: case GameCubePort.PORT1: controller = _lastState.port1; return(_lastState.port1Connected); case GameCubePort.PORT2: controller = _lastState.port2; return(_lastState.port2Connected); case GameCubePort.PORT3: controller = _lastState.port3; return(_lastState.port3Connected); case GameCubePort.PORT4: controller = _lastState.port4; return(_lastState.port4Connected); } }
private static void Trigger() { GameCubeController.SelfRegister(); HORIPADSwitchController.SelfRegister(); PowerACorePlusController.SelfRegister(); }