diff options
Diffstat (limited to 'libs/evoral/evoral/ControlList.hpp')
-rw-r--r-- | libs/evoral/evoral/ControlList.hpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/libs/evoral/evoral/ControlList.hpp b/libs/evoral/evoral/ControlList.hpp index d6704c8e43..ed7fc75732 100644 --- a/libs/evoral/evoral/ControlList.hpp +++ b/libs/evoral/evoral/ControlList.hpp @@ -34,10 +34,12 @@ #include "evoral/types.hpp" #include "evoral/Range.hpp" #include "evoral/Parameter.hpp" +#include "evoral/ParameterDescriptor.hpp" namespace Evoral { class Curve; +class TypeMap; /** A single event (time-stamped value) for a control */ @@ -82,12 +84,12 @@ public: typedef EventList::const_iterator const_iterator; typedef EventList::const_reverse_iterator const_reverse_iterator; - ControlList (const Parameter& id); + ControlList (const Parameter& id, const ParameterDescriptor& desc); ControlList (const ControlList&); ControlList (const ControlList&, double start, double end); virtual ~ControlList(); - virtual boost::shared_ptr<ControlList> create(Parameter id); + virtual boost::shared_ptr<ControlList> create(const Parameter& id, const ParameterDescriptor& desc); void dump (std::ostream&); @@ -102,6 +104,9 @@ public: const Parameter& parameter() const { return _parameter; } void set_parameter(const Parameter& p) { _parameter = p; } + const ParameterDescriptor& descriptor() const { return _desc; } + void set_descriptor(const ParameterDescriptor& d) { _desc = d; } + EventList::size_type size() const { return _events.size(); } double length() const { Glib::Threads::Mutex::Lock lm (_lock); @@ -218,7 +223,7 @@ public: }; const EventList& events() const { return _events; } - double default_value() const { return _parameter.normal(); } + double default_value() const { return _default_value; } // FIXME: const violations for Curve Glib::Threads::Mutex& lock() const { return _lock; } @@ -288,10 +293,12 @@ protected: mutable LookupCache _lookup_cache; mutable SearchCache _search_cache; + mutable Glib::Threads::Mutex _lock; + Parameter _parameter; + ParameterDescriptor _desc; InterpolationStyle _interpolation; EventList _events; - mutable Glib::Threads::Mutex _lock; int8_t _frozen; bool _changed_when_thawed; double _min_yval; |