private void VrSet_SensorDataUpdate(object sender, PSVRSensorEventArgs e) { if (BMI055Integrator.calibrating && blinkTimer == null) { blinkTimer = new System.Threading.Timer(blink, null, 150, 150); } else if (!BMI055Integrator.calibrating && blinkTimer != null) { blinkTimer.Change(Timeout.Infinite, Timeout.Infinite); blinkTimer = null; PSVRController.LedsDefault(); } if (cnt++ > 10) { cnt = 0; tapper.Feed(e.SensorData); } lock (locker) { if (broadcaster != null) { broadcaster.Broadcast(e.SensorData); } } }
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { if (!exit) { this.Hide(); e.Cancel = true; return; } PSVRController.DeviceDisconnected(); try { if (hookedEvents != null) { hookedEvents.KeyDown -= HookedEvents_KeyDown; hookedEvents.Dispose(); } } catch { } trayIcon.Visible = false; if (CurrentOS.IsLinux) { Environment.Exit(0); } }
private void shellControl1_CommandEntered(object sender, CommandEnteredEventArgs e) { try { if (string.IsNullOrWhiteSpace(e.Command)) { return; } if (e.Command.Length % 2 != 0) { shellControl1.WriteLine("HEX string does not respect byte boundary"); return; } byte[] data = StringToByteArray(e.Command); var res = PSVRController.Raw(data); if (!res) { shellControl1.WriteLine("Report NOT sent"); } else { shellControl1.WriteLine("Report sent"); } } catch { shellControl1.WriteLine("Malformed HEX string"); } }
private void detectTimer_Tick(object sender, EventArgs e) { try { detectTimer.Enabled = false; var vrSet = new PSVR(Settings.Instance.EnableUDPBroadcast); PSVRController.DeviceConnected(vrSet); vrSet.SensorDataUpdate += VrSet_SensorDataUpdate; vrSet.Removed += VrSet_Removed; Task.Run(() => { PSVRController.HeadsetOn(); PSVRController.EnableVRMode(); Thread.Sleep(1500); PSVRController.EnableCinematicMode(); Thread.Sleep(1500); PSVRController.ApplyCinematicSettings(); }); lblStatus.Text = "VR set found"; grpFunctions.Enabled = true; grpCinematic.Enabled = true; grpLeds.Enabled = true; } catch (Exception ex) { detectTimer.Enabled = true; } }
private void detectTimer_Tick(object sender, EventArgs e) { try { detectTimer.Enabled = false; var vrSet = new PSVR(Settings.Instance.EnableUDPBroadcast); PSVRController.DeviceConnected(vrSet); vrSet.SensorDataUpdate += VrSet_SensorDataUpdate; vrSet.Removed += VrSet_Removed; vrSet.INReport += VrSet_CommandResponse; ThreadPool.QueueUserWorkItem((a) => { PSVRController.RequestDeviceInfo(); PSVRController.HeadsetOn(); PSVRController.EnableVRMode(); Thread.Sleep(1500); PSVRController.EnableCinematicMode(); Thread.Sleep(1500); PSVRController.ApplyCinematicSettings(); }); lblStatus.Text = "VR set found"; grpFunctions.Enabled = true; grpCinematic.Enabled = true; grpLeds.Enabled = true; } catch { detectTimer.Enabled = true; } }
private void button3_Click(object sender, EventArgs e) { Task.Run(async() => { PSVRController.EnableVRTracking(); await Task.Delay(1500); PSVRController.ApplyLedSettings(); }); }
private void button15_Click(object sender, EventArgs e) { Settings set = Settings.Instance; set.ScreenDistance = (byte)trkDistance.Value; set.ScreenSize = (byte)trkSize.Value; set.Brightness = (byte)trkBrightness.Value; Settings.SaveSettings(); PSVRController.ApplyCinematicSettings(); }
void blink(object state) { ledsOn = !ledsOn; if (ledsOn) { PSVRController.LedsOn(); } else { PSVRController.LedsOff(); } }
private void HookedEvents_KeyDown(object sender, KeyEventArgs e) { try { var settings = Settings.Instance; if (settings.ControlModifier != e.Control || settings.ShiftModifier != e.Shift || settings.AltModifier != e.Alt) { return; } if (e.KeyCode == settings.HeadSetOn) { PSVRController.HeadsetOn(); e.Handled = true; } else if (e.KeyCode == settings.HeadSetOff) { PSVRController.HeadsetOff(); e.Handled = true; } else if (e.KeyCode == settings.EnableVRAndTracking) { PSVRController.EnableVRTracking(); e.Handled = true; } else if (e.KeyCode == settings.EnableVR) { PSVRController.EnableVRMode(); e.Handled = true; } else if (e.KeyCode == settings.EnableTheater) { PSVRController.EnableCinematicMode(); e.Handled = true; } else if (e.KeyCode == settings.Recenter) { PSVRController.Recenter(); e.Handled = true; } else if (e.KeyCode == settings.Shutdown) { PSVRController.Shutdown(); e.Handled = true; } } catch { } }
private void button7_Click(object sender, EventArgs e) { PSVRController.Shutdown(); }
private void button6_Click(object sender, EventArgs e) { PSVRController.Recenter(); }
private void button5_Click(object sender, EventArgs e) { PSVRController.EnableCinematicMode(); }
private void button4_Click(object sender, EventArgs e) { PSVRController.EnableVRMode(); }
private void button2_Click(object sender, EventArgs e) { PSVRController.HeadsetOff(); }
private void button17_Click(object sender, EventArgs e) { LedMask mask = LedMask.None; switch (cbLeds.SelectedIndex) { case 0: Settings.Instance.LedAIntensity = (byte)trkLedIntensity.Value; mask = LedMask.LedA; break; case 1: Settings.Instance.LedBIntensity = (byte)trkLedIntensity.Value; mask = LedMask.LedB; break; case 2: Settings.Instance.LedCIntensity = (byte)trkLedIntensity.Value; mask = LedMask.LedC; break; case 3: Settings.Instance.LedDIntensity = (byte)trkLedIntensity.Value; mask = LedMask.LedD; break; case 4: Settings.Instance.LedEIntensity = (byte)trkLedIntensity.Value; mask = LedMask.LedE; break; case 5: Settings.Instance.LedFIntensity = (byte)trkLedIntensity.Value; mask = LedMask.LedF; break; case 6: Settings.Instance.LedGIntensity = (byte)trkLedIntensity.Value; mask = LedMask.LedG; break; case 7: Settings.Instance.LedHIntensity = (byte)trkLedIntensity.Value; mask = LedMask.LedH; break; case 8: Settings.Instance.LedIIntensity = (byte)trkLedIntensity.Value; mask = LedMask.LedI; break; case 9: Settings.Instance.LedAIntensity = Settings.Instance.LedBIntensity = Settings.Instance.LedCIntensity = Settings.Instance.LedDIntensity = Settings.Instance.LedEIntensity = Settings.Instance.LedFIntensity = Settings.Instance.LedGIntensity = Settings.Instance.LedHIntensity = Settings.Instance.LedIIntensity = (byte)trkLedIntensity.Value; mask = LedMask.All; break; } if (mask != LedMask.None) { Settings.SaveSettings(); PSVRController.ApplyLedSettings(); } }
private void ProcessCommand(RemoteCommand cmd) { switch (cmd.Command) { case "HeadsetOn": PSVRController.HeadsetOn(); break; case "HeadsetOff": PSVRController.HeadsetOff(); break; case "EnableVRTracking": PSVRController.EnableVRTracking(); break; case "EnableVRMode": PSVRController.EnableVRMode(); break; case "EnableCinematicMode": PSVRController.EnableCinematicMode(); break; case "Recenter": PSVRController.Recenter(); break; case "Shutdown": PSVRController.Shutdown(); break; case "CinematicSettings": CinematicSettingsCommand ccmd = cmd as CinematicSettingsCommand; if (ccmd != null) { bool apply = false; if (ccmd.Brightness != null && ccmd.Brightness.HasValue) { var bright = ccmd.Brightness.Value; if (bright > 32) { return; } Settings.Instance.Brightness = bright; apply = true; } if (ccmd.Size != null && ccmd.Size.HasValue) { var siz = ccmd.Size.Value + 26; if (siz > 80) { Settings.ReadSettings(); return; } Settings.Instance.ScreenSize = (byte)siz; apply = true; } if (ccmd.Distance != null && ccmd.Distance.HasValue) { var dist = ccmd.Distance.Value + 2; if (dist > 50) { Settings.ReadSettings(); return; } Settings.Instance.ScreenDistance = (byte)dist; apply = true; } if (apply) { PSVRController.ApplyCinematicSettings(); } } break; case "LedSettings": LEDSettingsCommand lcmd = cmd as LEDSettingsCommand; if (lcmd != null) { bool apply = false; if (lcmd.LedA != null && lcmd.LedA.HasValue) { if (lcmd.LedA.Value > 100) { return; } Settings.Instance.LedAIntensity = lcmd.LedA.Value; apply = true; } if (lcmd.LedB != null && lcmd.LedB.HasValue) { if (lcmd.LedB.Value > 100) { Settings.ReadSettings(); return; } Settings.Instance.LedBIntensity = lcmd.LedB.Value; apply = true; } if (lcmd.LedC != null && lcmd.LedC.HasValue) { if (lcmd.LedC.Value > 100) { Settings.ReadSettings(); return; } Settings.Instance.LedCIntensity = lcmd.LedC.Value; apply = true; } if (lcmd.LedD != null && lcmd.LedD.HasValue) { if (lcmd.LedD.Value > 100) { Settings.ReadSettings(); return; } Settings.Instance.LedDIntensity = lcmd.LedD.Value; apply = true; } if (lcmd.LedE != null && lcmd.LedE.HasValue) { if (lcmd.LedE.Value > 100) { Settings.ReadSettings(); return; } Settings.Instance.LedEIntensity = lcmd.LedE.Value; apply = true; } if (lcmd.LedF != null && lcmd.LedF.HasValue) { if (lcmd.LedF.Value > 100) { Settings.ReadSettings(); return; } Settings.Instance.LedFIntensity = lcmd.LedF.Value; apply = true; } if (lcmd.LedG != null && lcmd.LedG.HasValue) { if (lcmd.LedG.Value > 100) { Settings.ReadSettings(); return; } Settings.Instance.LedGIntensity = lcmd.LedG.Value; apply = true; } if (lcmd.LedH != null && lcmd.LedH.HasValue) { if (lcmd.LedH.Value > 100) { Settings.ReadSettings(); return; } Settings.Instance.LedHIntensity = lcmd.LedH.Value; apply = true; } if (lcmd.LedI != null && lcmd.LedI.HasValue) { if (lcmd.LedI.Value > 100) { Settings.ReadSettings(); return; } Settings.Instance.LedIIntensity = lcmd.LedI.Value; apply = true; } if (apply) { PSVRController.ApplyLedSettings(); } } break; case "StoreSettings": Settings.SaveSettings(); break; case "DiscardSettings": Settings.ReadSettings(); break; } }
private void Tapper_Tapped(object sender, EventArgs e) { PSVRController.Recenter(); }