projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refine self-automating plugin interface
[ardour.git]
/
libs
/
ardour
/
ardour
/
event_type_map.h
diff --git
a/libs/ardour/ardour/event_type_map.h
b/libs/ardour/ardour/event_type_map.h
index 99911121c55b414e12a9916dd5add428ff06e69b..d7adfa8f626ca35559fa825ee83fc70f855838f4 100644
(file)
--- a/
libs/ardour/ardour/event_type_map.h
+++ b/
libs/ardour/ardour/event_type_map.h
@@
-1,6
+1,6
@@
/*
Copyright (C) 2000-2007 Paul Davis
/*
Copyright (C) 2000-2007 Paul Davis
- Author: Dav
e
Robillard
+ Author: Dav
id
Robillard
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-21,29
+21,48
@@
#ifndef __ardour_event_type_map_h__
#define __ardour_event_type_map_h__
#ifndef __ardour_event_type_map_h__
#define __ardour_event_type_map_h__
+#include <map>
#include <string>
#include <string>
-#include <evoral/TypeMap.hpp>
+
+#include "evoral/TypeMap.hpp"
+#include "evoral/ControlList.hpp"
+#include "evoral/ParameterDescriptor.hpp"
+
+#include "ardour/libardour_visibility.h"
namespace ARDOUR {
namespace ARDOUR {
+class URIMap;
+
/** This is the interface Ardour provides to Evoral about what
* parameter and event types/ranges/names etc. to use.
*/
/** This is the interface Ardour provides to Evoral about what
* parameter and event types/ranges/names etc. to use.
*/
-class EventTypeMap : public Evoral::TypeMap {
+class
LIBARDOUR_API
EventTypeMap : public Evoral::TypeMap {
public:
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;
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;
+ Evoral::Parameter from_symbol(const std::string& str) const;
std::string to_symbol(const Evoral::Parameter& param) const;
std::string to_symbol(const Evoral::Parameter& param) const;
- static EventTypeMap& instance() { return event_type_map; }
+ Evoral::ParameterDescriptor descriptor(const Evoral::Parameter& param) const;
+
+ void set_descriptor(const Evoral::Parameter& param,
+ const Evoral::ParameterDescriptor& desc);
private:
private:
- static EventTypeMap event_type_map;
+ typedef std::map<Evoral::Parameter, Evoral::ParameterDescriptor> Descriptors;
+
+ EventTypeMap(URIMap* uri_map) : _uri_map(uri_map) {}
+
+ URIMap* _uri_map;
+ Descriptors _descriptors;
+
+ static EventTypeMap* event_type_map;
};
} // namespace ARDOUR
};
} // namespace ARDOUR