1 #pragma once 2 3 #include <QString> 4 #include <QVariant> 5 6 #include "util/class.h" 7 #include "effects/effectmanifestparameter.h" 8 9 class EngineEffectParameter { 10 public: EngineEffectParameter(EffectManifestParameterPointer parameter)11 EngineEffectParameter(EffectManifestParameterPointer parameter) 12 : m_pParameter(parameter) { 13 // NOTE(rryan): This is just to set the parameter values to sane 14 // defaults. When an effect is loaded into the engine it is supposed to 15 // immediately send a parameter update. Some effects will go crazy if 16 // their parameters are not within the manifest's minimum/maximum bounds 17 // so just to be safe we read the min/max/default from the manifest 18 // here. 19 m_minimum = m_pParameter->getMinimum(); 20 m_maximum = m_pParameter->getMaximum(); 21 m_defaultValue = m_pParameter->getDefault(); 22 m_value = m_defaultValue; 23 } ~EngineEffectParameter()24 virtual ~EngineEffectParameter() { } 25 26 /////////////////////////////////////////////////////////////////////////// 27 // Parameter Information 28 /////////////////////////////////////////////////////////////////////////// 29 id()30 const QString& id() const { 31 return m_pParameter->id(); 32 } name()33 const QString& name() const { 34 return m_pParameter->name(); 35 } description()36 const QString& description() const { 37 return m_pParameter->description(); 38 } 39 40 /////////////////////////////////////////////////////////////////////////// 41 // Value Settings 42 /////////////////////////////////////////////////////////////////////////// 43 value()44 inline double value() const { 45 return m_value; 46 } setValue(const double value)47 inline void setValue(const double value) { 48 m_value = value; 49 } toInt()50 inline int toInt() const { 51 return static_cast<int>(m_value); 52 } toBool()53 inline int toBool() const { 54 return m_value > 0.0; 55 } 56 defaultValue()57 inline double defaultValue() const { 58 return m_defaultValue; 59 } setDefaultValue(const double default_value)60 inline void setDefaultValue(const double default_value) { 61 m_defaultValue = default_value; 62 } 63 minimum()64 inline double minimum() const { 65 return m_minimum; 66 } setMinimum(const double minimum)67 inline void setMinimum(const double minimum) { 68 m_minimum = minimum; 69 } 70 maximum()71 inline double maximum() const { 72 return m_maximum; 73 } setMaximum(const double maximum)74 inline void setMaximum(const double maximum) { 75 m_maximum = maximum; 76 } 77 78 private: 79 EffectManifestParameterPointer m_pParameter; 80 double m_value; 81 double m_defaultValue; 82 double m_minimum; 83 double m_maximum; 84 85 DISALLOW_COPY_AND_ASSIGN(EngineEffectParameter); 86 }; 87