X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fevent_type_map.h;h=d7adfa8f626ca35559fa825ee83fc70f855838f4;hb=37b90c2a9eecbb97e4bbe16634272849be6b4e9f;hp=fbfd9ec73c5be8cc192ec0f35c6e4e61462d84b0;hpb=b0e4f81eb3a38b7236ec39f11d5211840a064d15;p=ardour.git diff --git a/libs/ardour/ardour/event_type_map.h b/libs/ardour/ardour/event_type_map.h index fbfd9ec73c..d7adfa8f62 100644 --- a/libs/ardour/ardour/event_type_map.h +++ b/libs/ardour/ardour/event_type_map.h @@ -21,35 +21,48 @@ #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::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