summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-12-19 21:37:50 +0000
committerDavid Robillard <d@drobilla.net>2009-12-19 21:37:50 +0000
commit19045ab92aa7e996971584a0dc8780d1d58b498b (patch)
tree619c73deb7fd64ce31c5167490d1ae186dbb2695 /src/engine
parent4613a2e15f1122ecf6830171de0ab18dc22fefff (diff)
downloadingen-19045ab92aa7e996971584a0dc8780d1d58b498b.tar.gz
ingen-19045ab92aa7e996971584a0dc8780d1d58b498b.tar.bz2
ingen-19045ab92aa7e996971584a0dc8780d1d58b498b.zip
New ingen module (library, not e.g. LV2 plugin) design.
Much cleaner interface and general usage of Ingen as a library. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2314 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/Engine.cpp15
-rw-r--r--src/engine/Engine.hpp41
-rw-r--r--src/engine/HTTPEngineReceiver.cpp28
-rw-r--r--src/engine/HTTPEngineReceiver.hpp7
-rw-r--r--src/engine/JackAudioDriver.cpp19
-rw-r--r--src/engine/JackAudioDriver.hpp9
-rw-r--r--src/engine/MessageContext.hpp2
-rw-r--r--src/engine/OSCEngineReceiver.cpp11
-rw-r--r--src/engine/OSCEngineReceiver.hpp6
-rw-r--r--src/engine/QueuedEngineInterface.cpp2
-rw-r--r--src/engine/ingen.lv2/ingen_lv2.cpp4
-rw-r--r--src/engine/ingen_engine.cpp50
-rw-r--r--src/engine/ingen_http.cpp (renamed from src/engine/ingen_engine.hpp)45
-rw-r--r--src/engine/ingen_jack.cpp48
-rw-r--r--src/engine/ingen_osc.cpp50
-rw-r--r--src/engine/wscript64
16 files changed, 217 insertions, 184 deletions
diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp
index 07529caf..432b7afc 100644
--- a/src/engine/Engine.cpp
+++ b/src/engine/Engine.cpp
@@ -22,13 +22,13 @@
#include "raul/Deletable.hpp"
#include "raul/Maid.hpp"
#include "raul/SharedPtr.hpp"
+#include "uri-map.lv2/uri-map.h"
#include "common/interface/EventType.hpp"
#include "events/CreatePatch.hpp"
#include "module/World.hpp"
#include "shared/LV2Features.hpp"
#include "shared/LV2URIMap.hpp"
#include "shared/Store.hpp"
-#include "uri-map.lv2/uri-map.h"
#include "AudioDriver.hpp"
#include "BufferFactory.hpp"
#include "ClientBroadcaster.hpp"
@@ -44,6 +44,7 @@
#include "PostProcessor.hpp"
#include "ProcessContext.hpp"
#include "ProcessSlave.hpp"
+#include "QueuedEngineInterface.hpp"
#include "QueuedEventSource.hpp"
#include "ThreadManager.hpp"
#include "tuning.hpp"
@@ -91,7 +92,6 @@ Engine::~Engine()
delete _node_factory;
delete _osc_driver;
delete _post_processor;
- //delete _lash_driver;
delete _maid;
@@ -166,6 +166,13 @@ Engine::main_iteration()
}
+Ingen::QueuedEngineInterface*
+Engine::new_local_interface()
+{
+ return new Ingen::QueuedEngineInterface(*this, Ingen::event_queue_size);
+}
+
+
void
Engine::add_event_source(SharedPtr<EventSource> source)
{
@@ -181,12 +188,14 @@ Engine::set_midi_driver(MidiDriver* driver)
bool
-Engine::activate(size_t parallelism)
+Engine::activate()
{
assert(_audio_driver);
_message_context->Thread::start();
+ uint32_t parallelism = _world->conf->option("parallelism").get_int32();
+
if (!_midi_driver)
_midi_driver = new DummyMidiDriver();
diff --git a/src/engine/Engine.hpp b/src/engine/Engine.hpp
index 5851e9a1..a8674c12 100644
--- a/src/engine/Engine.hpp
+++ b/src/engine/Engine.hpp
@@ -34,20 +34,21 @@ namespace Raul { class Maid; }
namespace Ingen {
class AudioDriver;
-class MidiDriver;
-class OSCDriver;
-class NodeFactory;
+class BufferFactory;
class ClientBroadcaster;
+class Driver;
class EngineStore;
+class Event;
class EventSource;
+class MessageContext;
+class MidiDriver;
+class NodeFactory;
+class OSCDriver;
class PostProcessor;
-class Event;
-class QueuedEvent;
-class Driver;
-class ProcessSlave;
class ProcessContext;
-class MessageContext;
-class BufferFactory;
+class ProcessSlave;
+class QueuedEngineInterface;
+class QueuedEvent;
/** The main class for the Engine.
@@ -74,22 +75,22 @@ public:
* Note that it will take some time. */
virtual void quit() { _quit_flag = true; }
- virtual bool activate(size_t parallelism);
+ virtual bool activate();
virtual void deactivate();
void process_events(ProcessContext& context);
virtual bool activated() { return _activated; }
- Raul::Maid* maid() const { return _maid; }
- AudioDriver* audio_driver() const { return _audio_driver.get(); }
- MidiDriver* midi_driver() const { return _midi_driver; }
- OSCDriver* osc_driver() const { return _osc_driver; }
- PostProcessor* post_processor() const { return _post_processor; }
- ClientBroadcaster* broadcaster() const { return _broadcaster; }
- NodeFactory* node_factory() const { return _node_factory; }
- MessageContext* message_context() const { return _message_context; }
- BufferFactory* buffer_factory() const { return _buffer_factory; }
+ Raul::Maid* maid() const { return _maid; }
+ AudioDriver* audio_driver() const { return _audio_driver.get(); }
+ MidiDriver* midi_driver() const { return _midi_driver; }
+ OSCDriver* osc_driver() const { return _osc_driver; }
+ PostProcessor* post_processor() const { return _post_processor; }
+ ClientBroadcaster* broadcaster() const { return _broadcaster; }
+ NodeFactory* node_factory() const { return _node_factory; }
+ MessageContext* message_context() const { return _message_context; }
+ BufferFactory* buffer_factory() const { return _buffer_factory; }
SharedPtr<EngineStore> engine_store() const;
@@ -102,6 +103,8 @@ public:
virtual void add_event_source(SharedPtr<EventSource> source);
+ Ingen::QueuedEngineInterface* new_local_interface();
+
Ingen::Shared::World* world() { return _world; }
typedef std::vector<ProcessSlave*> ProcessSlaves;
diff --git a/src/engine/HTTPEngineReceiver.cpp b/src/engine/HTTPEngineReceiver.cpp
index 532a4371..ecb8d018 100644
--- a/src/engine/HTTPEngineReceiver.cpp
+++ b/src/engine/HTTPEngineReceiver.cpp
@@ -25,7 +25,6 @@
#include "interface/ClientInterface.hpp"
#include "module/Module.hpp"
#include "serialisation/Parser.hpp"
-#include "serialisation/serialisation.hpp"
#include "serialisation/Serialiser.hpp"
#include "ClientBroadcaster.hpp"
#include "Engine.hpp"
@@ -55,20 +54,8 @@ HTTPEngineReceiver::HTTPEngineReceiver(Engine& engine, uint16_t port)
cout << "Started HTTP server on port " << soup_server_get_port(_server) << endl;
Thread::set_name("HTTP Receiver");
- if (!engine.world()->serialisation_module)
- engine.world()->serialisation_module = Ingen::Shared::load_module("ingen_serialisation");
-
- if (engine.world()->serialisation_module) {
- if (!engine.world()->serialiser)
- engine.world()->serialiser = SharedPtr<Serialiser>(
- Ingen::Serialisation::new_serialiser(engine.world(), engine.engine_store()));
-
- if (!engine.world()->parser)
- engine.world()->parser = SharedPtr<Parser>(
- Ingen::Serialisation::new_parser());
- } else {
- cerr << "WARNING: Failed to load ingen_serialisation module, HTTP disabled." << endl;
- }
+ if (!engine.world()->parser || !engine.world()->serialiser)
+ engine.world()->load("ingen_serialisation");
Thread::set_name("HTTP Receiver");
}
@@ -242,14 +229,3 @@ HTTPEngineReceiver::ReceiveThread::_run()
} // namespace Ingen
-
-extern "C" {
-
-Ingen::HTTPEngineReceiver*
-new_http_receiver(Ingen::Engine& engine, uint16_t port)
-{
- return new Ingen::HTTPEngineReceiver(engine, port);
-}
-
-} // extern "C"
-
diff --git a/src/engine/HTTPEngineReceiver.hpp b/src/engine/HTTPEngineReceiver.hpp
index db8dd0f7..79101e90 100644
--- a/src/engine/HTTPEngineReceiver.hpp
+++ b/src/engine/HTTPEngineReceiver.hpp
@@ -55,13 +55,6 @@ private:
SoupServer* _server;
};
-
} // namespace Ingen
-extern "C" {
- /// Module interface
- extern Ingen::HTTPEngineReceiver* new_http_receiver(
- Ingen::Engine& engine, uint16_t port);
-}
-
#endif // HTTPENGINERECEIVER_H
diff --git a/src/engine/JackAudioDriver.cpp b/src/engine/JackAudioDriver.cpp
index bb330435..05b0c45b 100644
--- a/src/engine/JackAudioDriver.cpp
+++ b/src/engine/JackAudioDriver.cpp
@@ -205,7 +205,8 @@ JackAudioDriver::activate()
}
if (!_client)
- attach("", "ingen", NULL);
+ attach(_engine.world()->conf->option("jack-server").get_string(),
+ _engine.world()->conf->option("jack-client").get_string(), NULL);
jack_set_process_callback(_client, process_cb, this);
@@ -435,19 +436,3 @@ JackAudioDriver::_buffer_size_cb(jack_nframes_t nframes)
} // namespace Ingen
-
-extern "C" {
-
-Ingen::JackAudioDriver*
-new_jack_audio_driver(
- Ingen::Engine& engine,
- const std::string server_name,
- const std::string client_name,
- void* jack_client)
-{
- Ingen::JackAudioDriver* driver = new Ingen::JackAudioDriver(engine);
- driver->attach(server_name, client_name, jack_client);
- return driver;
-}
-
-}
diff --git a/src/engine/JackAudioDriver.hpp b/src/engine/JackAudioDriver.hpp
index 0e062b22..9681dd71 100644
--- a/src/engine/JackAudioDriver.hpp
+++ b/src/engine/JackAudioDriver.hpp
@@ -191,13 +191,4 @@ inline int JackAudioDriver::sample_rate_cb(jack_nframes_t nframes, void* jack_dr
} // namespace Ingen
-extern "C" {
- /// Module interface
- extern Ingen::JackAudioDriver* new_jack_audio_driver(
- Ingen::Engine& engine,
- std::string server_name = "",
- std::string client_name = "",
- void* jack_client = 0);
-}
-
#endif // JACKAUDIODRIVER_H
diff --git a/src/engine/MessageContext.hpp b/src/engine/MessageContext.hpp
index 1195d7f5..c0813e69 100644
--- a/src/engine/MessageContext.hpp
+++ b/src/engine/MessageContext.hpp
@@ -47,7 +47,7 @@ class MessageContext : public Context, public Raul::Thread
public:
MessageContext(Engine& engine)
: Context(engine, MESSAGE)
- , Raul::Thread("message-context")
+ , Raul::Thread("MessageContext")
, _sem(0)
, _requests(message_context_queue_size)
, _end_time(0)
diff --git a/src/engine/OSCEngineReceiver.cpp b/src/engine/OSCEngineReceiver.cpp
index 10e725c1..159397a0 100644
--- a/src/engine/OSCEngineReceiver.cpp
+++ b/src/engine/OSCEngineReceiver.cpp
@@ -764,14 +764,3 @@ OSCEngineReceiver::unknown_cb(const char* path, const char* types, lo_arg** argv
} // namespace Ingen
-
-
-extern "C" {
-
-Ingen::OSCEngineReceiver*
-new_osc_receiver(Ingen::Engine& engine, size_t queue_size, uint16_t port)
-{
- return new Ingen::OSCEngineReceiver(engine, queue_size, port);
-}
-
-} // extern "C"
diff --git a/src/engine/OSCEngineReceiver.hpp b/src/engine/OSCEngineReceiver.hpp
index c1061792..8285652b 100644
--- a/src/engine/OSCEngineReceiver.hpp
+++ b/src/engine/OSCEngineReceiver.hpp
@@ -114,10 +114,4 @@ private:
} // namespace Ingen
-extern "C" {
- /// Module interface
- extern Ingen::OSCEngineReceiver* new_osc_receiver(
- Ingen::Engine& engine, size_t queue_size, uint16_t port);
-}
-
#endif // OSCENGINERECEIVER_H
diff --git a/src/engine/QueuedEngineInterface.cpp b/src/engine/QueuedEngineInterface.cpp
index d2ff74df..09e711cc 100644
--- a/src/engine/QueuedEngineInterface.cpp
+++ b/src/engine/QueuedEngineInterface.cpp
@@ -109,7 +109,7 @@ QueuedEngineInterface::activate()
static bool in_activate = false;
if (!in_activate) {
in_activate = true;
- _engine.activate(1);
+ _engine.activate();
}
QueuedEventSource::activate_source();
push_queued(new Events::Ping(_engine, _responder, now()));
diff --git a/src/engine/ingen.lv2/ingen_lv2.cpp b/src/engine/ingen.lv2/ingen_lv2.cpp
index 2dd8cedc..9be7c30a 100644
--- a/src/engine/ingen.lv2/ingen_lv2.cpp
+++ b/src/engine/ingen.lv2/ingen_lv2.cpp
@@ -98,7 +98,7 @@ ingen_cleanup(LV2_Handle instance)
{
IngenPlugin* plugin = (IngenPlugin*)instance;
plugin->engine.reset();
- Ingen::Shared::destroy_world();
+ ingen_destroy_world();
free(instance);
}
@@ -120,7 +120,7 @@ ingen_instantiate(const LV2_Descriptor* descriptor,
Shared::bundle_path = bundle_path;
- plugin->world = Ingen::Shared::get_world();
+ plugin->world = ingen_get_world();
plugin->engine = SharedPtr<Engine>(new Engine(plugin->world));
plugin->world->local_engine = plugin->engine;
diff --git a/src/engine/ingen_engine.cpp b/src/engine/ingen_engine.cpp
index 07d2c921..b5fe92a9 100644
--- a/src/engine/ingen_engine.cpp
+++ b/src/engine/ingen_engine.cpp
@@ -15,39 +15,35 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include <cstdio>
-#include <string>
-#include "raul/Process.hpp"
-#include "ingen_engine.hpp"
+#include "module/Module.hpp"
#include "Engine.hpp"
-#include "tuning.hpp"
+#include "QueuedEngineInterface.hpp"
#include "util.hpp"
+#include "tuning.hpp"
-namespace Ingen {
-
-Engine*
-new_engine(Ingen::Shared::World* world)
-{
- set_denormal_flags();
- return new Engine(world);
-}
+using namespace Ingen;
+struct IngenEngineModule : public Ingen::Shared::Module {
+ void load(Ingen::Shared::World* world) {
+ set_denormal_flags();
+ world->local_engine = SharedPtr<Engine>(new Engine(world));
+ SharedPtr<QueuedEngineInterface> interface(
+ new Ingen::QueuedEngineInterface(*world->local_engine, event_queue_size));
+ world->engine = interface;
+ world->local_engine->add_event_source(interface);
+ }
+};
-bool
-launch_osc_engine(int port)
-{
- char port_str[6];
- snprintf(port_str, 6, "%u", port);
- const std::string cmd = std::string("ingen -e --engine-port=").append(port_str);
+static IngenEngineModule* module = NULL;
- if (Raul::Process::launch(cmd)) {
- return true;
- } else {
- std::cerr << "Failed to launch engine process." << std::endl;
- return false;
- }
-}
+extern "C" {
+Ingen::Shared::Module*
+ingen_module_load() {
+ if (!module)
+ module = new IngenEngineModule();
-} // namespace Ingen
+ return module;
+}
+} // extern "C"
diff --git a/src/engine/ingen_engine.hpp b/src/engine/ingen_http.cpp
index c55b7809..dade5bd3 100644
--- a/src/engine/ingen_engine.hpp
+++ b/src/engine/ingen_http.cpp
@@ -15,28 +15,35 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef INGEN_ENGINE_H
-#define INGEN_ENGINE_H
-
-namespace Ingen {
-
-namespace Shared { class World; }
-
-class Engine;
+#include <iostream>
+#include "module/Module.hpp"
+#include "module/World.hpp"
+#include "HTTPEngineReceiver.hpp"
+#include "Engine.hpp"
+#include "tuning.hpp"
+
+using namespace std;
+using namespace Ingen;
+
+struct IngenHTTPModule : public Ingen::Shared::Module {
+ void load(Ingen::Shared::World* world) {
+ SharedPtr<HTTPEngineReceiver> interface(
+ new Ingen::HTTPEngineReceiver(*world->local_engine.get(),
+ world->conf->option("engine-port").get_int32()));
+ world->local_engine->add_event_source(interface);
+ }
+};
+
+static IngenHTTPModule* module = NULL;
extern "C" {
- /** Create a new engine in this process */
- Engine* new_engine(Ingen::Shared::World* world);
+Ingen::Shared::Module*
+ingen_module_load() {
+ if (!module)
+ module = new IngenHTTPModule();
- /** Launch an OSC engine as a completely separate process
- * \return true if successful
- */
- bool launch_osc_engine(int port);
+ return module;
}
-
-} // namespace Ingen
-
-#endif // INGEN_ENGINE_H
-
+} // extern "C"
diff --git a/src/engine/ingen_jack.cpp b/src/engine/ingen_jack.cpp
new file mode 100644
index 00000000..a721383d
--- /dev/null
+++ b/src/engine/ingen_jack.cpp
@@ -0,0 +1,48 @@
+/* This file is part of Ingen.
+ * Copyright (C) 2007-2009 Dave Robillard <http://drobilla.net>
+ *
+ * Ingen is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * Ingen is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <iostream>
+#include "module/Module.hpp"
+#include "module/World.hpp"
+#include "JackAudioDriver.hpp"
+#include "Engine.hpp"
+
+using namespace std;
+using namespace Ingen;
+
+struct IngenJackModule : public Ingen::Shared::Module {
+ void load(Ingen::Shared::World* world) {
+ Ingen::JackAudioDriver* driver = new Ingen::JackAudioDriver(*world->local_engine.get());
+ driver->attach(world->conf->option("jack-server").get_string(),
+ world->conf->option("jack-client").get_string(), NULL);
+ world->local_engine->set_driver(Shared::PortType::AUDIO, SharedPtr<Driver>(driver));
+ }
+};
+
+static IngenJackModule* module = NULL;
+
+extern "C" {
+
+Ingen::Shared::Module*
+ingen_module_load() {
+ if (!module)
+ module = new IngenJackModule();
+
+ return module;
+}
+
+} // extern "C"
diff --git a/src/engine/ingen_osc.cpp b/src/engine/ingen_osc.cpp
new file mode 100644
index 00000000..0599adb8
--- /dev/null
+++ b/src/engine/ingen_osc.cpp
@@ -0,0 +1,50 @@
+/* This file is part of Ingen.
+ * Copyright (C) 2007-2009 Dave Robillard <http://drobilla.net>
+ *
+ * Ingen is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at your option) any later
+ * version.
+ *
+ * Ingen is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <iostream>
+#include "module/Module.hpp"
+#include "module/World.hpp"
+#include "OSCEngineReceiver.hpp"
+#include "Engine.hpp"
+#include "tuning.hpp"
+
+using namespace std;
+using namespace Ingen;
+
+struct IngenOSCModule : public Ingen::Shared::Module {
+ void load(Ingen::Shared::World* world) {
+ cout << "FIXME: OSC port" << endl;
+ uint16_t port = 16180;
+ SharedPtr<OSCEngineReceiver> interface(
+ new Ingen::OSCEngineReceiver(*world->local_engine.get(), event_queue_size, port));
+ world->local_engine->add_event_source(interface);
+ }
+};
+
+static IngenOSCModule* module = NULL;
+
+extern "C" {
+
+Ingen::Shared::Module*
+ingen_module_load() {
+ if (!module)
+ module = new IngenOSCModule();
+
+ return module;
+}
+
+} // extern "C"
diff --git a/src/engine/wscript b/src/engine/wscript
index ee98b125..10478637 100644
--- a/src/engine/wscript
+++ b/src/engine/wscript
@@ -31,33 +31,8 @@ def build(bld):
PortImpl.cpp
PostProcessor.cpp
ProcessSlave.cpp
- QueuedEvent.cpp
- events/SendPortActivity.cpp
- events/SendPortValue.cpp
- ingen_engine.cpp
- internals/Controller.cpp
- internals/Note.cpp
- internals/Trigger.cpp
- '''
-
- obj = bld.new_task_gen('cxx', 'shlib')
- obj.source = core_source
- if bld.env['HAVE_LADSPA_H'] == 1:
- obj.source += ' LADSPAPlugin.cpp LADSPANode.cpp '
- if bld.env['HAVE_SLV2'] == 1:
- obj.source += ' LV2Info.cpp LV2Plugin.cpp LV2Node.cpp '
- obj.export_incdirs = ['.']
- obj.includes = ['.', '..', '../..', '../common']
- obj.name = 'libingen_engine'
- obj.target = 'ingen_engine'
- obj.install_path = '${LIBDIR}/ingen'
- obj.uselib_local = 'libingen_shared'
- core_libs = 'GLIBMM GTHREAD LV2CORE SLV2 RAUL REDLANDMM'
- autowaf.use_lib(bld, obj, core_libs)
-
- obj = bld.new_task_gen('cxx', 'shlib')
- obj.source = '''
QueuedEngineInterface.cpp
+ QueuedEvent.cpp
QueuedEventSource.cpp
events/AllNotesOff.cpp
events/ClearPatch.cpp
@@ -77,15 +52,30 @@ def build(bld):
events/RequestAllObjects.cpp
events/RequestMetadata.cpp
events/RequestPlugins.cpp
+ events/SendPortActivity.cpp
+ events/SendPortValue.cpp
events/SetMetadata.cpp
events/SetPortValue.cpp
events/UnregisterClient.cpp
+ ingen_engine.cpp
+ internals/Controller.cpp
+ internals/Note.cpp
+ internals/Trigger.cpp
'''
+
+ obj = bld.new_task_gen('cxx', 'shlib')
+ obj.source = core_source
+ if bld.env['HAVE_LADSPA_H'] == 1:
+ obj.source += ' LADSPAPlugin.cpp LADSPANode.cpp '
+ if bld.env['HAVE_SLV2'] == 1:
+ obj.source += ' LV2Info.cpp LV2Plugin.cpp LV2Node.cpp '
obj.export_incdirs = ['.']
- obj.includes = ['.', '..', '../..', '../common', '../engine']
- obj.name = 'libingen_engine_queued'
- obj.target = 'ingen_engine_queued'
+ obj.includes = ['.', '..', '../..', '../common']
+ obj.name = 'libingen_engine'
+ obj.target = 'ingen_engine'
obj.install_path = '${LIBDIR}/ingen'
+ obj.uselib_local = 'libingen_shared'
+ core_libs = 'GLIBMM GTHREAD LV2CORE SLV2 RAUL REDLANDMM'
autowaf.use_lib(bld, obj, core_libs)
if bld.env['HAVE_SOUP'] == 1:
@@ -95,10 +85,11 @@ def build(bld):
QueuedEngineInterface.cpp
HTTPClientSender.cpp
HTTPEngineReceiver.cpp
+ ingen_http.cpp
'''
obj.includes = ['.', '..', '../..', '../common', '../engine']
- obj.name = 'libingen_engine_http'
- obj.target = 'ingen_engine_http'
+ obj.name = 'libingen__http'
+ obj.target = 'ingen_http'
obj.install_path = '${LIBDIR}/ingen'
autowaf.use_lib(bld, obj, core_libs + ' SOUP')
@@ -109,21 +100,22 @@ def build(bld):
QueuedEngineInterface.cpp
OSCClientSender.cpp
OSCEngineReceiver.cpp
+ ingen_osc.cpp
'''
obj.export_incdirs = ['.']
obj.includes = ['.', '..', '../..', '../common', '../engine']
- obj.name = 'libingen_engine_osc'
- obj.target = 'ingen_engine_osc'
+ obj.name = 'libingen_osc'
+ obj.target = 'ingen_osc'
obj.install_path = '${LIBDIR}/ingen'
autowaf.use_lib(bld, obj, core_libs + ' LIBLO')
if bld.env['HAVE_JACK'] == 1:
obj = bld.new_task_gen('cxx', 'shlib')
- obj.source = 'JackAudioDriver.cpp JackMidiDriver.cpp'
+ obj.source = 'JackAudioDriver.cpp JackMidiDriver.cpp ingen_jack.cpp'
obj.export_incdirs = ['.']
obj.includes = ['.', '..', '../..', '../common', '../engine']
- obj.name = 'libingen_engine_jack'
- obj.target = 'ingen_engine_jack'
+ obj.name = 'libingen_jack'
+ obj.target = 'ingen_jack'
obj.install_path = '${LIBDIR}/ingen'
autowaf.use_lib(bld, obj, core_libs + ' JACK')