/// <summary> /// NEVER MAKE CHANGES TO VR-CONNECTION FROM THIS THREAD /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void DoWork(object sender, DoWorkEventArgs e) { while (StopFlag == false) { if (VR.GetHmdYaw(ref HmdYaw)) { Worker.ReportProgress(0, null); } Thread.Sleep(PollInterval); } }
/// <summary> /// NEVER MAKE CHANGES TO VR-CONNECTION FROM THIS THREAD /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void DoWork(object sender, DoWorkEventArgs e) { while (StopFlag == false) { if (VR.GetHmdYaw(ref HmdYaw)) { if (HmdYaw == PreviousYaw) { if (SameYawCounter < SameYawThreshold) { SameYawCounter++; } else { Worker.ReportProgress(1, EventArgs.Empty); } } else { Worker.ReportProgress(0, EventArgs.Empty); SameYawCounter = 0; } PreviousYaw = HmdYaw; InvalidYawCounter = 0; } else { if (InvalidYawCounter < SameYawThreshold) { InvalidYawCounter++; } else { Worker.ReportProgress(2, EventArgs.Empty); } } Thread.Sleep(PollInterval); } }