12 #ifndef hifi_StateController_h
13 #define hifi_StateController_h
15 #include <QtCore/QObject>
16 #include <QtCore/QVector>
18 #include "InputDevice.h"
20 namespace controller {
22 class StateController :
public QObject,
public InputDevice {
24 Q_PROPERTY(QString name READ getName)
27 using Pointer = std::shared_ptr<StateController>;
28 using ReadLambda = std::function<float()>;
29 using NamedReadLambda = QPair<QString, ReadLambda>;
31 static void setStateVariables(
const QStringList& stateVariables);
35 const QString& getName()
const {
return _name; }
38 Input::NamedVector getAvailableInputs()
const override;
40 void setInputVariant(
const QString& name, ReadLambda lambda);
42 EndpointPointer createEndpoint(
const Input& input)
const override;
45 QHash<QString, ReadLambda> _namedReadLambdas;