Chaperone Tab Update (#101)

* added actions for haptics

* Haptic WIP #1 crash on haptic event

* haptics rough implemented

* fixed action names and prox sensor work-around

* added workaround to catch-all in begineer chaperone switch

* added idle work-around to alarm warning

* changed visibility slider values to reflect new API limits

* added disable chaperone

* added display Logic

* fixed visibility slider display and some saving fade distance when chaperone disabled

* fixed warnings not always working (hopefully) centralized action/input keys into ivrinput.h

* default bindings for HMD's

* chaperone input re-factor

* refactored ivrinput class

* fixed naming errors commented out prox testing

* formatting removed commented code

* format

* fixed compiler warnings

* updated documentation

* Reduced reload chaperone calls

* adjusted haptics for chaperone bounds warnings
This commit is contained in:
ykeara
2019-03-15 15:19:23 -05:00
committed by GitHub
parent 55b6d5de66
commit 3c5cab72e5
14 changed files with 425 additions and 77 deletions
+61 -27
View File
@@ -123,56 +123,57 @@ Wrong action names may not result in direct error messages, but just features
mystically not working.
*/
SteamIVRInput::SteamIVRInput()
: m_manifest(), m_mainSet( input_strings::k_setMain ),
m_nextTrack( input_strings::k_actionNextTrack, ActionType::Digital ),
m_previousTrack( input_strings::k_actionPreviousTrack,
: m_manifest(), m_mainSet( action_sets::k_setMain ),
m_nextTrack( action_keys::k_actionNextTrack, ActionType::Digital ),
m_previousTrack( action_keys::k_actionPreviousTrack,
ActionType::Digital ),
m_pausePlayTrack( input_strings::k_actionPausePlayTrack,
m_pausePlayTrack( action_keys::k_actionPausePlayTrack,
ActionType::Digital ),
m_stopTrack( input_strings::k_actionStopTrack, ActionType::Digital ),
m_leftHandSpaceTurn( input_strings::k_actionLeftHandSpaceTurn,
m_stopTrack( action_keys::k_actionStopTrack, ActionType::Digital ),
m_leftHandSpaceTurn( action_keys::k_actionLeftHandSpaceTurn,
ActionType::Digital ),
m_rightHandSpaceTurn( input_strings::k_actionRightHandSpaceTurn,
m_rightHandSpaceTurn( action_keys::k_actionRightHandSpaceTurn,
ActionType::Digital ),
m_leftHandSpaceDrag( input_strings::k_actionLeftHandSpaceDrag,
m_leftHandSpaceDrag( action_keys::k_actionLeftHandSpaceDrag,
ActionType::Digital ),
m_rightHandSpaceDrag( input_strings::k_actionRightHandSpaceDrag,
m_rightHandSpaceDrag( action_keys::k_actionRightHandSpaceDrag,
ActionType::Digital ),
m_optionalOverrideLeftHandSpaceTurn(
input_strings::k_actionOptionalOverrideLeftHandSpaceTurn,
action_keys::k_actionOptionalOverrideLeftHandSpaceTurn,
ActionType::Digital ),
m_optionalOverrideRightHandSpaceTurn(
input_strings::k_actionOptionalOverrideRightHandSpaceTurn,
action_keys::k_actionOptionalOverrideRightHandSpaceTurn,
ActionType::Digital ),
m_optionalOverrideLeftHandSpaceDrag(
input_strings::k_actionOptionalOverrideLeftHandSpaceDrag,
action_keys::k_actionOptionalOverrideLeftHandSpaceDrag,
ActionType::Digital ),
m_optionalOverrideRightHandSpaceDrag(
input_strings::k_actionOptionalOverrideRightHandSpaceDrag,
action_keys::k_actionOptionalOverrideRightHandSpaceDrag,
ActionType::Digital ),
m_swapSpaceDragToLeftHandOverride(
input_strings::k_actionSwapSpaceDragToLeftHandOverride,
action_keys::k_actionSwapSpaceDragToLeftHandOverride,
ActionType::Digital ),
m_swapSpaceDragToRightHandOverride(
input_strings::k_actionSwapSpaceDragToRightHandOverride,
action_keys::k_actionSwapSpaceDragToRightHandOverride,
ActionType::Digital ),
m_gravityToggle( input_strings::k_actionGravityToggle,
m_gravityToggle( action_keys::k_actionGravityToggle,
ActionType::Digital ),
m_heightToggle( input_strings::k_actionHeightToggle,
ActionType::Digital ),
m_resetOffsets( input_strings::k_actionResetOffsets,
ActionType::Digital ),
m_snapTurnLeft( input_strings::k_actionSnapTurnLeft,
ActionType::Digital ),
m_snapTurnRight( input_strings::k_actionSnapTurnRight,
m_heightToggle( action_keys::k_actionHeightToggle, ActionType::Digital ),
m_resetOffsets( action_keys::k_actionResetOffsets, ActionType::Digital ),
m_snapTurnLeft( action_keys::k_actionSnapTurnLeft, ActionType::Digital ),
m_snapTurnRight( action_keys::k_actionSnapTurnRight,
ActionType::Digital ),
m_xAxisLockToggle( input_strings::k_actionXAxisLockToggle,
m_xAxisLockToggle( action_keys::k_actionXAxisLockToggle,
ActionType::Digital ),
m_yAxisLockToggle( input_strings::k_actionYAxisLockToggle,
m_yAxisLockToggle( action_keys::k_actionYAxisLockToggle,
ActionType::Digital ),
m_zAxisLockToggle( input_strings::k_actionZAxisLockToggle,
m_zAxisLockToggle( action_keys::k_actionZAxisLockToggle,
ActionType::Digital ),
m_pushToTalk( input_strings::k_actionPushToTalk, ActionType::Digital )
m_pushToTalk( action_keys::k_actionPushToTalk, ActionType::Digital ),
m_leftHaptic( action_keys::k_actionHapticsLeft, ActionType::Haptic ),
m_rightHaptic( action_keys::k_actionHapticsRight, ActionType::Haptic ),
m_leftHand( input_keys::k_inputSourceLeft ),
m_rightHand( input_keys::k_inputSourceRight )
{
m_activeActionSet.ulActionSet = m_mainSet.handle();
m_activeActionSet.ulRestrictedToDevice = vr::k_ulInvalidInputValueHandle;
@@ -322,6 +323,39 @@ bool SteamIVRInput::pushToTalk()
return isDigitalActionActivatedConstant( m_pushToTalk );
}
/*!
Returns the action handle of the Left Haptic Action
*/
vr::VRActionHandle_t SteamIVRInput::leftHapticActionHandle()
{
return m_leftHaptic.handle();
}
/*!
Returns the action handle of the Right Haptic Action
*/
vr::VRActionHandle_t SteamIVRInput::rightHapticActionHandle()
{
return m_rightHaptic.handle();
}
/*!
Returns the input handle of the Right hand
*/
vr::VRInputValueHandle_t SteamIVRInput::rightInputHandle()
{
return m_rightHand.handle();
}
/*!
Returns the input handle of the Left hand
*/
vr::VRInputValueHandle_t SteamIVRInput::leftInputHandle()
{
return m_leftHand.handle();
}
/*!
Updates the active action set(s).
Should be called every frame, or however often you want the input system to