Pico Native XR SDK
PxrInput.h File Reference
#include "PxrTypes.h"
#include "PxrEnums.h"

Go to the source code of this file.

Data Structures

struct  PxrControllerTracking_
 
struct  PxrVector2f_
 
struct  PxrControllerInputState_
 
struct  PxrControllerInputStateDowntimeStamp_
 
struct  PxrInputEvent_
 
struct  PxrControllerInputEvent_
 
struct  PxrControllerCapability_
 
struct  PxrControllerInfo_
 

Typedefs

typedef struct PxrControllerTracking_ PxrControllerTracking
 
typedef struct PxrVector2f_ PxrVector2f
 
typedef struct PxrControllerInputState_ PxrControllerInputState
 
typedef struct PxrControllerInputStateDowntimeStamp_ PxrControllerInputStateDowntimeStamp
 
typedef struct PxrInputEvent_ PxrInputEvent
 
typedef struct PxrControllerInputEvent_ PxrControllerInputEvent
 
typedef struct PxrControllerCapability_ PxrControllerCapability
 
typedef struct PxrControllerInfo_ PxrControllerInfo
 

Enumerations

enum  PxrControllerDof { PXR_CONTROLLER_3DOF = 0 , PXR_CONTROLLER_6DOF }
 
enum  PxrControllerBond { PXR_CONTROLLER_BOND = 0 , PXR_CONTROLLER_UNBOND }
 
enum  PxrControllerKeyMap {
  PXR_CONTROLLER_KEY_HOME = 0 , PXR_CONTROLLER_KEY_AX = 1 , PXR_CONTROLLER_KEY_BY = 2 , PXR_CONTROLLER_KEY_BACK = 3 ,
  PXR_CONTROLLER_KEY_TRIGGER = 4 , PXR_CONTROLLER_KEY_VOL_UP = 5 , PXR_CONTROLLER_KEY_VOL_DOWN = 6 , PXR_CONTROLLER_KEY_ROCKER = 7 ,
  PXR_CONTROLLER_KEY_GRIP = 8 , PXR_CONTROLLER_KEY_TOUCHPAD = 9 , PXR_CONTROLLER_KEY_LASTONE = 127 , PXR_CONTROLLER_TOUCH_AX = 128 ,
  PXR_CONTROLLER_TOUCH_BY = 129 , PXR_CONTROLLER_TOUCH_ROCKER = 130 , PXR_CONTROLLER_TOUCH_TRIGGER = 131 , PXR_CONTROLLER_TOUCH_THUMB = 132 ,
  PXR_CONTROLLER_TOUCH_LASTONE = 255
}
 
enum  PxrControllerAbilities {
  PXR_CONTROLLER_HAVE_TOUCH = 0x00000001 , PXR_CONTROLLER_HAVE_GRIP = 0x00000002 , PXR_CONTROLLER_HAVE_ROCKER = 0x00000004 , PXR_CONTROLLER_HAVE_TOUCHPAD = 0x00000008 ,
  PXR_CONTROLLER_HAVE_ALL = 0xFFFFFFFF
}
 
enum  PxrControllerType {
  PXR_NO_DEVICE = 0 , PXR_HB_Controller = 1 , PXR_CV_Controller = 2 , PXR_HB2_Controller = 3 ,
  PXR_CV2_Controller = 4 , PXR_CV3_Optics_Controller = 5
}
 

Functions

int Pxr_GetControllerCapabilities (uint32_t deviceID, PxrControllerCapability *capability)
 Gets controller capabilities. More...
 
int Pxr_GetControllerConnectStatus (uint32_t deviceID)
 Gets the connection status of a specified controller. More...
 
int Pxr_GetControllerTrackingState (uint32_t deviceID, double predictTime, float headSensorData[], PxrControllerTracking *tracking)
 Gets the pose data of a specified controller. More...
 
int Pxr_GetControllerInputState (uint32_t deviceID, PxrControllerInputState *state)
 Gets the key status for a specified controller. More...
 
int Pxr_GetControllerInputEvent (uint32_t deviceID, PxrControllerInputEvent *event)
 Gets the key event for a specified controller. More...
 
int Pxr_SetControllerVibration (uint32_t deviceID, float strength, int time)
 Sets vibration for a specified controller. More...
 
int Pxr_SetControllerEnableKey (bool isEnable, PxrControllerKeyMap Key)
 Enables/disables the specified controller key. More...
 
int Pxr_SetControllerMainInputHandle (uint32_t deviceID)
 Sets the main controller. More...
 
int Pxr_GetControllerMainInputHandle (uint32_t *deviceID)
 
