Commit Graph
64 Commits
Author SHA1 Message Date
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
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 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 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
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
Kung-vr ec0d35bf0d Merge branch 'master' into alpha-kung 2019-01-22 14:00:22 +09:00
ykeara b3a9e5ea8d fixed default audio profile display (#58)
* fixed default audio profile display

* fixed formatting
2019-01-21 14:04:06 -06:00
Kung-vr 47920bfa74 Fix gimbal-lock when controller pointed up or down
Compare old and new pose via a relative quaternion rather than relative yaw, then calculate the resulting yaw-difference from the quaternion in one go.
2019-01-17 02:32:08 +09:00
Kung-vr 0c0a616691 Clean-up after merge 2019-01-17 02:01:23 +09:00
Kung-vr 6fcf0b1a54 Merge branch 'master' into alpha-kung 2019-01-17 01:55:12 +09:00
Kung-vr 089862e876 Apply fix for reset button rotation from alpha-kung branch 2019-01-15 23:23:34 +09:00
Kung-vr 9f48bd0c3f Merge branch 'master' into alpha-kung 2019-01-14 03:40:40 +09:00
Kung-vr 53138c5fef Implemented vsync tick for event loops 2019-01-14 03:24:15 +09:00
Vasily 9aaaf20577 Replace pause and play buttons with combined pause/play
The separate pause and play buttons necessitated changing between them
to signal that state had changed. Replacing it with a combined
pause/play button sidesteps all the issues in syncing up when which icon
should be shown.
2019-01-13 17:57:15 +01:00
Vasily f5000a0ee0 Refactor Media Control Keys QML into smaller bits
The old QML was a giant mess of implementation details and logic.
Reducing the buttons to only 2 essential properties allows the
MediaControllerKeys object to be more easily understood.

Moving the MediaControllerKeys into its own QML file allows the
resulting page to be more easily understood and individual pieces
swapped in and out.

The current QML directory structure is non-existent, breaking parts down
into cohesive folders will allow for easier understanding of the bigger
picture.
2019-01-13 16:47:38 +01:00
Kung-vr 733f4f8dc0 Merge branch 'master' into alpha-kung 2019-01-13 15:53:59 +09:00
Kung-vr d0e2c15e7a Increased rotation granularity to 0.01 desgrees 2019-01-13 10:04:21 +09:00
username223 edbecb089e Merge branch 'master' into media-keys 2019-01-12 21:56:38 +01:00
Vasily a5da5b7108 Remove png files 2019-01-12 21:55:44 +01:00
ykeara 95b7eaa664 SteamVRTab SSOverride update (#40)
* Added Manual Override Checkbox

* added profile logic/synch fixed bug with profile

* Added Function definitions + re-arranged code into more logical blocks

* formatting and fixed reset function in steamvrtabcontroler

* updated documentation

* removed some comments(for later standardization), params as const (where applicable), changed SS minimum value to .2 to match with steamVR minimum

* changed c style cast to c++

* re-applied formatting

* removed un-used lines in steamvrtabcontroller.h
2019-01-12 14:49:07 -06:00
ykeara d308c6005f resized svg back to original hackish fix 2019-01-12 14:44:43 -06:00
ykeara 50fe6748e9 changed size to 50x50 of svg 2019-01-12 13:38:18 -06:00
ykeara df35008e30 added white svg's 2019-01-12 13:33:26 -06:00
Vasily d9d6b0806e Add underline to Media Control Keys 2019-01-12 19:42:03 +01:00
Vasily 4829ce7c8a Add QML for audio buttons and add pngs
.pngs were chosen because the .svgs were only available in black. Qt
currently does not have an easy way of changing colors. The rest of the
interface icons are white, so getting them in white was necessary.
2019-01-12 19:14:59 +01:00
Kung-vr 58ef2e02b4 New Feature: Control rotation during virtual move
It's now possible to rotate the playspace by turning the controller during a virtual move playspace drag. The feature is activated via a checkbox on the playspace tab. If X Y Z axis lock checkboxes are also checked only rotation will be applied. Offsets will still accumulate as the user swings the playspace around because rotation is now centered at head. This feature is intended for use with manual redirected walking (allowing the user to virtually walk in a straight line while walking circles in physical space). This distance walked is reflected in the X,Z offsets.
2019-01-13 00:43:21 +09:00
Kung-vr a55b127366 Fixed audio devices swapping on device hw changes
When audio devices connected or disconnected from the system, the default audio device swapped around. This was because of QML setting index 0 on ComboBox.model changes. onCurrentIndexChanged was calling setPlaybackDeviceIndex() / mirrorDevice/ micDevice etc... in the audio tab controller and actively setting the audio device index to 0 momentarily. Changing onCurrentIndexChanged to onActivated allows the ComboBox to only actively command the audio tab controller in direct response to user interaction.
2019-01-12 00:33:55 +09:00
ykeara ed8587703e updated documentation minor formatting change in QML 2019-01-09 20:50:50 -06:00
ykeara 15fa0ac47a fixed naming bug in QML and formatted/cleaned up 2019-01-09 20:32:39 -06:00
ykeara 813a2b1d3f removed compositor super sampling added error checking for motion smoothing 2019-01-09 20:03:41 -06:00
ykeara b374ff42f5 cleaned up dead code 2019-01-08 22:46:30 -06:00
ykeara 123c38c586 Fixed Profile Viewing 2019-01-08 21:31:13 -06:00
ykeara 9351267fb5 fixed naming bug in qml 2019-01-08 21:02:52 -06:00
ykeara 7bd02049a2 added Motion Smoothing toggle 2019-01-08 20:37:22 -06:00
ykeara 2fadca76d0 Commented out reprojection logic 2019-01-08 17:33:48 -06:00
username223 9c7022f802 Fix QML error spam from MyStackViewPage and PlayspacePage (#24)
* Move logging set up into own function

This does not affect the ability to log, the logging macros are
available globally.

* Clean up logging logic and add comments

The logic to find the logging location was broken, in that it always
placed the logs in the directory of the executable.
It was supposed to place the logs in
AppData/Roaming/matzman666/OpenVRAdvancedSettings/AdvancedSettings.log,
but it hasn't done this since at least git tag "v2.7". Since the change
hasn't been documented anywhere it is assumed to be an unintentional
regression.
The settings file is also currently placed in
AppData/Roaming/matzman666/OpenVRAdvancedSettings.ini, so this commit
undoes the probable regression until a strategy can be developed for
changing all paths at once.

* Move command line arg logging calls and add to manifest calls

The LOG_IF macros are cleaner than if blocks, and they do not need to be
in the middle of the Qt logic inside a giant try block.

* Remove unused QCoreApplication constructor in manifest logic

The object is not used in any of the manifest logic functions and
running without the remove/install manifest calls does not use it
either.

* Unindent logic in installManifest

The error checking was unnecessarily done in an else block. Moving it
into an if block and negating the result does the same but leaves the
rest of the logic at a much smaller indentation level.

* Change array in installManifest to be 0 intialized

Not zero initializing could lead to strange bugs if the terminating null
isn't there.

* Move manifest install/removal to separate function

The manifest handling is tangential to the actual main operation of the
program, hence moving it to a separate function improves readability of
the actual program.

The enum ReturnErrorCode has also been moved to the top in order to be
available to all functions. On introspection it is revealed that it
should always have been placed at the top.

* Unindent logic in removeManifest

The logic is unnecessarily indented, leading to harder to follow logic.

While the current logic isn't that hard to understand, it's better if it
follows the same rhythm as installManifest, which errors checks the same
way with a !QFile::exists( manifestQPath ).

* Move manifestPath out of install/removeManifest

Moving the variable outside of the functions reduces code duplication
and increases the versatility of the functions.

Variable was renamed from manifestQPath to manifestPath, because the Q
does not add anything to the name except (maybe wrongfully in the
future) typing a variable that has been typed with 'auto'.

The default variable has been removed, as it did not improve readability
at all.

* Rename installManifest to handleManifestInstallLogic

The new name better reflects the overall purpose. installManifest should
be a function that only installs the manifest.

* Move manifest related things into manifest namespace

* Move manifestInstallation logic into functions

The logic becomes clearer when replaced by function names instead of
just blocks of error checking.

* Refactor installManifest into separate functions

The uses for the removeManifest and installManifest functions could be
boiled down to three separate use cases:
    * If the application was passed the "-installmanifest" arg:
        Reinstall the manifest and enable application autostart.
    * If the application was passed thed "-removemanifest" arg:
        Remove the manifest.
    * If the application was not passed "-desktop" and also not passed
    "-nomanifest" (basically every start):
        Install the manifest.

Where reinstalling means to remove the manifest if installed and then
install it.

The relatively complex logic in installManifest hid this logic behind
several if statements and changing what the "alreadyInstalled" bool
signified.

The refactored functions should make everything easier to understand.

* Add variable for manifest name

* Rename variables in main to camelCase

This appears to be the style chosen for the majority of the project.

* Change cerr to be LOG(ERROR) and add logging for manifest completion

The cerr calls are not likely to be seen by anybody. Logging them as
ERROR will make sure they are available for diagnostics.

* Add comments for new manifest functions

* Reorder namespaces and functions in main

Namespaces and functions are now ordered as they appear in main.

* Add static_cast to height and width in func call in main

width and height are "qreal" (typedef for double). Having them
implicitly cast to int leads to warnings on some compilers, and can lead
to doubt whether they're supposed to be converted.

* Move organizationName and applicationName into overlaycontroller.h

The string have been moved to static constexpr autos inside the
overlaycontroller.

Them remaining static means that they are included in the final binary,
even if they don't need to be included as static.

They should probably also not be directly gotten, instead being offered
up as static getters, but it's better to do them all at the same time in
a specific commit for that.

* Add comment to installApplicationManifest

Describing that OpenVR must be initialized before the function is
called.

* Change QApplication var name and add comments

The previous QApplication was named "a". This is obviously not
sufficient for such a large part of the application, even if the class
is rather boilerplate heavy.

* Add comments to Qt portions of main

Some things have been left uncommented. That's because I don't know what
it does.

* Change documentation for command line arguments, logging config

The information under the Desktop Mode header could be rolled under the
"-desktop" command line arg.

Support for the command line args of Easylogging++ and custom logging
files have not been supported for the original developer. Both should
probably be dropped in favor of having the same logging behavior for all
users.

* Remove error causing property from QML MyStackViewPage and PlayspacePage

The properties were causing an error message to be spammed in the log
QML QQuickText: Detected anchors on an item that is managed by a layout.
This is undefined behavior; use Layout.alignment instead.

and

QML RowLayout: Detected anchors on an item that is managed by a layout.
This is undefined behavior; use Layout.alignment instead.

Removing them fixed the spam and didn't noticeably change the appearance
of the pages.
2019-01-07 19:24:20 -06:00
ykeara 15855c4564 fixed minor code formatting errors 2019-01-04 13:34:52 -06:00