summaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-11-18 00:05:31 +0000
committerDavid Robillard <d@drobilla.net>2012-11-18 00:05:31 +0000
commitb4718b5cc8334489a1eb50df9db920bc0b01375c (patch)
treea082532a4d958c77217244b28c36bc764e71b564 /src/client
parentd04ce4cb7d4aa3eb72bc79c09dfe5bb025ad79f4 (diff)
downloadingen-b4718b5cc8334489a1eb50df9db920bc0b01375c.tar.gz
ingen-b4718b5cc8334489a1eb50df9db920bc0b01375c.tar.bz2
ingen-b4718b5cc8334489a1eb50df9db920bc0b01375c.zip
Fix Plugin=>UI ring overflow handling.
Gracefully handle client receiving nodes with as-yet unknown plugins. Don't initially send all plugins to UI (kills LV2 in particular), request on demand instead. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4829 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/client')
-rw-r--r--src/client/ClientStore.cpp2
-rw-r--r--src/client/PluginModel.cpp7
2 files changed, 7 insertions, 2 deletions
diff --git a/src/client/ClientStore.cpp b/src/client/ClientStore.cpp
index 71e28c09..fe79336b 100644
--- a/src/client/ClientStore.cpp
+++ b/src/client/ClientStore.cpp
@@ -270,8 +270,6 @@ ClientStore::put(const Raul::URI& uri,
SharedPtr<PluginModel> plug;
if (p->second.is_valid() && p->second.type() == _uris.forge.URI) {
if (!(plug = _plugin(Raul::URI(p->second.get_uri())))) {
- _log.warn(Raul::fmt("Unable to find plugin <%1%>\n")
- % p->second.get_uri());
plug = SharedPtr<PluginModel>(
new PluginModel(uris(),
Raul::URI(p->second.get_uri()),
diff --git a/src/client/PluginModel.cpp b/src/client/PluginModel.cpp
index 70713274..87d1aa92 100644
--- a/src/client/PluginModel.cpp
+++ b/src/client/PluginModel.cpp
@@ -47,6 +47,13 @@ PluginModel::PluginModel(URIs& uris,
: Plugin(uris, uri)
, _type(type_from_uri(type_uri))
{
+ if (_type == NIL) {
+ if (uri.find("ingen-internals") != string::npos) {
+ _type = Internal;
+ } else {
+ _type = LV2; // Assume LV2 and hope Lilv can tell us something
+ }
+ }
add_properties(properties);
assert(_rdf_world);