Overte C++ Documentation
InputEndpoint.h
1 //
2 // Created by Bradley Austin Davis 2015/10/23
3 // Copyright 2015 High Fidelity, Inc.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 //
8 
9 #pragma once
10 #ifndef hifi_Controllers_InputEndpoint_h
11 #define hifi_Controllers_InputEndpoint_h
12 
13 #include "../Endpoint.h"
14 
15 namespace controller {
16 
17 class InputEndpoint : public Endpoint {
18 public:
19  static std::shared_ptr<Endpoint> newEndpoint(const Input& id = Input::INVALID_INPUT) {
20  return std::shared_ptr<Endpoint>(new InputEndpoint(id));
21  };
22 
23  virtual AxisValue peek() const override;
24  virtual AxisValue value() override;
25  // FIXME need support for writing back to vibration / force feedback effects
26  virtual void apply(AxisValue newValue, const Pointer& source) override {}
27 
28  virtual Pose peekPose() const override;
29  virtual Pose pose() override;
30  virtual void apply(const Pose& value, const Pointer& source) override { }
31 
32  virtual bool writeable() const override { return false; }
33  virtual bool readable() const override { return !_read; }
34  virtual void reset() override { _read = false; }
35 
36 private:
37  InputEndpoint(const Input& id = Input::INVALID_INPUT)
38  : Endpoint(id) {
39  }
40 
41  bool _read { false };
42 };
43 
44 }
45 
46 #endif