Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
KODI::KEYMAP::CKeymapHandler Class Reference

#include <KeymapHandler.h>

Inheritance diagram for KODI::KEYMAP::CKeymapHandler:
KODI::KEYMAP::IKeymapHandler KODI::JOYSTICK::IInputHandler

Public Member Functions

 CKeymapHandler (ACTION::IActionListener *actionHandler, const IKeymap *keymap)
 
 ~CKeymapHandler () override=default
 
bool HotkeysPressed (const std::set< std::string > &keyNames) const override
 Get the pressed state of the given keys.
 
std::string GetLastPressed () const override
 Get the key name of the last button pressed.
 
void OnPress (const std::string &keyName) override
 Called when a key has emitted an action after bring pressed.
 
std::string ControllerID () const override
 The add-on ID of the game controller associated with this input handler.
 
bool HasFeature (const JOYSTICK::FeatureName &feature) const override
 Return true if the input handler accepts the given feature.
 
bool AcceptsInput (const JOYSTICK::FeatureName &feature) const override
 Return true if the input handler is currently accepting input for the given feature.
 
bool OnButtonPress (const JOYSTICK::FeatureName &feature, bool bPressed) override
 A digital button has been pressed or released.
 
void OnButtonHold (const JOYSTICK::FeatureName &feature, unsigned int holdTimeMs) override
 A digital button has been pressed for more than one event frame.
 
bool OnButtonMotion (const JOYSTICK::FeatureName &feature, float magnitude, unsigned int motionTimeMs) override
 An analog button (trigger or a pressure-sensitive button) has changed state.
 
bool OnAnalogStickMotion (const JOYSTICK::FeatureName &feature, float x, float y, unsigned int motionTimeMs) override
 An analog stick has moved.
 
bool OnAccelerometerMotion (const JOYSTICK::FeatureName &feature, float x, float y, float z) override
 An accelerometer's state has changed.
 
bool OnWheelMotion (const JOYSTICK::FeatureName &feature, float position, unsigned int motionTimeMs) override
 A wheel has changed state.
 
bool OnThrottleMotion (const JOYSTICK::FeatureName &feature, float position, unsigned int motionTimeMs) override
 A throttle has changed state.
 
void OnInputFrame () override
 Called at the end of the frame that provided input.
 
- Public Member Functions inherited from KODI::KEYMAP::IKeymapHandler
virtual ~IKeymapHandler ()=default
 
- Public Member Functions inherited from KODI::JOYSTICK::IInputHandler
virtual ~IInputHandler ()=default
 
void SetInputReceiver (IInputReceiver *receiver)
 
void ResetInputReceiver (void)
 
IInputReceiverInputReceiver (void)
 

Protected Attributes

std::unique_ptr< JOYSTICK::IButtonSequencem_easterEgg
 

Constructor & Destructor Documentation

◆ CKeymapHandler()

CKeymapHandler::CKeymapHandler ( ACTION::IActionListener * actionHandler,
const IKeymap * keymap )

◆ ~CKeymapHandler()

KODI::KEYMAP::CKeymapHandler::~CKeymapHandler ( )
overridedefault

Member Function Documentation

◆ AcceptsInput()

bool CKeymapHandler::AcceptsInput ( const JOYSTICK::FeatureName & feature) const
overridevirtual

Return true if the input handler is currently accepting input for the given feature.

Parameters
featureA feature belonging to the controller specified by ControllerID()
Returns
True if the feature is currently accepting input, false otherwise

This does not prevent the input events from being called, but can return false to indicate that input wasn't handled for the specified feature.

Implements KODI::JOYSTICK::IInputHandler.

◆ ControllerID()

std::string CKeymapHandler::ControllerID ( ) const
overridevirtual

The add-on ID of the game controller associated with this input handler.

Returns
The ID of the add-on extending kodi.game.controller

Implements KODI::JOYSTICK::IInputHandler.

◆ GetLastPressed()

std::string KODI::KEYMAP::CKeymapHandler::GetLastPressed ( ) const
inlineoverridevirtual

Get the key name of the last button pressed.

Returns
The key name of the last-pressed button, or empty if no button is pressed

Implements KODI::KEYMAP::IKeymapHandler.

◆ HasFeature()

bool KODI::KEYMAP::CKeymapHandler::HasFeature ( const JOYSTICK::FeatureName & feature) const
inlineoverridevirtual

Return true if the input handler accepts the given feature.

Parameters
featureA feature belonging to the controller specified by ControllerID()
Returns
True if the feature is used for input, false otherwise

Implements KODI::JOYSTICK::IInputHandler.

◆ HotkeysPressed()

