Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 7
0
 private static void Trigger()
 {
     GameCubeController.SelfRegister();
     HORIPADSwitchController.SelfRegister();
     PowerACorePlusController.SelfRegister();
 }