Commit Graph
10 Commits
Author SHA1 Message Date
ykeara 4fb026958e custom keybinds multiple keypress fix. [add backslash to Parser] (#513)
* fixed input sending bug not properly releasing keys

* updated to ovr 1.12.5

* added disable oculus api button experimental

* small refactor and fix float and bool bugs

* added nokeyup events to modifier keys when read in, and adjusted  token send to have proper logic

* fixed literal held issue

* added backslash

* fixed sender token parser

* updated version string to dev whoops

* added backslash to documentation for keyboard input
2020-09-03 11:08:37 -05:00
ykeara 15f5534f69 Added F10-F12 For Custom KeyBinds (#507)
* added F10-F12 keys

* updated version strings to 5.2.2

* updated spec to reflect new keys
2020-08-11 20:02:34 -05:00
Vasily e71bc7b1b3 Add settings object API
Documentation is in `docs/specs/Settings-Object-API.md`.
2020-01-08 21:18:45 +01:00
Vasily 1465c4a8bd Convert getSettingsController() to global static object
After looking at the assembly output it became apparent that the Windows
compiler did not compile out the `getSettingsController()` function
call.

This led to an unnecessary function call in order to get the
SettingsController. Turning it into a static object in the compilation
unit scope removes this function call and turns getSettings call into a
single instruction (not counting zeroing the register for comparison and
the jump instruction afterwards).

----

Adding the following code to the `main` function:
```cpp
f ( settings::getSetting( settings::BoolSetting::UTILITY_vrcDebug ) )
{
        LOG( INFO ) << "Enabled";
}
else
{
        LOG( INFO ) << "Disabled";
}
```

Leads to this with the `getSettingsController` function:
```assembly
[...]
    47            if ( settings::getSetting( settings::BoolSetting::UTILITY_vrcDebug ) )
0x7ff6c96819a0  <+ 1024>         call AdvancedSettings!settings::getSettingsController (00007ff6`c96cd280)
0x7ff6c96819a5  <+ 1029>         xorps   xmm0,xmm0
0x7ff6c96819a8  <+ 1032>         cmp     byte ptr [rax+5FCh],0
0x7ff6c96819af  <+ 1039>         je AdvancedSettings!main+0x4fd (00007ff6`c9681a9d)
    49                LOG( INFO ) << "Enabled";
0x7ff6c96819b5  <+ 1045>         mov     qword ptr
[rsp+288h],r15
0x7ff6c96819bd  <+ 1053>         mov     qword ptr
[rsp+290h],rsi
[...]
```

And this without the function:
```assembly
[...]
    47            if ( settings::getSetting( settings::BoolSetting::UTILITY_vrcDebug ) )
0x7ff7d97a19bb  <+ 1019>         xorps   xmm0,xmm0
0x7ff7d97a19be  <+ 1022>         cmp     byte ptr [AdvancedSettings!settings::settingController+0x5fc (00007ff7`d9854d4c)],0
0x7ff7d97a19c5  <+ 1029>         je AdvancedSettings!main+0x4f3 (00007ff7`d97a1ab3)
    49                LOG( INFO ) << "Enabled";
0x7ff7d97a19cb  <+ 1035>         mov     qword ptr
[rsp+288h],r15
0x7ff7d97a19d3  <+ 1043>         mov     qword ptr
[rsp+290h],rsi
[...]
```

Notice the missing `call AdvancedSettings![...]` without the function
and that the settings call literally cannot be made any faster.
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
Vasily 6009fcbfd0 Change keyboard_manager spec extension to .md
It's actually markdown, not text.
2019-05-25 18:49:42 +02:00
Vasily 2d8f5a1b40 Add Enter button to spec and keyboard_input
It was mistakenly left out.
2019-05-25 18:49:42 +02:00
Vasily 3173c4999c Remove AltGr button from keyboard input spec
AltGr is just implemented as Alt + Ctrl. This means it's unnecessary and
is only going to complicate the spec.
2019-05-25 18:49:42 +02:00
Vasily 49b16ebc8f Remove F10, F11 and F12 function keys from keyboard spec
There is no way to tell if they are meant to be one or two keys and in
this case simplicity of use wins out.
2019-05-25 18:49:42 +02:00
Vasily d2127e53aa Add specification for keyboard input parser 2019-05-25 18:49:42 +02:00