bool CKeymapHandler::HotkeysPressed ( const std::set< std::string > & keyNames) const
overridevirtual

Get the pressed state of the given keys.

Parameters
keyNamesThe key names
Returns
True if all keys are pressed or no keys are given, false otherwise

Implements KODI::KEYMAP::IKeymapHandler.

◆ OnAccelerometerMotion()

bool CKeymapHandler::OnAccelerometerMotion ( const JOYSTICK::FeatureName & feature,
float x,
float y,
float z )
overridevirtual

An accelerometer's state has changed.

Parameters
featureThe accelerometer being accelerated
xThe x coordinate in the closed interval [-1, 1]
yThe y coordinate in the closed interval [-1, 1]
zThe z coordinate in the closed interval [-1, 1]
Returns
True if the event was handled otherwise false
Todo
implement

Reimplemented from KODI::JOYSTICK::IInputHandler.

◆ OnAnalogStickMotion()

bool CKeymapHandler::OnAnalogStickMotion ( const JOYSTICK::FeatureName & feature,
float x,
float y,
unsigned int motionTimeMs )
overridevirtual

An analog stick has moved.

Parameters
featureThe analog stick being moved
xThe x coordinate in the closed interval [-1, 1]
yThe y coordinate in the closed interval [-1, 1]
motionTimeMsThe time elapsed since this analog stick was centered, or 0 if the analog stick is centered
Returns
True if the event was handled otherwise false

Implements KODI::JOYSTICK::IInputHandler.

◆ OnButtonHold()

void CKeymapHandler::OnButtonHold ( const JOYSTICK::FeatureName & feature,
unsigned int holdTimeMs )
overridevirtual

A digital button has been pressed for more than one event frame.

Parameters
featureThe feature being held
holdTimeMsThe time elapsed since the initial press (ms)

If OnButtonPress() returns true for the initial press, then this callback is invoked on subsequent frames until the button is released.

Implements KODI::JOYSTICK::IInputHandler.

◆ OnButtonMotion()

bool CKeymapHandler::OnButtonMotion ( const JOYSTICK::FeatureName & feature,
float magnitude,
unsigned int motionTimeMs )
overridevirtual

An analog button (trigger or a pressure-sensitive button) has changed state.

Parameters
featureThe feature changing state
magnitudeThe button pressure or trigger travel distance in the closed interval [0, 1]
motionTimeMsThe time elapsed since the magnitude was 0
Returns
True if the event was handled otherwise false

Implements KODI::JOYSTICK::IInputHandler.

◆ OnButtonPress()

bool CKeymapHandler::OnButtonPress ( const JOYSTICK::FeatureName & feature,
bool bPressed )
overridevirtual

A digital button has been pressed or released.

Parameters
featureThe feature being pressed
bPressedTrue if pressed, false if released
Returns
True if the event was handled otherwise false

Implements KODI::JOYSTICK::IInputHandler.

◆ OnInputFrame()

void KODI::KEYMAP::CKeymapHandler::OnInputFrame ( )
inlineoverridevirtual

Called at the end of the frame that provided input.

Implements KODI::JOYSTICK::IInputHandler.

◆ OnPress()

void KODI::KEYMAP::CKeymapHandler::OnPress ( const std::string & keyName)
inlineoverridevirtual

Called when a key has emitted an action after bring pressed.

Parameters
keyNamethe key name that emitted the action

Implements KODI::KEYMAP::IKeymapHandler.

◆ OnThrottleMotion()

bool CKeymapHandler::OnThrottleMotion ( const JOYSTICK::FeatureName & feature,
float position,
unsigned int motionTimeMs )
overridevirtual

A throttle has changed state.

Up is positive position, down is negative position.

Parameters
featureThe wheel changing state
positionThe position in the closed interval [-1, 1]
motionTimeMsThe time elapsed since the position was 0
Returns
True if the event was handled otherwise false

Implements KODI::JOYSTICK::IInputHandler.

◆ OnWheelMotion()

bool CKeymapHandler::OnWheelMotion ( const JOYSTICK::FeatureName & feature,
float position,
unsigned int motionTimeMs )
overridevirtual

A wheel has changed state.

Left is negative position, right is positive position

Parameters
featureThe wheel changing state
positionThe position in the closed interval [-1, 1]
motionTimeMsThe time elapsed since the position was 0
Returns
True if the event was handled otherwise false

Implements KODI::JOYSTICK::IInputHandler.

Member Data Documentation

◆ m_easterEgg

std::unique_ptr<JOYSTICK::IButtonSequence> KODI::KEYMAP::CKeymapHandler::m_easterEgg
protected

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