* fix recenter behavior
* temp fix issues
* increment version to dev
* Fix autosave profile initialization, fix openxr movement up/down, allow using space fix in openxr state
* adjusted logging to reduce spam
* removed unused variable
* added delay to openxr space drag to improve performance and stop ovr api calls
* add logging for debugging issues
* improved log verbage
* fix wrong fn call error
* typemismatch error fix
* add default frame bindings
* openXR space drag skip frames increased 3->5, performance still not great
* remove chaperone universe checking completely, we shouldn't need any features
* fix compiler warnings
* update version string to rel
* fix chaperone moving on recenter, fix log spam
* increment version and back to dev
* clarify log
* change to release
* add nlhomann json header
* add get scene app fn
* add get current binding and related logic
* add save binding file to settings folder
* apply binding fn added fixed uid bug
* add button logic to QML, add enable Bind Setting
* add finding logic for all custom bind
* fix minor qml issues
* fix get controllername bug, fix bug with save bind
* fix regex issue
* change webrequest for selectconfig
* change to properly urlify path to send
* fix race condition web requests
* change steamvr tab qml formatting
* change color scheme
* change colors of icons to text color
* change bind qml better for better ux
* add possible workaround for space drag issues
* add deact color to pushbutton
* increment version
* adjust button size in movecenter
* move nlhomann json
* fix PKGBUILD to include missing dependency (#606) (#613)
It turns out qt5-websockets needs to be included for a successful build.
Co-authored-by: James R <71466513+ColdIce1605@users.noreply.github.com>
* fix warning
* improved logging messages around perapp bindings
* improve getsceneappID logging
* add HMD based controller Finding
* improve logging controller name
* change logging around initial chaperone calibration
* increment version
* improve logging/error handling around sceneappid failures
* added fallback for getting scene app by pid
* update version string
* update documentation
Co-authored-by: James R <71466513+ColdIce1605@users.noreply.github.com>
* Crash Recovery Defaults to Off, add option to use space drag w/ uncalibrated playspace
* increment version 5.3.3
* Feat/apply offsets binding (#576)
* add apply offsets steamvr input
* add new binding to Readme
Co-authored-by: TheMrGong <gongora656@gmail.com>
* increment version 5.4.0
* added LH Console Interface class, WIP TX/RX list via lh console
* switch over to property based dongle information
* add ovr system wrapper
* add use of parameter to avoid warning as error
* openXR fix, and Change Display State of Chaperone Disabled
* update text
* format files
* clang 9.0.0 format
* add documentation update
* remove windows header include
* remove filesystem header
* fix uncal motion switching issue
Co-authored-by: TheMrGong <gongora656@gmail.com>
* added two new keyboard press actions
* added todos to overlay controller for new actions
* added settings for keyboard press and default to f10
* added logic, fixed default value
* added action alias
* fixed center marker rotation count
* updated version strings
* fixed Trigger Condition
* removed literal limitation (character input)
* updated version string
* fixed white space issues
* updated documentation/screenshots, let seated-recenter show in all modes, fixed default value of brigthness
* fixed formatting
* changed PTT to System
* added comma to documentation
Initial implementation of Auto-Turn
Auto-turn leverages Space Turn automatically whenever you reach a configured distance from your chaperone boundary. Turn direction is in order of precedence:
1. Away from a corner where you're already touching one wall. This is to avoid being turned to face a wall, which we pretty much never want. If 'use corner angle' is enabled, it'll turn the angle of the corner, otherwise it'll turn the angle of your headset to the wall you encountered.
2. In whichever direction will start you unwinding your cord. If your rotations is greater than 'cord detangling rotations' and your angle to the wall is less than 'min detangling angle' it'll turn you such that the thing you're walking towards is directly along a wall, in the direction which will begin unwinding your cord.
3. In the closest angle to the wall. This too will put whatever you're walking towards directly along a wall, so you can walk the maximum distance to it.
- If Smooth turn is checked, it'll turn at a constant (configurable) rate until the world is aligned with the new angle, otherwise it'll snap to the new direction instantly.
- Activation distance is the distance from your chaperone at which auto-turn starts, and deactivation distance is the minimum distance (+ the activation distance) at which it'll be able to be activated again, to avoid turning twice at once.
Redirected walking tries to gently guide you away from your playspace boundaries by tweaking the world's angle at smaller increments than your brain is capable of noticing. While most playspaces won't be big enough to allow this to give you a true 'infinite walk' experience, it can give the perception of your playspace being ever so slightly bigger by making you walk in a slight arc in real life while walking forward in VR.
- Redirected walking is independent from Auto-turn and can be activated on its own. At both the 'slight' and 'imperceptable' radii, the turning speed is incredibly minimal. When walking along one wall of your chaperone to another, you should notice the far corner of your playspace (relative to the world) drifting ever so slightly away from you. In normal circumstances at the lowest settings this shouldn't be noticable.
Co-authored-by: feilen <feilen1000@gmail.com>
* Initial implementation of Infinite Walk
* Code cleanup and abstraction, use nearest corner instead of nearest wall to determine turn direction
* Run clang-format
* Turn relative to the last wall if we run into adjacent walls, otherwise turn at easiest angle
* Limit maximum turns (just refuse to turn for now), only turn on shared corners if going the same direction
* Improve same-corner
* get rid of LastDirectionLeft
* WIP: cord untangling hint
* Try to automatically untangle cord, don't rotate if we encounter a wall behind us
* Incorrect offset for walls
* optimize if hmd inactive
* Cleanup/clarify angles
* (probably?) solve rare segfault
* Adjust the defaults and fix a bug with blocking reverse turns
* Implement smooth turn, fix a bug with shared-corners that would cause it to turn the wrong way
* actually really fix shared corner bug
vect[i + 1 % vect.size()] was somehow evaluating to vect[i + (1 %
vect.size())]
* Move configurables for autoturn to .h to make clearer what's configurable
* WIP: true redirected walking
* First pass optimization/cleanup
* Second pass cleanup/optimize
* Missing clang-format
* Somewhat ugly: Optionally turn the exact angle of the corner when using shared corner turns
* added rotation tab controller in progress
* cleaned up chaperone controller/ finished settings/rotationtab
* did first 4 settings qml, and main qml setup
* initial working build, not all settings UI done
* merging master into redirected walking. (#387)
* Update OVR to 1.10.30 (#379)
* updated to ovr 1.10.30
* fixed updated showoverlaykeyboard call
* fixed keyboard location
* Updated Manifest (#380)
* updated to ovr 1.10.30
* fixed updated showoverlaykeyboard call
* fixed keyboard location
* removed un-necessary matrix, updated app key and manifest
* fixed formatting
* Fix push to mute icon not being used when PTM enabled
* added touch default bindings (#385)
travis CI down/broken?
Co-authored-by: Vasily <vautkin@teknik.io>
* added action, and additional settings
* fixed various bugs added turn speed and mode
* fixed conversion error for turn speed
* added redirected walking options
* formatting
* formatting fixing
* removed old comments
* changed logs to debug and some wording changes
* changed UI layout
* added space turn to rotation page
* added icon, fixed autoturn to autoTurn, fixed conversion to be in qml vs set
* Update src/res/qml/RootPage.qml
yep XD
Co-Authored-By: Kung-vr <38249782+Kung-vr@users.noreply.github.com>
* reverted build changes
* removed un-needed app image build commands
* Cleanup some functions, avoid an extra chaperone check.
* Make redirected walking and autoturn independently enable-able
Co-authored-by: Feilen <feilen1000@gmail.com>
Co-authored-by: Vasily <vautkin@teknik.io>
Co-authored-by: Kung-vr <38249782+Kung-vr@users.noreply.github.com>
* added arbitrary orientation change
* removed commented code
* updated to OVR 1.4.18
* changed two instances using new to init via array
* moved prox sensor action to haptic instead of Misc
* fixed json file, added prox sensor back for mic mute/un-mute
* added proximity sensor to audio and haptic chaperone warnings
* fixed fall-through behavior
* removed bad prox code
The default binding for keyboardOne is the default combination
for muting on Discord. This was explicitly chosen as a use case, and it
might make people not have to tangle with creating custom
keybindings in the .ini file.
Knuckles bindings:
**B button**
single click: space turn
single click: swap space drag
double click: space drag
**left trigger:**
click: PTT
(haptics bound)
Vive wand bindings:
**Menu Button**
single click: space turn
single click: swap space drag
double click: space drag
**right track pad**
south click: PTT
(haptics bound)
* Fix indentation in action manifest
* Rename action sets to drop unnecessary prefix notation
Since the variable is in the action_sets namespace it does not make
sense to prepend it with an identifier for it being constant, or a set.
* Rename input keys to drop prefix notation
The vars are in a namespace that only contains constant inputs, it
doesn't make sense to prepend it to every var.
* Rename actions to drop prefixes
It is implicit that actions are const values for sets, therefore the
prefix is not needed.
* Remove unneeded action set member func
* Move active action set in preparation for more action sets
* Move action strings above class
Class is not able to use variables in namespaces, which is stupid.
* Move sets into member variable
* Split music into separate action set
* Convert action_manifest.json to spaces only
* Refactor actions into separate action sets
* Rename main set to haptic
* Reorder action sets
The haptics and misc sets are misc bindings.
* added partial action list to readme
* finished action descriptions.
* fixed conflict
* added no link guide
* fixed formatting
* linked input guide to main page
* added pictures
* fixed file directories
* fixed formatting
* removed force revive setting
* changed version to RC2
* hid revive force on settings page
* revert to RC1
* updated screenshots
* updated documentation
* updated straggler changes
* minor formatting change
* formatting
* Update Readme.md
Co-Authored-By: ykeara <ykeara1@gmail.com>
* Update Readme.md
Co-Authored-By: ykeara <ykeara1@gmail.com>
* Update Readme.md
Co-Authored-By: ykeara <ykeara1@gmail.com>
* Update Readme.md
Co-Authored-By: ykeara <ykeara1@gmail.com>
* Update Readme.md
Co-Authored-By: ykeara <ykeara1@gmail.com>
* Update Readme.md
Co-Authored-By: ykeara <ykeara1@gmail.com>
* Update Readme.md
Co-Authored-By: ykeara <ykeara1@gmail.com>
* Update Readme.md
Co-Authored-By: ykeara <ykeara1@gmail.com>
* Update Readme.md
Co-Authored-By: ykeara <ykeara1@gmail.com>
* Update Readme.md
Co-Authored-By: ykeara <ykeara1@gmail.com>
* 2nd batch of changes
* fixed formatting for table
* fixed table
* Fix indentation in action manifest
* Rename action sets to drop unnecessary prefix notation
Since the variable is in the action_sets namespace it does not make
sense to prepend it with an identifier for it being constant, or a set.
* Rename input keys to drop prefix notation
The vars are in a namespace that only contains constant inputs, it
doesn't make sense to prepend it to every var.
* Rename actions to drop prefixes
It is implicit that actions are const values for sets, therefore the
prefix is not needed.
* Remove unneeded action set member func
* Move active action set in preparation for more action sets
* Move action strings above class
Class is not able to use variables in namespaces, which is stupid.
* Move sets into member variable
* Split music into separate action set
* Convert action_manifest.json to spaces only
* Refactor actions into separate action sets
* Rename main set to haptic
* Reorder action sets
The haptics and misc sets are misc bindings.
* format
* fixed manifest path issue
* Change path concat to use QDir
The old way was not platform independent.
* Move accessibility actions to motion set
* Remove "(Held)" from action name
Might be confusing for end users.
* Replace slash with platform independent separator
* Make paths output native paths
Replace magic numbers with constants and centralize settings update counters. Rename actions manifest localization from "en" to "en_US" (Thanks Ykeara)
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.
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.
The additional files packaged with the installer have been moved to
their own dir to separate them from the C++ source.
All licenses are now also included in the installer, as per the terms.
The version string in overlaycontroller.h has been updated to 2.8.0.