This is a slight adjustment to the battery overlay position to prevent clipping with the new Vive Tracker 3.0 higher face and closer prongs. These changes shouldn't degrade functionality on other trackers.
Previous way of controlling when controllers were run was split among
the different controllers, meaning that third parties would require
knowledge of internal state of controllers in order to be on the same
update schedule as them.
This refactor moves the logic into a seperate class.
Additionally, it also stops the use of the `adjustUpdateRate` function
on all tab controllers, since it broke the prime-number-ability of
less collisions.
The old OpenVR overlays did not function for unknown reasons, and it was
not possible to get them to work.
With this a white overlay with ALARM ACTIVATED will be shown for 3 seconds.
It's not pretty, but it effectively communicates that an alarm has been
activated.
This fixes
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/417
* fixed Chaperone toggle, toggle state on launch
* made update rates based on variable frame rate assuming 90 default
* added overlay color back in
* fixed opacity value not synching
* updated to ovr 1.8.19
* fixed license issue
* rolled back ovr update
* fixed overlay toggle state, formatting, and clamped max opacity to .85%
These are used to add support for vrc debug commands which I personally wanted to add. Because it's a narrow use case the must be enabled manually by adding vrcDebug = true to [utilitiesSettings] in the OpenVRAdvancedSettings.ini file
* changed color overlay to use gain values instead of overlay
* moved SS/Motion smoothing, and filter to video tab
* began refactor of steamVR qml page
* added misc toggles to steamvr tab
* added imu fallback and DND, and some qml formatting
* added Camera Settings to SteamVR page
* changed formatting to minimize height
* added video profiles cleaned up steamvr controller
* delta comparison change
* added profiles for video
* fixed display bug in colorgroupbox and removed frivoulous saves
* removed commented code
* added custom keybind buttons
AppVeyor automatically updated to LLVM 8 while everything else was on 7.
It is not possible to downgrade to LLVM 7 on AppVeyor, so we'll update
everything else to LLVM 8.
Them being in the overlay controller required them to be static, which
forces the compiler to give them a memory location at compile time. They
also don't really fit into the overlaycontroller.
The old version waited for a set amount of time (2 seconds) before
checking and then exiting. The new logic checks every second for up to 7
seconds. This should deal with variances in startup time across
machines. On my machine the desktop overlay seems to be initialized
after 2-3 seconds.
The 2 seconds is arbitrarily chosen. The problem seems to be that
Valve's own overlays are not being initialized before custom overlays,
leading to the Desktop overlay sometimes not being present when our
overlay initializes.
The second if statement inside the first one checking a second time is
definitely a little disgusting, but for now it gets the job done.
The 4.0 default was arbitrarily chosen by whoever decided to initialize
the variable in the class.
All images have been moved to the /img/ folder in order to fully
separate qml from images. The .qrc file allows qml to use the images by
appending the qrc:/ prefix before the abstract path to the image.
Note that the .qrc file is also check at compile time, which further
enhances the confidence the lack of errors.
Some of the images are not used in the QML, but instead directly passed
through to the OpenVR API. These have not been added to the .qrc file.
Replace magic numbers with constants and centralize settings update counters. Rename actions manifest localization from "en" to "en_US" (Thanks Ykeara)
* use QStandardPaths to get resource locations
While this shouldn't change behaviour for windows, it allows installing the resource files seperate from the binary on unix systems
* initialize battery overlay handles to 0
The sendKeyboardBackspace function was used with a non-const parameter
throughout the entire inheritance hierachy. Const has been added to
every parameter for the reasons you add const.
Parameters with the same name as class members are ripe for introducing
bugs. The fact that the "this->" syntax is optional creates confusion
for maintaining programmers who can only guess at the intention.