summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/engine.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-05-04 03:59:38 +0000
committerDavid Robillard <d@drobilla.net>2007-05-04 03:59:38 +0000
commita96166710faf2447ed10194d1829db5564b0dff9 (patch)
tree4eb792fcceee17f188566fc6e6bee11e5a8c4336 /src/libs/engine/engine.cpp
parentcf14d321e8f084f742b03e09c086d5ef30297492 (diff)
downloadingen-a96166710faf2447ed10194d1829db5564b0dff9.tar.gz
ingen-a96166710faf2447ed10194d1829db5564b0dff9.tar.bz2
ingen-a96166710faf2447ed10194d1829db5564b0dff9.zip
Made engine, serialisation, client library, and GUI all dynamically loaded modules.
Combined all executables into a single "ingen" program which can do everything. git-svn-id: http://svn.drobilla.net/lad/ingen@493 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/engine.cpp')
-rw-r--r--src/libs/engine/engine.cpp54
1 files changed, 50 insertions, 4 deletions
diff --git a/src/libs/engine/engine.cpp b/src/libs/engine/engine.cpp
index a2ba26da..bb482e47 100644
--- a/src/libs/engine/engine.cpp
+++ b/src/libs/engine/engine.cpp
@@ -15,28 +15,74 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <raul/Process.h>
#include "engine.h"
#include "Engine.h"
#include "QueuedEngineInterface.h"
#include "tuning.h"
+#include "util.h"
namespace Ingen {
+/*
+void
+catch_int(int)
+{
+ signal(SIGINT, catch_int);
+ signal(SIGTERM, catch_int);
+
+ std::cout << "[Main] Ingen interrupted." << std::endl;
+ engine->quit();
+}
+*/
Engine*
new_engine()
{
+ set_denormal_flags();
return new Engine();
}
-QueuedEngineInterface*
-new_queued_engine_interface(Engine& engine)
+bool
+launch_osc_engine(int port)
{
- return new QueuedEngineInterface(engine,
- Ingen::event_queue_size, Ingen::event_queue_size);
+ char port_str[6];
+ snprintf(port_str, 6, "%u", port);
+ const string cmd = string("ingen -e --engine-port=").append(port_str);
+
+ if (Raul::Process::launch(cmd)) {
+ return true;
+ //return SharedPtr<EngineInterface>(new OSCEngineSender(
+ // string("osc.udp://localhost:").append(port_str)));
+ } else {
+ cerr << "Failed to launch engine process." << endl;
+ //return SharedPtr<EngineInterface>();
+ return false;
+ }
}
+/*
+void
+run(int port)
+{
+ signal(SIGINT, catch_int);
+ signal(SIGTERM, catch_int);
+
+ set_denormal_flags();
+
+ Engine* engine = new_engine();
+
+ engine->start_jack_driver();
+ engine->start_osc_driver(port);
+
+ engine->activate();
+
+ engine->main();
+
+ delete engine;
+}
+*/
} // namespace Ingen