Exemplo n.º 1
0
        public Nunchuk(byte[] rawData)
        {
            wiimote       = new Wiimote(rawData);
            accelerometer = new Accelerometer();
            joystick      = new Joystick();

            C = Z = false;
            Update(rawData);
        }
Exemplo n.º 2
0
        // 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);
        }
Exemplo n.º 3
0
        public WiiDrums(Wiimote wm)
        {
            this    = new WiiDrums();
            wiimote = wm;

#if DEBUG
            DebugLastData = new byte[] { 0 };
#endif

            Joy.Calibrate(Calibrations.Defaults.WiiGuitarDefault.Joy);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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;
 }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
 public Nunchuk(Wiimote wm)
 {
     this    = new Nunchuk();
     wiimote = wm;
 }