diff options
author | David Robillard <d@drobilla.net> | 2008-07-28 23:10:41 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-07-28 23:10:41 +0000 |
commit | ed9e1aa15e5a9363653b46e12313878f82652393 (patch) | |
tree | a0069d57b72070f12eed7255612caeb583637607 /src/progs/ingen/main.cpp | |
parent | 80cdf6829d69f8878b406f9b9e6ca844f4ba7cc4 (diff) | |
download | ingen-ed9e1aa15e5a9363653b46e12313878f82652393.tar.gz ingen-ed9e1aa15e5a9363653b46e12313878f82652393.tar.bz2 ingen-ed9e1aa15e5a9363653b46e12313878f82652393.zip |
Fix loading patches from command line (partially).
git-svn-id: http://svn.drobilla.net/lad/ingen@1298 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/progs/ingen/main.cpp')
-rw-r--r-- | src/progs/ingen/main.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/progs/ingen/main.cpp b/src/progs/ingen/main.cpp index 5be5a8d3..23609ee2 100644 --- a/src/progs/ingen/main.cpp +++ b/src/progs/ingen/main.cpp @@ -97,32 +97,39 @@ main(int argc, char** argv) /* Run engine */ if (args.engine_flag) { - engine_module = Ingen::Shared::load_module("ingen_engine"); - if (engine_module) { Engine* (*new_engine)(Ingen::Shared::World* world) = NULL; if (engine_module->get_symbol("new_engine", (void*&)new_engine)) { engine = SharedPtr<Engine>(new_engine(world)); world->local_engine = engine; + /* Load queued (direct in-process) engine interface */ + if (!args.connect_given) { + engine_interface = engine->new_queued_interface(); + world->engine = engine_interface; + } } else { engine_module.reset(); } } else { cerr << "Unable to load engine module." << endl; } - } bool use_osc = false; - /* Connect to remote engine */ - if (args.connect_given || (args.load_given && !engine_interface)) { - bool found = false; + /* Load client library */ + if (args.connect_given || args.load_given) { client_module = Ingen::Shared::load_module("ingen_client"); + if (!client_module) + cerr << "Unable to load client module." << endl; + } + /* Connect to remote engine */ + if (args.connect_given || (args.load_given && !engine_interface)) { SharedPtr<Shared::EngineInterface> (*new_osc_interface)(const std::string&) = NULL; + bool found = false; if (client_module) found = client_module->get_symbol("new_osc_interface", (void*&)new_osc_interface); @@ -135,10 +142,6 @@ main(int argc, char** argv) } } - /* Load queued (direct in-process) engine interface */ - if (engine && !engine_interface && (args.load_given || args.gui_given || args.run_given)) { - engine_interface = engine->new_queued_interface(); - } if (engine && engine_interface) { @@ -180,6 +183,8 @@ main(int argc, char** argv) Glib::get_current_dir(), args.load_arg)); } + + engine_interface->load_plugins(); loader->load(world, uri, parent_path, ""); } else { |