path: root/src/engine/InternalPlugin.cpp
diff options
authorDavid Robillard <>2010-02-02 20:37:50 +0000
committerDavid Robillard <>2010-02-02 20:37:50 +0000
commita645d2b8be4d7d31f6eef1649156b166a01e0c31 (patch)
tree3d83c08e9a5460cc6582482bcfc673dff956a1e7 /src/engine/InternalPlugin.cpp
parent653679e967f11a0e008521885fcaf6994d2961fa (diff)
Use Glib string interning (quarks) to make Path/URI operator== very fast.
This avoids a ton of string comparison overhead in Ingen when setting various properties (e.g. "ingen:value" was compared several times every time a port value was changed, now this is just a single pointer comparison and the full round trip of a value change does no string comparison at all, but is still property based and RDFey). git-svn-id: a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/InternalPlugin.cpp')
1 files changed, 6 insertions, 3 deletions
diff --git a/src/engine/InternalPlugin.cpp b/src/engine/InternalPlugin.cpp
index 0c848feb..946ed956 100644
--- a/src/engine/InternalPlugin.cpp
+++ b/src/engine/InternalPlugin.cpp
@@ -16,12 +16,14 @@
#include <cassert>
-#include "InternalPlugin.hpp"
+#include "module/ingen_module.hpp"
+#include "shared/LV2URIMap.hpp"
#include "internals/Note.hpp"
#include "internals/Trigger.hpp"
#include "internals/Controller.hpp"
-#include "Engine.hpp"
#include "Driver.hpp"
+#include "Engine.hpp"
+#include "InternalPlugin.hpp"
using namespace std;
using namespace Raul;
@@ -34,7 +36,8 @@ InternalPlugin::InternalPlugin(const std::string& uri, const std::string& symbol
: PluginImpl(Plugin::Internal, uri)
, _symbol(symbol)
- set_property("rdf:type", Atom(Atom::URI, "ingen:Internal"));
+ const LV2URIMap& uris = *ingen_get_world()->uris.get();
+ set_property(uris.rdf_type, uris.ingen_Internal);