Commit Graph
674 Commits
Author SHA1 Message Date
Vasily 083e85cf59 Refactor profile buttons and popups
The popups have been moved inside the scope of the ProfileButtons. Since
the popups open based on the location of their parents, they are
currently opening underneath where they used to open.

Since the profiles and ptt settings do not work anyway, this is seen as
acceptable.
2019-02-01 20:15:51 +01:00
Vasily e0bff66cec Move other PTT buttons into the PttButtons component
The other components were not organized together with the remaining Ptt
buttons. This creates unnecessary separation between related buttons.
2019-02-01 19:49:12 +01:00
Vasily bcd14cdddf Remove unneeded property from AudioNewProfileDialog
The line was an invalid alias, crashing the application on launch.
2019-02-01 19:40:26 +01:00
Vasily b810be3eb8 Refactor PTT buttons into separate file
The PttControllerConfigDialog was not used by anything else, hence it
makes sense to move it into a more limited scope.

The PttControllerConfigDialog file itself is only used by AudioPage and
AccessibilityPage. Since the AccessibilityPage is going to be removed
the PttControllerConfigDialog should be moved into the audio_page
folder.
2019-02-01 19:28:18 +01:00
Vasily 394482e63a Fix regression in profile popups
Without the public ids on the pop ups other buttons that used the
buttons did not work.
2019-02-01 19:16:18 +01:00
Vasily fc06c46144 Refactor audio proximity enable button into separate file 2019-02-01 19:08:26 +01:00
Kung-vr 95be1a4aab Prevent low vsync fps from slowing tick under old 20ms 2019-02-02 03:01:36 +09:00
Vasily a29e6baaf7 Remove id tags from refactored components
The ids are not needed within the AudioPage, since everything has been
encapsulated inside the components.
2019-02-01 16:38:49 +01:00
Vasily 5dc28972ae Refactor microphone volume slider into separate file, clean up AudioPage
An if statement hadn't been transferred to the mirrorVolume slider,
hence it was moved now.
2019-02-01 16:38:49 +01:00
Vasily 5aa5d84345 Indent PTT controls on AudioPage
The PTT controls were grouped in a ColumnLayout with the microphone
device and volume controls. Grouping the microphone controls together
mirrors what is done with the mirror device controls.
2019-02-01 16:38:48 +01:00
Vasily 86599fbd29 Refactor audioMicNameCombo 2019-02-01 16:38:47 +01:00
Vasily c36e9cd168 Move mirror slider into own file
The mirror selector is a sub part of the volume slider. This could be
changed in the future to have the slider be a top level component that
contains both selector and slider.
2019-02-01 16:38:46 +01:00
Vasily 56d866a236 Refactor mirrorAudio dropdown and move logic into
The logic is better abstracted away inside the class.
2019-02-01 16:38:45 +01:00
Vasily cd4a6d6994 Refactor audio device selector into separate file
For now the way to go is to have the mirror device and audio device
selectors as different components instead of trying to inherit from a
single component and filling in the necessary function calls.

