summaryrefslogtreecommitdiffstats
path: root/src/server/ingen_jack.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/ingen_jack.cpp')
-rw-r--r--src/server/ingen_jack.cpp17
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));
}
};