Keyboard Parse Fix (#467)

* 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
This commit is contained in:
ykeara
2020-06-05 15:42:10 -05:00
committed by GitHub
parent 4757756d32
commit 82a0357748
21 changed files with 1297 additions and 161 deletions
+161
View File
@@ -59,6 +59,7 @@ typedef uint32_t PropertyTypeTag_t;
typedef uint64_t VRActionHandle_t;
typedef uint64_t VRActionSetHandle_t;
typedef uint64_t VRInputValueHandle_t;
typedef uint64_t PathHandle_t;
// OpenVR Constants
@@ -204,6 +205,8 @@ static const char * k_pch_SteamVR_CustomOffIconStyle_String = "customOffIconStyl
static const char * k_pch_SteamVR_CustomIconForceUpdate_String = "customIconForceUpdate";
static const char * k_pch_SteamVR_AllowGlobalActionSetPriority = "globalActionSetPriority";
static const char * k_pch_SteamVR_OverlayRenderQuality = "overlayRenderQuality_2";
static const char * k_pch_SteamVR_BlockOculusSDKOnOpenVRLaunchOption_Bool = "blockOculusSDKOnOpenVRLaunchOption";
static const char * k_pch_SteamVR_BlockOculusSDKOnAllLaunches_Bool = "blockOculusSDKOnAllLaunches";
static const char * k_pch_DirectMode_Section = "direct_mode";
static const char * k_pch_DirectMode_Enable_Bool = "enable";
static const char * k_pch_DirectMode_Count_Int32 = "count";
@@ -324,6 +327,7 @@ static const char * k_pch_App_BindingCurrentURLSuffix_String = "CurrentURL";
static const char * k_pch_App_BindingPreviousURLSuffix_String = "PreviousURL";
static const char * k_pch_App_NeedToUpdateAutosaveSuffix_Bool = "NeedToUpdateAutosave";
static const char * k_pch_App_DominantHand_Int32 = "DominantHand";
static const char * k_pch_App_BlockOculusSDK_Bool = "blockOculusSDK";
static const char * k_pch_Trackers_Section = "trackers";
static const char * k_pch_DesktopUI_Section = "DesktopUI";
static const char * k_pch_LastKnown_Section = "LastKnown";
@@ -351,6 +355,48 @@ static const char * IVRIOBuffer_Version = "IVRIOBuffer_002";
static const unsigned long k_ulInvalidSpatialAnchorHandle = 0;
static const char * IVRSpatialAnchors_Version = "IVRSpatialAnchors_001";
static const char * IVRDebug_Version = "IVRDebug_001";
static const unsigned long long k_ulDisplayRedirectContainer = 25769803779;
static const char * IVRProperties_Version = "IVRProperties_001";
static const char * k_pchPathUserHandRight = "/user/hand/right";
static const char * k_pchPathUserHandLeft = "/user/hand/left";
static const char * k_pchPathUserHandPrimary = "/user/hand/primary";
static const char * k_pchPathUserHandSecondary = "/user/hand/secondary";
static const char * k_pchPathUserHead = "/user/head";
static const char * k_pchPathUserGamepad = "/user/gamepad";
static const char * k_pchPathUserTreadmill = "/user/treadmill";
static const char * k_pchPathUserStylus = "/user/stylus";
static const char * k_pchPathDevices = "/devices";
static const char * k_pchPathDevicePath = "/device_path";
static const char * k_pchPathBestAliasPath = "/best_alias_path";
static const char * k_pchPathBoundTrackerAliasPath = "/bound_tracker_path";
static const char * k_pchPathBoundTrackerRole = "/bound_tracker_role";
static const char * k_pchPathPoseRaw = "/pose/raw";
static const char * k_pchPathPoseTip = "/pose/tip";
static const char * k_pchPathSystemButtonClick = "/input/system/click";
static const char * k_pchPathProximity = "/proximity";
static const char * k_pchPathControllerTypePrefix = "/controller_type/";
static const char * k_pchPathInputProfileSuffix = "/input_profile";
static const char * k_pchPathBindingNameSuffix = "/binding_name";
static const char * k_pchPathBindingUrlSuffix = "/binding_url";
static const char * k_pchPathBindingErrorSuffix = "/binding_error";
static const char * k_pchPathActiveActionSets = "/active_action_sets";
static const char * k_pchPathComponentUpdates = "/total_component_updates";
static const char * k_pchPathUserFootLeft = "/user/foot/left";
static const char * k_pchPathUserFootRight = "/user/foot/right";
static const char * k_pchPathUserShoulderLeft = "/user/shoulder/left";
static const char * k_pchPathUserShoulderRight = "/user/shoulder/right";
static const char * k_pchPathUserElbowLeft = "/user/elbow/left";
static const char * k_pchPathUserElbowRight = "/user/elbow/right";
static const char * k_pchPathUserKneeLeft = "/user/knee/left";
static const char * k_pchPathUserKneeRight = "/user/knee/right";
static const char * k_pchPathUserWaist = "/user/waist";
static const char * k_pchPathUserChest = "/user/chest";
static const char * k_pchPathUserCamera = "/user/camera";
static const char * k_pchPathUserKeyboard = "/user/keyboard";
static const char * k_pchPathClientAppKey = "/client_info/app_key";
static const unsigned long long k_ulInvalidPathHandle = 0;
static const char * IVRPaths_Version = "IVRPaths_001";
static const char * IVRBlockQueue_Version = "IVRBlockQueue_004";
// OpenVR Enums
@@ -663,6 +709,7 @@ typedef enum EVRSubmitFlags
EVRSubmitFlags_Submit_TextureWithPose = 8,
EVRSubmitFlags_Submit_TextureWithDepth = 16,
EVRSubmitFlags_Submit_FrameDiscontinuty = 32,
EVRSubmitFlags_Submit_VulkanTextureWithArrayData = 64,
} EVRSubmitFlags;
typedef enum EVRState
@@ -1666,6 +1713,35 @@ typedef enum EVRDebugError
EVRDebugError_VRDebugError_BadParameter = 1,
} EVRDebugError;
typedef enum EPropertyWriteType
{
EPropertyWriteType_PropertyWrite_Set = 0,
EPropertyWriteType_PropertyWrite_Erase = 1,
EPropertyWriteType_PropertyWrite_SetError = 2,
} EPropertyWriteType;
typedef enum EBlockQueueError
{
EBlockQueueError_BlockQueueError_None = 0,
EBlockQueueError_BlockQueueError_QueueAlreadyExists = 1,
EBlockQueueError_BlockQueueError_QueueNotFound = 2,
EBlockQueueError_BlockQueueError_BlockNotAvailable = 3,
EBlockQueueError_BlockQueueError_InvalidHandle = 4,
EBlockQueueError_BlockQueueError_InvalidParam = 5,
EBlockQueueError_BlockQueueError_ParamMismatch = 6,
EBlockQueueError_BlockQueueError_InternalError = 7,
EBlockQueueError_BlockQueueError_AlreadyInitialized = 8,
EBlockQueueError_BlockQueueError_OperationIsServerOnly = 9,
EBlockQueueError_BlockQueueError_TooManyConnections = 10,
} EBlockQueueError;
typedef enum EBlockQueueReadType
{
EBlockQueueReadType_BlockQueueRead_Latest = 0,
EBlockQueueReadType_BlockQueueRead_New = 1,
EBlockQueueReadType_BlockQueueRead_Next = 2,
} EBlockQueueReadType;
// OpenVR typedefs
@@ -1711,6 +1787,7 @@ typedef EVROverlayError VROverlayError;
typedef EVRFirmwareError VRFirmwareError;
typedef EVRCompositorError VRCompositorError;
typedef EVRScreenshotError VRScreenshotsError;
typedef uint64_t PathHandle_t;
// OpenVR Structs
@@ -1852,6 +1929,12 @@ typedef struct VRVulkanTextureData_t
uint32_t m_nSampleCount;
} VRVulkanTextureData_t;
typedef struct VRVulkanTextureArrayData_t
{
uint32_t m_unArrayIndex;
uint32_t m_unArraySize;
} VRVulkanTextureArrayData_t;
typedef struct D3D12TextureData_t
{
struct ID3D12Resource * m_pResource; // struct ID3D12Resource *
@@ -2380,6 +2463,55 @@ typedef struct COpenVRContext
intptr_t m_pVRNotifications; // class vr::IVRNotifications *
} COpenVRContext;
typedef struct PropertyWrite_t
{
enum ETrackedDeviceProperty prop;
enum EPropertyWriteType writeType;
enum ETrackedPropertyError eSetError;
void * pvBuffer; // void *
uint32_t unBufferSize;
PropertyTypeTag_t unTag;
enum ETrackedPropertyError eError;
} PropertyWrite_t;
typedef struct PropertyRead_t
{
enum ETrackedDeviceProperty prop;
void * pvBuffer; // void *
uint32_t unBufferSize;
PropertyTypeTag_t unTag;
uint32_t unRequiredBufferSize;
enum ETrackedPropertyError eError;
} PropertyRead_t;
typedef struct CVRPropertyHelpers
{
intptr_t m_pProperties; // class vr::IVRProperties *
} CVRPropertyHelpers;
typedef struct PathWrite_t
{
PathHandle_t ulPath;
enum EPropertyWriteType writeType;
enum ETrackedPropertyError eSetError;
void * pvBuffer; // void *
uint32_t unBufferSize;
PropertyTypeTag_t unTag;
enum ETrackedPropertyError eError;
char * pszPath; // const char *
} PathWrite_t;
typedef struct PathRead_t
{
PathHandle_t ulPath;
void * pvBuffer; // void *
uint32_t unBufferSize;
PropertyTypeTag_t unTag;
uint32_t unRequiredBufferSize;
enum ETrackedPropertyError eError;
char * pszPath; // const char *
} PathRead_t;
typedef union
{
@@ -2881,6 +3013,35 @@ struct VR_IVRDebug_FnTable
uint32_t (OPENVR_FNTABLE_CALLTYPE *DriverDebugRequest)(TrackedDeviceIndex_t unDeviceIndex, char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize);
};
struct VR_IVRProperties_FnTable
{
ETrackedPropertyError (OPENVR_FNTABLE_CALLTYPE *ReadPropertyBatch)(PropertyContainerHandle_t ulContainerHandle, struct PropertyRead_t * pBatch, uint32_t unBatchEntryCount);
ETrackedPropertyError (OPENVR_FNTABLE_CALLTYPE *WritePropertyBatch)(PropertyContainerHandle_t ulContainerHandle, struct PropertyWrite_t * pBatch, uint32_t unBatchEntryCount);
char * (OPENVR_FNTABLE_CALLTYPE *GetPropErrorNameFromEnum)(ETrackedPropertyError error);
PropertyContainerHandle_t (OPENVR_FNTABLE_CALLTYPE *TrackedDeviceToPropertyContainer)(TrackedDeviceIndex_t nDevice);
};
struct VR_IVRPaths_FnTable
{
ETrackedPropertyError (OPENVR_FNTABLE_CALLTYPE *ReadPathBatch)(PropertyContainerHandle_t ulRootHandle, struct PathRead_t * pBatch, uint32_t unBatchEntryCount);
ETrackedPropertyError (OPENVR_FNTABLE_CALLTYPE *WritePathBatch)(PropertyContainerHandle_t ulRootHandle, struct PathWrite_t * pBatch, uint32_t unBatchEntryCount);
ETrackedPropertyError (OPENVR_FNTABLE_CALLTYPE *StringToHandle)(PathHandle_t * pHandle, char * pchPath);
ETrackedPropertyError (OPENVR_FNTABLE_CALLTYPE *HandleToString)(PathHandle_t pHandle, char * pchBuffer, uint32_t unBufferSize, uint32_t * punBufferSizeUsed);
};
struct VR_IVRBlockQueue_FnTable
{
EBlockQueueError (OPENVR_FNTABLE_CALLTYPE *Create)(PropertyContainerHandle_t * pulQueueHandle, char * pchPath, uint32_t unBlockDataSize, uint32_t unBlockHeaderSize, uint32_t unBlockCount);
EBlockQueueError (OPENVR_FNTABLE_CALLTYPE *Connect)(PropertyContainerHandle_t * pulQueueHandle, char * pchPath);
EBlockQueueError (OPENVR_FNTABLE_CALLTYPE *Destroy)(PropertyContainerHandle_t ulQueueHandle);
EBlockQueueError (OPENVR_FNTABLE_CALLTYPE *AcquireWriteOnlyBlock)(PropertyContainerHandle_t ulQueueHandle, PropertyContainerHandle_t * pulBlockHandle, void ** ppvBuffer);
EBlockQueueError (OPENVR_FNTABLE_CALLTYPE *ReleaseWriteOnlyBlock)(PropertyContainerHandle_t ulQueueHandle, PropertyContainerHandle_t ulBlockHandle);
EBlockQueueError (OPENVR_FNTABLE_CALLTYPE *WaitAndAcquireReadOnlyBlock)(PropertyContainerHandle_t ulQueueHandle, PropertyContainerHandle_t * pulBlockHandle, void ** ppvBuffer, EBlockQueueReadType eReadType, uint32_t unTimeoutMs);
EBlockQueueError (OPENVR_FNTABLE_CALLTYPE *AcquireReadOnlyBlock)(PropertyContainerHandle_t ulQueueHandle, PropertyContainerHandle_t * pulBlockHandle, void ** ppvBuffer, EBlockQueueReadType eReadType);
EBlockQueueError (OPENVR_FNTABLE_CALLTYPE *ReleaseReadOnlyBlock)(PropertyContainerHandle_t ulQueueHandle, PropertyContainerHandle_t ulBlockHandle);
EBlockQueueError (OPENVR_FNTABLE_CALLTYPE *QueueHasReader)(PropertyContainerHandle_t ulQueueHandle, bool * pbHasReaders);
};
#if 0
// Global entry points