diff options
author | David Robillard <d@drobilla.net> | 2011-09-23 22:00:38 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-09-23 22:00:38 +0000 |
commit | 41f1be0a68676f33dc1d7dfbb32c5d6440ebd4c9 (patch) | |
tree | 4803c07d4d3ebf85093068d94484dd7029a57389 /src/gui | |
parent | 1af9036d30ba65c6ec5e04902cdfdcfc88478e62 (diff) | |
download | ingen-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.cpp | 21 | ||||
-rw-r--r-- | src/gui/ingen_gui.cpp | 2 |
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(); } }; |