Commit Graph
114 Commits
Author SHA1 Message Date
Vasily 90ad7e7270 Remove extra parens 2019-02-21 18:48:53 +01:00
Vasily 9d46358309 Add -Wzero-as-null-pointer-constant and fix occurences 2019-02-21 18:48:53 +01:00
Vasily b861ae0075 Fix -Wfloat-conversion warnings 2019-02-21 18:48:53 +01:00
Vasily ec014a1e74 Add -Wdouble-promotion switch to clang/gcc compilers
It introduces a lot of ugly casts. Long term the floats should probably
be changed to doubles everywhere since we're only compiling for 64 bit
x86.
2019-02-21 18:48:53 +01:00
Vasily 7234e2ba6c Convert Linux only cast from old style 2019-02-21 18:48:53 +01:00
Vitaly acb666a142 Remove old style casts and enable warnings for them 2019-02-21 18:48:53 +01:00
Vitaly 3c59a2b2ae Move push to talk bindings to overlaycontroller
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.
2019-02-16 15:11:32 +01:00
Kung-vr de069ee42e Merge branch 'master' into alpha-kung 2019-02-10 23:56:39 +09:00
Kung-vr 55e0915fc4 Add motion page, comfort mode, rename "room" to "space" 2019-02-10 23:55:48 +09:00
username223 ca67502fc5 Remove the Accessibility Tab completely from the app (#79)
See
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/27

The Accessibility tab was made redundant with the implementation of the
new playspace/room/universe tab in
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/60

The tab inherited from the PttController class, which required changes
in order to work with the new IVRInput system. See
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/51
for more about the IVRInput system.

Removing the page now at an early state is going to make it easier to
refactor the PttController since only one class is inheriting it,
instead of two. Since the Accessibility tab is going to be removed
anyway, it makes sense to remove it now.
2019-02-03 12:33:43 -06:00
Kung-vr be19793b48 Merge branch 'master' into alpha-kung 2019-02-04 00:04:14 +09:00
Vasily a4ecb0b114 Convert images to use .qrc file, move images
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.
2019-02-02 16:09:06 +01:00
Kung-vr 95be1a4aab Prevent low vsync fps from slowing tick under old 20ms 2019-02-02 03:01:36 +09:00
Vasily 6c31fde308 Update OpenVR from 1.1.3b to 1.2.10
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.
2019-01-31 21:45:54 +01:00
Kung-vr 1d058dffcf Terminolgy Change: "Playspace" -> "Room"
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.
2019-01-29 01:11:47 +09:00
Kung-vr a39196af01 Improve readability of vsync and settings update code 2019-01-28 23:11:20 +09:00
Kung-vr 775aaa7cd0 Support new steamvr input for playspace rotate and move 2019-01-28 02:45:29 +09:00
Kung-vr de4cc5e88f Merge branch 'master' into alpha-kung 2019-01-25 00:14:33 +09:00
Vasily 667711246e Add media key bindings, update docs
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.
2019-01-21 21:19:28 +01:00
Vasily 0c71c289b9 Finalize API and add comments 2019-01-20 20:13:05 +01:00
Vasily d7e3df185b Refactor IVRInput logic into several classes
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.
2019-01-19 21:25:15 +01:00
Kung-vr 7da42f54ec Merge branch 'master' into alpha-kung 2019-01-20 01:10:27 +09:00
Vasily 8bcab9b2c0 Refactor ivrinput functions to be more generic 2019-01-19 16:42:49 +01:00
Vasily 5accfd478a Implement beta IVRInput system for testing
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.
2019-01-19 16:41:59 +01:00
Vasily edaf982149 Prefix openVrInit with m_, like other member objects 2019-01-19 16:23:17 +01:00
Vasily d8f179fdf7 Refactor OpenVR init code to separate class
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().
2019-01-18 23:28:17 +01:00
Kung-vr 53138c5fef Implemented vsync tick for event loops 2019-01-14 03:24:15 +09:00
Kung-vr 733f4f8dc0 Merge branch 'master' into alpha-kung 2019-01-13 15:53:59 +09:00
Kung-vr 48310c33a6 (TEST) Speed up event loop tick x4 (20ms -> 5ms) 2019-01-13 10:07:05 +09:00
Robin Appelman e75a4c2353 use QStandardPaths to get resource locations (#44)
* 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
2019-01-12 16:34:45 -06:00
Vasily 148acf08ef Prefix OverlayController TabController members with m_ 2019-01-11 23:04:57 +01:00
Vasily d4fbdf5877 Prefix additional member variables in OverlayController with m_ 2019-01-11 23:04:56 +01:00
Vasily 65d1c8da38 Prefix desktopMode and noSound member vars with m_
This keeps consistency with the rest of the class and reduces possible
confusion, especially when member vars and parameters have the same
name.
2019-01-11 23:04:56 +01:00
Vasily 6ce10bd2f0 Change OverlayController from singleton pattern to regular RAII
The singleton pattern was poorly implemented and didn't provide the
benefits usually associated with the singleton pattern, with all the
negatives.

Refer to this github issue:
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/29
2019-01-11 23:04:55 +01:00
Vasily a49d889ee8 Move easylogging++ include into necessary files
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.
2018-12-28 20:07:00 +01:00
Vasily 51057c1d79 Format every single file using .clang-format 2018-12-28 03:06:42 +01:00
Vasily e7e7272d52 Fix memory leaks as result of missing delete[]
The delete keyword only calls a single destructor, delete[] calls as
many as there are members in the array.
2018-12-27 14:23:54 +01:00
Vasily f4feafaa03 Add parens around statement to banish warning 2018-12-27 01:26:13 +01:00
ykeara 734581f495 merged IceWind's most recent changes 2018-11-25 20:46:29 -06:00
Robin Appelman dcf33f1384 fix mouse coordinates under linux 2018-11-09 00:58:38 +01:00
Robin Appelman 20853df594 fix building under linux 2018-11-09 00:07:32 +01:00
ykeara 51e377f4d1 Removed logging during playspace moving 2018-11-03 12:23:13 -05:00
Robin Appelman 9522e45466 'grow' chaperone bounds up when moving playspace 2018-03-27 00:08:09 +02:00
Robin Appelman d0e6dffe38 fix chaperone moving 2018-03-26 23:37:17 +02:00
Robin Appelman 5fc0cc8fcb offset all 3 axis in one go 2018-03-21 21:35:53 +01:00
Robin Appelman f9cf2880cd initial work on virtual move shortcut 2018-03-14 16:48:10 +01:00
matzman f48b583aca Reimplemented sound effects.
Added chaperone proximity warnings.
Other bugfixes and improvements.
2017-08-15 21:44:29 +02:00
matzman 22af8b9633 Added reprojection ratio to statistics page. 2017-02-11 23:54:55 +01:00
Mel Klimushyn 1aa1580a90 Move the push-to-toggle y axis adjustment from the playspace page to a new Accessibility Tools tab, packaged as a new height adjustment tool. Height offset is saved and can be set via slider. 2017-02-07 00:13:41 -08:00
matzman 6b65b66f8e Fixes an application crash when Revive is not installed. 2017-01-07 18:54:49 +01:00