Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
ITouchInputHandler Class Referenceabstract

Interface (implements ITouchInputHandling) defining methods to handle raw touch input events (down, up, move). More...

#include <ITouchInputHandler.h>

Inheritance diagram for ITouchInputHandler:
ITouchInputHandling ITouchActionHandler CGenericTouchInputHandler

Public Member Functions

 ITouchInputHandler ()
 
 ~ITouchInputHandler () override=default
 
virtual bool HandleTouchInput (TouchInput event, float x, float y, int64_t time, int32_t pointer=0, float size=0.0f)=0
 Handle a touch event.
 
virtual bool UpdateTouchPointer (int32_t pointer, float x, float y, int64_t time, float size=0.0f)
 Update the coordinates of a pointer.
 
void SetScreenDPI (float dpi)
 
float GetScreenDPI ()
 
- Public Member Functions inherited from ITouchInputHandling
 ITouchInputHandling ()
 
 ~ITouchInputHandling () override=default
 
void RegisterHandler (ITouchActionHandler *touchHandler)
 Register a touch input handler.
 
void UnregisterHandler ()
 Unregister the previously registered touch handler.
 

Protected Attributes

std::atomic< float > m_dpi
 DPI value of the touch screen.
 

Additional Inherited Members

- Protected Member Functions inherited from ITouchInputHandling
void OnTouchAbort () override
 A touch action has been aborted.
 
bool OnSingleTouchStart (float x, float y) override
 A single touch has started.
 
bool OnSingleTouchHold (float x, float y) override
 A single touch has been held down for a certain amount of time.
 
bool OnSingleTouchMove (float x, float y, float offsetX, float offsetY, float velocityX, float velocityY) override
 A single touch has moved.
 
bool OnSingleTouchEnd (float x, float y) override
 A single touch has been lifted.
 
bool OnMultiTouchDown (float x, float y, int32_t pointer) override
 An additional touch has been performed.
 
bool OnMultiTouchHold (float x, float y, int32_t pointers=2) override
 Multiple simultaneous touches have been held down for a certain amount of time.
 
bool OnMultiTouchMove (float x, float y, float offsetX, float offsetY, float velocityX, float velocityY, int32_t pointer) override
 A touch has moved.
 
bool OnMultiTouchUp (float x, float y, int32_t pointer) override
 A touch has been lifted (but there are still active touches)
 
bool OnTouchGestureStart (float x, float y) override
 A pan gesture with a single touch has been started.
 
bool OnTouchGesturePan (float x, float y, float offsetX, float offsetY, float velocityX, float velocityY) override
 A pan gesture with a single touch is in progress.
 
bool OnTouchGestureEnd (float x, float y, float offsetX, float offsetY, float velocityX, float velocityY) override
 A pan gesture with a single touch has ended.
 
void OnTap (float x, float y, int32_t pointers=1) override
 A tap with a one or more touches has been performed.
 
void OnLongPress (float x, float y, int32_t pointers=1) override
 One or more touches have been held down for a certain amount of time.
 
void OnSwipe (TouchMoveDirection direction, float xDown, float yDown, float xUp, float yUp, float velocityX, float velocityY, int32_t pointers=1) override
 One or more touches has been moved quickly in a single direction in a short time.
 
void OnZoomPinch (float centerX, float centerY, float zoomFactor) override
 Two simultaneous touches have been held down and moved to perform a zooming/pinching gesture.
 
void OnRotate (float centerX, float centerY, float angle) override
 Two simultaneous touches have been held down and moved to perform a rotating gesture.
 
- Protected Member Functions inherited from ITouchActionHandler
virtual ~ITouchActionHandler ()=default
 

Detailed Description

Interface (implements ITouchInputHandling) defining methods to handle raw touch input events (down, up, move).

This interface should be implemented on platforms only supporting low level (raw) touch input events like touch down/up/move and with no gesture recognition logic.

Constructor & Destructor Documentation

◆ ITouchInputHandler()

ITouchInputHandler::ITouchInputHandler ( )
inline

◆ ~ITouchInputHandler()

ITouchInputHandler::~ITouchInputHandler ( )
overridedefault

Member Function Documentation

◆ GetScreenDPI()

float ITouchInputHandler::GetScreenDPI ( )
inline

◆ HandleTouchInput()

virtual bool ITouchInputHandler::HandleTouchInput ( TouchInput event,
float x,
float y,
int64_t time,
int32_t pointer = 0,
float size = 0.0f )
pure virtual

Handle a touch event.

Handles the given touch event at the given location. This takes into account all the currently active pointers which need to be updated before calling this method to actually interpret and handle the changes in touch.

Parameters
eventThe actual touch event (abort, down, up, move)
xThe x coordinate (with sub-pixel) of the touch
yThe y coordinate (with sub-pixel) of the touch
timeThe time (in nanoseconds) when this touch occurred
pointerThe number of the touch pointer which caused this event (default 0)
sizeThe size of the touch pointer (with sub-pixel) (default 0.0)
Returns
True if the event was handled otherwise false.
See also
Update

Implemented in CGenericTouchInputHandler.

◆ SetScreenDPI()

void ITouchInputHandler::SetScreenDPI ( float dpi)
inline

◆ UpdateTouchPointer()

virtual bool ITouchInputHandler::UpdateTouchPointer ( int32_t pointer,
float x,
float y,
int64_t time,
float size = 0.0f )
inlinevirtual

Update the coordinates of a pointer.

Depending on how a platform handles touch input and provides the necessary events this method needs to be called at different times. If there's an event for every touch action this method does not need to be called at all. If there's only a touch event for the primary pointer (and no special events for any secondary pointers in a multi touch gesture) this method should be called for every active secondary pointer before calling Handle.

Parameters
pointerThe number of the touch pointer which caused this event (default 0)
xThe x coordinate (with sub-pixel) of the touch
yThe y coordinate (with sub-pixel) of the touch
timeThe time (in nanoseconds) when this touch occurred
sizeThe size of the touch pointer (with sub-pixel) (default 0.0)
Returns
True if the pointer was updated otherwise false.
See also
Handle

Reimplemented in CGenericTouchInputHandler.

Member Data Documentation

◆ m_dpi

std::atomic<float> ITouchInputHandler::m_dpi
protected

DPI value of the touch screen.


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