summaryrefslogtreecommitdiffstats
path: root/src/gui/App.cpp
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/gui/App.cpp
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/gui/App.cpp')
-rw-r--r--src/gui/App.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gui/App.cpp b/src/gui/App.cpp
index 96bb1254..4174fbac 100644
--- a/src/gui/App.cpp
+++ b/src/gui/App.cpp
@@ -72,6 +72,7 @@ App::App(Ingen::World* world)
, _world(world)
, _sample_rate(48000)
, _enable_signal(true)
+ , _requested_plugins(false)
{
Glib::set_application_name("Ingen");
gtk_window_set_default_icon_name("ingen");
@@ -187,6 +188,15 @@ App::detach()
}
}
+void
+App::request_plugins_if_necessary()
+{
+ if (!_requested_plugins) {
+ _world->interface()->get(Raul::URI("ingen:plugins"));
+ _requested_plugins = true;
+ }
+}
+
SharedPtr<Serialisation::Serialiser>
App::serialiser()
{