summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/LV2Info.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-05-19 23:52:44 +0000
committerDavid Robillard <d@drobilla.net>2008-05-19 23:52:44 +0000
commit239825b92b1d4c79ebd67cb3766355bf8e699bc7 (patch)
tree1f18e56760afcd0fbe201161ca0e7262d6c54124 /src/libs/engine/LV2Info.hpp
parentf9eba59332ee7e45ffbfebcd0ce79e8e0cfd9ec4 (diff)
downloadingen-239825b92b1d4c79ebd67cb3766355bf8e699bc7.tar.gz
ingen-239825b92b1d4c79ebd67cb3766355bf8e699bc7.tar.bz2
ingen-239825b92b1d4c79ebd67cb3766355bf8e699bc7.zip
Better global (engine/client) LV2 feature sharing.
Provide URI map extension to plugin UIs. git-svn-id: http://svn.drobilla.net/lad/ingen@1217 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/LV2Info.hpp')
-rw-r--r--src/libs/engine/LV2Info.hpp25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/libs/engine/LV2Info.hpp b/src/libs/engine/LV2Info.hpp
index 09865784..1fff0b92 100644
--- a/src/libs/engine/LV2Info.hpp
+++ b/src/libs/engine/LV2Info.hpp
@@ -27,18 +27,19 @@
#include <string>
#include <slv2/slv2.h>
#include "module/global.hpp"
+#include "module/World.hpp"
+#include "shared/LV2URIMap.hpp"
#include "lv2/uri_map/lv2_uri_map.h"
#include "lv2/event/lv2_event.h"
-
namespace Ingen {
/** Stuff that may need to be passed to an LV2 plugin (i.e. LV2 features).
*/
-class LV2Info {
+class LV2Info : public Shared::LV2URIMap {
public:
- LV2Info(SLV2World world);
+ LV2Info(Ingen::Shared::World* world);
~LV2Info();
SLV2Value input_class;
@@ -47,23 +48,13 @@ public:
SLV2Value audio_class;
SLV2Value event_class;
- LV2_Feature uri_map_feature;
- LV2_URI_Map_Feature uri_map_feature_data;
- LV2_Feature event_feature;
- LV2_Event_Feature event_feature_data;
-
- typedef std::map<std::string, uint32_t> URIMap;
- URIMap uri_map;
- uint32_t next_uri_id;
-
- static uint32_t uri_map_uri_to_id(LV2_URI_Map_Callback_Data callback_data,
- const char* map,
- const char* uri);
-
static uint32_t event_ref(LV2_Event_Callback_Data callback_data,
LV2_Event* event);
- LV2_Feature** lv2_features;
+ LV2_Feature** lv2_features() const { return _world->lv2_features->lv2_features(); }
+
+private:
+ Ingen::Shared::World* _world;
};