opensurgsim
Classes | Public Member Functions | Static Public Member Functions | List of all members
SurgSim::Devices::WdkHidDeviceHandle Class Reference

Access to an input/HID device using the HID API from the Windows Driver Kit. More...

#include <WdkHidDeviceHandle.h>

Inheritance diagram for SurgSim::Devices::WdkHidDeviceHandle:
SurgSim::Devices::SystemInputDeviceHandle

Classes

struct  State
 

Public Member Functions

 ~WdkHidDeviceHandle ()
 Destructor.
 
std::string getDeviceName () const override
 Gets the name returned by the operating system for this device. More...
 
bool getDeviceIds (int *vendorId, int *productId) const override
 Gets the device identifiers. More...
 
bool hasTranslationAndRotationAxes () const override
 Queries if this device has 3 translation and 3 rotation axes. More...
 
bool updateStates (AxisStates *axisStates, ButtonStates *buttonStates, bool *updated) override
 Updates the axis and states from the device input, if any. More...
 
void prepareForShutdown () override
 Prepares the handle for sampling thread shutdown. More...
 
- Public Member Functions inherited from SurgSim::Devices::SystemInputDeviceHandle
virtual ~SystemInputDeviceHandle ()
 Destructor.
 

Static Public Member Functions

static std::vector< std::string > enumeratePaths (SurgSim::Framework::Logger *logger)
 Enumerates input devices. More...
 
static std::unique_ptr< WdkHidDeviceHandleopen (const std::string &path, std::shared_ptr< SurgSim::Framework::Logger > logger)
 Opens the given path and creates an access wrapper for the device. More...
 

Additional Inherited Members

- Public Types inherited from SurgSim::Devices::SystemInputDeviceHandle
typedef std::array< int, MAX_NUM_AXESAxisStates
 Type used to store axis states.
 
typedef std::array< bool, MAX_NUM_BUTTONSButtonStates
 Type used to store button states.
 
- Static Public Attributes inherited from SurgSim::Devices::SystemInputDeviceHandle
static const size_t MAX_NUM_AXES = 6
 The maximum number of axes supported by any device object.
 
static const size_t MAX_NUM_BUTTONS = 4
 The maximum number of buttons supported by any device object.
 
- Protected Member Functions inherited from SurgSim::Devices::SystemInputDeviceHandle
 SystemInputDeviceHandle ()
 Default constructor. More...
 

Detailed Description

Access to an input/HID device using the HID API from the Windows Driver Kit.

See also
SystemInputDeviceHandle

Member Function Documentation

§ enumeratePaths()

std::vector< std::string > SurgSim::Devices::WdkHidDeviceHandle::enumeratePaths ( SurgSim::Framework::Logger logger)
static

Enumerates input devices.

Parameters
loggerThe logger to be used during enumeration.
Returns
A list of device paths.

§ getDeviceIds()

bool SurgSim::Devices::WdkHidDeviceHandle::getDeviceIds ( int *  vendorId,
int *  productId 
) const
overridevirtual

Gets the device identifiers.

Parameters
[out]vendorIdThe USB or PCI vendor identifier.
[out]productIdThe USB or PCI product identifier.
Returns
true if it succeeds.

Implements SurgSim::Devices::SystemInputDeviceHandle.

§ getDeviceName()

std::string SurgSim::Devices::WdkHidDeviceHandle::getDeviceName ( ) const
overridevirtual

Gets the name returned by the operating system for this device.

Returns
The reported name, or "???" if no name information could be found.

Implements SurgSim::Devices::SystemInputDeviceHandle.

§ hasTranslationAndRotationAxes()

bool SurgSim::Devices::WdkHidDeviceHandle::hasTranslationAndRotationAxes ( ) const
overridevirtual

Queries if this device has 3 translation and 3 rotation axes.

Returns
true if the desired axes are present.

Implements SurgSim::Devices::SystemInputDeviceHandle.

§ open()

std::unique_ptr< WdkHidDeviceHandle > SurgSim::Devices::WdkHidDeviceHandle::open ( const std::string &  path,
std::shared_ptr< SurgSim::Framework::Logger logger 
)
static

Opens the given path and creates an access wrapper for the device.

Parameters
pathFull pathname for the device.
loggerThe logger to be used by the device.
Returns
The created device object, or an empty unique_ptr on failure.

§ prepareForShutdown()

void SurgSim::Devices::WdkHidDeviceHandle::prepareForShutdown ( )
overridevirtual

Prepares the handle for sampling thread shutdown.

Should be called from the same thread that was calling updateStates, after the calls to updateStates have been stopped, but before object destruction.

Reimplemented from SurgSim::Devices::SystemInputDeviceHandle.

§ updateStates()

bool SurgSim::Devices::WdkHidDeviceHandle::updateStates ( AxisStates axisStates,
ButtonStates buttonStates,
bool *  updated 
)
overridevirtual

Updates the axis and states from the device input, if any.

Parameters
[in,out]axisStatesThe states for each axis of the device.
[in,out]buttonStatesThe states for each device button.
[out]updatedTrue if any states were actually updated. (Note that even if this value is true, the states may not have changed value; one or more states could have been updated to the same value.)
Returns
true if the operation was successful; false if the device is no longer in a usable state.

Implements SurgSim::Devices::SystemInputDeviceHandle.


The documentation for this class was generated from the following files: