X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fevent_type_map.h;h=b3aa05ee78c8721c80911917da82e59a439c8c32;hb=e5a181c323243a03338f5a9934a5df254986370d;hp=fbfd9ec73c5be8cc192ec0f35c6e4e61462d84b0;hpb=86343b6c15a3a43f082802484d2bc813d34db821;p=ardour.git diff --git a/libs/ardour/ardour/event_type_map.h b/libs/ardour/ardour/event_type_map.h index fbfd9ec73c..b3aa05ee78 100644 --- a/libs/ardour/ardour/event_type_map.h +++ b/libs/ardour/ardour/event_type_map.h @@ -21,35 +21,50 @@ #ifndef __ardour_event_type_map_h__ #define __ardour_event_type_map_h__ +#include #include + #include "evoral/TypeMap.hpp" #include "evoral/ControlList.hpp" +#include "evoral/ParameterDescriptor.hpp" #include "ardour/libardour_visibility.h" namespace ARDOUR { +class URIMap; + /** This is the interface Ardour provides to Evoral about what * parameter and event types/ranges/names etc. to use. */ class LIBARDOUR_API EventTypeMap : public Evoral::TypeMap { public: + static EventTypeMap& instance(); + bool type_is_midi(uint32_t type) const; uint8_t parameter_midi_type(const Evoral::Parameter& param) const; - uint32_t midi_event_type(uint8_t status) const; + + Evoral::ParameterType midi_parameter_type(const uint8_t* buf, uint32_t len) const; + Evoral::ControlList::InterpolationStyle interpolation_of(const Evoral::Parameter& param); - bool is_integer(const Evoral::Parameter& param) const; - Evoral::Parameter new_parameter(uint32_t type, uint8_t channel=0, uint32_t id=0) const; - Evoral::Parameter new_parameter(const std::string& str) const; - std::string to_symbol(const Evoral::Parameter& param) const; + Evoral::Parameter from_symbol(const std::string& str) const; + std::string to_symbol(const Evoral::Parameter& param) const; - bool is_midi_parameter(const Evoral::Parameter& param); + Evoral::ParameterDescriptor descriptor(const Evoral::Parameter& param) const; - static EventTypeMap& instance() { return event_type_map; } + void set_descriptor(const Evoral::Parameter& param, + const Evoral::ParameterDescriptor& desc); private: - static EventTypeMap event_type_map; + typedef std::map Descriptors; + + EventTypeMap(URIMap* uri_map) : _uri_map(uri_map) {} + + URIMap* _uri_map; + Descriptors _descriptors; + + static EventTypeMap* event_type_map; }; } // namespace ARDOUR