Beispiel #1
0
    private void StartHandGestureLock()
    {
        bool result = false;

        if (WaveVR.Instance.IsHandGestureEnabled())
        {
            result = true;
            SetHandGestureStatus(WaveVR_Utils.HandGestureStatus.AVAILABLE);
        }

        WaveVR_Utils.HandGestureStatus status = GetHandGestureStatus();
        if (this.EnableHandGesture &&
            (
                status == WaveVR_Utils.HandGestureStatus.NOT_START ||
                status == WaveVR_Utils.HandGestureStatus.START_FAILURE
            )
            )
        {
            SetHandGestureStatus(WaveVR_Utils.HandGestureStatus.STARTING);
            result = WaveVR.Instance.StartHandGesture();
            SetHandGestureStatus(result ? WaveVR_Utils.HandGestureStatus.AVAILABLE : WaveVR_Utils.HandGestureStatus.START_FAILURE);
        }

        status = GetHandGestureStatus();
        DEBUG("StartHandGestureLock() " + result + ", status: " + status);
        WaveVR_Utils.Event.Send(WaveVR_Utils.Event.HAND_GESTURE_STATUS, status);

        if (handGestureResultCB != null)
        {
            handGestureResultCB(this, result);
            handGestureResultCB = null;
        }
    }
Beispiel #2
0
 private void GetHandGestureData(ref WVR_HandGestureData_t data)
 {
     WaveVR_Utils.HandGestureStatus status = GetHandGestureStatus();
     if (status == WaveVR_Utils.HandGestureStatus.AVAILABLE)
     {
         hasHandGestureData = WaveVR.Instance.GetHandGestureData(ref data);
     }
 }
Beispiel #3
0
 private void SetHandGestureStatus(WaveVR_Utils.HandGestureStatus status)
 {
     try
     {
         handGestureStatusRWLock.TryEnterWriteLock(2000);
         handGestureStatus = status;
     }
     catch (Exception e)
     {
         Log.e(LOG_TAG, "SetHandGestureStatus() " + e.Message, true);
         throw;
     }
     finally
     {
         handGestureStatusRWLock.ExitWriteLock();
     }
 }
Beispiel #4
0
    private void StopHandGestureLock()
    {
        if (!WaveVR.Instance.IsHandGestureEnabled())
        {
            SetHandGestureStatus(WaveVR_Utils.HandGestureStatus.NOT_START);
        }

        WaveVR_Utils.HandGestureStatus status = GetHandGestureStatus();
        if (status == WaveVR_Utils.HandGestureStatus.AVAILABLE)
        {
            DEBUG("StopHandGestureLock()");
            SetHandGestureStatus(WaveVR_Utils.HandGestureStatus.STOPING);
            WaveVR.Instance.StopHandGesture();
            SetHandGestureStatus(WaveVR_Utils.HandGestureStatus.NOT_START);
            hasHandGestureData = false;
        }

        status = GetHandGestureStatus();
        WaveVR_Utils.Event.Send(WaveVR_Utils.Event.HAND_GESTURE_STATUS, status);
    }