Commit Graph
42 Commits
Author SHA1 Message Date
Vasily e71bc7b1b3 Add settings object API
Documentation is in `docs/specs/Settings-Object-API.md`.
2020-01-08 21:18:45 +01:00
Vasily c2dff4c863 Move internal settings headers into /internal/ dir
The additional headers are not intended to be public. To reinforce that
it is a bad idea to include these they are put into the /internal/
directory.
2019-12-10 08:28:41 +01:00
Vasily c1690056cc Add settings API and specification
The details of the API are in the `/docs/specsSettings-API.md` file.

The enums do not list all available settings, more are to be added as
the settings API replaces inline QSettings calls.
2019-12-03 08:26:10 +01:00
ykeara 05c12cd4a0 Re-Add color overlay (#311)
* 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%
2019-11-08 14:45:26 -06:00
Vasily 2a935895e9 Update Linux build docs for Arch/Ubuntu, add logging calls to Qmake
The page was not made with Arch in mind.

The currently required were tested on Manjaro, more packages may be
explicitly required due to the bare-bones nature of Arch.

Adds simple logging calls makes debugging easier.

The initial build script was basically ported over directly from
Windows. It was written because I at the time didn't understand
compiling on Linux, and the existing standards, very well.

Moving as many build components into a program specifically made for
building C++ makes everything much easier.

The old build script is still used on CI where control flow can only be
changed using environment variables.

`bear` and `clang-format` are only used on the CI, there's no reason to
include them here.
2019-08-23 15:12:58 +02:00
ykeara 746aa23207 Ssbugs, removal of re-vive, and dashboard loop tick (#277)
* minor changes

* debugging testing

* removed un-needed log calls

* moved some logic to run only when dashboard is active

* fixed linker error

* added casting

* removed revive tab

* removed stray revive reference

* removed revive from sources

* fixed misc formatting issues

* added newline
2019-08-22 13:40:48 -05:00
Vasily f958026453 Add DBUS support for media keys 2019-06-05 19:57:44 +02:00
Vasily ef124ee225 Add dummy media_keys file
This allows Linux (and MacOS) to compile correctly again. The previous
behavior was an intended middle step.
2019-05-25 18:49:42 +02:00
Vasily 9fe1f3dc50 Separate media keys from keyboard shortcuts
The media keys were only in the keyboard shortcuts file because their
implementation was the same. With Linux support incoming their
implementations are not necessarily the same.
2019-05-25 18:49:42 +02:00
Vasily 55a3830787 Fix keyboard input implementation error and replace old system 2019-05-25 18:49:42 +02:00
Vasily 6a3a58361d Add Linux keyboard_input support 2019-05-25 18:49:42 +02:00
Vasily 0c7c339e3e Add sending inputs for keyboard_input on Windows 2019-05-25 18:49:42 +02:00
Vasily d6c7b52a47 Add initial keyboard_input parser and tests
The current implementation SEGFAULTs when F characters are followed by
end of string.
2019-05-25 18:49:42 +02:00
Vasily 4ec1fbf201 Add noX11 flag to Linux compilations
This allows users that are not using X11 to still compile the
application.
2019-04-22 09:56:50 +02:00
Vasily d139c34a67 Give clang/gcc explicit path to third-party libs
Qt Creator on Linux does not recognize the previous solution. Adding the
$$PWD makes the IDE work.
2019-04-22 09:56:50 +02:00
Vasily bdf66a658b Make Linux look in current folder for OpenVR lib 2019-04-22 09:56:50 +02:00
Vasily 30ef80d19c Update X11 package on Travis, clarify qt build specs
macx is also unix, apparently meaning it's necessary to distinguish
between the two.
2019-04-22 09:56:50 +02:00
Vasily 860eca1956 Add compiling on Ubuntu for X11 funcs 2019-04-22 09:56:50 +02:00
Vasily b5d63c8166 Update required Qt version to 5.12
On Ubuntu 16.04 and 18.04 it is not possible to get Qt 5.12 from the
official repo. You will need to get it from
https://launchpad.net/~beineri/+archive/ubuntu/opt-qt-5.12.2-bionic
which places the files in /opt. This leads qmake to including the files
as non system headers, which makes them spam errors. Adding them as
-isystem headers first prevents this.
2019-04-17 20:51:34 +02:00
Vasily a631aefb05 Update whitespace in .pro file 2019-04-17 20:51:34 +02:00
ykeara 9de14e20cb merged master to brightness 2019-04-12 18:25:14 -05:00
ykeara 17b31734be fixed c++ errors 2019-04-11 19:50:12 -05:00
Vasily b53ebb699f Remove version specific header files for KeyboardInput
The headers were identical after no longer using the abstract class for
platform independence.
2019-04-04 14:01:11 +02:00
Vasily e7df60311c Convert keyboardinput from class to regular header
No consistent state is needed so it doesn't make sense for it to be a
class.
2019-04-04 14:01:11 +02:00
Vasily 82d44b4ab5 Move KeyboardInput file into keyboardinput folder 2019-04-04 14:01:11 +02:00
Vasily 760d262a57 Add page to change desktop overlay translation
The implementation is simple 3D vector scaling and addition. The
HmdMatrix34_t consists of a 3x3 rotation matrix and a 3D vector for
position.

The overlay position is only updated whenever a new overlay is changed
because we need the old overlay position in order to modify it. The
openvr call to get the position is only updated whenever you open the
menu.

A new page was created due to lack of space on the utilities page.
2019-03-31 22:31:26 +02:00
Vasily b770d869ae Add initial planning for paths API
The idea is to reduce manual string directories in the general code as
much as possible, in order to reduce typos and general weirdness.
2019-03-19 16:10:35 +01:00
Vasily a70fade089 Create DigitalAction and AnalogAction types
This errors at compile time if the wrong action is being used, instead
of at runtime.
2019-03-16 14:07:26 +01:00
ykeara 3c5cab72e5 Chaperone Tab Update (#101)
* added actions for haptics

* Haptic WIP #1 crash on haptic event

* haptics rough implemented

* fixed action names and prox sensor work-around

* added workaround to catch-all in begineer chaperone switch

* added idle work-around to alarm warning

* changed visibility slider values to reflect new API limits

* added disable chaperone

* added display Logic

* fixed visibility slider display and some saving fade distance when chaperone disabled

* fixed warnings not always working (hopefully) centralized action/input keys into ivrinput.h

* default bindings for HMD's

* chaperone input re-factor

* refactored ivrinput class

* fixed naming errors commented out prox testing

* formatting removed commented code

* format

* fixed compiler warnings

* updated documentation

* Reduced reload chaperone calls

* adjusted haptics for chaperone bounds warnings
2019-03-15 15:19:23 -05:00
Vasily d078bd88a4 Move definitions from header file to cpp file
Clang-tidy does not like definitions in header files unless they're
inline.
2019-03-10 23:12:26 +01:00
Vasily dd5ae97b62 Move ivrinput into openvr folder
Doesn't make sense for it to have it's own folder when there's an openvr
folder now.
2019-03-10 23:12:26 +01:00
Vasily 09251b04aa Move openvr_into openvr folder 2019-03-10 23:12:26 +01:00
Vasily 84be2090c8 Move setup code in main to separate file
This makes it easier to find the entry point for the program and also
moves a lot of implementation out of the main.cpp file.
2019-03-10 23:12:26 +01:00
Kung-vr 884343783c Move quaternion functions to quaternion namespace 2019-03-04 01:39:33 +09:00
Kung-vr 0f2f956b2e Manual Merge Cleanup 2019-03-03 01:02:53 +09:00
Vasily 34204d2441 Add -Wnon-virtual-dtor and resolve issues
The IPolicyConfig file is a third party file and since it describes a
third party API we can't make changes to it. Adding it via the system
includes disables warnings on most compilers.
2019-02-21 18:48:53 +01:00
Vasily 5c70aba098 Revert easylogging++ include and attempt changing easylogging++.cc 2019-02-21 18:48:53 +01:00
Vasily 940ad48923 Attempt -i switch in order to ignore warnings in file 2019-02-21 18:48:53 +01:00
Vasily 9019270df8 Refine compiler system includes for different platforms
MSVC seems to be the only platform that doesn't have a non-experimental
way to include files that don't give warnings.
2019-02-21 18:48:53 +01:00
Vasily 1b6cc47238 Add .. to linux include paths 2019-02-21 18:48:53 +01:00
Vasily 4ed6e80645 Include third party headers system headers for clang/g++ 2019-02-21 18:48:53 +01:00
Vasily ab25124d7b Move source files and resources file into separate .pri files 2019-02-21 18:48:53 +01:00