int Pxr_SetControllerUnbind (uint32_t deviceID)
 
int Pxr_SetControllerEnterPairingSetControllerEnterPairing (uint32_t deviceID)
 
int Pxr_SetControllerStopPairing (uint32_t deviceID)
 
int Pxr_SetControllerUpgrade (uint32_t deviceID, int rule, char *station_path_by_char, char *controller_path_by_char)
 
int Pxr_GetControllerinfo (uint32_t deviceID, PxrControllerInfo *info)
 Gets the information about a specified controller. More...
 
int * Pxr_GetControllerKeyEventExt (int controllerSerialNum, int devicetype)
 
int Pxr_GetControllerTouchEvent (int controllerSerialNum, int length, int *value)
 
int Pxr_SetInputEventCallback (bool enable_Input_callback)
 
int Pxr_RecenterInputPose (uint32_t deviceID)
 
int Pxr_GetHeadSensorData (float *data)
 

Typedef Documentation

◆ PxrControllerCapability

◆ PxrControllerInfo

◆ PxrControllerInputEvent

◆ PxrControllerInputState

◆ PxrControllerInputStateDowntimeStamp

◆ PxrControllerTracking

◆ PxrInputEvent

typedef struct PxrInputEvent_ PxrInputEvent

◆ PxrVector2f

typedef struct PxrVector2f_ PxrVector2f

Enumeration Type Documentation

◆ PxrControllerAbilities

Enumerator
PXR_CONTROLLER_HAVE_TOUCH 
PXR_CONTROLLER_HAVE_GRIP 
PXR_CONTROLLER_HAVE_ROCKER 
PXR_CONTROLLER_HAVE_TOUCHPAD 
PXR_CONTROLLER_HAVE_ALL 

◆ PxrControllerBond

Enumerator
PXR_CONTROLLER_BOND 
PXR_CONTROLLER_UNBOND 

◆ PxrControllerDof

Enumerator
PXR_CONTROLLER_3DOF 
PXR_CONTROLLER_6DOF 

◆ PxrControllerKeyMap

Enumerator
PXR_CONTROLLER_KEY_HOME 
PXR_CONTROLLER_KEY_AX 
PXR_CONTROLLER_KEY_BY 
PXR_CONTROLLER_KEY_BACK 
PXR_CONTROLLER_KEY_TRIGGER 
PXR_CONTROLLER_KEY_VOL_UP 
PXR_CONTROLLER_KEY_VOL_DOWN 
PXR_CONTROLLER_KEY_ROCKER 
PXR_CONTROLLER_KEY_GRIP 
PXR_CONTROLLER_KEY_TOUCHPAD 
PXR_CONTROLLER_KEY_LASTONE 
PXR_CONTROLLER_TOUCH_AX 
PXR_CONTROLLER_TOUCH_BY 
PXR_CONTROLLER_TOUCH_ROCKER 
PXR_CONTROLLER_TOUCH_TRIGGER 
PXR_CONTROLLER_TOUCH_THUMB 
PXR_CONTROLLER_TOUCH_LASTONE 

◆ PxrControllerType

Enumerator
PXR_NO_DEVICE 
PXR_HB_Controller 
PXR_CV_Controller 
PXR_HB2_Controller 
PXR_CV2_Controller 
PXR_CV3_Optics_Controller 

Function Documentation

◆ Pxr_GetControllerCapabilities()

int Pxr_GetControllerCapabilities ( uint32_t  deviceID,
PxrControllerCapability capability 
)

Gets controller capabilities.

Parameters
deviceIDThe controller to get capabilities for:
  • PXR_CONTROLLER_LEFT: left controller
  • PXR_CONTROLLER_RIGHT: right controller
capabilityThe capabilities to return, such as the controller type, 3DOF/6DOF, and binding status.
Returns
Int: 0 indicates success, and other values indicates failure.

◆ Pxr_GetControllerConnectStatus()

int Pxr_GetControllerConnectStatus ( uint32_t  deviceID)

Gets the connection status of a specified controller.

Parameters
deviceIDThe controller to get connection status for:
  • PXR_CONTROLLER_LEFT: left controller
  • PXR_CONTROLLER_RIGHT: right controller
Returns
Int:
  • 0: connected
  • 1: not connected

◆ Pxr_GetControllerinfo()

int Pxr_GetControllerinfo ( uint32_t  deviceID,
PxrControllerInfo info 
)

Gets the information about a specified controller.

Parameters
deviceIDThe controller to get information for:
  • PXR_CONTROLLER_LEFT: left controller
  • PXR_CONTROLLER_RIGHT: right controller
