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:
@@ -131,6 +131,9 @@ SteamIVRInput::SteamIVRInput()
|
|||||||
m_xAxisLockToggle( action_keys::xAxisLockToggle ),
|
m_xAxisLockToggle( action_keys::xAxisLockToggle ),
|
||||||
m_yAxisLockToggle( action_keys::yAxisLockToggle ),
|
m_yAxisLockToggle( action_keys::yAxisLockToggle ),
|
||||||
m_zAxisLockToggle( action_keys::zAxisLockToggle ),
|
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_chaperoneToggle( action_keys::chaperoneToggle ),
|
||||||
m_pushToTalk( action_keys::pushToTalk ),
|
m_pushToTalk( action_keys::pushToTalk ),
|
||||||
m_leftHaptic( action_keys::hapticsLeft ),
|
m_leftHaptic( action_keys::hapticsLeft ),
|
||||||
@@ -302,6 +305,19 @@ bool SteamIVRInput::proxState()
|
|||||||
return isDigitalActionActivatedConstant( m_pushToTalk );
|
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
|
Returns the action handle of the Left Haptic Action
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -49,6 +49,10 @@ namespace action_keys
|
|||||||
constexpr auto zAxisLockToggle = "/actions/misc/in/ZAxisLockToggle";
|
constexpr auto zAxisLockToggle = "/actions/misc/in/ZAxisLockToggle";
|
||||||
constexpr auto pushToTalk = "/actions/misc/in/PushToTalk";
|
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 hapticsLeft = "/actions/haptic/out/HapticsLeft";
|
||||||
constexpr auto hapticsRight = "/actions/haptic/out/HapticsRight";
|
constexpr auto hapticsRight = "/actions/haptic/out/HapticsRight";
|
||||||
constexpr auto proxSensor = "/actions/misc/in/ProxSensor";
|
constexpr auto proxSensor = "/actions/misc/in/ProxSensor";
|
||||||
@@ -139,6 +143,10 @@ public:
|
|||||||
|
|
||||||
bool pushToTalk();
|
bool pushToTalk();
|
||||||
|
|
||||||
|
bool keyboardOne();
|
||||||
|
bool keyboardTwo();
|
||||||
|
bool keyboardThree();
|
||||||
|
|
||||||
vr::VRActionHandle_t leftHapticActionHandle();
|
vr::VRActionHandle_t leftHapticActionHandle();
|
||||||
vr::VRActionHandle_t rightHapticActionHandle();
|
vr::VRActionHandle_t rightHapticActionHandle();
|
||||||
|
|
||||||
@@ -197,6 +205,11 @@ private:
|
|||||||
DigitalAction m_yAxisLockToggle;
|
DigitalAction m_yAxisLockToggle;
|
||||||
DigitalAction m_zAxisLockToggle;
|
DigitalAction m_zAxisLockToggle;
|
||||||
|
|
||||||
|
// Keyboard Shortcuts
|
||||||
|
DigitalAction m_keyboardOne;
|
||||||
|
DigitalAction m_keyboardTwo;
|
||||||
|
DigitalAction m_keyboardThree;
|
||||||
|
|
||||||
// Misc Bindings
|
// Misc Bindings
|
||||||
DigitalAction m_chaperoneToggle;
|
DigitalAction m_chaperoneToggle;
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
#include <easylogging++.h>
|
#include <easylogging++.h>
|
||||||
#include "utils/Matrix.h"
|
#include "utils/Matrix.h"
|
||||||
#include "openvr/overlay_utils.h"
|
#include "openvr/overlay_utils.h"
|
||||||
|
#include "keyboard_input/input_sender.h"
|
||||||
|
|
||||||
// application namespace
|
// application namespace
|
||||||
namespace advsettings
|
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
|
Checks if an action has been activated and dispatches the related action if it
|
||||||
has been.
|
has been.
|
||||||
@@ -601,6 +638,8 @@ void OverlayController::processInputBindings()
|
|||||||
processPushToTalkBindings();
|
processPushToTalkBindings();
|
||||||
|
|
||||||
processChaperoneBindings();
|
processChaperoneBindings();
|
||||||
|
|
||||||
|
processKeyboardBindings();
|
||||||
}
|
}
|
||||||
|
|
||||||
// vsync implementation:
|
// vsync implementation:
|
||||||
|
|||||||
@@ -135,6 +135,7 @@ private:
|
|||||||
void processMotionBindings();
|
void processMotionBindings();
|
||||||
void processPushToTalkBindings();
|
void processPushToTalkBindings();
|
||||||
void processChaperoneBindings();
|
void processChaperoneBindings();
|
||||||
|
void processKeyboardBindings();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
OverlayController( bool desktopMode, bool noSound, QQmlEngine& qmlEngine );
|
OverlayController( bool desktopMode, bool noSound, QQmlEngine& qmlEngine );
|
||||||
|
|||||||
@@ -160,6 +160,21 @@
|
|||||||
"name": "/actions/misc/in/ProxSensor",
|
"name": "/actions/misc/in/ProxSensor",
|
||||||
"requirement": "optional",
|
"requirement": "optional",
|
||||||
"type": "boolean"
|
"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/ZAxisLockToggle" : "Z-Axis Lock Toggle",
|
||||||
"/actions/misc/in/PushToTalk" : "Push To Talk",
|
"/actions/misc/in/PushToTalk" : "Push To Talk",
|
||||||
"/actions/misc/in/ChaperoneToggle" : "Chaperone Toggle",
|
"/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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user