Merge pull request #6181 from jherico/capi

Remove new/old value division from endpoint::apply
This commit is contained in:
Brad Hefta-Gaub 2015-10-26 14:58:11 -07:00
commit 55d0b8a99e
14 changed files with 39 additions and 40 deletions

View file

@ -529,7 +529,7 @@ bool UserInputMapper::applyRoute(const Route::Pointer& route, bool force) {
} }
} }
// no filters yet for pose // no filters yet for pose
destination->apply(value, Pose(), source); destination->apply(value, source);
} else { } else {
// Fetch the value, may have been overriden by previous loopback routes // Fetch the value, may have been overriden by previous loopback routes
float value = getValue(source); float value = getValue(source);
@ -546,7 +546,7 @@ bool UserInputMapper::applyRoute(const Route::Pointer& route, bool force) {
qCDebug(controllers) << "Filtered value was " << value; qCDebug(controllers) << "Filtered value was " << value;
} }
destination->apply(value, 0, source); destination->apply(value, source);
} }
return true; return true;
} }

View file

@ -37,9 +37,9 @@ namespace controller {
Endpoint(const Input& input) : _input(input) {} Endpoint(const Input& input) : _input(input) {}
virtual float value() = 0; virtual float value() = 0;
virtual void apply(float newValue, float oldValue, const Pointer& source) = 0; virtual void apply(float value, const Pointer& source) = 0;
virtual Pose pose() { return Pose(); } virtual Pose pose() { return Pose(); }
virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) {} virtual void apply(const Pose& value, const Pointer& source) {}
virtual const bool isPose() { return _input.isPose(); } virtual const bool isPose() { return _input.isPose(); }
virtual bool writeable() const { return true; } virtual bool writeable() const { return true; }
@ -58,7 +58,7 @@ namespace controller {
: Endpoint(Input::INVALID_INPUT), _readLambda(readLambda), _writeLambda(writeLambda) { } : Endpoint(Input::INVALID_INPUT), _readLambda(readLambda), _writeLambda(writeLambda) { }
virtual float value() override { return _readLambda(); } virtual float value() override { return _readLambda(); }
virtual void apply(float newValue, float oldValue, const Pointer& source) override { _writeLambda(newValue); } virtual void apply(float value, const Pointer& source) override { _writeLambda(value); }
private: private:
ReadLambda _readLambda; ReadLambda _readLambda;
@ -73,11 +73,11 @@ namespace controller {
} }
virtual float value() override { return _currentValue; } virtual float value() override { return _currentValue; }
virtual void apply(float newValue, float oldValue, const Pointer& source) override { _currentValue = newValue; } virtual void apply(float value, const Pointer& source) override { _currentValue = value; }
virtual Pose pose() override { return _currentPose; } virtual Pose pose() override { return _currentPose; }
virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) override { virtual void apply(const Pose& value, const Pointer& source) override {
_currentPose = newValue; _currentPose = value;
} }
protected: protected:
float _currentValue { 0.0f }; float _currentValue { 0.0f };

View file

@ -14,7 +14,7 @@
using namespace controller; using namespace controller;
void ActionEndpoint::apply(float newValue, float oldValue, const Pointer& source) { void ActionEndpoint::apply(float newValue, const Pointer& source) {
_currentValue += newValue; _currentValue += newValue;
if (_input != Input::INVALID_INPUT) { if (_input != Input::INVALID_INPUT) {
auto userInputMapper = DependencyManager::get<UserInputMapper>(); auto userInputMapper = DependencyManager::get<UserInputMapper>();
@ -22,8 +22,8 @@ void ActionEndpoint::apply(float newValue, float oldValue, const Pointer& source
} }
} }
void ActionEndpoint::apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) { void ActionEndpoint::apply(const Pose& value, const Pointer& source) {
_currentPose = newValue; _currentPose = value;
if (!_currentPose.isValid()) { if (!_currentPose.isValid()) {
return; return;
} }

View file

@ -24,10 +24,10 @@ public:
ActionEndpoint(const Input& id = Input::INVALID_INPUT) : Endpoint(id) { } ActionEndpoint(const Input& id = Input::INVALID_INPUT) : Endpoint(id) { }
virtual float value() override { return _currentValue; } virtual float value() override { return _currentValue; }
virtual void apply(float newValue, float oldValue, const Pointer& source) override; virtual void apply(float newValue, const Pointer& source) override;
virtual Pose pose() override { return _currentPose; } virtual Pose pose() override { return _currentPose; }
virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) override; virtual void apply(const Pose& value, const Pointer& source) override;
virtual void reset() override; virtual void reset() override;

View file

@ -38,7 +38,7 @@ float AnyEndpoint::value() {
return result; return result;
} }
void AnyEndpoint::apply(float newValue, float oldValue, const Endpoint::Pointer& source) { void AnyEndpoint::apply(float newValue, const Endpoint::Pointer& source) {
qFatal("AnyEndpoint is read only"); qFatal("AnyEndpoint is read only");
} }

View file

@ -19,7 +19,7 @@ class AnyEndpoint : public Endpoint {
public: public:
AnyEndpoint(Endpoint::List children); AnyEndpoint(Endpoint::List children);
virtual float value() override; virtual float value() override;
virtual void apply(float newValue, float oldValue, const Endpoint::Pointer& source) override; virtual void apply(float newValue, const Endpoint::Pointer& source) override;
virtual bool writeable() const override; virtual bool writeable() const override;
virtual bool readable() const override; virtual bool readable() const override;

View file

@ -24,10 +24,10 @@ public:
return 0.0; return 0.0;
} }
virtual void apply(float newValue, float oldValue, const Endpoint::Pointer& source) override { virtual void apply(float value, const Endpoint::Pointer& source) override {
for (auto& child : _children) { for (auto& child : _children) {
if (child->writeable()) { if (child->writeable()) {
child->apply(newValue, oldValue, source); child->apply(value, source);
} }
} }
} }

