TinyGPU
Loading...
Searching...
No Matches
Public Member Functions | List of all members
TouchDriverSDL Class Reference

Maps the desktop mouse to a TouchDriver, for exercising touch-driven UI (buttons, sliders, ...) on the SDL desktop backend without any physical touch hardware. More...

#include <TouchDriverSDL.h>

Inheritance diagram for TouchDriverSDL:
Inheritance graph
[legend]
Collaboration diagram for TouchDriverSDL:
Collaboration graph
[legend]

Public Member Functions

 TouchDriverSDL ()=default
 
bool begin () override
 Initialize the controller.
 
bool isTouched () override
 Return whether the panel currently appears touched.
 
bool getPoint (Point &outPoint) override
 Read the current touch point.
 
- Public Member Functions inherited from TouchDriver
virtual ~TouchDriver ()=default
 
virtual bool begin ()=0
 Initialize the controller.
 
virtual bool isTouched ()=0
 Return whether the panel currently appears touched.
 
virtual bool getPoint (Point &outPoint)=0
 Read the current touch point.
 
virtual bool getSecondPoint (Point &outPoint)
 Read a second, simultaneous touch point, for multi-touch gestures (pinch/rotate).
 
void setRotation (Rotation rotation)
 
Rotation getRotation () const
 
bool setCalibration (const CalibrationData &cal)
 Set and validate calibration.
 
const CalibrationData & getCalibration () const
 
bool hasCalibration () const
 

Additional Inherited Members

- Protected Member Functions inherited from TouchDriver
Point mapCoordinates (int16_t rawX, int16_t rawY, uint16_t pressure=255) const
 Convert raw controller coordinates into logical display space.
 
- Static Protected Member Functions inherited from TouchDriver
static bool validateCalibration (const CalibrationData &cal)
 
static int32_t clamp32 (int32_t value, int32_t minimum, int32_t maximum)
 Clamp an integer to an inclusive range.
 
static int32_t mapRange (int32_t value, int32_t inMin, int32_t inMax, int32_t outMin, int32_t outMax)
 Map an integer from one range to another.
 
- Protected Attributes inherited from TouchDriver
Rotation rotation_ = Rotation::Deg0
 
CalibrationData calibration_
 
bool hasCalibration_ = false
 

Detailed Description

Maps the desktop mouse to a TouchDriver, for exercising touch-driven UI (buttons, sliders, ...) on the SDL desktop backend without any physical touch hardware.

The left mouse button stands in for a finger: button down = touched, cursor position = touch point. SDL_QUIT (closing the window) exits the process, since there is no hardware equivalent to hand back to the sketch.

Like every TouchDriver, isTouched() and getPoint() do not implicitly loop or block. isTouched() is where the SDL event queue is drained (via SDL_PollEvent), so - as with the other drivers in this file - call it exactly once per loop() iteration.

Constructor & Destructor Documentation

◆ TouchDriverSDL()

TouchDriverSDL ( )
default

Member Function Documentation

◆ begin()

bool begin ( )
inlineoverridevirtual

Initialize the controller.

The driver does NOT initialize the SPI/I2C bus itself. The application is responsible for calling Wire.begin(), SPI.begin(), and configuring any board-specific bus pins.

Implements TouchDriver.

◆ getPoint()

bool getPoint ( Point &  outPoint)
inlineoverridevirtual

Read the current touch point.

Returns
true if a valid touch point was obtained.

Implements TouchDriver.

◆ isTouched()

bool isTouched ( )
inlineoverridevirtual

Return whether the panel currently appears touched.

For controllers without an IRQ pin this may perform a controller read.

Implements TouchDriver.


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