QtCraft API C++ classes QML types Handbook

QcVirtualGamepadSource Class

Gamepads fed from outside (decision E-540): unit tests and the control interface (gamepadConnect, gamepadSet, ...) connect pads and set their buttons and axes; the input mapping cannot tell them from real ones. More...

Header: #include <clientcore/input/QcVirtualGamepadSource.h>
Inherits: QcGamepadSource

Public Types

struct Rumble

Public Functions

int connectPad(const QString &name, QcGamepadType type, const QString &guid = {})
bool disconnectPad(int id)
QList<QcVirtualGamepadSource::Rumble> rumbles(int id) const
bool setAxis(int id, QcGamepadAxis axis, float value)
bool setPressed(int id, QcGamepadButton button, bool pressed)
bool setState(int id, const QcGamepadState &state)

Reimplemented Public Functions

virtual QString backendName() const override
virtual bool isAvailable() const override
virtual bool rumble(int id, float strength, int durationMs) override

Detailed Description

Always available; every virtual pad can vibrate, and the vibrations asked for are kept for tests.

Member Function Documentation

[override virtual] QString QcVirtualGamepadSource::backendName() const

Reimplements: QcGamepadSource::backendName() const.

int QcVirtualGamepadSource::connectPad(const QString &name, QcGamepadType type, const QString &guid = {})

Connects a pad called name of the family type with everything released; returns its id. guid names its model (profiles).

bool QcVirtualGamepadSource::disconnectPad(int id)

Disconnects pad id. Returns false for an unknown id.

[override virtual] bool QcVirtualGamepadSource::isAvailable() const

Reimplements: QcGamepadSource::isAvailable() const.

[override virtual] bool QcVirtualGamepadSource::rumble(int id, float strength, int durationMs)

Reimplements: QcGamepadSource::rumble(int id, float strength, int durationMs).

QList<QcVirtualGamepadSource::Rumble> QcVirtualGamepadSource::rumbles(int id) const

Returns the vibrations asked of pad id since it connected, oldest first.

bool QcVirtualGamepadSource::setAxis(int id, QcGamepadAxis axis, float value)

Sets axis of pad id to value, clamped like QcGamepadState::setAxis. Returns false for an unknown id.

bool QcVirtualGamepadSource::setPressed(int id, QcGamepadButton button, bool pressed)

Sets whether button of pad id is pressed. Returns false for an unknown id.

bool QcVirtualGamepadSource::setState(int id, const QcGamepadState &state)

Sets the buttons and axes of pad id to state. Returns false for an unknown id.