infoController information, such as the bluetooth address and controller version.
Returns
Int: 0 indicates success, and other values indicates failure.

◆ Pxr_GetControllerInputEvent()

int Pxr_GetControllerInputEvent ( uint32_t  deviceID,
PxrControllerInputEvent event 
)

Gets the key event for a specified controller.

Parameters
deviceIDThe controller to get key event for:
  • PXR_CONTROLLER_LEFT: left controller
  • PXR_CONTROLLER_RIGHT: right controller
eventA structure that contains the details about key event.
Returns
Int: 0 indicates success, and other values indicates failure.

◆ Pxr_GetControllerInputState()

int Pxr_GetControllerInputState ( uint32_t  deviceID,
PxrControllerInputState state 
)

Gets the key status for a specified controller.

Parameters
deviceIDThe controller to get key status for:
  • PXR_CONTROLLER_LEFT: left controller
  • PXR_CONTROLLER_RIGHT: right controller
stateA structure that contains the details about key status.
Returns
Int: 0 indicates success, and other values indicates failure.

◆ Pxr_GetControllerKeyEventExt()

int * Pxr_GetControllerKeyEventExt ( int  controllerSerialNum,
int  devicetype 
)

◆ Pxr_GetControllerMainInputHandle()

int Pxr_GetControllerMainInputHandle ( uint32_t *  deviceID)

◆ Pxr_GetControllerTouchEvent()

int Pxr_GetControllerTouchEvent ( int  controllerSerialNum,
int  length,
int *  value 
)

◆ Pxr_GetControllerTrackingState()

int Pxr_GetControllerTrackingState ( uint32_t  deviceID,
double  predictTime,
float  headSensorData[],
PxrControllerTracking tracking 
)

Gets the pose data of a specified controller.

Parameters
deviceIDThe controller to get pose data for:
  • PXR_CONTROLLER_LEFT: left controller
  • PXR_CONTROLLER_RIGHT: right controller
predictTimeThe predicted time. Set it to 0 if time prediction is not needed.
headSensorDataThe pose data of the headset. Set it to "NULL" if headset pose data is not needed.
trackingOutput the pose data of the specified controller.
Returns
Int: 0 indicates success, and other values indicates failure.

◆ Pxr_GetHeadSensorData()

int Pxr_GetHeadSensorData ( float *  data)

◆ Pxr_RecenterInputPose()

int Pxr_RecenterInputPose ( uint32_t  deviceID)

◆ Pxr_SetControllerEnableKey()

int Pxr_SetControllerEnableKey ( bool  isEnable,
PxrControllerKeyMap  Key 
)

Enables/disables the specified controller key.

Parameters
isEnableWhether to enable/disable the specified key:
  • true: enable
  • false: disable
keyThe name of the key to enable or disable.
Returns
Int: 0 indicates success, and other values indicates failure.

◆ Pxr_SetControllerEnterPairingSetControllerEnterPairing()

int Pxr_SetControllerEnterPairingSetControllerEnterPairing ( uint32_t  deviceID)

◆ Pxr_SetControllerMainInputHandle()

int Pxr_SetControllerMainInputHandle ( uint32_t  deviceID)

Sets the main controller.

Parameters
deviceIDThe controller to set as the main controller:
  • PXR_CONTROLLER_LEFT: left controller
  • PXR_CONTROLLER_RIGHT: right controller
Returns
Int: 0 indicates success, and other values indicates failure.

◆ Pxr_SetControllerStopPairing()

int Pxr_SetControllerStopPairing ( uint32_t  deviceID)

◆ Pxr_SetControllerUnbind()

int Pxr_SetControllerUnbind ( uint32_t  deviceID)

◆ Pxr_SetControllerUpgrade()

int Pxr_SetControllerUpgrade ( uint32_t  deviceID,
int  rule,
char *  station_path_by_char,
char *  controller_path_by_char 
)

◆ Pxr_SetControllerVibration()

int Pxr_SetControllerVibration ( uint32_t  deviceID,
float  strength,
int  time 
)

Sets vibration for a specified controller.

Parameters
deviceIDThe controller to set vibration for:
  • PXR_CONTROLLER_LEFT: left controller
  • PXR_CONTROLLER_RIGHT: right controller
strengthVibration amplitude. The valid value ranges from 0.0f to 1.0f. The greater the value, the stronger the vibration amplitude.
timeVibration duration. The valid value ranges from 0 to 65535 (in milliseconds).
Returns
Int: 0 indicates success, and other values indicates failure.

◆ Pxr_SetInputEventCallback()

int Pxr_SetInputEventCallback ( bool  enable_Input_callback)