* Improve reset function and velocity timing
* fixed PTT checkbox error
* Rewrite of chaperone adjust. Make drift impossible
* Formatting
* fixed mic mute on exit
* format
* Clean up interactions with new chaperone adjust
* Remove commented code
* Implement height toggle action and ui
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 shutdown code did not correctly exit but instead just
continuously called the QApplication notify function until it
SEGFAULTed. This led to crashes whenever SteamVR was shut down. Users
with Windows Error Reporting turned on would get a 100+ MB crashdump
file along with increased shutdown time for SteamVR.
For clarity the shutdown functions should probably be collected in a
single function.
The old system used the old OpenVR input system which is
incompatible with the new IVRInput.
This change broke the AccessbilityTabController, but
that is to be removed because the functionality can be
found elsewhere.
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.
The openvr/bin/linux64 directory also contained a file called empty.dir.
This has been removed because it was an empty file.
VREvent_Scroll has been renamed to VREvent_ScrollSmooth, and not
VREvent_ScrollDescrete because the second one will keep scrolling after
having let go of the scroll (tested on Vive controller). This feels
weird when done on a Vive controller and so the first option was chosen.
The first option also feels more like the old system.
Even though the version jump is weird this is the next release.
Valve's official terminology are "Room Setup" and "Tracking Universe". Changed our usage of "Playspace" to "Room" for clarity with the upcoming Room-Turn feature and existing Room-Drag feature when compared to nomenclature for other tools that exits out there.
Also slight clean up in readability of movecentertab's action functions.
All bindings are disabled by default. This is to prevent confusing
behaviour from users who do not know about the new bindings. Forcing
users to manually set up their bindings will also enable them to play
around with the SteamVR bindings interface, which allows for much more
versatile binding options that our current offerings.
All actions are curently in main action set. If the selection of
bindings was greatly expanded it could be beneficial to encapsulate the
options more. The current code is more intended as a proof of concept
until our full binding needs have been uncovered.
The processInputBindings function should probably also be split into
several functions of related bindings, as the amount of bindings grows.
Keeping the action name, handle and type together allows for better
error messages and limited run time type checking, to ensure that the
wrong function isn't called.
It is necessary to initialize the manifest in a class, since the Actions
depend on this being set.
Several files have been moved around to be more consistent.
In order to test new system:
Build and deploy application.
Copy both files from IVRInput/ dir into the bin/win64 folder.
Change const std::string m_actionManifestPath in steamivrinput.h to be
directly to your action_manifest.json file.
Run and turn on a Vive controller. Press the menu button. If logs say
"NEXT SONG SET!" it works.
The OpenVR init code is currently being run in the OverlayController
constructor. Member objects that are initialized before the
OverlayController (ideally all of them) can't use OpenVR APIs before the
first line of the OverlayController constructor. Implementing the OpenVR
Init code as a class means that it is able to initialize before all the
other objects and allow them to use OpenVR APIs in their constructors.
The class has been placed in a folder called "overlaycontroller" to
signify that it should only be used by the OverlayController.
openvr_init.h uses #pragma once despite it being unofficial since it is
supported on all modern compilers.
The copy constructor, copy assignment operator, move constructor and
move assignment operator have been explicitly deleted in order to make
sure nobody tries to use the object in an unintended way, and to
document that these functions should not be automatically created.
The version error messages have been replaced with a single lambda,
since they were all identical.
The version error text should maybe tell the user to update Advanced
Settings instead of OpenVR, since Advanced Settings contains the version
strings in the binary.
No other exit functions were documented on the official docs besides
VR_Shutdown().
* 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
logging.h previously had logic to enable debug logging even on release
builds. This logic was moved to the QMAKE file, hence the logging.h file
is no longer necessary.