stmm-input-doc  0.17.0
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
stmi::JoystickButtonEvent Class Reference

Event generated when the state of a joystick's button is changed. More...

Inheritance diagram for stmi::JoystickButtonEvent:
Inheritance graph
[legend]

Public Types

enum  BUTTON_INPUT_TYPE { BUTTON_PRESS = AS_KEY_PRESS, BUTTON_RELEASE = AS_KEY_RELEASE, BUTTON_RELEASE_CANCEL = AS_KEY_RELEASE_CANCEL }
 Describes what happened to the button. More...
 
- Public Types inherited from stmi::Event
enum  AS_KEY_INPUT_TYPE { AS_KEY_PRESS = 1, AS_KEY_RELEASE = 2, AS_KEY_RELEASE_CANCEL = 3 }
 Key simulation type. More...
 

Public Member Functions

 JoystickButtonEvent (int64_t nTimeUsec, const shared_ptr< Accessor > &refAccessor, const shared_ptr< JoystickCapability > &refJoystickCapability, BUTTON_INPUT_TYPE eType, JoystickCapability::BUTTON eButton) noexcept
 Constructor. More...
 
BUTTON_INPUT_TYPE getType () const noexcept
 
JoystickCapability::BUTTON getButton () const noexcept
 
shared_ptr< JoystickCapabilitygetJoystickCapability () const noexcept
 The joystick capability. More...
 
bool getAsKey (HARDWARE_KEY &eKey, AS_KEY_INPUT_TYPE &eType, bool &bMoreThanOne) const noexcept override
 Get the button as a key. More...
 
shared_ptr< CapabilitygetCapability () const noexcept override
 Returns the capability that generated this event. More...
 
- Public Member Functions inherited from stmi::Event
virtual ~Event () noexcept=default
 
int64_t getTimeUsec () const noexcept
 Returns the time this event originated. More...
 
int32_t getCapabilityId () const noexcept
 Returns the id of the capability that generated this event. More...
 
const shared_ptr< Accessor > & getAccessor () const noexcept
 Returns the accessor that helped generate this event. More...
 
virtual std::vector< std::pair< HARDWARE_KEY, AS_KEY_INPUT_TYPE > > getAsKeys () const noexcept
 All the keys this event simulates. More...
 
const ClassgetEventClass () const noexcept
 Get the registered class of the event instance. More...
 

Static Public Member Functions

static const Event::ClassgetClass () noexcept
 
- Static Public Member Functions inherited from stmi::Event
static bool isEventClassIdRegistered (const std::string &sEventClassId) noexcept
 Tells whether the given event class id is registered. More...
 
static Class getEventClassIdClass (const std::string &sEventClassId) noexcept
 Gets the event class with given class id. More...
 

Static Public Attributes

static const char *const s_sClassId
 

Protected Member Functions

void setType (BUTTON_INPUT_TYPE eType) noexcept
 Sets the type. More...
 
void setButton (JoystickCapability::BUTTON eButton) noexcept
 Sets the button. More...
 
void setJoystickCapability (const shared_ptr< JoystickCapability > &refJoystickCapability) noexcept
 Sets the capability. More...
 
- Protected Member Functions inherited from stmi::Event
 Event (const Class &oClass, int64_t nTimeUsec, int32_t nCapabilityId, const shared_ptr< Accessor > &refAccessor) noexcept
 Constructor to be called from subclasses. More...
 
 Event (const Class &oClass, int64_t nTimeUsec, int32_t nCapabilityId) noexcept
 Constructor to be called from subclasses (with empty accessor). More...
 
void setTimeUsec (int64_t nTimeUsec) noexcept
 Set the event time. More...
 
void setCapabilityId (int32_t nCapabilityId) noexcept
 Set the capability id. More...
 
void setAccessor (const shared_ptr< Accessor > &refAccessor) noexcept
 Set the accessor. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from stmi::Event
static bool isEventTypeRegistered (const std::type_info &oEventType) noexcept
 Tells whether an event type was registered. More...
 
static const std::type_info & getEventClassIdType (const std::string &sEventClassId, bool &bRegistered) noexcept
 Gets the type of the registered event subclass associated with class id. More...
 
static std::string getEventTypeClassId (const std::type_info &oType) noexcept
 Gets the class id of the given type. More...
 

Detailed Description

Event generated when the state of a joystick's button is changed.

Member Enumeration Documentation

◆ BUTTON_INPUT_TYPE

Describes what happened to the button.

Enumerator
BUTTON_PRESS 
BUTTON_RELEASE 
BUTTON_RELEASE_CANCEL 

Constructor & Destructor Documentation

◆ JoystickButtonEvent()

stmi::JoystickButtonEvent::JoystickButtonEvent ( int64_t  nTimeUsec,
const shared_ptr< Accessor > &  refAccessor,
const shared_ptr< JoystickCapability > &  refJoystickCapability,
BUTTON_INPUT_TYPE  eType,
JoystickCapability::BUTTON  eButton 
)
noexcept

Constructor.

See also
JoystickCapability::BUTTON for valid buttons.
Parameters
nTimeUsecTime from epoch in microseconds.
refAccessorThe accessor used to generate the event. Can be null.
refJoystickCapabilityThe capability that generated this event. Cannot be null.
eTypeWhat happened to the button.
eButtonThe button.

Member Function Documentation

◆ getAsKey()

bool stmi::JoystickButtonEvent::getAsKey ( HARDWARE_KEY eKey,
AS_KEY_INPUT_TYPE eType,
bool &  bMoreThanOne 
) const
overridevirtualnoexcept

Get the button as a key.

All the buttons of JoystickCapability::BUTTON have a HARDWARE_KEY with the 'same' name and value.

Reimplemented from stmi::Event.

◆ getButton()

JoystickCapability::BUTTON stmi::JoystickButtonEvent::getButton ( ) const
inlinenoexcept

◆ getCapability()

shared_ptr<Capability> stmi::JoystickButtonEvent::getCapability ( ) const
inlineoverridevirtualnoexcept

Returns the capability that generated this event.

The Event subclass implementation keeps only a weak_ptr on the capability to avoid reference cycles.

Returns
The capability or null if the capability was deleted.

Implements stmi::Event.

◆ getClass()

static const Event::Class& stmi::JoystickButtonEvent::getClass ( )
inlinestaticnoexcept

◆ getJoystickCapability()

shared_ptr<JoystickCapability> stmi::JoystickButtonEvent::getJoystickCapability ( ) const
inlinenoexcept

The joystick capability.

Returns
The capability or null if the capability was deleted.

◆ getType()

BUTTON_INPUT_TYPE stmi::JoystickButtonEvent::getType ( ) const
inlinenoexcept

◆ setButton()

void stmi::JoystickButtonEvent::setButton ( JoystickCapability::BUTTON  eButton)
inlineprotectednoexcept

Sets the button.

Parameters
eButtonThe button.

◆ setJoystickCapability()

void stmi::JoystickButtonEvent::setJoystickCapability ( const shared_ptr< JoystickCapability > &  refJoystickCapability)
inlineprotectednoexcept

Sets the capability.

Parameters
refJoystickCapabilityThe capability that generated this event. Cannot be null.

◆ setType()

void stmi::JoystickButtonEvent::setType ( BUTTON_INPUT_TYPE  eType)
inlineprotectednoexcept

Sets the type.

Parameters
eTypeWhat happened to the button.

Member Data Documentation

◆ s_sClassId

const char* const stmi::JoystickButtonEvent::s_sClassId
static