All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
SurgSim::Device::InputDeviceHandle Class Reference

Access to an input/HID device using the Input API in Linux. More...

#include <SurgSim/Devices/MultiAxis/linux/InputDeviceHandle.h>

Inheritance diagram for SurgSim::Device::InputDeviceHandle:
Inheritance graph
[legend]
Collaboration diagram for SurgSim::Device::InputDeviceHandle:
Collaboration graph
[legend]

Classes

struct  State
 

Public Member Functions

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

Static Public Member Functions

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

Private Member Functions

 InputDeviceHandle (std::shared_ptr< SurgSim::Framework::Logger > &&logger)
 Constructor. More...
 
 InputDeviceHandle (const InputDeviceHandle &other)=delete
 
InputDeviceHandleoperator= (const InputDeviceHandle &other)=delete
 
std::vector< int > getDeviceButtonsAndKeys ()
 Gets the indices of the available device buttons. More...
 
bool hasAbsoluteTranslationAndRotationAxes () const
 Query if this device has 3 translation and 3 rotation {absolute} axes. More...
 
bool hasRelativeTranslationAndRotationAxes () const
 Query if this device has 3 translation and 3 rotation {relative} axes. More...
 

Private Attributes

std::unique_ptr< Statem_state
 

Additional Inherited Members

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

Detailed Description

Access to an input/HID device using the Input API in Linux.

See also
SystemInputDeviceHandle

Constructor & Destructor Documentation

SurgSim::Device::InputDeviceHandle::~InputDeviceHandle ( )

Destructor.

SurgSim::Device::InputDeviceHandle::InputDeviceHandle ( std::shared_ptr< SurgSim::Framework::Logger > &&  logger)
explicitprivate

Constructor.

Cannot be called directly.

See also
open
SurgSim::Device::InputDeviceHandle::InputDeviceHandle ( const InputDeviceHandle other)
privatedelete

Member Function Documentation

std::vector< std::string > SurgSim::Device::InputDeviceHandle::enumeratePaths ( SurgSim::Framework::Logger logger)
static

Enumerates input devices.

Parameters
loggerThe logger to be used during enumeration.
Returns
A list of device paths.
std::vector< int > SurgSim::Device::InputDeviceHandle::getDeviceButtonsAndKeys ( )
private

Gets the indices of the available device buttons.

Returns
a vector of indices.
bool SurgSim::Device::InputDeviceHandle::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::Device::SystemInputDeviceHandle.

std::string SurgSim::Device::InputDeviceHandle::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::Device::SystemInputDeviceHandle.

bool SurgSim::Device::InputDeviceHandle::hasAbsoluteTranslationAndRotationAxes ( ) const
private

Query if this device has 3 translation and 3 rotation {absolute} axes.

Returns
true if the desired axes are present.
bool SurgSim::Device::InputDeviceHandle::hasRelativeTranslationAndRotationAxes ( ) const
private

Query if this device has 3 translation and 3 rotation {relative} axes.

Returns
true if the desired axes are present.
bool SurgSim::Device::InputDeviceHandle::hasTranslationAndRotationAxes ( ) const
overridevirtual

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

Returns
true if the desired axes are present.

Implements SurgSim::Device::SystemInputDeviceHandle.

std::unique_ptr< InputDeviceHandle > SurgSim::Device::InputDeviceHandle::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.
InputDeviceHandle& SurgSim::Device::InputDeviceHandle::operator= ( const InputDeviceHandle other)
privatedelete
bool SurgSim::Device::InputDeviceHandle::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::Device::SystemInputDeviceHandle.

Member Data Documentation

std::unique_ptr<State> SurgSim::Device::InputDeviceHandle::m_state
private

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