Source outputs must all be moved to new default source.
Reference topic
https://askubuntu.com/a/72076
* Adds microphone controls on Linux via PulseAudio (PA) for several
points in
https://github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings/issues/43.
It can not be overstated how unsuited the public AudioManager API is for
using the PA API.
It can also not be overstated how undocumented and horrible the PA API
is. The PA way of doing audio is very unlike the Windows way of doing
audio, which the AudioManager is heavily influenced by.
Since I don't have a Linux machine I have not been able to personally
test this. https://github.com/feilen/ has graciously helped with
testing.
PulseAudio is very undocumented and not very widely used for what we
need outside of official utilities. As such there's most likely a better
way of doing things than I've done.
Additional information can be found at
https://github.com/username223/pulseaudio-device-changing.
The "complex" PA API is asynchronous. Since our current AudioManager is
running synchronously and would not work asynchronously (functions are
expected to return valid data on function return) it is necessary to
massage the PA API until it runs synchronously.
This is done with a general workflow of
1. Register a callback function (`pa_context_get_source_info_list()`,
for example).
2. Run the PA loop through `customPulseLoop()`. This will trigger
any registered callbacks. Sometimes a `void*` is passed through the
callback that can be used for custom data. `successCallback()` uses
this to set the success variable.
3. Run the callback function and do required work.
4. Return to original function, do work or return values.
It is not possible to run a `customPulseLoop()` inside of an already
running loop (inside a callback), as this will lead to a PA assert
error on runtime.
As of SteamVR 1.10.1 the overlay width feature has been implemented by
Valve in the standard settings.
OpenVR features related to overlay translation have been removed and the
main reason for including them (multi monitor setups) have been solved
by Valve giving each screen an individual overlay.
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.
* 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%
* changed color overlay to use gain values instead of overlay
* moved SS/Motion smoothing, and filter to video tab
* began refactor of steamVR qml page
* added misc toggles to steamvr tab
* added imu fallback and DND, and some qml formatting
* added Camera Settings to SteamVR page
* changed formatting to minimize height
* added video profiles cleaned up steamvr controller
* delta comparison change
* added profiles for video
* fixed display bug in colorgroupbox and removed frivoulous saves
* removed commented code
* added custom keybind buttons
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.
CircleCI Xenial does not come with an up to date version of Clang. It is
therefore required to get the newest version (8). The .pri file has
quickly been edited to be similar to the g++ version check.
* 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 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.
Manually creating an RC file was the Qt 4 way. The Qt 5 way is just
giving it an icon.
When an RC_FILE isn't manually created Qt will attempt to create one. If
there are non-integers in the version number the compilation will crash.
AdvancedSettings_resource.rc is a build artifact on Windows.
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.
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.