10 #ifndef hifi_Controllers_StandardEndpoint_h
11 #define hifi_Controllers_StandardEndpoint_h
13 #include "../Endpoint.h"
15 #include <DependencyManager.h>
17 #include "../../InputRecorder.h"
18 #include "../../UserInputMapper.h"
20 namespace controller {
22 class StandardEndpoint :
public VirtualEndpoint {
24 StandardEndpoint(
const Input& input) : VirtualEndpoint(input) {}
25 virtual bool writeable()
const override {
return !_written; }
26 virtual bool readable()
const override {
return !_read; }
27 virtual void reset()
override {
28 apply(AxisValue(), Endpoint::Pointer());
29 apply(Pose(), Endpoint::Pointer());
30 _written = _read =
false;
33 virtual AxisValue value()
override {
35 return VirtualEndpoint::value();
38 virtual void apply(AxisValue value,
const Pointer& source)
override {
40 if (value != AxisValue()) {
43 VirtualEndpoint::apply(value, source);
46 virtual Pose pose()
override {
48 InputRecorder* inputRecorder = InputRecorder::getInstance();
49 if (inputRecorder->isPlayingback()) {
50 auto userInputMapper = DependencyManager::get<UserInputMapper>();
51 QString actionName = userInputMapper->getStandardPoseName(_input.getChannel());
52 return inputRecorder->getPoseState(actionName);
54 return VirtualEndpoint::pose();
57 virtual void apply(
const Pose& value,
const Pointer& source)
override {
58 if (value != Pose() && value.isValid()) {
61 VirtualEndpoint::apply(value, source);
65 bool _written {
false };