summaryrefslogtreecommitdiffstats
path: root/src/shared/LV2URIMap.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/LV2URIMap.hpp')
-rw-r--r--src/shared/LV2URIMap.hpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/shared/LV2URIMap.hpp b/src/shared/LV2URIMap.hpp
index f1b9c919..0dd6b0cb 100644
--- a/src/shared/LV2URIMap.hpp
+++ b/src/shared/LV2URIMap.hpp
@@ -28,6 +28,7 @@
#include <boost/utility.hpp>
#include "slv2/slv2.h"
#include "uri-map.lv2/uri-map.h"
+#include "LV2Features.hpp"
namespace Ingen {
namespace Shared {
@@ -35,14 +36,15 @@ namespace Shared {
/** Implementation of the LV2 URI Map extension
*/
-class LV2URIMap : public boost::noncopyable {
+class LV2URIMap : public boost::noncopyable, public LV2Features::Feature {
public:
LV2URIMap();
- LV2_Feature* feature() { return &uri_map_feature; }
+ SharedPtr<LV2_Feature> feature(Node*) {
+ return SharedPtr<LV2_Feature>(&uri_map_feature, NullDeleter<LV2_Feature>);
+ }
- uint32_t uri_to_id(const char* map,
- const char* uri);
+ uint32_t uri_to_id(const char* map, const char* uri);
private:
typedef std::map<std::string, uint32_t> URIMap;
@@ -55,6 +57,16 @@ private:
LV2_URI_Map_Feature uri_map_feature_data;
URIMap uri_map;
uint32_t next_uri_id;
+
+public:
+ const uint32_t object_class_bool;
+ const uint32_t object_class_string;
+ const uint32_t object_class_int32;
+ const uint32_t object_class_float32;
+ const uint32_t ui_format_events;
+ const uint32_t midi_event;
+ const uint32_t string_transfer;
+ const uint32_t object_transfer;
};