View file

@ -25,7 +25,7 @@ float CompositeEndpoint::value() {
return result; return result;
} }
void CompositeEndpoint::apply(float newValue, float oldValue, const Pointer& source) { void CompositeEndpoint::apply(float newValue, const Pointer& source) {
// Composites are read only // Composites are read only
} }

View file

@ -18,7 +18,7 @@ namespace controller {
CompositeEndpoint(Endpoint::Pointer first, Endpoint::Pointer second); CompositeEndpoint(Endpoint::Pointer first, Endpoint::Pointer second);
virtual float value() override; virtual float value() override;
virtual void apply(float newValue, float oldValue, const Pointer& source) override; virtual void apply(float newValue, const Pointer& source) override;
}; };
} }

View file

@ -22,9 +22,9 @@ public:
virtual float value() override; virtual float value() override;
// FIXME need support for writing back to vibration / force feedback effects // FIXME need support for writing back to vibration / force feedback effects
virtual void apply(float newValue, float oldValue, const Pointer& source) override {} virtual void apply(float newValue, const Pointer& source) override {}
virtual Pose pose() override; virtual Pose pose() override;
virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) override { } virtual void apply(const Pose& value, const Pointer& source) override { }
virtual bool writeable() const { return false; } virtual bool writeable() const { return false; }
virtual bool readable() const { return !_read; } virtual bool readable() const { return !_read; }

View file

@ -28,7 +28,7 @@ public:
return result; return result;
} }
virtual void apply(float newValue, float oldValue, const Pointer& source) { virtual void apply(float newValue, const Pointer& source) {
_callable.call(QJSValueList({ QJSValue(newValue) })); _callable.call(QJSValueList({ QJSValue(newValue) }));
} }

View file

@ -26,22 +26,21 @@ void ScriptEndpoint::updateValue() {
_lastValueRead = (float)_callable.call().toNumber(); _lastValueRead = (float)_callable.call().toNumber();
} }
void ScriptEndpoint::apply(float newValue, float oldValue, const Pointer& source) { void ScriptEndpoint::apply(float value, const Pointer& source) {
if (newValue == _lastValueWritten) { if (value == _lastValueWritten) {
return; return;
} }
internalApply(newValue, oldValue, source->getInput().getID()); internalApply(value, source->getInput().getID());
} }
void ScriptEndpoint::internalApply(float newValue, float oldValue, int sourceID) { void ScriptEndpoint::internalApply(float value, int sourceID) {
_lastValueWritten = newValue; _lastValueWritten = value;
if (QThread::currentThread() != thread()) { if (QThread::currentThread() != thread()) {
QMetaObject::invokeMethod(this, "internalApply", Qt::QueuedConnection, QMetaObject::invokeMethod(this, "internalApply", Qt::QueuedConnection,
Q_ARG(float, newValue), Q_ARG(float, value),
Q_ARG(float, oldValue),
Q_ARG(int, sourceID)); Q_ARG(int, sourceID));
return; return;
} }
_callable.call(QScriptValue(), _callable.call(QScriptValue(),
QScriptValueList({ QScriptValue(newValue), QScriptValue(oldValue), QScriptValue(sourceID) })); QScriptValueList({ QScriptValue(value), QScriptValue(sourceID) }));
} }

View file

@ -24,11 +24,11 @@ public:
} }
virtual float value(); virtual float value();
virtual void apply(float newValue, float oldValue, const Pointer& source); virtual void apply(float newValue, const Pointer& source);
protected: protected:
Q_INVOKABLE void updateValue(); Q_INVOKABLE void updateValue();
Q_INVOKABLE virtual void internalApply(float newValue, float oldValue, int sourceID); Q_INVOKABLE virtual void internalApply(float newValue, int sourceID);
private: private:
QScriptValue _callable; QScriptValue _callable;
float _lastValueRead { 0.0f }; float _lastValueRead { 0.0f };

View file

@ -20,8 +20,8 @@ public:
virtual bool writeable() const override { return !_written; } virtual bool writeable() const override { return !_written; }
virtual bool readable() const override { return !_read; } virtual bool readable() const override { return !_read; }
virtual void reset() override { virtual void reset() override {
apply(0.0f, 0.0f, Endpoint::Pointer()); apply(0.0f, Endpoint::Pointer());
apply(Pose(), Pose(), Endpoint::Pointer()); apply(Pose(), Endpoint::Pointer());
_written = _read = false; _written = _read = false;
} }
@ -30,12 +30,12 @@ public:
return VirtualEndpoint::value(); return VirtualEndpoint::value();
} }
virtual void apply(float newValue, float oldValue, const Pointer& source) override { virtual void apply(float value, const Pointer& source) override {
// For standard endpoints, the first NON-ZERO write counts. // For standard endpoints, the first NON-ZERO write counts.
if (newValue != 0.0) { if (value != 0.0) {
_written = true; _written = true;
} }
VirtualEndpoint::apply(newValue, oldValue, source); VirtualEndpoint::apply(value, source);
} }
virtual Pose pose() override { virtual Pose pose() override {
@ -43,11 +43,11 @@ public:
return VirtualEndpoint::pose(); return VirtualEndpoint::pose();
} }
virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) override { virtual void apply(const Pose& value, const Pointer& source) override {
if (newValue != Pose()) { if (value != Pose()) {
_written = true; _written = true;
} }
VirtualEndpoint::apply(newValue, oldValue, source); VirtualEndpoint::apply(value, source);
} }
private: private: