private void HandleButtonEvent(EmulatorButtonEvent buttonEvent)
        {
            switch (buttonEvent.code)
            {
            case EmulatorButtonEvent.ButtonCode.kApp:
                lock (state) {
                    state.appButtonState = buttonEvent.down;
                    state.appButtonDown  = buttonEvent.down;
                    state.appButtonUp    = !buttonEvent.down;
                }
                break;

            case EmulatorButtonEvent.ButtonCode.kHome:
                lock (state) {
                    state.homeButtonState = buttonEvent.down;
                    state.homeButtonDown  = buttonEvent.down;
                }
                if (!buttonEvent.down)
                {
                    // Finished the recentering gesture. Recenter controller.
                    Recenter();
                }
                break;

            case EmulatorButtonEvent.ButtonCode.kClick:
                lock (state) {
                    state.clickButtonState = buttonEvent.down;
                    state.clickButtonDown  = buttonEvent.down;
                    state.clickButtonUp    = !buttonEvent.down;
                }
                break;
            }
        }
예제 #2
0
 private void ProcessEventAtEndOfFrame(PhoneEvent e) {
   switch (e.Type) {
     case PhoneEvent.Types.Type.MOTION:
       EmulatorTouchEvent touchEvent = new EmulatorTouchEvent(e.MotionEvent, lastDownTimeMs);
       onTouchEvent(touchEvent);
       if (touchEvent.getActionMasked() == EmulatorTouchEvent.Action.kActionDown) {
         lastDownTimeMs = e.MotionEvent.Timestamp;
       }
       break;
     case PhoneEvent.Types.Type.GYROSCOPE:
       EmulatorGyroEvent gyroEvent = new EmulatorGyroEvent(e.GyroscopeEvent);
       onGyroEvent(gyroEvent);
       break;
     case PhoneEvent.Types.Type.ACCELEROMETER:
       EmulatorAccelEvent accelEvent = new EmulatorAccelEvent(e.AccelerometerEvent);
       onAccelEvent(accelEvent);
       break;
     case PhoneEvent.Types.Type.ORIENTATION:
       EmulatorOrientationEvent orientationEvent =
           new EmulatorOrientationEvent(e.OrientationEvent);
       onOrientationEvent(orientationEvent);
       break;
     case PhoneEvent.Types.Type.KEY:
       EmulatorButtonEvent buttonEvent = new EmulatorButtonEvent(e.KeyEvent);
       onButtonEvent(buttonEvent);
       break;
     default:
       Debug.Log("Unsupported PhoneEvent type: " + e.Type);
       break;
   }
 }
예제 #3
0
 private void onButtonEvent(EmulatorButtonEvent e)
 {
     currentButtonEvent = e;
     if (buttonEventListenersInternal != null)
     {
         buttonEventListenersInternal(e);
     }
 }
        private void HandleButtonEvent(EmulatorButtonEvent buttonEvent)
        {
            if (buttonEvent.code == EmulatorButtonEvent.ButtonCode.kHome)
            {
                if (buttonEvent.down)
                {
                    lock (state) {
                        // Started the recentering gesture.
                        state.recentering = true;
                    }
                }
                else
                {
                    // Finished the recentering gesture. Recenter controller.
                    Recenter();
                }
                return;
            }

            if (buttonEvent.code != EmulatorButtonEvent.ButtonCode.kApp &&
                buttonEvent.code != EmulatorButtonEvent.ButtonCode.kClick)
            {
                return;
            }

            lock (state) {
                if (buttonEvent.code == EmulatorButtonEvent.ButtonCode.kApp)
                {
                    state.appButtonState = buttonEvent.down;
                    state.appButtonDown  = buttonEvent.down;
                    state.appButtonUp    = !buttonEvent.down;
                }
                else
                {
                    state.clickButtonState = buttonEvent.down;
                    state.clickButtonDown  = buttonEvent.down;
                    state.clickButtonUp    = !buttonEvent.down;
                }
            }
        }
        private void HandleButtonEvent(EmulatorButtonEvent buttonEvent)
        {
            GvrControllerButton buttonMask = 0;

            switch (buttonEvent.code)
            {
            case EmulatorButtonEvent.ButtonCode.kApp:
                buttonMask = GvrControllerButton.App;
                break;

            case EmulatorButtonEvent.ButtonCode.kHome:
                buttonMask = GvrControllerButton.System;
                break;

            case EmulatorButtonEvent.ButtonCode.kClick:
                buttonMask = GvrControllerButton.TouchPadButton;
                break;
            }

            if (buttonMask != 0)
            {
                lock (state)
                {
                    state.buttonsState &= ~buttonMask;
                    if (buttonEvent.down)
                    {
                        state.buttonsState |= buttonMask;
                    }
                }

                if (buttonMask == GvrControllerButton.System)
                {
                    if (!buttonEvent.down)
                    {
                        // Finished the recentering gesture. Recenter controller.
                        Recenter();
                    }
                }
            }
        }
예제 #6
0
 private void ProcessEventAtEndOfFrame(PhoneEvent e)
 {
     switch (e.Type) {
     case PhoneEvent.Types.Type.MOTION:
       EmulatorTouchEvent touchEvent = new EmulatorTouchEvent(e.MotionEvent, lastDownTimeMs);
       onTouchEvent(touchEvent);
       if (touchEvent.getActionMasked() == EmulatorTouchEvent.Action.kActionDown) {
     lastDownTimeMs = e.MotionEvent.Timestamp;
       }
       break;
     case PhoneEvent.Types.Type.GYROSCOPE:
       EmulatorGyroEvent gyroEvent = new EmulatorGyroEvent(e.GyroscopeEvent);
       onGyroEvent(gyroEvent);
       break;
     case PhoneEvent.Types.Type.ACCELEROMETER:
       EmulatorAccelEvent accelEvent = new EmulatorAccelEvent(e.AccelerometerEvent);
       onAccelEvent(accelEvent);
       break;
     case PhoneEvent.Types.Type.ORIENTATION:
       EmulatorOrientationEvent orientationEvent =
       new EmulatorOrientationEvent(e.OrientationEvent);
       onOrientationEvent(orientationEvent);
       break;
     case PhoneEvent.Types.Type.KEY:
       EmulatorButtonEvent buttonEvent = new EmulatorButtonEvent(e.KeyEvent);
       onButtonEvent(buttonEvent);
       break;
     default:
       Debug.Log("Unsupported PhoneEvent type: " + e.Type);
       break;
       }
 }
예제 #7
0
 private void onButtonEvent(EmulatorButtonEvent e)
 {
     currentButtonEvent = e;
       if (buttonEventListenersInternal != null) {
     buttonEventListenersInternal(e);
       }
 }
    private void HandleButtonEvent(EmulatorButtonEvent buttonEvent) {
      if (buttonEvent.code == EmulatorButtonEvent.ButtonCode.kHome) {
        if (buttonEvent.down) {
          lock (state) {
            // Started the recentering gesture.
            state.recentering = true;
          }
        } else {
          // Finished the recentering gesture. Recenter controller.
          Recenter();
        }
        return;
      }

      if (buttonEvent.code != EmulatorButtonEvent.ButtonCode.kApp &&
          buttonEvent.code != EmulatorButtonEvent.ButtonCode.kClick) return;

      lock (state) {
        if (buttonEvent.code == EmulatorButtonEvent.ButtonCode.kApp) {
          state.appButtonState = buttonEvent.down;
          state.appButtonDown = buttonEvent.down;
          state.appButtonUp = !buttonEvent.down;
        } else {
          state.clickButtonState = buttonEvent.down;
          state.clickButtonDown = buttonEvent.down;
          state.clickButtonUp = !buttonEvent.down;
        }
      }
    }