diff options
Diffstat (limited to 'src/server/ingen_jack.cpp')
-rw-r--r-- | src/server/ingen_jack.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/server/ingen_jack.cpp b/src/server/ingen_jack.cpp index 37aa9c7b..8421ed94 100644 --- a/src/server/ingen_jack.cpp +++ b/src/server/ingen_jack.cpp @@ -29,20 +29,23 @@ using namespace ingen; struct IngenJackModule : public ingen::Module { void load(ingen::World& world) override { - if (((server::Engine*)world.engine().get())->driver()) { + server::Engine* const engine = + static_cast<server::Engine*>(world.engine().get()); + + if (engine->driver()) { world.log().warn("Engine already has a driver\n"); return; } - server::JackDriver* driver = new server::JackDriver( - *(server::Engine*)world.engine().get()); - const Atom& s = world.conf().option("jack-server"); - const std::string server_name = s.is_valid() ? s.ptr<char>() : ""; + server::JackDriver* driver = new server::JackDriver(*engine); + const Atom& s = world.conf().option("jack-server"); + const std::string server_name = s.is_valid() ? s.ptr<char>() : ""; + driver->attach(server_name, world.conf().option("jack-name").ptr<char>(), nullptr); - ((server::Engine*)world.engine().get())->set_driver( - SPtr<server::Driver>(driver)); + + engine->set_driver(SPtr<server::Driver>(driver)); } }; |