diff options
author | David Robillard <d@drobilla.net> | 2017-04-12 20:19:08 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2017-04-12 20:22:41 +0200 |
commit | b718c77fe338c18b61280aefcf8d42c01a6299fd (patch) | |
tree | 6160f7b2d00cda4291272818191eb2a8d2a8aaef /src | |
parent | 372ac1950628f7ae2f555181c57e3f69b45dbb7d (diff) | |
download | ingen-b718c77fe338c18b61280aefcf8d42c01a6299fd.tar.gz ingen-b718c77fe338c18b61280aefcf8d42c01a6299fd.tar.bz2 ingen-b718c77fe338c18b61280aefcf8d42c01a6299fd.zip |
Refuse to start if driver requires a graph and one is not provided
Diffstat (limited to 'src')
-rw-r--r-- | src/ingen/ingen.cpp | 9 | ||||
-rw-r--r-- | src/server/Engine.cpp | 6 | ||||
-rw-r--r-- | src/server/Engine.hpp | 1 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/ingen/ingen.cpp b/src/ingen/ingen.cpp index 1932b793..4eacfa97 100644 --- a/src/ingen/ingen.cpp +++ b/src/ingen/ingen.cpp @@ -158,7 +158,14 @@ main(int argc, char** argv) if (!world->load_module("jack") && !world->load_module("portaudio")) { cerr << "ingen: error: Failed to load driver module" << endl; delete world; - exit(EXIT_FAILURE); + return EXIT_FAILURE; + } + + if (!world->engine()->supports_dynamic_ports() && + !conf.option("load").is_valid()) { + cerr << "ingen: error: Initial graph required for driver" << endl; + delete world; + return EXIT_FAILURE; } } diff --git a/src/server/Engine.cpp b/src/server/Engine.cpp index 2fa079f1..8ec74829 100644 --- a/src/server/Engine.cpp +++ b/src/server/Engine.cpp @@ -400,6 +400,12 @@ Engine::init(double sample_rate, uint32_t block_length, size_t seq_size) } bool +Engine::supports_dynamic_ports() const +{ + return !_driver || _driver->dynamic_ports(); +} + +bool Engine::activate() { if (!_driver) { diff --git a/src/server/Engine.hpp b/src/server/Engine.hpp index f951eaf3..cf13f5e6 100644 --- a/src/server/Engine.hpp +++ b/src/server/Engine.hpp @@ -77,6 +77,7 @@ public: // EngineBase methods virtual void init(double sample_rate, uint32_t block_length, size_t seq_size); + virtual bool supports_dynamic_ports() const; virtual bool activate(); virtual void deactivate(); virtual bool pending_events() const; |