summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-09-23 22:00:38 +0000
committerDavid Robillard <d@drobilla.net>2011-09-23 22:00:38 +0000
commit41f1be0a68676f33dc1d7dfbb32c5d6440ebd4c9 (patch)
tree4803c07d4d3ebf85093068d94484dd7029a57389 /src/gui
parent1af9036d30ba65c6ec5e04902cdfdcfc88478e62 (diff)
downloadingen-41f1be0a68676f33dc1d7dfbb32c5d6440ebd4c9.tar.gz
ingen-41f1be0a68676f33dc1d7dfbb32c5d6440ebd4c9.tar.bz2
ingen-41f1be0a68676f33dc1d7dfbb32c5d6440ebd4c9.zip
Fix broken iterator use (memory errors on erase) in ResourceImpl::set_property.
Load all required modules before starting jack (Jack went crazy sometimes otherwise, particularly with ingen running in gdb). Fix insane non-const reference return to Resource::set_property. Exit cleanly on interrupt (Ctrl-C) and terminate (kill). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3480 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/App.cpp21
-rw-r--r--src/gui/ingen_gui.cpp2
2 files changed, 13 insertions, 10 deletions
diff --git a/src/gui/App.cpp b/src/gui/App.cpp
index 35d31b3e..055b4ef7 100644
--- a/src/gui/App.cpp
+++ b/src/gui/App.cpp
@@ -133,21 +133,22 @@ App::init(Ingen::Shared::World* world)
"widget \"*ingen_embedded_node_gui_container*\" style \"ingen_embedded_node_gui_style\"\n";
Gtk::RC::parse_string(rc_style);
-
- App::instance().connect_window()->start(world);
-
- // Run main iterations here until we're attached to the engine
- // (otherwise with 'ingen -egl' we'll get a bunch of notifications about load immediately
- // before even knowing about the root patch or plugins)
- while (!App::instance().connect_window()->attached())
- if (_main->iteration())
- break;
}
void
App::run()
{
- assert(_main);
+ App& me = App::instance();
+
+ me._connect_window->start(me.world());
+
+ // Run main iterations here until we're attached to the engine. Otherwise
+ // with 'ingen -egl' we'd get a bunch of notifications about load
+ // immediately before even knowing about the root patch or plugins)
+ while (!me._connect_window->attached())
+ if (me._main->iteration())
+ break;
+
_main->run();
LOG(info) << "Exiting" << endl;
}
diff --git a/src/gui/ingen_gui.cpp b/src/gui/ingen_gui.cpp
index 83f4029d..88d27b39 100644
--- a/src/gui/ingen_gui.cpp
+++ b/src/gui/ingen_gui.cpp
@@ -21,6 +21,8 @@
struct IngenGUIModule : public Ingen::Shared::Module {
void load(Ingen::Shared::World* world) {
Ingen::GUI::App::init(world);
+ }
+ void run(Ingen::Shared::World* world) {
Ingen::GUI::App::run();
}
};