This is because some function calls are nested inside other components
and would be very messy. Perhaps in future commits the selectors will
inherit from a single parent.
2019-02-01 16:38:44 +01:00
Vasily b6ffa8d30d Move dialog boxes into separate folder
Setting the default audio profile has also been moved into the separate
dialog box. This should not change anything and no bugs were found in
testing, however I have no idea how objects in QML/C++ are initialized
or if our current codebase is created with this in mind.
2019-02-01 16:38:44 +01:00
Vasily 33768028b4 Move AudioPage.qml into separate directory
This encapsulates the page and separates it and the files it uses from
the rest of the application.
2019-02-01 16:38:42 +01: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 e17cec1f27 Call movecenter reset on chaperone tab flip orientation (#75) 2019-01-31 13:57:11 -06:00
Kung-vr ffdb47fcb6 Clarified invalid quaternion checking
Note: Considered NaN, however we use a placeholder invalid number rather than NaN because NaN can have unintuitive behavior when comparing as boolean.
2019-01-31 03:54:59 +09:00
Kung-vr 854681dcdf static constexpr to constexpr changes
static constexpr to constexpr changes for update counters and invalid quaternions and radians conversion
2019-01-31 03:37:15 +09:00
Kung-vr 31696863be Replace magic numbers, fix bindings localization
Replace magic numbers with constants and centralize settings update counters. Rename actions manifest localization from "en" to "en_US" (Thanks Ykeara)
2019-01-30 15:11:11 +09: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 d529b21f3e Clean up before PR to master 2019-01-28 03:31:52 +09:00
Kung-vr cca61b3ee7 Merge branch 'master' into alpha-kung 2019-01-28 03:14:42 +09:00
Kung-vr f60be85a58 Merge branch 'master' into utilities-qml 2019-01-28 02:55:30 +09:00
Kung-vr 3e9ec4a48d Merge branch 'master' into alpha-kung 2019-01-28 02:53:24 +09:00
Kung-vr 775aaa7cd0 Support new steamvr input for playspace rotate and move 2019-01-28 02:45:29 +09:00
Vasily 70e7556de8 Move components into their own directories
This prevents the import "utilities_page" from also importing the
subcomponents. They should not be in the global namespace.
2019-01-27 10:29:57 +01:00
Bryan Donlan ac0f957488 Fix NULL dereference in OnDefaultDeviceChanged
When the vive pro wireless adapter loses connection, its audio devices are
removed, causing an OnDefaultDeviceChanged event to be issued for each
such device that was previously set as the default. However, if no other
device is available for the role that was disconnected (e.g. if the Vive
Pro was providing the only system microphone), then pwstrDefaultDeviceId
is NULL.

In this case, we would invoke getDevice on the NULL device ID, then
attempt to print the default device name in the debug logging path; this
NULL dereference would cause AdvancedSettings to crash.

This change simply fixes the logging code to not attempt to print the
new default device name when it is NULL.
2019-01-26 18:18:45 -08:00
Vasily 629c4e2edb Separate individual components into qml files
This removes the massively indented logic in the previous version.
Notice that individual components will still be imported with an
import "utilities_page". Therefore anything except UtilitiesPage.qml
should be in a separate folder.
2019-01-26 20:29:14 +01:00
Vasily a94c37b858 Move UtilitiesPage and media_keys into separate folder
The QML at the moment is a giant mess. Moving pages into individual
folders and properly abstracting the sub components of the pages will
allow for much easier development and better error messages.
Additionally it will prevent polluting the global namespace. Really, all
the reasons for avoiding globally available values and using
abstractions in regular programming also come into play here.
2019-01-26 18:32:29 +01:00
Kung-vr de4cc5e88f Merge branch 'master' into alpha-kung 2019-01-25 00:14:33 +09:00
Vasily 0a49c7a717 Add Alt+Enter button to Utilities page, update Win Alt+Tab func
Requested in this reddit post:
https://www.reddit.com/r/Vive/comments/agnvux/advanced_settings_280_motion_smoothing_audio_and/ee7muqo/

Use case is toggling full screen mode on applications.

The Alt+Tab function has been updated with a constexpr var that reduces
duplication in the function calls and makes the keys even more explicit.
2019-01-23 18:49:10 +01:00
Kung-vr d2b7935983 Fix rotation counter during rotation drag (test build) 2019-01-24 01:08:41 +09:00
Kung-vr 499a0e3ede Fix rotation counter stats during rotation drag 2019-01-24 00:58:15 +09:00
username223 4d835c7d31 Merge branch 'master' into new-input-api 2019-01-22 19:21:05 +01:00
Kung-vr ec0d35bf0d Merge branch 'master' into alpha-kung 2019-01-22 14:00:22 +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
ykeara b3a9e5ea8d fixed default audio profile display (#58)
* fixed default audio profile display

* fixed formatting
2019-01-21 14:04:06 -06:00
Vasily 3a62ec89be Add comment to openvr_init.cpp 2019-01-20 22:54:30 +01:00
Vasily 4152333f20 Update documentation to reflect new bindings interface 2019-01-20 22:34:20 +01:00
Vasily 706f21ebea Add ability to change IVRInput bindings, move openvr_init into namespace
openvr_init was not in a namespace. This led to it being globally
available. This was not intended.

The solution to overlays not showing up in the bindings interface was
chosen for ease of implementation and relative ease of end user use.
The Kinect2VR project are using a solution where there is a button to
shutdown background mode and use scene mode temporarily. This did not
work for our project for unknown reasons. The IVRInput system would
become non responsive and spam error messages when VR was shut down.
Implementation is here:
https://github.com/sharkyh20/KinectToVR/blob/12aeb8b33ab20eeb588c72c5d5186dd4d87784d7/SFMLProject/inc/GUIHandler.h#L700

The command line flag will be represented as a .bat file for the end
user, like desktop mode and restarting the VR server.

When Valve solves the issue of overlays not showing up in the bindings
menu, the entire function can essentially be deleted.
Official issues here:
https://github.com/ValveSoftware/openvr/issues/914
https://github.com/ValveSoftware/openvr/issues/926
https://github.com/ValveSoftware/openvr/issues/879

It is also possible to make the app appear by changing the
C:\Program Files (x86)\Steam\config\vrappconfig\*.vrappconfig file for
the project to have a "last_launch_time" of something greater than zero.
From experimentation it seems that there's a cutoff time around 2 weeks
before the current time. Setting it to the day before seems to be a good bet.
(In unix time).
2019-01-20 22:05:21 +01:00
Vasily 0c71c289b9 Finalize API and add comments 2019-01-20 20:13:05 +01:00
Vasily 01b0070e66 Rename steamivrinput.h/.cpp to ivrinput.h/.cpp
The name is shorter and identical to the folder name, emphasizing that
this is the main file in this module.
2019-01-19 21:32:12 +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 1585322c9d Move action manifest files to src/package_files
Putting them in the new directory makes the automatically get included
for deployment.

legacy_actions.json was not a good name for the file, since it actually
contained default bindings for Vive controllers. vive_defaults.json
better explains what it is.
2019-01-19 16:42:03 +01:00
Robin Appelman 586ee558c4 determine vrinput manifest path dynamically 2019-01-19 16:42:02 +01:00