Add bindings to keyboard shortcuts

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.
This commit is contained in:
Vasily
2019-05-25 18:49:42 +02:00
committed by username223
parent ef124ee225
commit 7d37ec9c0d
5 changed files with 88 additions and 1 deletions
+16
View File
@@ -131,6 +131,9 @@ SteamIVRInput::SteamIVRInput()
m_xAxisLockToggle( action_keys::xAxisLockToggle ),
m_yAxisLockToggle( action_keys::yAxisLockToggle ),
m_zAxisLockToggle( action_keys::zAxisLockToggle ),
m_keyboardOne( action_keys::keyboardOne ),
m_keyboardTwo( action_keys::keyboardTwo ),
m_keyboardThree( action_keys::keyboardThree ),
m_chaperoneToggle( action_keys::chaperoneToggle ),
m_pushToTalk( action_keys::pushToTalk ),
m_leftHaptic( action_keys::hapticsLeft ),
@@ -302,6 +305,19 @@ bool SteamIVRInput::proxState()
return isDigitalActionActivatedConstant( m_pushToTalk );
}
bool SteamIVRInput::keyboardOne()
{
return isDigitalActionActivatedOnce( m_keyboardOne );
}
bool SteamIVRInput::keyboardTwo()
{
return isDigitalActionActivatedOnce( m_keyboardTwo );
}
bool SteamIVRInput::keyboardThree()
{
return isDigitalActionActivatedOnce( m_keyboardThree );
}
/*!
Returns the action handle of the Left Haptic Action
*/
+13
View File
@@ -49,6 +49,10 @@ namespace action_keys
constexpr auto zAxisLockToggle = "/actions/misc/in/ZAxisLockToggle";
constexpr auto pushToTalk = "/actions/misc/in/PushToTalk";
constexpr auto keyboardOne = "/actions/misc/in/KeyboardOne";
constexpr auto keyboardTwo = "/actions/misc/in/KeyboardTwo";
constexpr auto keyboardThree = "/actions/misc/in/KeyboardThree";
constexpr auto hapticsLeft = "/actions/haptic/out/HapticsLeft";
constexpr auto hapticsRight = "/actions/haptic/out/HapticsRight";
constexpr auto proxSensor = "/actions/misc/in/ProxSensor";
@@ -139,6 +143,10 @@ public:
bool pushToTalk();
bool keyboardOne();
bool keyboardTwo();
bool keyboardThree();
vr::VRActionHandle_t leftHapticActionHandle();
vr::VRActionHandle_t rightHapticActionHandle();
@@ -197,6 +205,11 @@ private:
DigitalAction m_yAxisLockToggle;
DigitalAction m_zAxisLockToggle;
// Keyboard Shortcuts
DigitalAction m_keyboardOne;
DigitalAction m_keyboardTwo;
DigitalAction m_keyboardThree;
// Misc Bindings
DigitalAction m_chaperoneToggle;
+39
View File
@@ -21,6 +21,7 @@
#include <easylogging++.h>
#include "utils/Matrix.h"
#include "openvr/overlay_utils.h"
#include "keyboard_input/input_sender.h"
// application namespace
namespace advsettings
@@ -588,6 +589,42 @@ void OverlayController::processPushToTalkBindings()
}
}
void OverlayController::processKeyboardBindings()
{
constexpr auto settingsKeyboardName = "keyboardShortcuts";
if ( m_actions.keyboardOne() )
{
constexpr auto defaultDiscordMuteBinding = "^>m";
// run keyboard
appSettings()->beginGroup( settingsKeyboardName );
const auto commands
= appSettings()
->value( "keyboardOne", defaultDiscordMuteBinding )
.toString()
.toStdString();
appSettings()->endGroup();
sendStringAsInput( commands );
}
if ( m_actions.keyboardTwo() )
{
// run keyboard
appSettings()->beginGroup( settingsKeyboardName );
const auto commands
= appSettings()->value( "keyboardTwo" ).toString().toStdString();
appSettings()->endGroup();
sendStringAsInput( commands );
}
if ( m_actions.keyboardThree() )
{
// run keyboard
appSettings()->beginGroup( settingsKeyboardName );
const auto commands
= appSettings()->value( "keyboardThree" ).toString().toStdString();
appSettings()->endGroup();
sendStringAsInput( commands );
}
}
/*!
Checks if an action has been activated and dispatches the related action if it
has been.
@@ -601,6 +638,8 @@ void OverlayController::processInputBindings()
processPushToTalkBindings();
processChaperoneBindings();
processKeyboardBindings();
}
// vsync implementation:
+1
View File
@@ -135,6 +135,7 @@ private:
void processMotionBindings();
void processPushToTalkBindings();
void processChaperoneBindings();
void processKeyboardBindings();
public:
OverlayController( bool desktopMode, bool noSound, QQmlEngine& qmlEngine );
+19 -1
View File
@@ -160,6 +160,21 @@
"name": "/actions/misc/in/ProxSensor",
"requirement": "optional",
"type": "boolean"
},
{
"name": "/actions/misc/in/KeyboardOne",
"requirement": "optional",
"type": "boolean"
},
{
"name": "/actions/misc/in/KeyboardTwo",
"requirement": "optional",
"type": "boolean"
},
{
"name": "/actions/misc/in/KeyboardThree",
"requirement": "optional",
"type": "boolean"
}
],
@@ -220,7 +235,10 @@
"/actions/misc/in/ZAxisLockToggle" : "Z-Axis Lock Toggle",
"/actions/misc/in/PushToTalk" : "Push To Talk",
"/actions/misc/in/ChaperoneToggle" : "Chaperone Toggle",
"/actions/misc/in/ProxSensor" : "Proximity Sensor"
"/actions/misc/in/ProxSensor" : "Proximity Sensor",
"/actions/misc/in/KeyboardOne" : "Keyboard Shortcut One",
"/actions/misc/in/KeyboardTwo" : "Keyboard Shortcut Two",
"/actions/misc/in/KeyboardThree" : "Keyboard Shortcut Three"
}
]
}